
Terjedési módszer és technikai részletek
A Shai-Hulud azzal indult szeptember közepén, hogy legitim npm-csomagokat letöltöttek, azok package.json fájljában elhelyeztek egy kártékony szkriptet, majd ellopott fejlesztői fiókok segítségével fertőzöttként újra publikálták őket. Az újabb variáns két fájlt használ – a setup_bun.js nevű, álcázott droppert, illetve a bun_environment.js nevű, extrém módon obfuszkált és tíz megabájtos főkódot. Az utóbbi elemzésgátló hurkokat, hexakódolt karakterláncokat és több ezer rejtett karakterláncot tartalmaz.
A támadás öt lépcsős: ellopja például a GitHub- és npm-tokeneket, valamint felhőszolgáltatók (AWS, Google, Azure) titkos kulcsait, végül, ha bizonyos feltételek teljesülnek, a fertőzött gépen akár a teljes home-könyvtárat is törli. A törlés akkor indul el, ha a kártevő nem tud hitelesíteni a GitHubon, vagy nem fér hozzá a szükséges tokenekhez.
Egyre több kompromittált csomag és gyors adaptáció
A Wiz kutatói közel 350 ellopott karbantartói fiókot azonosítottak a kampány során, és azt tapasztalták, hogy néhány óra alatt már ezernyi új tároló jött létre. Eközben az Aikido Security már közel 500, a Koi Security pedig több mint 800 fertőzött npm-csomagot tart számon. A kompromittált csomagok elérhetővé váltak az npm-en, bár többre kikerült a platform hivatalos figyelmeztetése is.
A támadók a megszerzett titkokból, valamint a kompromittált fejlesztői tokenekből automatikusan generált GitHub-repókat hoznak létre, a leírásban megemlítve a Shai-Huludot. A platform azonnal törli ezeket, ám a támadók gépi tempóval újabbakat hoznak létre.
Felkészülés, védekezés, megelőzés
A kompromittált csomagok között megtalálhatók a Zapier hivatalos fejlesztői eszköztárai, az ENS Domains natív Ethereum-címkezelő csomagjai, valamint a PostHog és az AsyncAPI moduljai. Ezeket tömegek használják tárcák, decentralizált alkalmazások vagy tőzsdék fejlesztéséhez.
A szakértők szerint az első lépés a fertőzött npm-csomagok pontos azonosítása, majd ezeket le kell cserélni tiszta, korábbi verziókra, és minden fejlesztői vagy CI/CD titkot azonnal rotálni kell. Az Aikido Security külön javasolja az npm postinstall szkriptek kikapcsolását integrációs folyamatokban. Egyúttal a GitHub is új lépéseket vezet be az ilyen ellátásilánc-támadások megelőzésére, ezek bevezetése azonban fokozatos.
Emellett érdemes a fejlesztői infrastruktúra védelmére nagyobb hangsúlyt fektetni, mivel a támadók szemmel láthatóan egyre kifinomultabb módszerekkel és gépesített tempóval dolgoznak.
