Google a commencé à intégrer du code Rust à mémoire sûre dans les modems cellulaires de ses smartphones Pixel 10, renforçant ainsi un composant critique et souvent vulnérable. Ce changement stratégique vise à contrer les attaques à distance sophistiquées qui exploitent les logiciels hérités au sein de ces systèmes de communication essentiels, selon les chercheurs de Project Zero. Cette initiative témoigne d'une reconnaissance croissante de l'industrie selon laquelle les micrologiciels de modem traditionnels, une « boîte noire » de code complexe, posent des risques de sécurité importants pour les utilisateurs quotidiens.
Cette couche de protection, ciblant spécifiquement l'analyseur de système de noms de domaine (DNS) du téléphone, représente une évolution pragmatique de la sécurité des appareils. Les ingénieurs de Google ont opté pour une intégration ciblée plutôt qu'une refonte complète du micrologiciel étendu du modem. L'analyseur DNS, responsable de la traduction des noms de sites web lisibles par l'homme en adresses internet numériques, traite continuellement des données non fiables.
Cette interaction constante en fait une cible privilégiée pour les acteurs malveillants cherchant des points d'entrée dans l'appareil d'un utilisateur. Les modems cellulaires, malgré leur rôle vital, ont longtemps existé comme des systèmes d'exploitation opaques et autonomes fonctionnant sur le processeur de bande de base d'un téléphone. Ces systèmes sont principalement construits sur du code C et C++ vieux de plusieurs décennies.
La complexité inhérente à la gestion de la mémoire dans ces langages hérités conduit fréquemment à des codes de micrologiciel présentant de graves failles de sécurité de la mémoire sur les appareils disponibles dans le commerce. C'est un problème. Les attaquants peuvent exploiter ces faiblesses, telles que les dépassements de tampon ou les fuites de mémoire, pour compromettre les appareils à distance.
L'équipe Project Zero de Google a mis en évidence la dure réalité de cette vulnérabilité, démontrant comment l'exécution de code à distance sur les modems des téléphones Pixel était possible via internet. Cette capacité permet aux acteurs malveillants de prendre le contrôle d'un téléphone de n'importe où, sans accès physique. C'est une menace sérieuse.
Les chercheurs de Project Zero ont identifié plus de deux douzaines de vulnérabilités spécifiquement au sein des modems Exynos ces dernières années. Parmi celles-ci, 18 ont été classées comme sévères. Bien que Google ait corrigé ces problèmes après leur découverte, le volume et la complexité du code des modems signifient que d'autres failles non découvertes subsistent presque certainement.
Les correctifs sont réactifs, non préventifs. La dépendance de longue date au C/C++ dans le développement des modems découle de décennies d'adhésion aux spécifications 3GPP et de la nécessité d'une transmission de données en temps réel. Le code C/C++ est rapide.
Cette longue histoire a créé une dette technique importante, faisant d'une réécriture complète du micrologiciel du modem une entreprise immense. L'inertie est puissante. Rendre les modems plus sûrs exige de s'attaquer directement à ces failles de mémoire.
Rust apparaît comme un candidat solide pour cette tâche. Contrairement à d'autres langages à mémoire sûre comme Python ou C#, Rust ne repose pas sur un ramasse-miettes. Le ramasse-miettes, bien qu'efficace pour la gestion de la mémoire, scanne la mémoire active pendant l'exécution du programme pour identifier et libérer les portions inutilisées.
Ce processus, bien que sûr, introduit une surcharge de performance. Il est trop lent pour les exigences en temps réel du micrologiciel de modem. Rust emploie plutôt un mécanisme connu sous le nom de « borrow checker ».
Ce système applique des règles strictes de sécurité de la mémoire au moment de la compilation. Si le code viole ces règles, il ne compilera tout simplement pas. Cette approche rigoureuse prévient les erreurs de mémoire courantes, comme l'oubli de libérer la mémoire allouée, avant même que le logiciel ne s'exécute sur un appareil.
Cela garantit la sécurité dès le départ. Cependant, même un géant de la technologie comme Google ne peut pas simplement dicter une refonte complète de la manière dont le micrologiciel du modem est écrit. Nous parlons de dizaines de mégaoctets de code machine exécutable complexe.
Réécrire des décennies de travail de développement serait une tâche colossale. De plus, de nombreuses entreprises impliquées dans la conception de modems considèrent le fonctionnement interne de leurs modems comme des secrets commerciaux bien gardés, ce qui complique tout effort de réécriture collaborative. Pour protéger les modems Pixel des attaques zero-day, Google s'est concentré sur l'analyseur DNS.
À mesure que les fonctions cellulaires migrent de plus en plus vers les réseaux de données, le DNS est devenu un composant fondamental du fonctionnement des smartphones. Google a expliqué que le DNS nécessite l'analyse de données non fiables. Cela en fait une préoccupation majeure en matière de sécurité, un problème efficacement résolvable grâce aux garanties de sécurité de la mémoire de Rust.
Google a choisi la bibliothèque DNS Rust open-source hickory-proto pour cette intégration. Bien qu'elle ne soit pas spécifiquement optimisée pour la taille, elle bénéficie d'une large adoption et du soutien de la communauté. Les modems des téléphones Pixel ne sont pas des environnements contraints en mémoire, ce qui a permis à l'équipe d'ingénieurs d'intégrer ce composant Rust sans pénalités significatives de performance ou de taille.
L'équipe a soigneusement supprimé les dépendances de la bibliothèque standard, permettant au code de compiler dans un format de code machine compact pour un fonctionnement plus rapide. Ce composant Rust sur mesure a ensuite été greffé sur le code C/C++ existant du modem. Les ajouts Rust totalisaient 371 Ko.
Il agit comme une barrière protectrice. Les téléphones Pixel 10 sont les premiers à être livrés avec cette sécurité de modem améliorée. Votre téléphone, un appareil que vous tenez quotidiennement, contient des couches de code que vous ne voyez jamais.
La politique dit que nous avons des téléphones sécurisés. La réalité dit qu'il existe des vulnérabilités cachées. Ce changement comble l'une de ces lacunes.
Ce type de travail de sécurité invisible a un impact direct sur les familles qui dépendent de leurs smartphones pour tout, de la communication avec leurs proches au-delà des frontières à l'accès aux services essentiels. Un téléphone compromis n'est pas seulement un inconvénient ; il peut être une passerelle vers le vol d'identité, la fraude financière, ou pire. Sécuriser ces systèmes sous-jacents n'est pas abstrait ; cela protège la vie privée et la stabilité financière de personnes réelles.
Les deux parties, l'industrie et les consommateurs, revendiquent la victoire d'une meilleure sécurité. Voici les chiffres : 18 vulnérabilités sévères trouvées, et maintenant une voie critique est renforcée. Google espère que ce travail ouvrira la voie à d'autres plateformes pour mettre en œuvre des améliorations de sécurité similaires.
Cependant, l'entreprise note que la taille de sa bibliothèque Rust choisie pourrait présenter un défi pour les systèmes embarqués plus simples et plus contraints en mémoire. Les efforts futurs pourraient se concentrer sur la modularisation de la bibliothèque pour y remédier. Google considère cette intégration initiale comme une étape fondamentale.
Ils prévoient d'intégrer encore plus de composants à mémoire sûre dans la bande de base cellulaire au fil du temps. Points clés à retenir : - Google intègre du code Rust à mémoire sûre dans les modems Pixel 10 pour contrer les attaques à distance. - Le composant ciblé est l'analyseur DNS, un point d'entrée critique pour les acteurs malveillants. - Le « borrow checker » de Rust assure la sécurité de la mémoire au moment de la compilation sans la surcharge de performance du ramasse-miettes. - Cette initiative s'attaque à des décennies de vulnérabilités du code C/C++ hérité dans les modems cellulaires. Pourquoi c'est important : Cette initiative a un impact direct sur la sécurité des données personnelles et l'intégrité des appareils pour des millions d'utilisateurs de smartphones.
En fortifiant le modem, Google s'attaque à une vulnérabilité profondément enracinée qui pourrait permettre à des attaquants à distance de compromettre les appareils, protégeant tout, des applications bancaires aux communications privées. Cela établit une nouvelle norme sur la manière dont les fabricants peuvent aborder la sécurité dans les composants matériels complexes et hérités, rendant nos vies numériques plus sûres face aux menaces invisibles. À l'avenir, l'industrie surveillera de près les performances de l'intégration de Rust par Google dans des scénarios réels.
Nous devrions également surveiller l'adoption par d'autres fabricants de smartphones de stratégies similaires de langages à mémoire sûre, d'autant plus que Google explore la modularisation de ses bibliothèques Rust. Les futures générations de Pixel verront probablement une implémentation étendue de Rust au sein de leurs systèmes de bande de base, créant une base plus solide pour la sécurité mobile. L'évolution de la protection des appareils se poursuit, et les consommateurs bénéficient de chaque étape.
Points clés à retenir
— - Google intègre du code Rust à mémoire sûre dans les modems Pixel 10 pour contrer les attaques à distance.
— - Le composant ciblé est l'analyseur DNS, un point d'entrée critique pour les acteurs malveillants.
— - Le « borrow checker » de Rust assure la sécurité de la mémoire au moment de la compilation sans la surcharge de performance du ramasse-miettes.
— - Cette initiative s'attaque à des décennies de vulnérabilités du code C/C++ hérité dans les modems cellulaires.
Source : Ars Technica