Google Fortalece Modems Pixel com Analisador DNS Baseado em Rust
O **Google** está integrando um analisador de Domain Name System (DNS) baseado em **Rust** no firmware do modem dos dispositivos **Pixel**, marcando um passo significativo no fortalecimento da segurança do dispositivo. Esta medida visa mitigar vulnerabilidades em uma área crítica e abrir caminho para uma adoção mais ampla de código com segurança de memória no ecossistema **Android**.

### Integração de Rust para Segurança Aprimorada
Como parte de seus esforços contínuos para aprimorar a segurança dos dispositivos **Pixel**, o **Google** anunciou a integração de um analisador DNS baseado em **Rust** no firmware do modem. Esta iniciativa visa abordar vulnerabilidades relacionadas à memória em um nível fundamental.
De acordo com **Jiacheng Lu**, engenheiro de software da **Google Pixel Team**, "O novo analisador DNS baseado em Rust reduz significativamente nosso risco de segurança ao mitigar uma classe inteira de vulnerabilidades em uma área arriscada, ao mesmo tempo em que estabelece a base para uma adoção mais ampla de código com segurança de memória em outras áreas."
Este aprimoramento de segurança está atualmente disponível para dispositivos **Pixel 10**, tornando-o o primeiro dispositivo **Pixel** a incorporar uma linguagem com segurança de memória em seu modem.
### Contexto: Fortalecendo a Segurança do Baseband
Esta medida se baseia em esforços anteriores para fortificar o modem baseband celular contra potenciais exploits. No final de 2023, o **Google** enfatizou a eficácia dos sanitizadores **Clang**, como o Overflow Sanitizer (IntSan) e o BoundsSanitizer (BoundSan), na detecção de comportamento indefinido durante a execução do programa.
Além disso, em 2024, o **Google** detalhou várias medidas de segurança integradas ao firmware do modem para defender contra exploits 2G e ataques de baseband que exploram vulnerabilidades de segurança de memória, como overflows de buffer, para alcançar a execução remota de código.
Esses avanços de segurança são complementados pela adoção contínua de **Rust** pelo **Google** no **Android** e em firmwares de baixo nível. Em novembro de 2025, a empresa relatou uma redução significativa em vulnerabilidades de segurança de memória, caindo para menos de 20% do total de vulnerabilidades descobertas no sistema operacional móvel no ano passado.
### Abordando Vulnerabilidades de DNS
O **Google** escolheu o protocolo DNS para sua implementação em **Rust** devido ao seu papel fundamental nas comunicações celulares modernas. Vulnerabilidades em DNS, especialmente quando implementadas em linguagens sem segurança de memória, podem expor usuários a ataques maliciosos, como destacado pela **CVE-2024-27227**.
"Com a evolução da tecnologia celular, as comunicações celulares modernas migraram para redes de dados digitais; consequentemente, até mesmo operações básicas como o encaminhamento de chamadas dependem de serviços DNS", declarou o **Google**. "Implementar o analisador DNS em Rust oferece valor ao diminuir as superfícies de ataque associadas à falta de segurança de memória."
### Detalhes de Implementação
Para esta implementação, o **Google** selecionou o crate "hickory-proto", um cliente, servidor e resolvedor DNS baseado em **Rust**, e o modificou para suportar ambientes bare metal e embarcados. Eles também utilizaram uma ferramenta personalizada chamada "cargo-gnaw" para gerenciar as dependências do crate.
O **Google** observou que o crate DNS **Rust** não é otimizado para sistemas com restrição de memória e sugeriu que a otimização do tamanho do código poderia ser alcançada através de flags de recursos para compilar seletivamente apenas a funcionalidade necessária.
"Para o analisador DNS, declaramos a API de análise de resposta DNS em C e, em seguida, implementamos a mesma API em Rust", explicou o **Google**. "A função Rust retorna um inteiro representando o código de erro. As respostas DNS recebidas na resposta DNS precisam ser atualizadas para estruturas de dados na memória que estão acopladas à implementação C original; portanto, usamos funções C existentes para fazer isso. As funções C existentes são despachadas da implementação Rust."