La Defense Advanced Research Projects Agency (DARPA) est une agence de recherche et de développement du ministère de la Défense des États-Unis chargée de développer des technologies émergentes à usage militaire.
La DARPA évoque la sécurité de la mémoire comme étant la principale raison du lancement du projet. Les bogues liés à la sécurité de la mémoire, tels que les débordements de mémoire tampon, représentent la majorité des vulnérabilités majeures dans les grandes bases de code. La DARPA espère que les modèles d'IA pourront contribuer à la traduction du langage de programmation, afin de rendre les logiciels plus sûrs.
La caractérisation de la situation par la DARPA suggère que le verdict sur C et C++ a déjà été rendu. « Après plus de vingt ans de lutte contre les problèmes de sécurité de la mémoire en C et C++, la communauté des ingénieurs logiciels est parvenue à un consensus », a déclaré l'agence de recherche, soulignant l'appel du Bureau du directeur national de la cybernétique à faire davantage pour rendre les logiciels plus sûrs. « S'appuyer sur des outils de recherche de bogues n'est pas suffisant.... »
Peter Morales, PDG de Code Metal, une entreprise qui vient de lever 16,5 millions de dollars pour se concentrer sur la transposition du code pour le matériel de pointe, a déclaré que le projet de la DARPA était prometteur et arrivait à point nommé. « Je pense que [TRACTOR] est très solide en termes de viabilité et qu'il aura un impact considérable dans le domaine de la cybersécurité, où la sécurité de la mémoire est déjà un sujet de conversation très important », a-t-il déclaré.
M. Morales a qualifié le projet de « problème difficile pour la DARPA », soulignant le nombre impressionnant de cas limites susceptibles de se présenter. Même le directeur du programme de la DARPA a admis que « certaines choses comme le noyau Linux sont explicitement hors du champ d'application, parce qu'il y a des problèmes techniques pour lesquels Rust ne conviendrait pas ».
La déclaration de la DARPA, ayant comme titre ambitieux : « Éliminer une fois pour toutes les vulnérabilités liées à la sécurité de la mémoire », est présentée ci-dessous :
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, les problèmes de sécurité de la mémoire peuvent survenir lorsqu'un langage de programmation présente un "comportement non défini". Les comportements non définis se produisent 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.
Après plus de vingt ans de lutte contre les problèmes de sécurité de la mémoire en C et C++, la communauté des ingénieurs logiciels est parvenue à un consensus. Il ne suffit pas de s'appuyer sur des outils de recherche de bogues. Même l'Office of the National Cyber Director a appelé à des approches plus proactives pour éliminer les vulnérabilités de la sécurité de la mémoire afin de réduire les attaques potentielles.
S'il n'est un secret pour personne que les langages de programmation à mémoire sécurisée peuvent éliminer les failles de sécurité de la mémoire, le défi consiste à réécrire le code existant à une échelle correspondant à l'immensité du problème. Le langage C a été créé dans les années 1970 et est devenu omniprésent. Il a été utilisé pour développer des applications qui fonctionnent sur tous les supports, des smartphones modernes aux véhicules spatiaux et au-delà. Le ministère de la Défense possède des systèmes durables qui dépendent de manière disproportionnée de langages de programmation tels que le C.
Cependant, ces dernières années, un changement culturel en faveur du langage de programmation Rust et des percées récentes dans les techniques d'apprentissage automatique, telles que les grands modèles de langage (LLM), ont créé un environnement qui pourrait se prêter à une nouvelle classe de solutions.
Le programme Translating All C to Rust (TRACTOR) de la DARPA veut saisir cette opportunité en automatisant considérablement la traduction du code C hérité en code Rust.
« Vous pouvez aller sur n'importe quel site web du LLM, commencer à chatter avec l'un des chatbots de l'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é le Dr Dan Wallach, directeur du programme TRACTOR de la DARPA. « 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. »
TRACTOR s'efforcera de créer la même qualité et le même style qu'un développeur Rust compétent produirait, éliminant ainsi toute la classe des vulnérabilités de sécurité de la mémoire dans les programmes C.
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 lorsqu'on s'y habitue, les règles nous 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.
Source : "Eliminating Memory Safety Vulnerabilities Once and For All" (DARPA)
Et vous ?
Quel est votre avis sur le sujet ?
Trouvez-vous cette initiative de la DARPA crédible ou pertinente ?
Voir aussi :
Et si l'IA produisait du code non seulement rapidement, mais aussi, en toute sécurité, se demande la DARPA ?
La DARPA obtient des résultats mitigés en recherchant les domaines que les ordinateurs quantiques pourraient réellement révolutionner, leurs avantages dans les domaines comme la finance ne sont pas clairs
La DARPA s'inquiète de la fiabilité du code open source, il fonctionne sur tous les ordinateurs de la planète et assure le fonctionnement des infrastructures critiques, selon Dave Aitel de la NSA