Google integrou Rust no modem do Pixel 10 para aumentar a segurança do código legado.

por Robson Caitano

Introdução ao Gerenciamento de Memória no Rust

Rust não possui um coletor de lixo lento. Ao invés disso, utiliza um mecanismo conhecido como "borrow checker", que garante a segurança da memória em tempo de compilação. Este conjunto rigoroso de regras assegura que não seja possível "esquecer" de liberar memória — o código simplesmente não compilará se as regras relacionadas à memória forem violadas. Isso é o que torna Rust uma linguagem que oferece segurança em relação à memória.

Desafios na Atualização de Firmware de Modem

No entanto, nem mesmo uma gigante como o Google pode simplesmente alterar como o firmware de modem é escrito. A questão envolve dezenas de megabytes de código de máquina executável, o que representa uma quantidade considerável. Não apenas seria uma tarefa hercúlea atualizar décadas de trabalho, mas muitas das empresas envolvidas também consideram o funcionamento interno dos modems como segredos comerciais.

Foco da Google na Segurança do Modem do Pixel

Para proteger o modem do Pixel contra ataques de zero-day, o Google concentrou seus esforços no parser DNS. À medida que as funcionalidades celulares migraram para redes de dados, o DNS se tornou uma parte central do funcionamento dos telefones. A Google explica que o DNS requer a análise de dados não confiáveis, o que representa uma grande preocupação de segurança, mas que pode ser resolvida com o uso do Rust.

Escolha da Biblioteca Rust para DNS

O Google optou pela biblioteca de DNS Rust de código aberto chamada hickory-proto, que não é particularmente otimizada, mas possui ampla adoção e suporte. O modem presente nos telefones Pixel não opera em um ambiente com restrição de memória, o que permitiu à equipe adicionar um componente em Rust para tornar o DNS no código existente mais seguro. A equipe removeu as dependências da biblioteca padrão, permitindo que o código fosse compilado em código de máquina para uma operação mais rápida, que foi então incorporada ao código existing C/C++ do modem. No total, os componentes em Rust adicionaram 371KB, uma quantidade viável para o modem do Pixel.

Sistema de Segurança do Modem

Sob esse sistema, qualquer tentativa de explorar uma vulnerabilidade manipulando a memória esbarra na barreira imposta pelo Rust — ele não pode ser impactado por pacotes DNS maliciosos. Os telefones Pixel 10 foram os primeiros a serem lançados com essa implementação mais segura do modem. A Google espera que esse trabalho permita que outras plataformas façam melhorias semelhantes, mas a empresa observa que o tamanho da biblioteca Rust escolhida pode ser um problema para sistemas embarcados mais simples. É possível que isso seja abordado tornando a biblioteca mais modular no futuro. A Google também visualiza esse trabalho como uma base para integrar mais componentes seguros em relação à memória na baseband celular ao longo do tempo.

Artigos Relacionados

Deixe um Comentário