Egy új ellátásilánc-támadás során az npm-csomagindexben 36 csomagot fertőztek meg az IronWorm nevű információlopó kártevővel.
A rosszindulatú program 86 környezeti változót és 20 különböző, hitelesítő adatokat tartalmazó fájlt vesz célba. Ezek között OpenAI-, AWS-, Anthropic- és npm-hitelesítő adatok, vault konfigurációs állományok, SSH-kulcsok, valamint Exodus kriptotárca fájljai is szerepelhetnek.
Az ellátásilánc és DevOps-biztonság területén tevékenykedő JFrog kutatói szerint az IronWorm Rust nyelven íródott, működését egy eBPF-alapú kernel rootkit segítségével rejti el, és a támadók a Tor hálózaton keresztül kommunikálnak vele.
A Rust-alapú kártevő önterjesztő képességgel rendelkezik: az ellopott hitelesítő adatok felhasználásával újabb csomagokat publikál az npm-re, beleértve az npm Trusted Publishing folyamatához kapcsolódó titkos kulcsokat és hitelesítési adatokat is.
Amennyiben sikerül kompromittálnia egy fejlesztői vagy CI-környezetet, a támadó képes a sértett által birtokolt csomagok trójai kóddal módosított verzióit közzétenni. Ezek a fertőzött csomagok további fejlesztőket és CI-rendszereket fertőzhetnek meg, így láncreakciószerű terjedést idézve elő.
Ez a működési modell koncepcionálisan hasonlít a nemrég nyilvánosságra került Shai Hulud kártevőhöz, amelynek forráskódját nemrég publikálták GitHubon, és amelyről korábban már mi is beszámoltunk. Bár a JFrog szakértői nem találtak egyértelmű kapcsolatot az IronWorm és a Shai Hulud között, mindkét ellátásilánc-támadás során azonos commit-elnevezéseket figyeltek meg. Ez felveti annak lehetőségét, hogy az új kártevő a TeamPCP korábbi támadási eszközének továbbfejlesztett változata, mivel az IronWorm egyedi fejlesztésű, gondosan kialakított kártevőnek tűnik.
A JFrog elemzése szerint a legutóbbi támadás egy kompromittált „asteroiddao” nevű fiókról indult. Ez a fiók olyan csomagverziókat tett közzé, amelyek egy Rust alapú ELF binárist tartalmaztak. A bináris a csomagok preinstall fázisában futottak le, és rosszindulatú commitokat juttattak a célzott forráskód-tárolókba.
A commitok szerzőjeként „claude” szerepel, miközben a hozzájuk tartozó időbélyegek több évvel korábbi dátumokat mutatnak, egyes esetekben akár 13 évvel ezelőttieket is, noha a commitokat valójában csak az elmúlt napokban töltötték fel. A kutatók szerint ez valószínűleg a vizsgálatok és az incidenskezelés megnehezítését szolgálja.
A malware egyik legérdekesebb tulajdonsága egy olyan mechanizmus, amely a GitHub Actions infrastruktúráját használja fel az ellopott adatok továbbítására. A kutatók szerint a kártevő először egyetlen értékbe szerializálja az összegyűjtött titkos adatokat, majd egy ártalmatlan nevűnek tűnő fájlba írja őket, mintha az valamilyen kódelemző vagy formázó eszköz kimenete lenne.
A folyamat utolsó lépéseként ezt a fájlt build-artifactként tölti fel, amelyet minden olyan felhasználó letölthet, aki rendelkezik megfelelő hozzáféréssel. Ezzel a módszerrel a támadók akár teljesen elkerülhetik egy hagyományos parancs- és vezérlőszerver (C2) használatát. A kutatók ugyanakkor megjegyzik, hogy az elemzett IronWorm-támadás során ezt az adattovábbítási technikát nem használták aktívan.
Egy másik szokatlan részlet, hogy a kártevő operátora saját kriptovaluta-tárcájának helyreállító kifejezését (recovery phrase) közvetlenül a kódba ágyazta. A szakértők szerint ennek egyetlen ésszerű magyarázata, hogy a támadó a tesztelési szakaszban nem akarta, hogy a kártevő a saját tárcáját is célba vegye és kifossza.
