Connexion
Abonnez-vous

Traduire du code C en Rust « safe » ? Deux chercheurs l’ont fait

« Une pierre de plus à l’édifice »

Traduire du code C en Rust « safe » ? Deux chercheurs l’ont fait

rustacean.net

Le langage Rust a largement gagné en visibilité ces dernières années, au point qu’on le retrouve désormais aussi bien dans le noyau de Windows que celui de Linux. Reste une interrogation tenace : est-il possible de convertir l’ancien code C en Rust ? Le sujet occupe jusqu’à la DARPA américaine. Plus récemment, deux chercheurs ont fait une percée et nous avons parlé à l'un d'eux, Aymeric Fromherz.

Le 16 janvier à 16h04

Pourquoi le langage Rust est-il devenu si désirable ? Essentiellement parce qu’il arrive à marier des performances proches du C (sans toutefois l’égaler) et certaines caractéristiques que l’on rencontre surtout dans les langages managés, comme Java et C#. C’est notamment vrai avec tout ce qui touche à la sécurité en mémoire, dont le typage fort.

Si le sujet a pris tant d’ampleur, c’est notamment parce que certaines grandes entreprises courent après les bugs liés à la mémoire. En 2019, Microsoft avertissait ainsi que 70 % des failles de sécurité détectées dans Windows étaient liées à la sécurité de la mémoire. Ce taux est le même depuis presque 20 ans. L’éditeur évoquait alors pour la première fois son intérêt pour le Rust, que nous avions analysé.

Le score vous parait important ? Il est le même chez Google. « Environ 70 % de nos bugs de sécurité de haute sévérité sont des problèmes d'insécurité de la mémoire (c'est-à-dire des erreurs avec les pointeurs C/C++). La moitié d'entre eux sont des bugs de type "use-after-free" », écrivait ainsi l’éditeur dans un billet de 2020 sur la sécurité de Chromium (projet open source à la base de Chrome et dont la gouvernance vient d’évoluer légèrement). Google indiquait par la même occasion se pencher sur Rust comme possible solution lorsque la solution s’y prêtait, entre autres langages selon le contexte (Java, Kotlin, Swift, etc.).

Du code flambant neuf… et le reste ?

Le Rust s’invite depuis quelques années dans le développement bas niveau et système, permettant l’écriture de nouveaux modules normalement débarrassés de la plupart des problèmes liés à des bugs en mémoire. Par exemple, avec la version 24H2 de Windows 11, le noyau du système embarque pour la première fois du code écrit en Rust. Ce mouvement est nettement accentué par des recommandations officielles. C’est vrai en particulier aux États-Unis, comme à la NSA en 2022 ou à la Maison-Blanche en 2024.

Il reste 80% de l'article à découvrir.

Déjà abonné ? Se connecter

Cadenas en colère - Contenu premium

Soutenez un journalisme indépendant,
libre de ton, sans pub et sans reproche.

Accédez en illimité aux articles

Profitez d'un média expert et unique

Intégrez la communauté et prenez part aux débats

Partagez des articles premium à vos contacts

Abonnez-vous

Commentaires (2)

votre avatar
Le code d'origine en C était formellement vérifié. Pour que le code Rust traduit le soit aussi, là il faudra formellement vérifier le runtime Rust. C'est le cas ?
votre avatar
L'entreprise Ferrous Systems a déjà fait valider un ensemble pour les systèmes critiques : https://ferrocene.dev/en/

Traduire du code C en Rust « safe » ? Deux chercheurs l’ont fait

  • Du code flambant neuf… et le reste ?

  • Conserver la vérification formelle

Fermer