Google a annoncé mardi que sa version open source du système d’exploitation Android ajouterait la prise en charge du langage de programmation Rust dans le but d’éviter les bogues de sécurité de la mémoire.
À cette fin, la société a construit des parties du projet Android Open Source (AOSP) avec Rust au cours des 18 derniers mois, avec des plans en cours pour étendre cette initiative pour couvrir plus d’aspects du système d’exploitation.
« Les langages gérés comme Java et Kotlin sont la meilleure option pour le développement d’applications Android, » Google m’a dit. « Le système d’exploitation Android utilise largement Java, protégeant efficacement de grandes parties de la plate-forme Android contre les bogues de mémoire. Malheureusement, pour les couches inférieures du système d’exploitation, Java et Kotlin ne sont pas une option. »
Déclarant que le code écrit en langages C et C ++ nécessite une isolation robuste lors de l’analyse d’une entrée non fiable, Google a déclaré que la technique consistant à contenir ce code dans un sandbox étroitement contraint et non privilégié peut être coûteuse, entraînant des problèmes de latence et une utilisation supplémentaire de la mémoire.
Avec des bogues de sécurité de la mémoire en C et C ++ constituant environ 70% des vulnérabilités de sécurité de haute gravité d’Android, l’idée est de passer à un langage sûr en mémoire comme Rust et de les empêcher de se produire en premier lieu.
« Rust fournit des garanties de sécurité de la mémoire en utilisant une combinaison de vérifications au moment de la compilation pour appliquer la durée de vie / propriété des objets et les vérifications d’exécution pour s’assurer que les accès à la mémoire sont valides », a noté Google.
Malgré les avantages évidents, Google n’a pas l’intention de réécrire tout son code C et C ++ existant dans le système d’exploitation sous-jacent, mais plutôt de concentrer ses efforts de langage de sauvegarde de la mémoire sur du code nouveau ou récemment modifié qui présente une probabilité plus élevée de bogues de mémoire.
Certains des efforts en cours de Google avec Rust incluent une réécriture complète de la pile Bluetooth d’Android, surnommée Gabeldorsche, qu’il a commencé à tester à partir d’Android 11 l’année dernière. Également dans les travaux est un à base de rouille pile réseau pour son open-source Fuchsia système opérateur.