mardi 12 juillet 2016
Rust dans le prochain Firefox
Si vous lisez ce webzine, le nom « Rust » ne vous est pas inconnu. Nous vous avons parlé plusieurs fois de ce langage de programmation de nouvelle génération, notamment en liaison avec Servo, un moteur de navigateur expérimental écrit en Rust.
Aujourd’hui, Dave Herman de Mozilla annonce dans Mozilla Hacks, qu’à partir de Firefox 48 (diffusé à tous début août), Rust serait livré avec Firefox d’abord dans les ordinateurs (toutes plateformes) et bientôt pour Android.
Il ne s’agit pas de propulser Firefox avec Servo que d’aucuns appellent de leurs vœux pour changer la donne. Mais…
L’un des premiers groupes chez Mozilla à faire usage de Rust est l’équipe Media Playback. À l’heure actuelle, il saute aux yeux que les médias sont au cœur de l’utilisation moderne du Web. Ce qui peut être moins évident pour le non-paranoïaque est que chaque fois qu’un navigateur lit une vidéo apparemment inoffensive (par exemple, un caméléon éclatant des bulles), il s’agit de lire des données livrées dans un format complexe et créées par quelqu’un que vous ne connaissez pas et en qui vous n’avez pas confiance. Et il se trouve que les formats médias sont connus pour avoir été utilisés pour tromper les décodeurs en exposant de méchantes vulnérabilités de sécurité qui exploitent des bogues de gestion de la mémoire dans le code des navigateurs web concerné.
Ceci fait d’un langage de programmation sécurisant la mémoire comme Rust un ajout puissant à la boîte à outils de Mozilla pour la protection contre le contenu média potentiellement malveillant sur le Web. Pour cette raison, Ralph Giles et Matthew Gregan ont développé le premier analyseur de médias en Rust de Mozilla. Et je suis heureux d’annoncer que leur code sera le premier composant Rust embarqué dans Firefox. Pour la communauté Rust, ceci est aussi une véritable réussite : le code de Rust est livré à des centaines de millions d’utilisateurs de Firefox. Nos mesures préliminaires montrent que le composant Rust fonctionne magnifiquement et produit des résultats identiques au composant C++ d’origine qu’il remplace, mais maintenant mis en œuvre dans un langage de programmation sécurisant la mémoire.
Dave Herman, principal chercheur et directeur de la stratégie chez Mozilla Research, conclut que voir le code de Rust mis en production chez Mozilla peut apparaître comme l’aboutissement d’un long voyage, mais c’est juste le premier pas pour Mozilla. À suivre !
Rust a commencé en 2006 comme un projet secondaire à temps partiel de Graydon Hoare. Mozilla ne s’y est impliqué qu’en 2009, une fois que le langage a atteint une maturité suffisante pour effectuer des tests basiques et faire la démonstration de ses principes théoriques. Rust n’est pas utilisé que par Mozilla. Comme nous vous l’indiquions en avril, Rust est mis en œuvre à grande échelle dans les infrastructures de cloud de Dropbox qui l’a préféré à Go de Google pour sa plus faible consommation mémoire.
En savoir plus :
- Rust (langage) sur Wikipédia
- Frequently Asked Questions – The Rust Programming Language
- Robert O’Callahan appelle à tout réécrire en Rust (24 févr. 2016) MozillaZine-fr
Si vous cherchez Rust sur MozillaZine-fr, vous aurez aussi les résultats pour les actions anti-trust contre Microsoft, les rustines, la frustration et Marc Rust 🙂
Oups ! Un axe d’amélioration, comme on dit ?
C’est une excellente nouvelle. Non seulement ça supprime un angle d’attaque sur Firefox mais comme c’est un langage encore confidentiel sur un navigateur minoritaire (hélas !), il y a peu de chance que ça intéresse encore des agresseurs. Question de rapport taille de cible sur temps à y consacrer… Bref on devrait être plus en sécurité sur Firefox.