Az új ODGen eszköz 180 nulla napot fedez fel a Node.js könyvtárakban, a PlatoBlockchain adatintelligenciában. Függőleges keresés. Ai.

Az új ODGen eszköz 180 nulla napot fedez fel a Node.js könyvtárakban

A Johns Hopkins Egyetem kutatói a közelmúltban egy megdöbbentő, 180 nulladik napi sebezhetőséget fedeztek fel több ezer Node.js könyvtárban egy új, kifejezetten erre a célra kifejlesztett kódelemző eszköz, az ODGen segítségével.

A hibák közül hetven azóta általános sebezhetőség és kitettség (CVE) azonosítót kapott. Ide tartoznak a parancsbeviteli hibák, az útvonal bejárási sebezhetőségei, tetszőleges kódvégrehajtási problémák és a helyek közötti parancsfájl-kezelési sebezhetőségek – ezek egy része a széles körben használt alkalmazásokban.

A hónap elején a Usenix Security Symposiumon megjelent cikkben a Johns Hopkins kutatók – Song Li, Mingqing Kang, Jianwei Hou és Yinzhi Cao – az ODGen-t a jelenlegi kódelemzés és az úgynevezett gráflekérdezés-alapú jobb alternatívaként írták le. megközelítések a Node.js sebezhetőségeinek megtalálásához.

A programelemzésen alapuló megközelítések hasznosnak bizonyultak az egyes sérülékenységtípusok, például a JavaScript kódbeillesztési hibáinak felderítésében. A kutatók szerint azonban nem lehet könnyen kiterjeszteni a Node.js platformon esetlegesen előforduló összes sérülékenységet. Hasonlóképpen, a gráf alapú kódelemzési módszerek – ahol a kódot először gráfként ábrázolják, majd lekérdezik bizonyos kódolási hibákat – jól működnek olyan környezetekben, mint a C++ és a PHP. Megjegyezték azonban, hogy a gráfalapú megközelítések nem olyan hatékonyak a JavaScript sebezhetőségeinek bányászatában, mivel a programozási nyelv széles körben használja a dinamikus funkciókat.

„Újszerű” megközelítés a JavaScript sebezhetőségeinek felderítésére

Tehát a kutatók ehelyett azt fejlesztették ki, amit leírtak egy „újszerű” és jobb módszer, az Object Dependence Graph (ODG) amelyek a Node.js sebezhetőségeinek észlelésére használhatók. Bevezették az ODGen-t, hogy „ODG”-t generáljanak a Node.js programok számára a sebezhetőségek észlelése érdekében.

Cao, a Johns Hopkins Egyetem számítástechnikai adjunktusa és a kutatási jelentés társszerzője néhány analógiát használ a gráfalapú kódelemzés általános leírására és az általuk javasolt objektív függőségi grafikonra. „Ha egy sebezhetőséget különleges mintának tekintünk – mondjuk egy zöld csomópontot, amely egy piros, majd egy fekete csomóponthoz kapcsolódik –, egy gráfalapú kódelemző eszköz először sok csomóponttal és éllel rendelkező gráfmá alakítja át a programokat” – mondja Cao. . "Ezután az eszköz ilyen mintákat keres a grafikonon, hogy megtalálja a sebezhetőséget."

A kutatók által javasolt Object Dependence Graph ezt a megközelítést finomítja azáltal, hogy a JavaScript objektumokat csomópontként jeleníti meg, és olyan funkciókat ad hozzá – beleértve az objektumok közötti függőséget –, amelyek a programozási nyelvre jellemzőek, majd lekérdezi a hibákat. Cao leírja, hogyan működik a módszer egy marék rizsben lévő szemek használatával: Ha az összes szem ugyanúgy néz ki forralás előtt, de forralás után két különböző árnyalatot vesz fel – az egyik a jó, a másik pedig a rossz szemeket –, akkor könnyebb lesz észrevenni és kigyomlálni. a rossz szemek. „Az absztrakt értelmezés olyan, mint a forralási folyamat, amely a rizst – azaz a programokat – különböző színű objektumokká alakítja”, így a hibák könnyebben észlelhetők – mondja Cao.

Különféle hibák

Annak megállapítására, hogy működik-e a módszerük, a kutatók először tesztelték az ODGen-t a Node.js csomagok 330 korábban jelentett sebezhetőségével a csomóponti csomagkezelő (npm) tárolójában. A teszt azt mutatta, hogy a szkenner a 302 sebezhetőség közül 330-t helyesen azonosított. A viszonylag magas pontossági rátán felbuzdulva a kutatók ODGen-t futtattak mintegy 300,000 2,964 Java-csomag ellen npm-ben. A szkenner összesen 264 lehetséges sebezhetőséget jelentett a csomagokban. A kutatók közülük 1,000-et ellenőriztek – mindegyiket átlagosan több mint 180 letöltéssel hetente –, és 122-at sikerült jogos sebezhetőségnek bizonyítaniuk. Ebből 15 alkalmazás szintű volt, XNUMX olyan csomagban, amelyet más alkalmazás vagy kód importál, a maradék XNUMX pedig indirekt csomagokban volt jelen.

Az ODGen által észlelt megerősített sebezhetőségek közül több (80) parancsinjekciós folyamat volt, amely lehetővé teszi a támadók számára, hogy tetszőleges kódot hajtsanak végre az operációs rendszer szintjén egy sérülékeny alkalmazáson keresztül. Harminc volt útbejárási hiba; 24 engedélyezte a kód manipulálását, 19 pedig egy speciális típusú parancsinjektáló támadást, az úgynevezett prototípusszennyezést.

Időbélyeg:

Még több Sötét olvasmány