Informatique

Un projet vise à réduire les bugs dans le moteur JavaScript de Chrome


Un projet vise à réduire les bugs dans le moteur JavaScript de Chrome


Un nouveau projet vise à renforcer la sécurité de V8, une partie du navigateur Chrome dont la plupart des utilisateurs ne sont pas conscients, mais que les pirates considèrent de plus en plus comme une cible juteuse.


Le JavaScript fait tourner le web et Google a dû corriger cette année de multiples failles de type « zero-day » ou failles précédemment inconnues dans le moteur JavaScript V8 de Chrome. En avril, Google a admis qu’un bug très grave de V8 répertorié sous le nom de CVE-2021-21224 était exploité par des attaquants.


Chrome compte plus de deux milliards d’utilisateurs, alors quand des exploits de type « zero-day » frappent Chrome, c’est un gros problème. V8, un projet open source de Google, est un puissant moteur JavaScript pour Chrome qui a contribué à faire progresser le web et les applications web. V8 alimente également le moteur d’exécution côté serveur Node.js.


Aujourd’hui, Samuel Groß, membre de l’équipe de chercheurs en sécurité du Project Zero de Google, a détaillé une proposition de sandbox V8 pour aider à protéger sa mémoire des bugs les plus graves du moteur à l’aide d’une machine virtuelle et des technologies de sandboxing.

Une cible idéale


« Les bugs de V8 permettent généralement la construction d’exploits exceptionnellement puissants. En outre, il est peu probable que ces bugs puissent être atténués par des langages de sécurité de la mémoire ou par les futures fonctions de sécurité assistées par le matériel, tel que MTE ou CFI », explique M. Groß, faisant référence à des technologies de sécurité telles que Control-flow integrity (CFI) de Microsoft et Control-flow enforcement technologies (CET) d’Intel.


« Par conséquent, V8 est particulièrement attractif pour les attaquants. « 


Les commentaires de Groß suggèrent que même l’adoption d’un langage à sécurité mémoire comme Rust – que Google a adopté pour le nouveau code Android – ne résoudrait pas immédiatement les problèmes de sécurité rencontrés par V8, écrit en C++.


Il décrit également les objectifs de conception, mais, compte tenu de l’ampleur du projet, il souligne que ce projet de sandboxing n’en est qu’à ses débuts et qu’il y a de gros obstacles à surmonter. V8 est un projet open source dirigé par Google et, étant donné que V8 a été à l’origine de failles de sécurité dans Chrome, il est possible que la proposition puisse être adoptée par le projet.


Les bugs affectent la façon dont le logiciel de navigation interagit avec le matériel au-delà du système d’exploitation. Le projet vise à empêcher les futures failles dans V8 de corrompre la mémoire d’un ordinateur en dehors de V8. Cela permettrait à un attaquant d’exécuter un code malveillant.


L’une des considérations relatives aux protections de sécurité supplémentaires pour V8 est l’impact sur les performances matérielles. Groß estime que sa proposition entraînerait un surcoût d’environ « 1 % globalement sur les charges de travail réelles ».

Pas de solution miracle


Groß explique que le problème de V8 provient des compilateurs JIT qui peuvent être utilisés pour tromper une machine en émettant un code machine qui corrompt la mémoire au moment de l’exécution.


De nombreuses vulnérabilités V8 exploitées par des attaquants du monde réel sont en fait des « vulnérabilités de deuxième ordre » : la cause première est souvent un problème logique dans l’un des compilateurs JIT, qui peut ensuite être exploité pour générer un code machine vulnérable (par exemple, un code auquel il manque un contrôle de sécurité à l’exécution). Le code généré peut alors à son tour être exploité pour provoquer une corruption de la mémoire au moment de l’exécution. »


Il souligne également les lacunes des dernières technologies de sécurité, y compris les mesures d’atténuation basées sur le matériel, qui feront de V8 une cible attrayante pour les années à venir. Il s’agit notamment des points suivants

  • L’attaquant a un grand contrôle sur la corruption de mémoire primitive et peut souvent transformer ces bugs en exploits très fiables et rapides.
  • Les langages comportant des sécurités au niveau de la mémoire ne protègent pas de ces problèmes, car il s’agit de bugs logiques.


  • En raison des canaux secondaires du CPU et de la puissance des vulnérabilités V8, les prochaines fonctions de sécurité matérielle telles que le marquage de la mémoire seront probablement contournables la plupart du temps.


Bien qu’il ne s’avance pas sur l’adoption du projet de sandboxing V8, le chercheur semble optimiste quant à ses chances de remplir sa mission en obligeant un attaquant à enchaîner deux vulnérabilités distinctes afin d’exécuter le code de son choix.


« Avec cette sandbox, les attaquants sont supposés pouvoir corrompre la mémoire à l’intérieur de la cage de mémoire virtuelle de manière arbitraire et à partir de plusieurs threads, et auront désormais besoin d’une vulnérabilité supplémentaire pour corrompre la mémoire à l’extérieur de celle-ci, et donc pour exécuter du code arbitraire », écrit-il.


Source : « ZDNet.com »





Source link

Quelle est votre réaction ?

Excité
0
Heureux
0
J'adore
0
Pas certain
0
ridicule
0

Vous aimerez aussi

Laisser une réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Plus dans:Informatique