Nytt ODGen-verktyg avslöjar 180 nolldagar i Node.js-biblioteken PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Nytt ODGen-verktyg avslöjar 180 nolldagar i Node.js-bibliotek

Forskare vid Johns Hopkins University avslöjade nyligen häpnadsväckande 180 nolldagars sårbarheter i tusentals Node.js-bibliotek med hjälp av ett nytt kodanalysverktyg som de utvecklat specifikt för ändamålet, kallat ODGen.

Sjuttio av dessa brister har sedan dess fått gemensamma sårbarheter och exponeringsidentifierare (CVE). De inkluderar kommandoinjektionsbrister, sårbarheter för genomkörning av vägar, problem med exekvering av godtycklig kod och skriptsårbarheter på flera ställen – några av dem i allmänt använda applikationer.

I en artikel som släpptes vid Usenix Security Symposium tidigare denna månad beskrev Johns Hopkins-forskarna – Song Li, Mingqing Kang, Jianwei Hou och Yinzhi Cao – ODGen som ett bättre alternativ till nuvarande kodanalys och så kallad graffrågebaserad metoder för att hitta Node.js sårbarheter.

Programanalysbaserade tillvägagångssätt har visat sig vara användbara för att upptäcka individuella sårbarhetstyper som kodinjektionsfel i JavaScript. Men de kan inte enkelt utökas för att upptäcka alla typer av sårbarheter som kan finnas i Node.js-plattformen, sa forskarna. På liknande sätt fungerar grafbaserade kodanalysmetoder – där kod först representeras som en graf och sedan frågas efter specifika kodningsfel – bra i miljöer som C++ och PHP. Emellertid är grafbaserade tillvägagångssätt inte lika effektiva i mining av JavaScript-sårbarheter på grund av programmeringsspråkets omfattande användning av dynamiska funktioner, noterade de.

En "ny" metod för att hitta JavaScript-sårbarheter

Så forskarna utvecklade istället vad de beskrev som en "ny" och bättre metod som kallas Object Dependence Graph (ODG) som kan användas för att upptäcka Node.js-sårbarheter. De implementerade ODGen för att generera "ODG" för Node.js-program för att upptäcka sårbarheter, sa de.

Cao, biträdande professor i datavetenskap vid Johns Hopkins University och medförfattare till forskningsrapporten, använder ett par analogier för att beskriva grafbaserad kodanalys i allmänhet och deras föreslagna Objective Dependence Graph. "Om vi ​​betraktar en sårbarhet som ett speciellt mönster - säg en grön nod kopplad till en röd nod och sedan en svart nod - konverterar ett grafbaserat kodanalysverktyg först program till en graf med många noder och kanter," säger Cao . "Då letar verktyget efter sådana mönster i grafen för att lokalisera en sårbarhet."

Objektberoendegrafen som forskarna har föreslagit förfinar detta tillvägagångssätt genom att representera JavaScript-objekt som noder och lägga till funktioner – inklusive beroenden mellan objekt – som är specifika för programmeringsspråket, och sedan fråga efter fel. Cao beskriver hur metoden fungerar med korn i en näve ris: Om alla korn ser likadana ut innan de kokar men antar två olika nyanser efter kokning - den ena representerar bra korn och den andra dåliga kornen - då blir det lättare att upptäcka och sålla bort de dåliga kornen. "Abstrakt tolkning är ungefär som den kokande processen som omvandlar ris - det vill säga program - till objekt i olika färger" så fel är lättare att upptäcka, säger Cao.

En mängd buggar

För att se om deras tillvägagångssätt fungerar testade forskarna först ODGen mot ett urval av 330 tidigare rapporterade sårbarheter i Node.js-paket på nodpakethanteraren (npm). Testet visade att skannern korrekt identifierade 302 av de 330 sårbarheterna. Med stöd av den relativt höga noggrannheten körde forskarna ODGen mot cirka 300,000 2,964 Java-paket i npm. Skannern rapporterade totalt 264 1,000 potentiella sårbarheter i paketen. Forskarna kontrollerade 180 av dem - alla med mer än 122 15 nedladdningar per vecka i genomsnitt - och kunde bekräfta XNUMX som legitima sårbarheter. Fyrtiotre av dem var på applikationsnivå, XNUMX var i paket som importeras av andra applikationer eller kod, och de återstående XNUMX fanns i indirekta paket.

Ett flertal (80) av de bekräftade sårbarheterna som ODGen upptäckte var kommandoinjektionsflöden som tillåter angripare att exekvera godtycklig kod på operativsystemnivå via en sårbar applikation. Trettio var vägkorsande brister; 24 aktiverade kodmanipulering och 19 involverade en specifik typ av kommandoinjektionsattack som kallas prototypförorening.

Tidsstämpel:

Mer från Mörk läsning