L’agence de recherche américaine DARPA a lancé un programme ambitieux visant à automatiser la traduction du code C hérité vers le langage de programmation Rust, intrinsèquement plus sûr, à l’aide de grands modèles de langage (LLM) et de l’IA générative.
Le programme Translating All C to Rust (TRACTOR) de la DARPA vise à identifier les LLM capables de créer la même qualité et le même style qu’un développeur Rust compétent, éliminant ainsi toute la catégorie des vulnérabilités en matière de sécurité de la mémoire dans les programmes C.
Les vulnérabilités liées à la sécurité de la mémoire sont le type le plus répandu de vulnérabilité logicielle divulguée et affectent la mémoire d’un ordinateur de deux manières principales. Premièrement, les langages de programmation comme le C permettent aux programmeurs de manipuler directement la mémoire, ce qui facilite l’introduction accidentelle d’erreurs dans leur programme qui permettraient à une opération apparemment routinière de corrompre l’état de la mémoire.
Deuxièmement, des problèmes de sécurité de la mémoire peuvent survenir lorsqu’un langage de programmation présente un comportement non défini. Cela se produit lorsque la norme du langage de programmation ne fournit aucune spécification ou orientation sur la manière dont le programme doit se comporter dans des conditions qui ne sont pas explicitement définies dans la norme.
Des projets tels que CHERI au Royaume-Uni ont développé une architecture matérielle pour les puces ARM, RISC-V et x86 afin de relever ce défi. Si les langages de programmation à mémoire sécurisée peuvent éliminer les vulnérabilités en matière de sécurité de la mémoire, le défi consiste à réécrire le code existant à une échelle correspondant à l’immensité du problème.
Un changement culturel en faveur du langage de programmation Rust et des percées récentes dans les techniques d’apprentissage automatique, comme les grands modèles de langage (LLM), ont créé un environnement qui pourrait se prêter à une nouvelle catégorie de solutions.
Vous pouvez aller sur n’importe quel site web LLM, commencer à chatter avec l’un des chatbots d’IA, et tout ce que vous avez à dire est « voici du code C, veuillez le traduire en code Rust idiomatique sûr », couper, coller, et quelque chose sort, et c’est souvent très bon, mais pas toujours », a déclaré Dan Wallach, directeur du programme DARPA pour TRACTOR. « Le défi de la recherche est d’améliorer considérablement la traduction automatique de C à Rust, en particulier pour les constructions de programme les plus pertinentes.
M. Wallach s’attend à ce que les propositions comprennent des combinaisons inédites d’analyse de logiciels, telles que l’analyse statique et dynamique, et de grands modèles de langage. Le programme organisera des concours publics tout au long de l’effort pour tester les capacités des solutions alimentées par le LLM.
« Rust oblige le programmeur à faire les choses correctement », a déclaré M. Wallach. « Il peut sembler contraignant de gérer toutes les règles qu’il impose, mais lorsque vous vous y acclimatez, les règles vous donnent de la liberté. Elles sont comme des garde-fous ; une fois que vous avez compris qu’elles sont là pour vous protéger, vous pouvez vous concentrer sur des choses plus importantes.
La DARPA organisera une journée des proposants le 26 août 2024, à laquelle les participants pourront assister en personne ou virtuellement. Les participants doivent s’inscrire avant le 19 août 2024. Des détails et des informations sur l’inscription sont disponibles sur SAM.Gov.