Sécurité vs performance : est-il temps de reconsidérer les compromis ?
Microsoft pense que oui. En effet, le nouveau navigateur Edge du géant de Redmond est basé sur le projet Chromium de Google, qui lui-même repose sur le moteur JavaScript V8, également développé par Google. À son tour, le moteur V8 - qui est un moteur open source - embarque un compilateur JIT (just-in-time), un type de compilateur devenu très populaire sur le Web pour exécuter du code JavaScript plus rapidement. Le compilateur JIT, bien qu'inconnu de la plupart des utilisateurs finaux, joue un rôle crucial dans tous les navigateurs Web actuels. Il fonctionne en prenant JavaScript et en le compilant en code machine à l'avance.
Si le navigateur a besoin de ce code, il gagne en rapidité. S'il n'en a pas besoin, le code est supprimé. Cela dit, les fournisseurs de navigateurs s'accordent à dire que la prise en charge du compilateur JIT dans V8 est complexe. Johnathan Norman, responsable de la recherche sur les vulnérabilités de Microsoft Edge, a décrit la compilation JIT comme un "processus remarquablement complexe que très peu de personnes comprennent et dont la marge d'erreur est faible". Le cadre de Microsoft a souligné que la moitié des vulnérabilités du moteur V8 étaient liées à ce processus, ce qui est profitable aux acteurs malveillants du Web.
Sur la base des données CVE (Common Vulnerabilities and Exposures) collectées depuis 2019, environ 45 % des vulnérabilités trouvées dans le moteur JavaScript et WebAssembly V8 étaient liées au compilateur JIT, soit plus de la moitié de tous les exploits Chrome "à l'état brut" abusant des bogues du compilateur JIT. Norman a déclaré que des tests récents effectués par l'équipe Edge ont montré que malgré son rôle central dans l'accélération des navigateurs au début et au milieu des années 2010, le compilateur JIT n'est plus une fonctionnalité cruciale pour les performances d'Edge. Il est donc temps de revoir son importance et réduire les risques liés à son utilisation.
Encouragé par ces résultats, Norman a déclaré que l'équipe Edge travaille actuellement sur ce que l'équipe VR appelle le "Super Duper Secure Mode", une configuration Edge dans laquelle elle désactive le compilateur JIT et active trois autres fonctions de sécurité, dont la technologie CET (Controlflow-Enforcement Technology) d'Intel et le système ACG (Arbitrary Code Guard) de Windows - deux fonctions qui entreraient normalement en conflit avec l'implémentation JIT de V8. Comme l'a expliqué Norman, le Super Duper Secure Mode est actuellement classé comme une expérience, et il n'est pas prévu de le livrer aux utilisateurs pour le moment.
Apporter plus de sécurité avec le Super Duper Secure Mode (SDSM)
L'essai a été révélé mercredi dans un billet de blogue par Norman. Il a déclaré que la désactivation du compilateur JIT pourrait immédiatement supprimer la moitié des bogues de sécurité liés au moteur V8. La troisième fonctionnalité que ce processus a permis d'activer est le système CFG (Control Flow Guard) de Winodws. Selon lui, ces systèmes étaient incompatibles avec le compilateur JIT, mais pouvaient aider à se protéger contre toute une série de menaces. Les résultats de leur expérience, exposés dans son billet de blogue, semblant prouver de manière écrasante son hypothèse.
« En désactivant le compilateur JIT, nous pouvons activer des atténuations et rendre plus difficile l'exploitation des bogues de sécurité dans n'importe quel composant du processus de rendu », a-t-il écrit. Cette réduction de la surface d'attaque tue la moitié des bogues que nous voyons dans les exploits et chaque bogue restant devient plus difficile à exploiter. Pour le dire autrement, nous réduisons les coûts pour les utilisateurs, mais augmentons les coûts pour les attaquants », a-t-il ajouté. Selon Norman, les utilisateurs ne verraient aucun effet en matière d'expérience de navigation.
Toutefois, les tests de Microsoft ont révélé que les versions d'Edge sans le compilateur JIT présentaient une réduction de 16,9 % du temps de chargement des pages et de 2,3 % en matière d'utilisation de la mémoire. Norman a fait remarquer que l'expérience n'était que provisoire et que le Super Duper Secure Mode (SDSM) ne ferait pas partie de la version officielle de Microsoft Edge de sitôt. Toutefois, le SDSM peut être activé par les utilisateurs des versions préliminaires de Microsoft Edge (notamment Beta, Dev et Canary) en se rendant sur edge://flags/#edge-enable-super-duper-secure-mode et en activant la nouvelle fonctionnalité.
Cette nouvelle intervient peu de temps après que Microsoft Edge a révélé une série de nouvelles options de personnalisation pour les utilisateurs, dont la possibilité de modifier l'entrée par défaut concernant l'autorisation de la lecture automatique des médias dans le navigateur, ainsi que la possibilité de "désactiver" les alertes relatives à la santé du mot de passe pour un site Web particulier. Bien sûr, dans la communauté, l'on apprécie l'effort de Microsoft de réduire la surface d'attaque pour les utilisateurs finaux qui à priori n'ont rien demandé de tout le JavaScript qu'embarquent les pages Web aujourd'hui.
« Les sites Web ne nécessitent pas de JavaScript, ce qui en a vraiment besoin, ce sont les applications Web à page unique avec des anti-modèles comme le défilement infini. Vous obtenez deux choses en retour, un Web "super duper" rapide et un navigateur Web plus sûr. À titre d'exemple, Amazon supporte très bien l'utilisation sans JavaScript. Une autre expérience est Stackoverflow, des choses comme l'aperçu et la mise en évidence ne fonctionnent pas. La mise en évidence peut être ajoutée avec du code côté serveur, mais cela coûtera du temps CPU - et ce n'est pas votre temps CPU. C'est leur temps CPU ? », lit-on dans les commentaires.
« Il y a une petite fonction que j'apprécierais dans les moteurs HTML "copier le lien vers l'emplacement" au lieu d'utiliser JavaScript, mais il y a cette barre d'adresse hiérarchique utilisable en haut (que Google essaie de cacher) qui sert déjà à cela. Je ne suis pas contre JavaScript. Il n'est qu'un outil. Cependant, je pose la question de savoir si les bons sites Web en ont besoin. Hackernews utilise 134 lignes de JavaScript, ce qui n’est déjà presque rien. Pouvez-vous imaginer utiliser Hackernews sans JavaScript ? », a conclu l'intéressé.
Source : Microsoft
Et vous ?
Quel est votre avis sur le sujet ?
Que pensez-vous de l'initiative de l'équipe VR de Microsoft Edge ?
Pensez-vous que d'autres fournisseurs de navigateurs emboîteront les pas de Microsoft ?
Pensez-vous que la désactivation du compilateur JIT permettra à Microsoft d'attirer plus d'utilisateurs avertis ?
Selon vous, que représente cette nouvelle pour l'industrie de la publicité en ligne qui dépend en grande partie du JavaScript ?
Voir aussi
Microsoft annonce la fin de vie du navigateur Microsoft Edge Legacy pour le 13 avril 2021, le nouveau Microsoft Edge est construit avec Chromium de Google
Le nouveau Microsoft Edge a connu une croissance de plus de 1300 % sur les douze derniers mois, dépassant Firefox qui perd lentement sa part de marché
Le nouveau navigateur de Microsoft Edge fait 100% au test d'accessibilité HTML5. Il est suivi de près par Safari qui réussit un honorable 98%
Microsoft Edge développe une nouvelle approche de notification appelée « demandes de notification adaptatives » afin de maximiser la valeur des notifications et minimiser leur gêne
Google Chrome et Microsoft Edge prendront en charge la fonction de sécurité CET d'Intel pour maintenir la sécurité et prévenir des vulnérabilités