Cerca de 21% do novo código compilado no Android 13 é escrito em Rust

Engenheiros do Google resumiram os primeiros resultados da introdução do suporte ao desenvolvimento na linguagem Rust na plataforma Android. No Android 13, aproximadamente 21% do novo código compilado adicionado é escrito em Rust e 79% em C/C++. O repositório AOSP (Android Open Source Project), que desenvolve o código-fonte da plataforma Android, contém aproximadamente 1.5 milhão de linhas de código Rust associadas a novos componentes como o armazenamento de chaves criptográficas Keystore2, uma pilha para chips UWB (Ultra-Wideband) , implementação do protocolo DNS sobre HTTP3, estrutura de virtualização AVF (Android Virtualization Framework), pilhas experimentais para Bluetooth e Wi-Fi.

 Cerca de 21% do novo código compilado no Android 13 é escrito em Rust

De acordo com a estratégia anteriormente adotada de reduzir o risco de vulnerabilidades causadas por erros no trabalho com memória, a linguagem Rust é atualmente utilizada principalmente no desenvolvimento de novos códigos e para fortalecer gradativamente a segurança dos componentes de software mais vulneráveis ​​​​e vitais. Não há um objetivo geral de transferir toda a plataforma para Rust e o código antigo permanece em C/C++, e o combate aos erros nele é feito através da utilização de testes de fuzzing, análise estática e utilização no desenvolvimento de técnicas semelhantes a usando o tipo MiraclePtr (ligação sobre ponteiros brutos, realizando verificações adicionais para acessar áreas de memória liberadas), o sistema de alocação de memória Scudo (um substituto seguro para malloc/free) e mecanismos de detecção de erros ao trabalhar com memória HWAsan (Hardware-assisted AddressSanitizer), GWP-ASAN e KFENCE.

Quanto às estatísticas sobre a natureza das vulnerabilidades na plataforma Android, nota-se que à medida que diminui o novo código que funciona de forma insegura com a memória, há uma diminuição no número de vulnerabilidades causadas por erros ao trabalhar com a memória. Por exemplo, a percentagem de vulnerabilidades causadas por problemas de memória diminuiu de 76% em 2019 para 35% em 2022. Em números absolutos, 2019 vulnerabilidades relacionadas à memória foram identificadas em 223, 2020 em 150, 2021 em 100 e 2022 em 85 (todas as vulnerabilidades observadas estavam no código C/C++; no código Rust, não há problemas semelhantes até agora não foi encontrado). 2022 foi o primeiro ano em que as vulnerabilidades relacionadas à memória deixaram de dominar.

 Cerca de 21% do novo código compilado no Android 13 é escrito em Rust

Como as vulnerabilidades relacionadas à memória são geralmente as mais perigosas, as estatísticas gerais também mostram uma diminuição no número de problemas críticos e que podem ser explorados remotamente. Ao mesmo tempo, a dinâmica de identificação de vulnerabilidades não relacionadas ao trabalho com memória permaneceu aproximadamente no mesmo nível nos últimos 4 anos - 20 vulnerabilidades por mês. A parcela de problemas perigosos entre as vulnerabilidades causadas por erros ao trabalhar com memória também permanece (mas como o número dessas vulnerabilidades diminui, o número de problemas perigosos também diminui).

 Cerca de 21% do novo código compilado no Android 13 é escrito em Rust

As estatísticas também rastreiam a correlação entre a quantidade de código novo que funciona de forma insegura com a memória e o número de vulnerabilidades relacionadas à memória (estouro de buffer, acesso à memória já liberada, etc.). Esta observação confirma a suposição de que o foco na implementação de técnicas de programação segura deve ser a remoção de novo código, em vez de reescrever o código existente, uma vez que a maior parte das vulnerabilidades identificadas está em novo código.

 Cerca de 21% do novo código compilado no Android 13 é escrito em Rust


Fonte: opennet.ru

Adicionar um comentário