Nyt ODGen-værktøj afdækker 180 nul-dage i Node.js-biblioteker PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Nyt ODGen-værktøj afdækker 180 nul-dage i Node.js-biblioteker

Forskere ved Johns Hopkins University afslørede for nylig en forbløffende 180 nul-dages sårbarheder på tværs af tusindvis af Node.js-biblioteker ved hjælp af et nyt kodeanalyseværktøj, de udviklede specifikt til formålet, kaldet ODGen.

Halvfjerds af disse fejl har siden modtaget fælles sårbarheder og eksponeringer (CVE) identifikatorer. De omfatter kommandoindsprøjtningsfejl, stigennemløbssårbarheder, problemer med vilkårlig kodeudførelse og scripting-sårbarheder på tværs af websteder - nogle af dem i udbredte applikationer.

I et papir udgivet på Usenix Security Symposium tidligere på måneden beskrev Johns Hopkins-forskerne - Song Li, Mingqing Kang, Jianwei Hou og Yinzhi Cao - ODGen som et bedre alternativ til nuværende kodeanalyse og såkaldt grafforespørgsel-baseret metoder til at finde Node.js sårbarheder.

Programanalysebaserede tilgange har vist sig nyttige til at hjælpe med at opdage individuelle sårbarhedstyper såsom kodeinjektionsfejl i JavaScript. Men de kan ikke nemt udvides til at opdage alle slags sårbarheder, der kan være til stede i Node.js-platformen, sagde forskerne. På samme måde fungerer grafbaserede kodeanalysemetoder - hvor kode først repræsenteres som en graf og derefter forespørges efter specifikke kodningsfejl - godt i miljøer som C++ og PHP. Men grafbaserede tilgange er ikke så effektive i mining af JavaScript-sårbarheder på grund af programmeringssprogets omfattende brug af dynamiske funktioner, bemærkede de.

En 'ny' tilgang til at finde JavaScript-sårbarheder

Så forskerne udviklede i stedet det, de beskrev som en "ny" og bedre metode kaldet Object Dependence Graph (ODG) der kan bruges til at opdage Node.js-sårbarheder. De implementerede ODGen for at generere "ODG" til Node.js-programmer for at opdage sårbarheder, sagde de.

Cao, assisterende professor i datalogi ved Johns Hopkins University og en medforfatter af forskningsrapporten, bruger et par analogier til at beskrive grafbaseret kodeanalyse generelt og deres foreslåede Objective Dependence Graph. "Hvis vi betragter en sårbarhed som et særligt mønster - f.eks. en grøn knude forbundet med en rød knude og derefter en sort knude - konverterer et grafbaseret kodeanalyseværktøj først programmer til en graf med mange knudepunkter og kanter," siger Cao . "Så leder værktøjet efter sådanne mønstre i grafen for at lokalisere en sårbarhed."

Objektafhængighedsgrafen, som forskerne har foreslået, forfiner denne tilgang ved at repræsentere JavaScript-objekter som noder og tilføje funktioner - herunder afhængigheder mellem objekter - der er specifikke for programmeringssproget, og derefter søge efter fejl. Cao beskriver, hvordan metoden fungerer ved at bruge korn i en håndfuld ris: Hvis alle kornene ser ens ud før kogning, men antager to forskellige nuancer efter kogning - den ene repræsenterer gode korn og den anden dårlige korn - så bliver det lettere at få øje på og luge ud de dårlige korn. "Abstrakt fortolkning er lidt ligesom kogeprocessen, der konverterer ris - det vil sige programmer - til forskellige farvede objekter", så fejl er lettere at få øje på, siger Cao.

En række fejl

For at se, om deres tilgang virker, testede forskerne først ODGen mod en prøve på 330 tidligere rapporterede sårbarheder i Node.js-pakker på node package manager (npm) repository. Testen viste, at scanneren identificerede 302 af de 330 sårbarheder korrekt. Bæret af den relativt høje nøjagtighedshastighed kørte forskerne ODGen mod omkring 300,000 Java-pakker i npm. Scanneren rapporterede i alt 2,964 potentielle sårbarheder på tværs af pakkerne. Forskerne tjekkede 264 af dem - alle med mere end 1,000 downloads om ugen i gennemsnit - og var i stand til at bekræfte 180 som værende legitime sårbarheder. 122 af dem var på applikationsniveau, 15 var i pakker, der er importeret af andre applikationer eller kode, og de resterende XNUMX var til stede i indirekte pakker.

En flerhed (80) af de bekræftede sårbarheder, som ODGen opdagede, var kommandoinjektionsstrømme, der tillader angribere at udføre vilkårlig kode på operativsystemniveau via en sårbar applikation. Tredive var stigennemløbsfejl; 24 aktiverede kodemanipulation, og 19 involverede en specifik type kommandoinjektionsangreb kaldet prototypeforurening.

Tidsstempel:

Mere fra Mørk læsning