L'initiative de Google pour la sécurité de la mémoire : Comment un accident de CrowdStrike en 2024 souligne le besoin urgent d'un code plus sûr
Que s'est-il passé ?
Le parcours de Google vers l'amélioration de la sécurité mémoire a commencé il y a plus de vingt ans. Dans un article de blog récent intitulé "Plus sûr avec Google : Avancement de la sécurité mémoire," les développeurs principaux Alex Rebert, Chandler Carruth, Jen Engel et Andy Qin ont révélé les dernières mises à jour du cadre de sécurité de Google. L'entreprise s'est concentrée sur la réduction des vulnérabilités liées au code non sécurisé en mémoire, qui représente environ 70 % des vulnérabilités logicielles graves.
Pour lutter contre ce problème, Google adopte une approche en deux volets : d'abord, augmenter l'utilisation de langages sécurisés pour la mémoire (MSLs) comme Rust, Java et Python, et ensuite, intégrer la sécurité dans son code existant écrit dans des langages non sécurisés (MULs), en particulier le C et le C++. Ces efforts ont déjà donné des résultats significatifs, notamment sur Android, où les vulnérabilités liées à la mémoire sont passées de 220 en 2019 à seulement 36 d'ici la fin de 2024.
Points clés
-
Adoption des Langages Sécurisés pour la Mémoire : Google pousse à une adoption généralisée des MSLs comme Rust, qui réduisent considérablement le risque d'erreurs liées à la mémoire. Les caractéristiques de sécurité de Rust le rendent idéal pour des environnements à faible niveau où le C++ a historiquement dominé.
-
Renforcement du C++ : Reconnaissant que la transition loin du C++ prendra du temps, Google met en œuvre des mécanismes de sécurité comme la vérification des limites et introduit des outils comme "MiraclePtr" pour réduire les vulnérabilités dans les bases de code existantes.
-
Fuzzing et Détection de Bugs : L'utilisation par Google de fuzzers, de sanitizers et d'outils de fuzzing continu comme OSS-Fuzz a identifié plus de 8 800 vulnérabilités à travers 850 projets open-source, soulignant l'efficacité de ces techniques dans la prévention des bogues logiciels.
-
Leadership Mondial : En open-sourçant ses outils et en collaborant avec la communauté technologique, Google établit un précédent pour l'amélioration de la sécurité mémoire à l'échelle mondiale, avec un potentiel significatif pour réduire les risques de cybersécurité dans l'industrie.
Analyse Approfondie
Le tournant de Google vers des langages sécurisés pour la mémoire, en particulier Rust, est un mouvement bien calculé qui équilibre performance et sécurité. Dans des environnements hautes performances comme les systèmes embarqués ou les appareils Android, où le C++ a traditionnellement été utilisé, Rust offre une alternative avec des caractéristiques comme le "borrow checker", empêchant les bogues liés à la mémoire dès la source. Ce changement a déjà conduit à des réductions significatives des vulnérabilités sur des plateformes comme Android, montrant l'efficacité de la stratégie de Google.
Cependant, Google reconnaît que la transition complète loin des langages non sûrs pour la mémoire sera un processus long, compte tenu de la grande quantité de code C++ existant. En réponse, Google intègre des fonctionnalités de sécurité dans le code C++, réduisant les risques grâce à des techniques comme la vérification des limites. En s'attaquant à la fois au nouveau code et aux anciennes bases de code, l'approche de Google est complète, garantissant que les utilisateurs restent protégés pendant la transition vers des langages sécurisés pour la mémoire.
De plus, l'investissement de Google dans des stratégies avancées de détection et de mitigation des bogues, comme le fuzzing guidé par l'apprentissage machine et des solutions basées sur le matériel comme l'Extension de Tagging de Mémoire (MTE), souligne son engagement à détecter mais aussi à prévenir les vulnérabilités avant qu'elles ne surviennent.
Le Saviez-Vous ?
- Google a identifié plus de 8 800 vulnérabilités dans 850 projets open-source grâce à OSS-Fuzz, un outil de fuzzing continu qu'il a développé et partagé avec la communauté des développeurs.
- Les vulnérabilités liées à la sécurité de la mémoire représentent environ 75 % des exploits de type zero-day, ce qui rend l'accent de Google sur la sécurité mémoire vital pour sécuriser l'écosystème numérique.
- En 2024, les vulnérabilités liées à la sécurité de la mémoire sur Android avaient chuté de plus de 220 en 2019 à seulement 36, grâce à l'utilisation accrue par Google de langages sécurisés pour la mémoire comme Rust sur ses plateformes mobiles.
En conclusion, les mesures proactives de Google pour améliorer la sécurité mémoire représentent une étape audacieuse et nécessaire pour protéger les logiciels contre les attaques malveillantes. En intégrant des langages sécurisés pour la mémoire et en retrofitant la sécurité dans le code existant, Google ne sécurise pas seulement ses propres services, mais établit également un nouveau standard industriel pour la sécurité logicielle. Cette approche multifacette aura probablement des effets de grande portée, rendant le monde numérique plus sûr pour les développeurs comme pour les utilisateurs.