Nytt ODGen-verktøy avdekker 180 Zero-Days i Node.js-biblioteker PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Nytt ODGen-verktøy avdekker 180 Zero-Days i Node.js-biblioteker

Forskere ved Johns Hopkins University avdekket nylig oppsiktsvekkende 180 nulldagers sårbarheter på tvers av tusenvis av Node.js-biblioteker ved å bruke et nytt kodeanalyseverktøy de utviklet spesielt for formålet, kalt ODGen.

Sytti av disse feilene har siden mottatt vanlige identifikatorer for sårbarheter og eksponeringer (CVE). De inkluderer kommandoinjeksjonsfeil, sårbarheter ved banegjennomgang, vilkårlig kodeutførelsesproblemer og skriptsårbarheter på tvers av nettsteder - noen av dem i mye brukte applikasjoner.

I en artikkel utgitt på Usenix Security Symposium tidligere denne måneden, beskrev Johns Hopkins-forskerne – Song Li, Mingqing Kang, Jianwei Hou og Yinzhi Cao – ODGen som et bedre alternativ til gjeldende kodeanalyse og såkalt grafsøk-basert tilnærminger for å finne Node.js-sårbarheter.

Programanalysebaserte tilnærminger har vist seg nyttige for å hjelpe med å oppdage individuelle sårbarhetstyper som kodeinjeksjonsfeil i JavaScript. Men de kan ikke enkelt utvides til å oppdage alle slags sårbarheter som kan være tilstede i Node.js-plattformen, sa forskerne. På samme måte fungerer grafbaserte kodeanalysemetoder - der kode først representeres som en graf og deretter spørres etter spesifikke kodefeil - godt i miljøer som C++ og PHP. Imidlertid er grafbaserte tilnærminger ikke like effektive i mining for JavaScript-sårbarheter på grunn av programmeringsspråkets omfattende bruk av dynamiske funksjoner, bemerket de.

En "ny" tilnærming for å finne JavaScript-sårbarheter

Så forskerne utviklet i stedet det de beskrev som en "ny" og bedre metode kalt Object Dependence Graph (ODG) som kan brukes til å oppdage Node.js-sårbarheter. De implementerte ODGen for å generere "ODG" for Node.js-programmer for å oppdage sårbarheter, sa de.

Cao, assisterende professor i informatikk ved Johns Hopkins University og medforfatter av forskningsrapporten, bruker et par analogier for å beskrive grafbasert kodeanalyse generelt og deres foreslåtte Objective Dependence Graph. "Hvis vi betrakter en sårbarhet som et spesielt mønster - for eksempel en grønn node forbundet med en rød node og deretter en svart node - konverterer et grafbasert kodeanalyseverktøy først programmer til en graf med mange noder og kanter," sier Cao . "Deretter ser verktøyet etter slike mønstre i grafen for å lokalisere en sårbarhet."

Objektavhengighetsgrafen som forskerne har foreslått avgrenser denne tilnærmingen ved å representere JavaScript-objekter som noder og legge til funksjoner – inkludert avhengigheter mellom objekter – som er spesifikke for programmeringsspråket, og deretter spørre etter feil. Cao beskriver hvordan metoden fungerer ved å bruke korn i en håndfull ris: Hvis alle kornene ser like ut før de koker, men antar to forskjellige nyanser etter koking - den ene representerer gode korn og den andre dårlige korn - så blir det lettere å oppdage og luke ut de dårlige kornene. "Abstrakt tolkning er litt som kokeprosessen som konverterer ris - det vil si programmer - til forskjellige fargede objekter", så feil er lettere å oppdage, sier Cao.

En rekke insekter

For å se om tilnærmingen deres fungerer, testet forskerne først ODGen mot et utvalg av 330 tidligere rapporterte sårbarheter i Node.js-pakker på node-pakkeadministratoren (npm). Testen viste at skanneren korrekt identifiserte 302 av de 330 sårbarhetene. Styrket av den relativt høye nøyaktighetsraten, kjørte forskerne ODGen mot rundt 300,000 2,964 Java-pakker i npm. Skanneren rapporterte totalt 264 1,000 potensielle sårbarheter på tvers av pakkene. Forskerne sjekket 180 av dem - alle med mer enn 122 nedlastinger per uke i gjennomsnitt - og kunne bekrefte 15 som legitime sårbarheter. XNUMX av dem var på applikasjonsnivå, XNUMX var i pakker som er importert av andre applikasjoner eller kode, og de resterende XNUMX var til stede i indirekte pakker.

Et flertall (80) av de bekreftede sårbarhetene som ODGen oppdaget var kommandoinjeksjonsflyter som lar angripere kjøre vilkårlig kode på operativsystemnivå via en sårbar applikasjon. Tretti var banegjennomløpsfeil; 24 aktiverte kodemanipulering, og 19 involverte en spesifikk type kommandoinjeksjonsangrep kalt prototypeforurensning.

Tidstempel:

Mer fra Mørk lesning