NPM-repositooriumis on fikseeritud teine rünnak paketide vastu, mis on läbi viidud iseeneslikult leviva Shai-Hulud'i ussi modifikatsiooni abil, mis lisab sõltuvustesse pahavara. Rünnaku tulemusena on avaldatud 605 pahatahtliku väljaannet, millel on kokku üle 100 miljoni allalaadimise.
Rünnaku korraldamiseks haarasid kurjategijad seadmete haldaja konto andmed ühe populaarse paketi kaudu, mida kasutab paljude pakettide sõltuvusena. Kasutades varastatud kontot, avaldasid ründajad paketi väljaande, millele oli lisatud kood, et aktiveerida uss, kui mõjutatud pakett installitakse sõltuvusena. Käivitatud uss otsib käimasolevas keskkonnas logindata, laadides ja käivitades TruffleHog'i utiliidi.
Kui NPM katalooge ühendavad tokenid tuvastatakse, postitab uss automaatselt uusi pahavara versioone praeguses keskkonnas arendatavate paketide jaoks. Selle viisi kaudu nakatatakse kogu sõltuvuste puu ahelas. Peale NPM tokeni salvestab uss ka GitHubi ja pilveteenuste AWS, Azure ning GCP (Google Cloud Platform) juurdepääsuvõtmed, samuti keskkonnamuutujad ja muud konfidentsiaalsed andmed, mille TruffleHog skanner tuvastada suudab.
Süsteemist leitud konfidentsiaalsed andmed paigutatakse GitHubisse, luues eksitavate nimedega (näiteks "qzx15djl71alh6p80h") repo, kus kirjelduses on fraas "Sha1-Hulud: The Second Coming", samuti salajases vormis logitakse need GitHub Actions'i logidesse. Uue repositooriumi loomisel sisaldab see JSON-formaadis faili (näiteks jsonactionsSecrets.json või contents.json), mis sisaldab rida base64-meetodil kodeeritud teabest süsteemi, keskkonnamuutujate ja haaratud andmete kohta. Teabe väljasaatmiseks GitHubi põhiste pideva integreerimise süsteemidest loob uss GitHub Actions'i töötleja nimega ".github/workflows/formatter_123456789.yml" ja seadistab runneri nimega SHA1HULUD.
Erinevused sarnase septembrikuu rünnaku ja selle vahel seisnevad pahatahtliku koodi sisestamise erinevas meetodis paketis. Pahausklikud väljaanded kuulutavad välja JavaScripti platvormi Bun toe. Faili package.json sektsiooni „preinstall”, mis määratleb skriptid, mis käivitatakse enne installatsiooni algust, lisatakse käsk „node setup_bun.js”.

Failis „setup_bun.js” on olemas kood obfuskeeritud skripti „bun_environment.js” käivitamiseks, mis sisaldab ussi koodi. Omandamiseks leibkond otsib pakettide koodi, muudab faili package.json (suurendab versiooni numbrit ja lisab kutsungi setup_bun.js-le), lisab failid setup_bun.js ja bun_environment.js, pakendab koti uuesti ja täidab käsu „npm publish”, et avaldada uus väljaanne.
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). Arvatakse, et rünnak algas paketi @asyncapi/specs kompromiteerimisega.
Allikas: opennet.ru
