O Google torna mais difícil a exploração do firmware do modem Pixel 10

🇧🇷 PT 🇺🇸 EN

Mon, 13 Apr 2026

← Voltar

Resumo Executivo

O Google está trabalhando para melhorar a segurança dos telefones Pixel, concentrando-se no modem de banda base celular, parte do dispositivo que lida com a comunicação com redes móveis e processa dados externos.

Detalhes

O Google está trabalhando para melhorar a segurança dos telefones Pixel, concentrando-se no modem de banda base celular, parte do dispositivo que lida com a comunicação com redes móveis e processa dados externos. No Pixel 9, a empresa introduziu medidas para reduzir vulnerabilidades relacionadas à memória. Com o Pixel 10, a abordagem vai além, integrando um analisador DNS escrito na linguagem de programação Rust ao firmware do modem. O protocolo DNS é conhecido por ajudar os navegadores a localizar sites e também desempenha um papel nas redes celulares, onde funções como encaminhamento de chamadas dependem de serviços DNS.

O DNS processa dados complexos de fontes externas e deve lidar com entradas não confiáveis, o que pode introduzir vulnerabilidades quando implementado em linguagens não seguras para a memória. "O modem Pixel tem dezenas de megabytes de código executável. Dada a complexidade e a superfície de ataque remoto do modem, outras vulnerabilidades críticas de segurança de memória podem permanecer no código de firmware predominantemente inseguro para memória", escreveu Jiacheng Lu, engenheiro de software da equipe do Google Pixel. “O novo analisador DNS baseado em Rust reduz significativamente nosso risco de segurança ao mitigar toda uma classe de vulnerabilidades em uma área de risco, ao mesmo tempo que estabelece as bases para uma adoção mais ampla de código seguro de memória em outras áreas”, acrescentou Lu.

Desafios de firmware e integração de ferrugem O Google escolheu uma biblioteca DNS de código aberto chamada hickory-proto e a adaptou para uso em firmware de modem. O ambiente do modem requer que o código Rust seja executado sem a biblioteca padrão, usando uma configuração conhecida como no_std. O código adicionado aumenta o tamanho do firmware em cerca de 371 KB, incluindo a biblioteca DNS, suas dependências e os componentes Rust necessários. Isso foi considerado aceitável para dispositivos Pixel.

"Construímos protótipos e medimos o tamanho com configurações otimizadas para tamanho. Como esperado, o hickory_proto não foi projetado com o uso incorporado em mente e não é otimizado para tamanho. Como o modem Pixel não é fortemente limitado pela memória, priorizamos o suporte da comunidade e a qualidade do código, deixando as otimizações de tamanho do código como trabalho futuro", explicou Lu. "No entanto, o tamanho adicional do código pode ser um bloqueador para outros sistemas embarcados.

Isso poderia ser resolvido no futuro adicionando sinalizadores de recursos adicionais para compilar condicionalmente apenas as funcionalidades necessárias. Implementar essa modularidade seria um trabalho futuro valioso." Para integrar o analisador, o código Rust foi conectado ao firmware C e C++ existente por meio de interfaces que permitem a troca de dados. Quando o modem recebe dados DNS, eles são passados ​​​​para o analisador Rust, que os processa e depois chama de volta as funções C existentes para armazenar ou usar os resultados. Isso também exigiu mudanças no processo de construção.

O código Rust foi compilado de forma que se encaixe no sistema de firmware existente e vinculado à alocação de memória do modem e aos componentes de tratamento de falhas. Durante os testes, apareceu um problema de desempenho quando algumas funções otimizadas foram substituídas durante a vinculação. Isso causou problemas de potência e desempenho, que foram posteriormente corrigidos ajustando a forma como o código está vinculado.