
Így csapták be a fejlesztőket
A támadók egy hamis phishing e-mail segítségével szerezték meg az irányítást Josh Junon npm-fiókja felett. Az üzenet egy olyan megtévesztő doménről érkezett, amely külsőre a hivatalos npmjs.com-ra hasonlított, és azt állította, hogy a kétfaktoros azonosítás (2FA) frissítése elmaradt az elmúlt évben. Ha valaki rákattintott a levélben lévő hivatkozásra, egy átverős oldalra irányították, amely ellopta a beírt jelszót és adatokat. Ezzel szemben a valódi npm-üzenetek nem ilyen fenyegető stílusban érkeznek, és nem kérnek azonnali intézkedést.
Kiemelkedően népszerű csomagokat fertőztek meg
A támadást követően a csalók módosították a kompromittált csomagokat, kártékony kódot fecskendezve az index.js fájlba. Ez a programrészlet böngészőszintű lehallgatóként működött, hálózati forgalmat és alkalmazás API-hívásokat tudott eltéríteni. Különösen a kriptopénz-tranzakciók voltak célkeresztben: a malware figyelte, ha a felhasználó például Ethereumot, Bitcoint, Solanát, Tront, Litecoint vagy Bitcoin Casht küldött, és az eredeti cím helyett a csalók pénztárcájára irányította át a tranzakciót, még az aláírás előtt.
Mire érdemes figyelni?
A támadás által érintett csomagok között megtalálható a debug (heti 357,6 millió letöltés), a chalk, az ansi-styles, a strip-ansi, a supports-color, az ansi-regex, a color-string, a simple-swizzle, a color-convert és sok más, amelyek együttesen 2,6 milliárd letöltést produkálnak hetente. A kártékony kód több szinten működik: weboldaltartalmat ír át, API-hívásokat hamisít, sőt a felhasználók alkalmazásai számára is félrevezető adatokat jelenít meg – mindezt teljesen észrevétlenül.
Korlátozott, de súlyos hatás
A helyzet komolysága ellenére igaz, hogy a támadás csak bizonyos körülmények között volt hatásos: kizárólag azokat az alkalmazásokat érintette, amelyeket az érintett csomagok kompromittálásának időszakában (magyar idő szerint délután 3 és 5 óra között) telepítettek, és csak akkor, ha a package-lock.json ebben az intervallumban jött létre, valamint a sérülékeny csomagok közvetlen vagy közvetett függőségként szerepeltek.
Folyamatos támadások a webes ellátási lánc ellen
Az elmúlt hónapokban többször előfordultak ehhez hasonló támadások ismert JavaScript-könyvtárak karbantartói és fejlesztői ellen. Júliusban például egy, heti 30 millió letöltéssel rendelkező csomagot támadtak meg, márciusban pedig ismert npm-csomagokat alakítottak át a hackerek adathalász eszközökké. A mostani támadás is bizonyítja, hogy a webes böngésző mára óriási támadási felületté vált: a hitelesítő adatok megszerzése, a hálózati forgalom módosítása, sőt a teljes infrastruktúra veszélyeztetése mindennapos kockázattá vált a fejlesztői közösség számára.