Rust é incluído entre as principais linguagens para desenvolvimento da plataforma Android

A empresa Google anunciou a inclusão da linguagem de programação Rust entre as linguagens permitidas para o desenvolvimento da plataforma Android. O compilador da linguagem Rust foi adicionado à árvore de códigos-fonte do Android em 2019, mas o suporte para essa linguagem permaneceu experimental. Entre os primeiros componentes em Rust que devem ser integrados ao Android estão novas implementações do mecanismo de comunicação entre processos Binder e o stack Bluetooth.

A implementação do Rust foi realizada no âmbito de um projeto para aumentar a segurança, promover técnicas de programação segura e melhorar a eficácia na detecção de problemas relacionados à memória no Android. Observa-se que cerca de 70% de todas as vulnerabilidades críticas identificadas no Android são causadas por erros relacionados à memória. O uso da linguagem Rust, que se concentra em um gerenciamento seguro de memória e fornece gerenciamento automático de memória, permitirá reduzir o risco de vulnerabilidades causadas por erros de memória, como acessos a áreas de memória após a liberação e estouros de buffer.

A segurança na gestão da memória é garantida em Rust durante a compilação através da verificação de referências, rastreamento de propriedade de objetos e consideração do tempo de vida dos objetos (escopo), além da avaliação da validade de acesso à memória durante a execução do código. Rust também oferece ferramentas para proteger contra estouros inteiros, exige a inicialização obrigatória de variáveis antes de seu uso, lida melhor com erros na biblioteca padrão, aplica o conceito de imutabilidade (immutable) de referências e variáveis por padrão e proporciona uma forte tipagem estática para minimizar erros lógicos.

No Android, a segurança na gestão da memória é garantida nas linguagens já suportadas, como Kotlin e Java, mas elas não são adequadas para o desenvolvimento de componentes do sistema devido ao alto custo de sobrecarga. Rust permite obter um desempenho próximo ao das linguagens C e C++, o que possibilita seu uso para o desenvolvimento de partes de baixo nível da plataforma e componentes para interação com hardware.

Para garantir a segurança do código em C e C++ no Android, são aplicadas isolamento sandbox, análise estática e testes de fuzzing. As capacidades de isolamento sandbox são limitadas e atingiram seu limite (a fragmentação adicional em processos não é viável em termos de consumo de recursos). Entre as limitações do uso do sandbox, mencionam-se os altos custos operacionais e o aumento do consumo de memória, causados pela necessidade de criar novos processos, além do surgimento de atrasos adicionais relacionados ao uso de IPC.

No entanto, o sandbox não elimina vulnerabilidades no código, apenas reduz os riscos e torna os ataques mais complicados, uma vez que para a exploração é necessário identificar não uma, mas várias vulnerabilidades. Os métodos baseados em testes de código são limitados na medida em que, para detectar erros, é necessário criar condições que provoquem o problema. Cobrir todas as possíveis variantes não é viável, portanto, muitos erros permanecem não detectados.

Para processos do sistema no Android, a Google adota a "regra dos dois", de acordo com a qual qualquer código adicionado não pode atender a mais de duas das três condições: lidar com dados de entrada não verificados, usar uma linguagem de programação insegura (C/C++) e ser executado sem um isolamento sandbox rígido (concessão de privilégios elevados). Deste princípio, conclui-se que o código para processar dados externos deve ser restringido a privilégios mínimos (isolado) ou ser escrito em uma linguagem de programação segura.

A Google não tem como objetivo reescrever o código existente em C/C++ em Rust, mas planeja utilizar esta linguagem para o desenvolvimento de novo código. Utilizar Rust para novos códigos faz sentido, visto que, estatisticamente, a maioria dos erros aparece em códigos novos ou recentemente modificados. Especificamente, cerca de 50% dos erros identificados relacionados à memória no Android são encontrados em código escrito há menos de um ano.

Rust é incluído entre as principais linguagens para desenvolvimento da plataforma Android


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