L'Internet Security Research Group (ISRG), l'organisation mère du projet plus connu Let's Encrypt, a fourni à l'éminent développeur Miguel Ojeda un contrat d'un an pour travailler sur Rust sous Linux et d'autres efforts de sécurité à temps plein.Notons que Rust est un langage de programmation compilé multiparadigme, conçu par Graydon Hore alors employé chez Mozilla Research. Utilisé par plusieurs grandes entreprises et par de nombreux développeurs dans le monde, Rust est devenu le langage de base pour certaines des fonctionnalités fondamentales du navigateur Firefox et de son moteur Gecko, ainsi que pour le moteur Servo de Mozilla.
Avec Rust, il est possible de développer des pilotes de périphériques, des systèmes embarqués, des systèmes d'exploitation, des jeux, des applications web, et bien d'autres choses encore. Des centaines d'entreprises dans le monde entier utilisent Rust en production pour des solutions multiplateformes et économes en ressources. Des logiciels connus et appréciés, comme Firefox, Dropbox, et Cloudflare, utilisent ce langage. De la startup à la multinationale, du système embarqué au service web à haute disponibilité, Rust serait une excellente solution.
Selon Miguel Ojeda, développeur du noyau Linux, les avantages de l’introduction du langage Rust dans le noyau Linux l'emportent sur les coûts. Pour le développeur, en utilisant Rust dans le noyau Linux, le nouveau code écrit en Rust a un risque réduit de bogues de sécurité mémoire, grâce aux propriétés du langage Rust. Le langage Rust serait plébiscité pour sa sécurité.
Google a récemment déclaré que : « les défauts de sécurité de la mémoire menacent fréquemment la sécurité des appareils, en particulier pour les applications et les systèmes d'exploitation. Par exemple, sur le système d'exploitation mobile Android, Google dit avoir constaté que plus de la moitié des vulnérabilités de sécurité traitées en 2019 résultaient de bogues de sécurité de la mémoire. Et ce, malgré les efforts considérables déployés par l'entreprise et d'autres contributeurs au projet Open Source Android, pour investir ou inventer diverses technologies, notamment l'AddressSanitizer, des allocateurs de mémoire améliorés et de nombreux fuzzers et autres outils de vérification du code ».
Les efforts pour faire de Rust un langage viable pour le développement du noyau Linux ont commencé lors de la conférence Linux Plumbers 2020, l'idée venant de Linus Torvalds lui-même. Torvalds a spécifiquement demandé la disponibilité du compilateur Rust dans l'environnement de construction du noyau par défaut pour soutenir de tels efforts, non pas pour remplacer l'intégralité du code source du noyau Linux par des équivalents développés par Rust, mais pour permettre au nouveau développement de fonctionner correctement.
L'utilisation de Rust pour le nouveau code dans le noyau, ce qui peut signifier de nouveaux pilotes matériels ou même le remplacement de GNU Coreutils, réduit potentiellement le nombre de bogues cachés dans le noyau. Rust ne permettra tout simplement pas à un développeur de fuir de la mémoire ou de créer un potentiel de dépassement de mémoire tampon, des sources importantes de problèmes de performances et de sécurité dans un code complexe en langage C.
Google, l'ISRG et Ojeda
Le nouveau contrat de l'Internet Security Research Group donne à Ojeda un salaire à temps plein pour continuer le travail de sécurité de la mémoire qu'il effectuait déjà à temps partiel. Le directeur exécutif de l'ISRG, Josh Aas, note que le groupe a travaillé en étroite collaboration avec l'ingénieur Google Dan Lorenc et que le soutien financier de Google lui-même est essentiel pour parrainer le travail en cours d'Ojeda.
« Les gros efforts pour éliminer des classes entières de problèmes de sécurité sont les meilleurs investissements à grande échelle », a déclaré Lorenc, ajoutant que Google est « ravi d'aider l'ISRG à soutenir le travail de Miguel Ojeda dédié à...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.