Nieuwe ODGen-tool onthult 180 zero-days in Node.js-bibliotheken PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Nieuwe ODGen-tool onthult 180 nuldagen in Node.js-bibliotheken

Onderzoekers van de Johns Hopkins University hebben onlangs een verbazingwekkende 180 zero-day-kwetsbaarheden ontdekt in duizenden Node.js-bibliotheken met behulp van een nieuwe code-analysetool die ze speciaal voor dit doel hebben ontwikkeld, genaamd ODGen.

Zeventig van die fouten hebben sindsdien veelvoorkomende kwetsbaarheden en blootstellingen (CVE) identifiers gekregen. Ze omvatten fouten in opdrachtinjectie, kwetsbaarheden voor padtraversal, problemen met het uitvoeren van willekeurige code en kwetsbaarheden voor scripting tussen sites, waarvan sommige in veelgebruikte toepassingen.

In een paper dat eerder deze maand op het Usenix Security Symposium werd uitgebracht, beschreven de Johns Hopkins-onderzoekers - Song Li, Mingqing Kang, Jianwei Hou en Yinzhi Cao - ODGen als een beter alternatief voor de huidige code-analyse en zogenaamde op grafieken gebaseerde query's. benaderingen voor het vinden van Node.js-kwetsbaarheden.

Op programma-analyse gebaseerde benaderingen zijn nuttig gebleken bij het detecteren van individuele kwetsbaarheden, zoals fouten in code-injectie in JavaScript. Maar ze kunnen niet eenvoudig worden uitgebreid om alle soorten kwetsbaarheden te detecteren die aanwezig kunnen zijn in het Node.js-platform, aldus de onderzoekers. Evenzo werken op grafieken gebaseerde methoden voor code-analyse - waarbij code eerst wordt weergegeven als een grafiek en vervolgens wordt gevraagd naar specifieke codeerfouten - goed in omgevingen zoals C++ en PHP. Op grafieken gebaseerde benaderingen zijn echter niet zo efficiënt in het zoeken naar JavaScript-kwetsbaarheden vanwege het uitgebreide gebruik van dynamische functies in de programmeertaal, merkten ze op.

Een 'nieuwe' benadering voor het vinden van JavaScript-kwetsbaarheden

Dus ontwikkelden de onderzoekers in plaats daarvan wat ze beschreven als: een "nieuwe" en betere methode genaamd Object Dependence Graph (ODG) die kunnen worden gebruikt voor het detecteren van Node.js-kwetsbaarheden. Ze implementeerden ODGen om "ODG" te genereren voor Node.js-programma's om kwetsbaarheden te detecteren, zeiden ze.

Cao, assistent-professor computerwetenschappen aan de Johns Hopkins University en co-auteur van het onderzoeksrapport, gebruikt een aantal analogieën om op grafieken gebaseerde code-analyse in het algemeen en hun voorgestelde Objective Dependence Graph te beschrijven. "Als we een kwetsbaarheid beschouwen als een speciaal patroon, bijvoorbeeld een groen knooppunt verbonden met een rood knooppunt en vervolgens een zwart knooppunt, converteert een op grafieken gebaseerde code-analysetool eerst programma's naar een grafiek met veel knooppunten en randen", zegt Cao . “Vervolgens zoekt de tool naar dergelijke patronen in de grafiek om een ​​kwetsbaarheid te lokaliseren.”

De Object Dependence Graph die de onderzoekers hebben voorgesteld, verfijnt deze aanpak door JavaScript-objecten weer te geven als knooppunten en functies toe te voegen - inclusief afhankelijkheden tussen objecten - die specifiek zijn voor de programmeertaal, en vervolgens te zoeken naar fouten. Cao beschrijft hoe de methode werkt met granen in een handvol rijst: als alle granen er hetzelfde uitzien voordat ze worden gekookt, maar na het koken twee verschillende tinten aannemen - de ene staat voor goede granen en de andere voor slechte granen - dan wordt het gemakkelijker om ze te herkennen en te verwijderen de slechte granen. "Abstracte interpretatie is een beetje zoals het kookproces dat rijst - dat wil zeggen programma's - omzet in objecten met verschillende kleuren", zodat fouten gemakkelijker te herkennen zijn, zegt Cao.

Een verscheidenheid aan bugs

Om te zien of hun aanpak werkt, testten de onderzoekers ODGen eerst tegen een steekproef van 330 eerder gemelde kwetsbaarheden in Node.js-pakketten op de node package manager (npm) repository. Uit de test bleek dat de scanner 302 van de 330 kwetsbaarheden correct identificeerde. Gesteund door de relatief hoge nauwkeurigheid, hebben de onderzoekers ODGen vergeleken met zo'n 300,000 Java-pakketten in npm. De scanner rapporteerde in totaal 2,964 potentiële kwetsbaarheden in de pakketten. De onderzoekers controleerden er 264 - allemaal met gemiddeld meer dan 1,000 downloads per week - en konden 180 bevestigen als legitieme kwetsbaarheden. Drieënveertig daarvan bevonden zich op applicatieniveau, 122 waren in pakketten die door andere applicaties of code werden geïmporteerd en de overige 15 waren aanwezig in indirecte pakketten.

Een aantal (80) van de bevestigde kwetsbaarheden die ODGen ontdekte, waren stromen met opdrachtinjectie waarmee aanvallers willekeurige code op het niveau van het besturingssysteem konden uitvoeren via een kwetsbare applicatie. Dertig waren padtraversatiefouten; 24 maakten manipulatie van code mogelijk, en 19 hadden betrekking op een specifiek type commando-injectie-aanval genaamd prototype-vervuiling.

Tijdstempel:

Meer van Donkere lezing