Cibersegurança

Google integra Rust no modem do Pixel 10 para reforçar a segurança da base de conectividade celular

A Google anunciou que a série Pixel 10 será a primeira linha de dispositivos Pixel a integrar a linguagem Rust, segura para a memória, ao software do modem celular, substituindo um analisador de DNS por um componente escrito em Rust. A empresa afirma que a medida reduz toda uma categoria de riscos de vulnerabilidades de segurança da memória, embora o componente acrescente cerca de 371 quilobytes à imagem do software.

2026-04-10
5 min de leitura
6 visualizações
فريق تحرير certi.news
Google integra Rust no modem do Pixel 10 para reforçar a segurança da base de conectividade celular

A série Pixel 10 integra, pela primeira vez em dispositivos Pixel, um componente escrito na linguagem Rust, segura para a memória, ao software do modem celular, de acordo com uma publicação no Google Security Blog. A medida consiste em incorporar ao firmware do modem um analisador do Sistema de Nomes de Domínio (DNS) desenvolvido em Rust, com o objetivo de reduzir os riscos de vulnerabilidades relacionadas à segurança da memória em uma parte que lida com dados não confiáveis.

A medida faz parte dos esforços da Google para reforçar a proteção do modem de comunicações celulares contra explorações. A empresa havia equipado o Pixel 9 com mitigações contra um conjunto de vulnerabilidades de segurança da memória, mas considera que a complexidade do firmware do modem e a amplitude de sua superfície de ataque exigem medidas preventivas adicionais. A Google afirmou que o Project Zero conseguiu anteriormente obter execução remota de código em modems Pixel pela internet, enquanto o modem do Pixel contém dezenas de megabytes de código executável.

Por que a Google escolheu um analisador de DNS?

O uso do DNS não se limita a ajudar os navegadores a encontrar sites. Com a migração das comunicações celulares modernas para redes de dados digitais, operações essenciais, como o encaminhamento de chamadas, também dependem de serviços de DNS. Esse protocolo complexo precisa analisar dados que podem não ser confiáveis, o que o torna um ponto sensível quando é implementado usando uma linguagem sem proteção de memória, um tipo de risco associado, segundo a publicação, à vulnerabilidade CVE-2024-27227.

A Google avaliou vários pacotes de código aberto para implementar DNS em Rust e escolheu a biblioteca hickory-proto com base em seu nível de manutenção, na cobertura de testes superior a 75% e em sua disseminação na comunidade Rust. Inicialmente, a biblioteca não tinha suporte a no_std, necessário para ambientes com recursos limitados ou que funcionam sem sistema operacional; por isso, a Google adicionou esse suporte à biblioteca e a algumas de suas dependências. O trabalho também resultou no suporte a no_std para o analisador de URLs no projeto rust-url.

Custo de tamanho e integração com o software existente

O estudo de tamanho mostrou que o componente intermediário escrito em Rust consome 4 quilobytes, enquanto os componentes core, alloc e compiler_builtins exigem 17 quilobytes, e a biblioteca hickory-proto e suas dependências consomem 350 quilobytes, totalizando 371 quilobytes. A Google considera que o tamanho da memória do modem do Pixel não impõe restrições rigorosas e, por isso, nesta fase preferiu o suporte da comunidade e a qualidade do código à otimização de tamanho. A empresa observou, porém, que o aumento pode representar um obstáculo para outros sistemas embarcados e que poderá ser reduzido futuramente por meio de opções de compilação que excluam funções desnecessárias.

Para integrar Rust à base de código existente, escrita em C e C++, a equipe utilizou testes unitários para verificar operações aritméticas básicas, a alocação dinâmica de memória e as interfaces de ligação entre as linguagens. Também escolheu integrar as etapas de compilação do Rust diretamente ao sistema de compilação atual, em vez de criar bibliotecas estáticas separadas por meio do Cargo, porque essa abordagem é mais fácil de ampliar com a adição de outros componentes Rust e reduz a possibilidade de conflitos de símbolos.

O sistema de compilação principal baseia-se no Pigweed, enquanto interfaces FFI foram usadas para conectar o sistema de alocação de memória existente no firmware ao componente alloc do Rust e também para unificar o tratamento de falhas entre Rust e C/C++. Durante a ligação, surgiu um problema de desempenho e consumo de energia devido à substituição das implementações de modem otimizadas das funções memset e memcpy por implementações provenientes de compiler_builtins. A equipe resolveu o problema removendo os arquivos compiler_builtins da biblioteca estática antes da etapa de ligação.

Interface de DNS e próximo passo

A Google definiu uma interface de programação em C para processar respostas de DNS e depois a implementou em Rust. Após analisar a resposta, o componente chama as funções C existentes para atualizar as estruturas de dados usadas pelo programa original. A ferramenta bindgen foi usada para gerar o código de ligação necessário às operações complexas de conversão entre tipos de dados.

Segundo a Google, a série Pixel 10 representa um marco importante por ser a primeira linha de dispositivos Pixel a integrar uma linguagem segura para a memória ao modem. O objetivo não se limita a substituir um único analisador; a empresa considera que o projeto estabelece uma base para introduzir futuramente outros analisadores e componentes escritos em linguagens seguras para a memória na base de conectividade celular.

Fonte da notícia
Google Security Blog
Abrir fonte original ↗
ف
Autor

فريق تحرير certi.news

Na mesma categoria

Você também pode gostar

Ver todas as notícias