Google Renforce la Sécurité des Modems Pixel avec un Analyseur DNS Basé sur Rust
Google intègre un analyseur DNS (Domain Name System) basé sur Rust dans le firmware des modems des appareils Pixel, marquant une étape importante dans le renforcement de la sécurité des appareils. Cette démarche vise à atténuer les vulnérabilités dans un domaine critique et à ouvrir la voie à une adoption plus large du code à mémoire sécurisée au sein de l'écosystème Android.

### Intégration de Rust pour une Sécurité Renforcée
Dans le cadre de ses efforts continus pour améliorer la sécurité des appareils Pixel, Google a annoncé l'intégration d'un analyseur DNS basé sur Rust dans le firmware du modem. Cette initiative vise à résoudre les vulnérabilités liées à la mémoire à un niveau fondamental.
Selon Jiacheng Lu, ingénieur logiciel au sein de l'équipe Google Pixel, "Le nouvel analyseur DNS basé sur Rust réduit considérablement notre risque de sécurité en atténuant une classe entière de vulnérabilités dans un domaine risqué, tout en posant les bases d'une adoption plus large du code à mémoire sécurisée dans d'autres domaines."
Cette amélioration de la sécurité est actuellement disponible pour les appareils Pixel 10, ce qui en fait le premier appareil Pixel à intégrer un langage à mémoire sécurisée dans son modem.
### Contexte : Renforcement de la Sécurité de la Bande de Base
Cette démarche s'appuie sur des efforts antérieurs visant à fortifier le modem de la bande de base cellulaire contre les exploits potentiels. Fin 2023, Google a souligné l'efficacité des analyseurs Clang, tels que l'Overflow Sanitizer (IntSan) et le BoundsSanitizer (BoundSan), pour détecter les comportements indéfinis pendant l'exécution des programmes.
De plus, en 2024, Google a détaillé diverses mesures de sécurité intégrées au firmware du modem pour se défendre contre les exploits 2G et les attaques de bande de base qui exploitent les vulnérabilités de sécurité de la mémoire, telles que les dépassements de tampon, pour obtenir une exécution de code à distance.
Ces avancées en matière de sécurité sont complétées par l'adoption continue de Rust par Google dans Android et les firmwares de bas niveau. En novembre 2025, l'entreprise a signalé une réduction significative des vulnérabilités de sécurité de la mémoire, tombant en dessous de 20 % du total des vulnérabilités découvertes dans le système d'exploitation mobile l'année dernière.
### Résolution des Vulnérabilités DNS
Google a choisi le protocole DNS pour son implémentation en Rust en raison de son rôle fondamental dans les communications cellulaires modernes. Les vulnérabilités dans le DNS, en particulier lorsqu'elles sont implémentées dans des langages non sécurisés en mémoire, peuvent exposer les utilisateurs à des attaques malveillantes, comme le souligne la CVE-2024-27227.
"Avec l'évolution de la technologie cellulaire, les communications cellulaires modernes ont migré vers les réseaux de données numériques ; par conséquent, même les opérations de base telles que le renvoi d'appels dépendent des services DNS", a déclaré Google. "L'implémentation de l'analyseur DNS en Rust apporte une valeur ajoutée en diminuant les surfaces d'attaque associées à l'insécurité de la mémoire."
### Détails d'Implémentation
Pour cette implémentation, Google a sélectionné la crate "hickory-proto", un client, serveur et résolveur DNS basé sur Rust, et l'a modifiée pour prendre en charge les environnements bare metal et embarqués. Ils ont également utilisé un outil personnalisé appelé "cargo-gnaw" pour gérer les dépendances de la crate.
Google a noté que la crate DNS Rust n'est pas optimisée pour les systèmes à mémoire contrainte et a suggéré que l'optimisation de la taille du code pourrait être réalisée grâce à des indicateurs de fonctionnalités pour compiler sélectivement uniquement les fonctionnalités requises.
"Pour l'analyseur DNS, nous avons déclaré l'API d'analyse des réponses DNS en C, puis implémenté la même API en Rust", a expliqué Google. "La fonction Rust renvoie un entier représentant le code d'erreur. Les réponses DNS reçues dans la réponse DNS doivent être mises à jour dans des structures de données en mémoire qui sont couplées à l'implémentation C d'origine ; par conséquent, nous utilisons des fonctions C existantes pour ce faire. Les fonctions C existantes sont appelées depuis l'implémentation Rust."