Rust já é um favorito para desenvolvimento Android

Google revelado faz pouco a inclinação linguagem de programação Ferrugem entre os idiomas permitidos para desenvolvimento Android.

Já que o compilador Rust foi incluído na árvore de origem do Android em 2019, mas o suporte a idiomas permaneceu experimental. Alguns dos primeiros componentes do Rust enviados para o Android são novas implementações do mecanismo de comunicação entre processos Binder e a pilha Bluetooth.

A implementação do Rust foi realizado como parte de um projeto para fortalecer a segurança, promova técnicas de codificação seguras e melhore a eficiência de identificação de problemas ao trabalhar com memória no Android. Observa-se que cerca de 70% de todas as vulnerabilidades perigosas identificadas no Android são causadas por erros ao trabalhar com memória.

O uso da linguagem Rust, que concentra-se no gerenciamento de memória segura e fornece gerenciamento automático de memória, reduzirá o risco de vulnerabilidades causadas por erros durante o manuseio da memória, como acessar uma área da memória depois que ela foi liberada e estourar os limites do buffer.

O manuseio seguro da memória é garantido no Rust em tempo de compilação, verificando referências, rastreando a propriedade do objeto e a vida do objeto (escopo), bem como avaliando a exatidão do acesso à memória em tempo de execução.

Ferrugem também fornece meios de proteção contra transbordamentos inteiro, requer inicialização obrigatória de valores de variáveis ​​antes do uso, trata melhor os erros na biblioteca padrão, adota o conceito de referências e variáveis ​​imutáveis ​​por padrão e oferece escrita estática forte para minimizar erros lógicos.

No Android, o gerenciamento seguro de memória é fornecido nas linguagens Kotlin e Java já com suporte, mas não é adequado para desenvolver componentes de sistema devido à sobrecarga pesada.

Rust permite atingir um desempenho próximo às linguagens C e C ++, permitindo que seja usado para desenvolver partes de baixo nível da plataforma e componentes para fazer interface com o hardware.

Para garantir a segurança do código C e C ++, o Android usa isolamento sandbox, análise estática e testes de difusão. Os recursos de isolamento de sandbox são limitados e atingiram o limite de seus recursos (uma fragmentação adicional nos processos não é prática do ponto de vista do consumo de recursos).

Entre as limitações do uso do sandbox, eles citam a alta sobrecarga e o maior consumo de memória causados ​​pela necessidade de geração de novos processos, bem como a latência adicional associada ao uso do IPC.

Ao mesmo tempo, a sandbox não elimina vulnerabilidades no código, mas apenas reduz os riscos e complica o ataque, pois a exploração requer a identificação não de uma, mas de várias vulnerabilidades.

Os métodos de teste de código são limitados porque, para detectar erros, é necessário criar condições para a manifestação do problema. Não é possível cobrir todas as opções possíveis, tantos erros passam despercebidos.

Para processos de sistema no Android, O Google segue a 'regra dos dois'Segundo que qualquer código adicionado não deve atender a mais de duas das três condições- Trabalhe com dados de entrada não verificados, use uma linguagem de programação insegura (C / C ++) e execute sem isolamento de caixa de areia rígida (com privilégios elevados).

Segue-se desta regra que o código para processar dados externos deve ser reduzido ao menor privilégio (isolado) ou escrito em uma linguagem de programação segura.

O Google não pretende reescrever o código C / C ++ existente no Rust, mas ele planeja usar essa linguagem para desenvolver um novo código.

Faz sentido usar Rust para código novo, uma vez que estatisticamente a maioria dos erros aparece em código novo ou modificado recentemente. Em particular, cerca de 50% dos erros de memória detectados no Android são detectados em código escrito há menos de um ano.

fonte: https://security.googleblog.com


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Miguel Rodrigues dito

    A ironia, quando seu maior concorrente acaba adotando algo que você ajudou a desenvolver para seus próprios objetivos ... A ferrugem está em alta.