A empresa Google concluiu as avaliações da iniciativa para a implementação em Android de métodos de desenvolvimento seguro (Safe Coding), como o uso de linguagens de programação que garantem a gestão segura da memória, a aplicação de analisadores estáticos e o design de APIs com foco na segurança. As mudanças permitiram reduzir a proporção de vulnerabilidades relacionadas à memória em Android de 76% em 2019 para 24% em 2024, o que está significativamente abaixo da média do setor — 70%.
Os engenheiros do Google também concluíram que a principal fonte de problemas de segurança é o novo código, e, portanto, a atenção deve ser direcionada para a modernização dos métodos de desenvolvimento de novo código. O código já existente, ao longo do tempo, torna-se mais comprovado e seguro (observa-se uma relação exponencial entre segurança e tempo), o que torna investimentos em projetos de reescrita de código existente menos vantajosos. Por exemplo, um código de 5 anos, em média, tem 3,4 vezes menos densidade de vulnerabilidades do que o novo código. Para projetos Android e Chromium, devido à implementação de métodos seguros de gestão de memória, essa diferença é de 7,4 vezes.

Assim, se evitarmos a ocorrência de erros relacionados à memória no novo código, com o tempo, esses erros no código antigo serão identificados cada vez com menos frequência. De forma geral, o Google recomenda não reescrever o código antigo, mas concentrar-se na escrita de novo código em linguagens que gerenciam a memória de maneira segura e garantir a portabilidade entre o novo e o antigo código.
Além de reduzir o número de vulnerabilidades, a utilização de métodos de programação seguros aumenta a produtividade do desenvolvimento, melhora a qualidade do código e tem um impacto positivo na performance. Por exemplo, a reescrita do código para geração de QR codes em Chromium na linguagem Rust resultou em um aumento de 95% na performance, graças à eliminação das sobrecargas causadas pela necessidade de aplicar uma sandbox adicional para isolamento.
A velocidade e a qualidade do desenvolvimento aumentam com a simplificação dos testes e a antecipação da identificação de erros nas fases iniciais do desenvolvimento, nas quais os erros se tornam visíveis antes mesmo que o desenvolvedor comece a verificar o código. Por exemplo, as taxas de reversão de alterações — para código em Rust, o número de reversões devido a erros imprevistos é duas vezes menor do que para código em C++.
De forma geral, a aplicação de métodos seguros de programação é apresentada como a paradigma de desenvolvimento mais eficaz até o momento, que substituiu três abordagens anteriormente utilizadas:
- Correção de vulnerabilidades após sua detecção. Custoso, exige lançamentos frequentes de atualizações e sua rápida implementação para os usuários.
- Proteção proativa, focada na aplicação de técnicas que complicam a exploração de vulnerabilidades. O custo dessa proteção foi a diminuição do desempenho e um constante jogo de gato e rato com os atacantes.
- Detecção precoce de vulnerabilidades por meio do uso de testes de fuzzing e ferramentas como AddressSanitizer e MemorySanitizer. O método apenas tratava os sintomas, e não a causa do problema, e exigia trabalho constante.


Fonte: opennet.ru
