Accélérer la Transition vers des Langages de Programmation Sécurisés
Introduction à TRACTOR
Pour favoriser l’adoption de langages de programmation garantissant la sécurité de la mémoire, l’Agence des projets de recherche avancée de défense des États-Unis (DARPA) lance le projet TRACTOR, un outil de conversion de code programmatique. Ce projet, dont le nom signifie « TRanslating All C TO Rust », vise à développer des outils d’apprentissage automatique capables d’automatiser la transformation de code C hérité en Rust.
L’Importance de la Sécurité de la Mémoire
La motivation derrière cette initiative est la sécurité de la mémoire. Les erreurs liées à la mémoire, telles que les débordements de tampon, représentent une part significative des vulnérabilités majeures dans les grandes bases de code. DARPA espère que les modèles d’intelligence artificielle pourront faciliter cette traduction de langages, rendant ainsi les logiciels plus sûrs.
Les Défis de la Traduction Automatisée
Dan Wallach, responsable du programme TRACTOR chez DARPA, a déclaré : « Il suffit d’aller sur n’importe quel site d’IA, de discuter avec un chatbot et de dire ‘voici un code C, traduisez-le en Rust idiomatique et sécurisé’, et souvent, le résultat est bon, mais pas toujours. » Le défi de recherche consiste à améliorer considérablement la traduction automatisée de C vers Rust, en se concentrant sur les constructions de programme les plus pertinentes.
Réactions du Secteur Technologique
Ces dernières années, des géants de la technologie comme Google et Microsoft ont mis en lumière les problèmes causés par les erreurs de sécurité de la mémoire, tout en promouvant l’utilisation de langages qui ne nécessitent pas de gestion manuelle de la mémoire, tels que Rust, C#, Go, Java, Python et Swift. Le secteur public, qui gère une grande quantité de code hérité, a également été influencé par ces messages, incitant la Maison Blanche et l’Agence de cybersécurité et de sécurité des infrastructures (CISA) à encourager l’adoption de ces langages.
Consensus dans la Communauté de Développement
La communauté des ingénieurs logiciels semble s’accorder sur le fait que s’appuyer uniquement sur des outils de détection de bogues n’est pas suffisant. DARPA a souligné que, après plus de vingt ans de lutte contre les problèmes de sécurité de la mémoire dans C et C++, un consensus a été atteint sur la nécessité d’une approche plus proactive. « S’appuyer sur des outils de détection de bogues ne suffit pas », a déclaré l’agence.
Les Avantages de Rust
Rust, qui a connu sa première version stable en 2015, offre une sécurité de la mémoire intégrée tout en étant adapté à la programmation système à faible niveau et sensible à la performance. Cette combinaison de caractéristiques a conduit à des initiatives telles que Prossimo, un effort de réécriture de bibliothèques critiques en Rust pour réduire les risques de sécurité.
Josh Aas, directeur exécutif du projet Prossimo, a déclaré : « La grande quantité de code C dans l’infrastructure Internet actuelle rend l’utilisation d’outils de traduction attrayante. » Il a ajouté que bien que les outils actuels nécessitent encore un travail manuel considérable pour garantir des résultats corrects et idiomatiques, des investissements supplémentaires pourraient améliorer leur efficacité.
Perspectives d’Avenir
Peter Morales, PDG de Code Metal, a récemment levé 16,5 millions de dollars pour se concentrer sur la transpilation de code pour le matériel de périphérie. Il a exprimé son optimisme quant au projet TRACTOR, le qualifiant de prometteur et bien chronométré. Morales a également noté que, bien que tous les langages aient leurs compromis, il est logique de déplacer une partie du code vers Rust, en particulier au niveau du noyau.
Les Défis Techniques à Surmonter
Concernant la conversion automatique de code, Morales a reconnu que c’est un « problème difficile ». Les nombreux cas particuliers qui surgissent lors de la formulation de règles pour convertir des instructions entre différents langages sont intimidants. Wallach a précisé que l’objectif est d’atteindre un haut niveau d’automatisation, ce qui nécessitera de surmonter des défis techniques complexes.
Conclusion
DARPA prévoit d’organiser un événement pour ceux qui souhaitent soumettre des propositions pour le projet TRACTOR le 26 août 2024, accessible en personne ou à distance. Les participants doivent s’inscrire avant le 19 août. Ce projet pourrait marquer un tournant dans la manière dont le code est géré et sécurisé dans le secteur technologique.