Il nuovo strumento ODGen scopre 180 zero-day nelle librerie Node.js PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Il nuovo strumento ODGen porta alla luce 180 giorni zero nelle librerie di Node.js

I ricercatori della Johns Hopkins University hanno recentemente scoperto 180 sorprendenti vulnerabilità zero-day in migliaia di librerie Node.js utilizzando un nuovo strumento di analisi del codice sviluppato appositamente per lo scopo, chiamato ODgen.

Da allora, settanta di questi difetti hanno ricevuto identificatori di vulnerabilità ed esposizioni comuni (CVE). Includono difetti di iniezione dei comandi, vulnerabilità di attraversamento del percorso, problemi di esecuzione di codice arbitrario e vulnerabilità di scripting tra siti, alcuni dei quali in applicazioni ampiamente utilizzate.

In un articolo pubblicato all'Usenix Security Symposium all'inizio di questo mese, i ricercatori della Johns Hopkins - Song Li, Mingqing Kang, Jianwei Hou e Yinzhi Cao - hanno descritto ODgen come una migliore alternativa all'attuale analisi del codice e alla cosiddetta query basata su grafici approcci per trovare le vulnerabilità di Node.js.

Gli approcci basati sull'analisi del programma si sono rivelati utili nell'aiutare a rilevare i singoli tipi di vulnerabilità come i difetti di iniezione di codice in JavaScript. Ma non possono essere facilmente estesi per rilevare tutti i tipi di vulnerabilità che potrebbero essere presenti nella piattaforma Node.js, hanno affermato i ricercatori. Allo stesso modo, i metodi di analisi del codice basati su grafici, in cui il codice viene prima rappresentato come un grafico e quindi sottoposto a query per errori di codifica specifici, funzionano bene in ambienti come C++ e PHP. Tuttavia, gli approcci basati su grafici non sono così efficienti nell'estrazione delle vulnerabilità JavaScript a causa dell'ampio uso di funzionalità dinamiche da parte del linguaggio di programmazione, hanno osservato.

Un approccio "romanzo" per trovare le vulnerabilità di JavaScript

Quindi, i ricercatori hanno invece sviluppato quello che hanno descritto come un "nuovo" e metodo migliore chiamato Object Dependence Graph (ODG) che può essere utilizzato per rilevare le vulnerabilità di Node.js. Hanno implementato ODGen per generare "ODG" per i programmi Node.js per rilevare le vulnerabilità, hanno affermato.

Cao, assistente professore di informatica alla Johns Hopkins University e coautore del rapporto di ricerca, usa un paio di analogie per descrivere l'analisi del codice basata su grafici in generale e il loro grafico di dipendenza oggettiva proposto. "Se consideriamo una vulnerabilità come un modello speciale, ad esempio un nodo verde collegato a un nodo rosso e poi a un nodo nero, uno strumento di analisi del codice basato su grafici converte prima i programmi in un grafico con molti nodi e bordi", afferma Cao . "Quindi lo strumento cerca tali modelli nel grafico per individuare una vulnerabilità".

L'Object Dependence Graph proposto dai ricercatori perfeziona questo approccio rappresentando oggetti JavaScript come nodi e aggiungendo funzionalità, comprese le dipendenze tra oggetti, che sono specifiche del linguaggio di programmazione e quindi interrogando gli errori. Cao descrive come funziona il metodo usando i chicchi in una manciata di riso: se tutti i chicchi hanno lo stesso aspetto prima dell'ebollizione ma assumono due diverse sfumature dopo l'ebollizione, una che rappresenta i chicchi buoni e l'altra i chicchi cattivi, allora diventa più facile individuare ed estirpare i grani cattivi. "L'interpretazione astratta è un po' come il processo di bollitura che converte il riso, cioè i programmi, in oggetti di diversi colori", quindi gli errori sono più facili da individuare, afferma Cao.

Una varietà di bug

Per vedere se il loro approccio funziona, i ricercatori hanno prima testato ODgen rispetto a un campione di 330 vulnerabilità segnalate in precedenza nei pacchetti Node.js nel repository di node package manager (npm). Il test ha mostrato che lo scanner identificava correttamente 302 delle 330 vulnerabilità. Incoraggiati dal tasso di precisione relativamente alto, i ricercatori hanno eseguito ODgen su circa 300,000 pacchetti Java in npm. Lo scanner ha segnalato un totale di 2,964 potenziali vulnerabilità nei pacchetti. I ricercatori ne hanno verificati 264, tutti con una media di oltre 1,000 download a settimana, e sono stati in grado di confermare che 180 fossero vulnerabilità legittime. Quarantatré erano a livello di applicazione, 122 erano in pacchetti importati da altre applicazioni o codice e i restanti 15 erano presenti in pacchetti indiretti.

Una pluralità (80) delle vulnerabilità confermate rilevate da ODgen erano flussi di iniezione di comandi che consentono agli aggressori di eseguire codice arbitrario a livello di sistema operativo tramite un'applicazione vulnerabile. Trenta erano difetti di attraversamento del percorso; 24 hanno abilitato la manomissione del codice e 19 hanno comportato un tipo specifico di attacco di iniezione di comandi chiamato inquinamento da prototipo.

Timestamp:

Di più da Lettura oscura