Le nouvel outil ODGen découvre 180 jours zéro dans les bibliothèques Node.js PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Le nouvel outil ODGen révèle 180 jours zéro dans les bibliothèques Node.js

Des chercheurs de l'Université Johns Hopkins ont récemment découvert 180 vulnérabilités zero-day surprenantes dans des milliers de bibliothèques Node.js à l'aide d'un nouvel outil d'analyse de code qu'ils ont développé spécifiquement à cet effet, appelé ODGen.

Soixante-dix de ces failles ont depuis reçu des identifiants de vulnérabilités et d'expositions communes (CVE). Ils incluent des failles d'injection de commandes, des vulnérabilités de traversée de chemin, des problèmes d'exécution de code arbitraire et des vulnérabilités de script intersite, dont certaines dans des applications largement utilisées.

Dans un article publié au Usenix Security Symposium plus tôt ce mois-ci, les chercheurs de Johns Hopkins - Song Li, Mingqing Kang, Jianwei Hou et Yinzhi Cao - ont décrit ODGen comme une meilleure alternative à l'analyse de code actuelle et aux soi-disant requêtes graphiques. approches pour trouver les vulnérabilités de Node.js.

Les approches basées sur l'analyse de programme se sont avérées utiles pour aider à détecter les types de vulnérabilités individuels tels que les failles d'injection de code dans JavaScript. Mais ils ne peuvent pas être facilement étendus pour détecter toutes sortes de vulnérabilités qui pourraient être présentes dans la plate-forme Node.js, ont déclaré les chercheurs. De même, les méthodes d'analyse de code basées sur des graphes - où le code est d'abord représenté sous forme de graphe, puis interrogé pour des erreurs de codage spécifiques - fonctionnent bien dans des environnements tels que C++ et PHP. Cependant, les approches basées sur les graphes ne sont pas aussi efficaces dans l'extraction des vulnérabilités JavaScript en raison de l'utilisation intensive des fonctionnalités dynamiques par le langage de programmation, ont-ils noté.

Une "nouvelle" approche pour trouver les vulnérabilités JavaScript

Ainsi, les chercheurs ont plutôt développé ce qu'ils ont décrit comme une "nouvelle" et meilleure méthode appelée Object Dependence Graph (ODG) qui peut être utilisé pour détecter les vulnérabilités de Node.js. Ils ont implémenté ODGen pour générer "ODG" pour les programmes Node.js afin de détecter les vulnérabilités, ont-ils déclaré.

Cao, professeur adjoint d'informatique à l'Université Johns Hopkins et co-auteur du rapport de recherche, utilise quelques analogies pour décrire l'analyse de code basée sur des graphes en général et leur proposition de graphique de dépendance objective. "Si nous considérons une vulnérabilité comme un modèle spécial - disons, un nœud vert connecté à un nœud rouge puis à un nœud noir - un outil d'analyse de code basé sur un graphique convertit d'abord les programmes en un graphique avec de nombreux nœuds et arêtes", explique Cao. . "Ensuite, l'outil recherche ces modèles dans le graphique pour localiser une vulnérabilité."

L'Object Dependence Graph que les chercheurs ont proposé affine cette approche en représentant les objets JavaScript sous forme de nœuds et en ajoutant des fonctionnalités - y compris des dépendances entre objets - spécifiques au langage de programmation, puis en recherchant les erreurs. Cao décrit comment la méthode fonctionne en utilisant des grains dans une poignée de riz : si tous les grains se ressemblent avant l'ébullition, mais supposent deux nuances différentes après l'ébullition - l'une représentant les bons grains et l'autre les mauvais grains - alors il devient plus facile de repérer et d'éliminer les mauvaises céréales. "L'interprétation abstraite est un peu comme le processus d'ébullition qui convertit le riz - c'est-à-dire les programmes - en objets de différentes couleurs", donc les erreurs sont plus faciles à repérer, dit Cao.

Une variété de bogues

Pour voir si leur approche fonctionne, les chercheurs ont d'abord testé ODGen par rapport à un échantillon de 330 vulnérabilités précédemment signalées dans les packages Node.js sur le référentiel du gestionnaire de packages de nœuds (npm). Le test a montré que le scanner a correctement identifié 302 des 330 vulnérabilités. Forts du taux de précision relativement élevé, les chercheurs ont exécuté ODGen sur quelque 300,000 2,964 packages Java dans npm. Le scanner a signalé un total de 264 1,000 vulnérabilités potentielles dans les packages. Les chercheurs ont vérifié 180 d'entre eux - tous avec plus de 122 15 téléchargements par semaine en moyenne - et ont pu confirmer que XNUMX étaient des vulnérabilités légitimes. Quarante-trois d'entre eux étaient au niveau de l'application, XNUMX étaient dans des packages importés par d'autres applications ou code, et les XNUMX restants étaient présents dans des packages indirects.

Une pluralité (80) des vulnérabilités confirmées détectées par ODGen étaient des flux d'injection de commandes qui permettent aux attaquants d'exécuter du code arbitraire au niveau du système d'exploitation via une application vulnérable. Trente étaient des défauts de traversée de chemin ; 24 ont activé la falsification de code et 19 ont impliqué un type spécifique d'attaque par injection de commande appelée pollution prototype.

Horodatage:

Plus de Lecture sombre