Cerca de 21% do novo código compilável no Android 13 foi escrito na linguagem Rust

Os engenheiros da Google apresentaram os primeiros resultados da implementação no Android do suporte ao desenvolvimento na linguagem Rust. No Android 13, cerca de 21% do novo código compilável adicionado foi escrito em Rust, enquanto 79% foi escrito em C/C++. No repositório AOSP (Android Open Source Project), que abriga o código-fonte da plataforma Android, existem aproximadamente 1,5 milhão de linhas de código em Rust, relacionadas a novos componentes como o armazenamento de chaves criptográficas Keystore2, pilha para chips UWB (Ultra-Wideband), implementação do protocolo DNS-over-HTTP3, framework de virtualização AVF (Android Virtualization Framework) e pilhas experimentais para Bluetooth e Wi-Fi.

Cerca de 21% do novo código compilável no Android 13 foi escrito na linguagem Rust

De acordo com a estratégia previamente adotada para reduzir o risco de vulnerabilidades causadas por erros de gerenciamento de memória, a linguagem Rust está sendo utilizada principalmente no desenvolvimento de novo código e para reforçar gradualmente a segurança dos componentes de software mais vulneráveis e críticos. Não há uma meta de migrar toda a plataforma para Rust, e o código antigo permanece em C/C++, com a correção de erros sendo realizada através de técnicas como teste fuzzing, análise estática e práticas de desenvolvimento como o uso do tipo MiraclePtr (uma camada sobre ponteiros brutos que realiza verificações adicionais de acessos a áreas de memória liberadas), o sistema de distribuição de memória Scudo (substituto seguro para malloc/free) e mecanismos de detecção de erros de memória como HWAsan (Hardware-assisted AddressSanitizer), GWP-ASAN e KFENCE.

Quanto às estatísticas sobre o tipo de vulnerabilidades na plataforma Android, observa-se que à medida que a quantidade de novo código que manipula a memória de forma insegura diminui, também há uma redução no número de vulnerabilidades causadas por erros de memória. Por exemplo, a proporção de vulnerabilidades causadas por problemas de memória caiu de 76% em 2019 para 35% em 2022. Em números absolutos, em 2019 foram identificadas 223 vulnerabilidades relacionadas à manipulação de memória, em 2020 foram 150, em 2021 foram 100 e em 2022 foram 85 (todas as vulnerabilidades identificadas no código em C/C++, nenhuma dessas problemas foi encontrada no código em Rust). O ano de 2022 foi o primeiro em que as vulnerabilidades relacionadas à memória deixaram de ser predominantes.

Cerca de 21% do novo código compilável no Android 13 foi escrito na linguagem Rust

Como as vulnerabilidades relacionadas ao gerenciamento de memória costumam ser as mais perigosas, as estatísticas gerais também mostram uma redução no número de problemas críticos e naqueles que podem ser explorados remotamente. Ao mesmo tempo, a dinâmica de descoberta de vulnerabilidades não relacionadas ao gerenciamento de memória se mantém estável nos últimos 4 anos, com cerca de 20 vulnerabilidades por mês. A proporção de problemas perigosos entre as vulnerabilidades causadas por erros no gerenciamento de memória também se mantém (mas como o número dessas vulnerabilidades está diminuindo, o número de problemas perigosos também está caindo).

Cerca de 21% do novo código compilável no Android 13 foi escrito na linguagem Rust

As estatísticas também mostram uma correlação entre o volume de novo código que lida inseguramente com a memória e o número de vulnerabilidades relacionadas à memória (como estouro de buffer, acesso à memória já liberada etc.). Essa observação confirma a suposição de que o foco da implementação de técnicas de programação segura deve ser em novo código, e não na reescrita do código existente, já que a maior parte das vulnerabilidades identificadas se concentra no novo código.

Cerca de 21% do novo código compilável no Android 13 foi escrito na linguagem Rust


Fonte: opennet.ru
Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster