Firefox va renforcer sa sécurité à coups de Rust
Publié par David Feugey le | Mis à jour le
Rust, le langage de programmation de nouvelle génération de Mozilla, arrive dans Firefox. À la clé, une meilleure sécurité.
Firefox 48 proposera le premier composant écrit avec le langage de programmation Rust. Il se chargera de gérer les documents multimédias affichés par la version desktop du navigateur web.
Rappelons que Rust se veut une alternative au classique C++, capable de faciliter la mise en place de code exploitant tous les coeurs d'un processeur, et en mesure d'améliorer la sécurité des applications, via des techniques empêchant les dépassements de tampon et autres erreurs liées à la gestion de la mémoire vive.
1,1 milliard de vidéos déjà lues avec succès
« Chaque fois qu'un navigateur web joue une vidéo apparemment inoffensive, il lit des données livrées dans un format complexe et créé par quelqu'un que vous ne connaissez pas. Et il se trouve que ces formats de médias sont connus pour avoir été utilisés pour tromper les décodeurs en exposant des failles de sécurité qui exploitent les bugs de gestion de la mémoire présents dans les navigateurs web », explique Dave Herman, chercheur principal et directeur de la stratégie au sein de Mozilla Research.
Avec Rust, ces problèmes potentiels s'envolent, sans qu'il soit nécessaire d'utiliser des techniques comme l'ajout d'un bac à sable à l'application. Dave Herman note que le code Rust propose des résultats identiques à ceux obtenus en C++. Les données de télémétrie de la version de test de Firefox 48 montrent que sur plus d'un milliard de lectures de vidéos en MP4, toutes ont été décodées avec succès par ce nouveau composant.
Il est donc déclaré bon pour le service et sera présent dans la mouture définitive de Firefox 48, dont la sortie est programmée pour le 2 août 2016.
Rust 1.10 livré aux développeurs
Sur le front du langage de programmation Rust, une nouvelle version vient d'être présentée, la 1.10. Avec 1276 correctifs intégrés, pour plus de stabilité et de performances.
Quelques nouveautés sont également de la partie. Une option permet de stopper l'application lorsqu'un évènement panic! est rencontré. « Rappelez-vous que panic! est réservé aux problèmes inattendus, rappellent les développeurs. Pour de nombreuses applications, avorter est alors un choix raisonnable. Avec un abandon, moins de code est généré, ce qui signifie que le binaire est plus petit et le temps de compilation plus court. » Le poids du code généré et le temps de compilation sont tous deux réduits d'environ 10 % grâce à cette option.
Autre avancée, le type cdylib, un format de librairie qui permettra de faciliter la création de code Rust destiné à être utilisé par un autre langage de programmation. Un élément qui favorisera la réécriture de pans de code C++ en Rust et qui devrait donc rendre de grands services aux développeurs de Firefox.
Rappelons que Rust 1.0 avait été présenté mi-mai 2015. Voir à ce propos notre précédent article « Rust 1.0 : le langage de programmation des projets critiques ».
À lire aussi :
Firefox et Thunderbird de plus en plus mal supportés sous XP
Firefox Nightly gère les profils onglet par onglet
Le support multicoeur au menu de Firefox 48