2026. gada 11. jūlijā plkst. 16:12 pēc Griničas laika kāds npm reģistrā publicēja jscrambler versiju 8.14.0 ar paslēptu infozagli. Drošības firma Socket anomāliju pamanīja sešas minūtes vēlāk. Pāris minūtēs pakotni jau atsauca un nomainīja publicēšanas datus. Tāpēc npm oficiālais lejupielāžu skaitītājs rāda gandrīz nulli. Skaitītājs tomēr atpaliek par stundām, tāpēc patiesais skaits nav zināms, kā ziņo The Hacker News.
Uzmanību pelna tas, ko pārdod jscrambler. Tas ir klienta puses drošības uzņēmums ar produktu koda obfuskācijai un integritātes aizsardzībai. Firmas paša izplatīšanas kanāls kļuva par piegādes ķēdes uzbrukuma ieroci. Security Boulevard analīze to formulē vienkārši: arī drošības pārdevēji ir trešās puses programmatūra. jscrambler npm vidēji lejupielādē ap 15 800 reižu nedēļā, kā norāda Cybersecurity News, tāpēc katra saindētā versija nonāca tieši būvju serveros un programmētāju darbstacijās.
kā uzbrukums nokļuva datorā
Versijas no 8.14.0 līdz 8.17.0 izmantoja preinstall dzīvescikla āķi, kas npm install laikā automātiski palaida komandu node dist/setup.js. Fails setup.js ir mazs ielādētājs, kas izvēlas operētājsistēmai atbilstošo bināro failu. Uzbrucējs saindēja arī versijas 8.18.0 un 8.20.0, bet tur ielādētāju iebūvēja pakotnes galvenajā kodā. Tas nozīmē, ka karogs npm install --ignore-scripts šīs divas versijas neaptur.
Ļauno versiju saraksts ir īss: 8.14.0, 8.16.0, 8.17.0, 8.18.0 un 8.20.0. Starp tām iesprausta tīra 8.15.0. Cēlonis ir nozagti uzturētāja npm publicēšanas akreditācijas dati. Uzbrucējs publicēja tieši ar likumīgo kontu un apgāja parasto laidienu konvejeru. Skarta tikai galvenā jscrambler pakotne. Tās webpack, gulp, grunt un Metro spraudņi palika tīri.
ko IronWorm izvelk no datora
Ļaunprātīgā versija sevī nes failu intro.js aptuveni 7,8 MB apjomā. Nosaukums maldina: patiesībā tas ir binārs konteiners ar trim gzip saspiestiem izpildfailiem Linux, macOS un Windows videi. Pēc izpakošanas kods datora pagaidu mapē nomet failu ar nejaušu nosaukumu, atzīmē to kā izpildāmu un palaiž atdalītā procesā ar noslēptu izvadi. Pats zaglis ir rakstīts Rust valodā un nes nosaukumu IronWorm.
IronWorm savāc mākoņa akreditācijas datus AWS, Azure un Google Cloud videi kopā ar CI metadatiem. Tas apzog kriptomakus MetaMask, Phantom un Exodus, paroļu pārvaldniekus Bitwarden un 1Password, kā arī pārlūku sesijas. Sarakstā ir Discord, Slack, Telegram un Steam pieteikšanās dati. Atsevišķi zaglis mērķē uz AI kodēšanas rīku konfigurācijām: Claude Desktop, Cursor, Windsurf, VS Code un Zed. Klāt nāk VPN konfigurācijas, sarkanās komandas rīki Metasploit, Sliver un Havoc, kā arī Tor slēpto servisu atslēgas. Savākto uzbrucējs izsūta gan tieši uz failu glabātni temp.sh, gan caur Tor tīklu, tāpēc parastā tīkla uzraudzība to viegli nepamana.
Ja jūsu būvē ir kāda no piecām saindētajām versijām, uzskatiet visu mašīnu par kompromitētu un nomainiet katru atslēgu, kas tajā glabājās.
kāpēc instalācijas skriptu atslēgšana nepietiek
Uzbrukums notika trīs dienas pēc tam, kad iznāca npm 12. Jaunā npm versija pēc noklusējuma vairs nepalaiž instalācijas skriptus, tāpēc preinstall āķis jaunākajiem klientiem nedarbotos. Tieši tāpēc versijās 8.18.0 un 8.20.0 ielādētāju paslēpa pakotnes galvenajā kodā. Šīs versijas palaiž ļauno kodu arī tad, kad instalācijas skripti ir izslēgti. Vecākie npm klienti paliek neaizsargāti pret visām piecām versijām, jo tie skriptus joprojām palaiž pēc noklusējuma.
Pēc palaišanas IronWorm neapstājas pie datu vākšanas. Linux variants piesaista kodola BPF bibliotēku un ielādē eBPF programmas tieši kodola atmiņā. Windows un macOS būvēs ir pretatkļūdošanas pārbaudes un noturība: Windows tā ir slēpta ieplānota uzdevuma ieraksts, kas nostrādā reizi minūtē, macOS tas ir LaunchAgent. Sakari ar vadības serveri iet caur Tor. Zaglis mēģina arī pats izplatīties: tas medī npm žetonus, iešpricē ļaunus skriptus pakotnēs ar lielu lejupielāžu skaitu un publicē tās ar tiešu HTTP PUT pieprasījumu.
ko darīt tagad
Pirmais solis ir pāriet uz jscrambler 8.22.0 vai jaunāku versiju. Kā pēdējā zināmā tīrā versija pirms uzbrukuma der 8.13.0. Pēc tam vajag pārbaudīt lockfile un CI žurnālus, vai kopš 11. jūlija tur nav parādījusies kāda no piecām saindētajām versijām. jscrambler kā uzņēmums izmeklēšanu vēl turpina.
Ja kāda saindētā versija tika instalēta, drošāk pieņemt, ka dati jau nozagti. Nomainiet mākoņa atslēgas, npm un GitHub žetonus, kā arī AI rīku API atslēgas. Pārbaudiet, vai datorā nav palicis noturības mehānisms: Windows ieplānotais uzdevums vai macOS LaunchAgent. Tīklā vērts bloķēt zināmos vadības serverus ar IP adresēm 37.27.122.124 un 57.128.246.79.
Avoti
- The Hacker News: Compromised jscrambler 8.14.0 npm Release Drops Rust Infostealer During Install
- Security Boulevard: Jscrambler npm Package Compromised, A Security Vendor Becomes the Supply Chain Risk
- Cybersecurity News: Hackers Compromised jscrambler With 15,800+ Weekly Downloads
- GBHackers: Jscrambler npm Supply Chain Attack Steals Cloud Credentials and Crypto Wallet Secrets
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.