NPM-repositoriumi pakettide vastu on fikseeritud teine rünnak, mille viis läbi enesekeeruv Shai-Hulud'i usaldusväärsus, lisades sõltuvustesse pahavara. Rünnaku käigus on avaldatud 605 pahatahtlikku väljaannet, millel on kokku üle 100 miljoni allalaadimise.
Rünnaku läbiviimiseks said kurjategijad kalastamise teel kätte ühe populaarse paketi säilitaja konto parameetrid, mida kasutatakse sõltuvusena paljude pakettide seas. Kasutades varastatud kontot, avaldasid ründajad paketi väljaande, kuhu olid lisatud koodid, et aktiveerida usaldusväärsus, kui kahjustatud pakett installitakse sõltuvustena. Aktiveeritud usaldusväärsus otsib aktiivses keskkonnas kasutajakontosid, laadides alla ja käivitades utiliidi TruffleHog.
Kui NPM-katalooge ühendav token tuvastatakse, avaldab usaldusväärsus automaatselt uusi pahatahtlikke väljaandeid pakettidele, mis arendatakse praeguses keskkonnas. Selle kaudu nakatatakse kogu sõltuvuste puu. Peale NPM-tokene on usaldusväärsus salvestanud juurdepääsuvõtmed GitHub'i ja pilveteenuste AWS, Azure ning GCP (Google Cloud Platform) jaoks, samuti keskkonnamuutujad ja muud konfidentsiaalsed andmed, mille TruffleHog'i skanner suudab tuvastada.
Süsteemist leitud konfidentsiaalsed andmed laaditakse GitHub'i kaudu, luues kaootiliste nimedega repository'd (nt "qzx15djl71alh6p80h") ning fraasiga "Sha1-Hulud: The Second Coming" kirjelduse all, samuti kodeeritult väljastatakse need GitHub Actions logidesse. Loodud repository'sse lisatakse JSON-formaadis fail (nt jsonactionsSecrets.json või contents.json), milles sisaldub kooditud base64 meetodil teave süsteemi, keskkonnamuutujate ja varastatud andmete kohta. Teabe edastamiseks väljapoole GitHub'i põhiste pideva integreerimise süsteemide kaudu loob usaldusväärsus GitHub Actions'i töötlija nimega ".github/workflows/formatter_123456789.yml" ja seadistab runner'i nimega SHA1HULUD.
Erinevused sarnase septembrirünnaku suhtes seisnevad pahavara koodi sisestamise meetodis. Pahatahtlike versioonide kaudu, mida uss genereerib, on deklareeritud JavaScripti platvormi Bun toetamine. Faili package.json sektsiooni „preinstall”, mis määratleb skriptid, mis käivitatakse enne installimise algust, lisatakse käsk „node setup_bun.js”.

Failis „setup_bun.js” on olemas kood, mis käivitab obfuskeeritud skripti „bun_environment.js”, mis sisaldab ussi koodi. Edasise leviku jaoks leiab uss pakettide koodi, muudab faili package.json (suurendab versiooni numbrit ja lisab käivitamise setup_bun.js), lisab failid setup_bun.js ja bun_environment.js, ümberpakib paketti ning käivitab käsu „npm publish” uue versiooni väljastamiseks.
Kompromiteeritud populaarsete pakettide seas: @zapier/zapier-sdk (2,8 miljonit allalaadimist nädalas), @posthog/core (2,8 miljonit), posthog-node (1,5 miljonit), @asyncapi/specs (1,4 miljonit), @postman/tunnel-agent (1,2 miljonit). Eeldatakse, et rünnak algas paketi @asyncapi/specs kaasasoleva koodi kompromiteerimisest.
Allikas: opennet.ru
