Google dit qu’Android fonctionne mieux lorsqu’il est couvert de Rust

  • Français


  • Google intègre du code écrit dans le langage de programmation Rust dans son système d’exploitation Android depuis 2019 et ses efforts ont porté leurs fruits sous la forme de moins de vulnérabilités.

    Les bogues de sécurité de la mémoire – comme la lecture et l’écriture hors limites ou l’utilisation après la libération – représentent plus de 65 % des vulnérabilités des bogues de gravité élevée ou critique dans Chrome et Android, et les chiffres sont similaires dans les logiciels d’autres fournisseurs. Ces failles dégradent la sécurité et augmentent le coût du développement logiciel lorsqu’elles ne sont pas détectées tôt.

    Mais après quatre ans au cours desquels Android a collecté des morceaux de Rust, ce chiffre a diminué.

    “De 2019 à 2022, le nombre annuel de vulnérabilités de sécurité de la mémoire est passé de 223 à 85”, a déclaré l’ingénieur en sécurité Android Jeffrey Vander Stoep dans un article de blog.

    Vander Stoep dit que le déclin coïncide avec les efforts pour s’éloigner des langages de programmation non sécurisés pour la mémoire, par lesquels il entend C/C++ – un langage qui ne garantit pas la sécurité de la mémoire mais peut le prendre en charge.

    À partir d’Android 12 l’année dernière, Rust est devenu un langage de plate-forme Android. Et maintenant, dans Android 13, explique Vander Stoep, la majorité du nouveau code ajouté à la version a été écrit dans un langage sécurisé pour la mémoire – Rust, Java ou Kotlin.

    Avec moins de code dangereux pour la mémoire entrant dans Android, les failles de sécurité de la mémoire sont passées de 76 % des vulnérabilités d’Android en 2019 à 35 % en 2022 – la première année pour laquelle les bogues de sécurité de la mémoire ne représentent pas la majorité des vulnérabilités.

    D’autres vulnérabilités sont restées stables au fil du temps, apparaissant à un rythme d’environ 20 par mois au cours des quatre dernières années. Étant donné que les failles de sécurité de la mémoire représentaient la plupart des problèmes critiques, les vulnérabilités qui ont fait surface se sont avérées moins graves.

    Google n’est pas la seule grande entreprise technologique à reconnaître les avantages du code sécurisé en mémoire. Meta a exprimé son appréciation de Rust. Il y a plusieurs mois, le CTO de Microsoft, Mark Russinovich, a déclaré que C/C++ ne devrait plus être utilisé pour démarrer de nouveaux projets et que Rust devrait être déployé là où un langage sans ramasse-miettes est requis.

    À l’époque, Bjarne Stroustrup, créateur de C++, a contesté les conseils de Russinovich en soulignant que la sécurité du type et de la mémoire peut être obtenue dans la norme ISO C++, renforcée par une analyse statique. Selon Stroustrup, aider C++ à évoluer est plus logique que de déprécier le langage et de laisser un code dangereux sans surveillance.

    Google, dit Vander Stoep, continue d’investir dans des outils pour écrire du code C/C++ plus sûr, pointant vers l’allocateur renforcé Scudo, HWASAN, GWP-ASAN et KFENCE sur les appareils Android. Et il dit que Google a augmenté son utilisation du fuzzing. Mais bien que de telles mesures aient contribué à la diminution des bogues de sécurité de la mémoire, il soutient que la majeure partie de la réduction de la vulnérabilité devrait être attribuée à la transition vers des langages sécurisés pour la mémoire.

    Dans Android 13, environ 21 % du nouveau code natif est écrit en Rust. Cela inclut environ 1,5 million de lignes de code Rust dans le projet Android Open Source (AOSP), composé de composants tels que Keystore2, la nouvelle pile ultra-large bande (UWB) et DNS-over-HTTP3 qui, les années précédentes, auraient été écrits en C++.

    Et jusqu’à présent, Rust a livré. “À ce jour, aucune vulnérabilité de sécurité de la mémoire n’a été découverte dans le code Rust d’Android”, a déclaré Vander Stoep, qui a sagement admis que ce ne sera probablement pas le cas pour toujours.

    “La combinaison de vitesse et de sécurité de la mémoire de Rust en fait un excellent choix pour un large éventail de projets”, a déclaré Rebecca Rumbul, directrice exécutive et PDG de la Rust Foundation, dans un e-mail à Le registre. “Il n’est pas surprenant de voir Rust être de plus en plus intégré aux projets et produits existants, et le récent blog de Google sur Rust in Android met vraiment en évidence ses avantages en matière de sécurité.”

    Rumbul a ajouté : “Ces avantages en matière de sécurité sont également reconnus par les décideurs politiques du monde entier, les gouvernements d’Europe et d’Amérique du Nord reconnaissant Rust comme une solution à certains des problèmes de sécurité rencontrés dans le passé.”

    La National Security Agency des États-Unis a récemment observé que si des langages comme C++ peuvent offrir une grande flexibilité, ils comptent sur le programmeur pour fournir les vérifications de référence mémoire nécessaires.

    “Les outils d’analyse logicielle peuvent détecter de nombreux cas de problèmes de gestion de la mémoire et les options d’environnement d’exploitation peuvent également fournir une certaine protection, mais les protections inhérentes offertes par les langages logiciels sécurisés pour la mémoire peuvent prévenir ou atténuer la plupart des problèmes de gestion de la mémoire”, a déclaré l’agence dans ses conseils. [PDF] publié le mois dernier. “La NSA recommande d’utiliser un langage sécurisé pour la mémoire lorsque cela est possible.” ®

    L'équipe de Comparaland

    L'équipe rédactionnnelle du site

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *