Fejlesztői környezetet célzott az új npm-támadás

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

Egy biztonsági kutató egy olyan ellátásilánc-támadást azonosított, amelyben kompromittált npm csomagok rejtett VS Code-taskokkal indítottak el egy többlépcsős fertőzési láncot, végül pedig egy Python-alapú infostealert juttattak a gépekre. A támadás különlegessége, hogy nem a megszokott npm lifecycle scripteket használta, hanem a fejlesztői környezetek automatikus működését használta ki: elég lehetett egy megbízhatónak jelölt workspace megnyitása.

A kutató két, már kompromittált csomagot azonosított: a html-to-gutenberg 4.2.11-es és a fetch-page-assets 1.2.9-es verzióját. A kutatók szerint ezek a csomagok 2026. május 25-én jelentek meg rosszindulatú változatként. A fetch-page-assets ráadásul a másik csomagra is támaszkodott, így a fertőzés több ponton is megjelenhetett láncban.

A támadók a rosszindulatú JavaScriptet egy fontfájlnak álcázták, a public/fonts/fa-solid-400.woff2 útvonal alá rejtve. Ez a megoldás segítette a rejtőzködést, mert a fájlnév és a kiterjesztés alapján első pillantásra legitim erőforrásnak tűnhetett.

A kampány egyik legfontosabb eleme a VS Code tasks.json fájlja volt. A beállítások között olyan automatikus futtatás szerepelt, amely mappa megnyitásakor aktiválódhatott, vagyis a fejlesztő anélkül is futtathatta a kódot, hogy külön indított volna egy install vagy start parancsot. Ez azért különösen veszélyes, mert a fejlesztők gyakran bíznak a saját projektjeikben, és nem várnak kártékony viselkedést egy editoron belüli automatizmustól. A támadás ezzel a módszerrel próbálta megkerülni a tipikus npm védelmeket és a közismert, életciklus scriptekre épülő detekciókat.

A fertőzési lánc nem egy hagyományos C2 szerverről töltötte le a következő payloadokat, hanem blockchain hálózatokon keresztül elérhető „dead drop” pontokat használt. A kutatók szerint a támadó Tron, Aptos és BSC tranzakciós adatokba rejtette a következő lépéshez szükséges információkat. Ez a módszer megnehezíti a blokkolást, mert a forrás nem egy klasszikus rosszindulatú domain, hanem egy publikus, legitim infrastruktúra része.

A letöltött kód több lépcsőben épült fel. Először egy JavaScript töltötte be a következő komponenseket, majd egy socket.io backdoor következett. A végső payload egy platformfüggetlen Python-alapú adatlopó volt, amely Windows, macOS és Linux rendszereken is működhetett. Célba vette a böngészők mentett jelszavait, sütijeit, kártyaadatokat tároló profilokat, valamint kriptotárcák és jelszókezelők adatait is. Emellett fejlesztői és felhős hitelesítőket, SSH kulcsokat, tokeneket és más érzékeny lokális adatokat is gyűjtött.

A támadás azért is veszélyes, mert nem csak egyetlen felhasználói kategóriát érint. A fejlesztői gépekről begyűjtött tokenek és kulcsok további szolgáltatásokhoz, repókhoz és felhőinfrastruktúrákhoz is hozzáférést adhatnak. Így egy kezdetben „csak” helyi fertőzésből gyorsan szélesebb körű kompromittáció lehet.

A kutató szerint az érintett csomagok már detektálhatók biztonsági termékekkel, például Xray és Curation megoldásokkal. Érdemes végignézni a lockfájlokat és a telepített verziókat, különösen, ha a projektben szerepelt a html-to-gutenberg vagy a fetch-page-assets csomag. Gyanús jel lehet továbbá a .vscode/tasks.json fájlban a runOn: “folderOpen” típusú beállítás, illetve a fontfájlokba rejtett JavaScript.

Ha egy fejlesztői gép érintett lehetett, akkor célszerű tokeneket, SSH kulcsokat, felhős credential-öket és böngészőben tárolt érzékeny adatokat is rotálni. Ez különösen fontos, mert az ilyen infostealerek gyakran nem egyszerűen törölnek, hanem hosszabb távú hozzáférést próbálnak kiépíteni.

(forrás)