NPM-csomagokkal terjesztett információlopó kártevő veszélyezteti a fejlesztőket Windows, Linux és macOS platformokon

Tíz rosszindulatú csomagot töltöttek fel az npm csomagkezelőbe, amelyek legitim szoftverprojekteknek álcázzák magukat és egy információlopó kártevőt telepítenek Windows, Linux és macOS rendszerekre.

A csomagokat július 4-én töltötték fel az npm-re, és hosszú ideig észrevétlenek maradtak, mivel többrétegű obfuszkációval kerülték meg a szokásos statikus elemzési eljárásokat.

A Socket kiberbiztonsági vállalat kutatói szerint a tíz csomagot közel 10 000 alkalommal töltötték le, és ezek hitelesítő adatokat loptak el rendszerszintű jelszótárolókból, böngészőkből, valamint különféle hitelesítési szolgáltatásokból.

A cikk írásakor a csomagok továbbra is elérhetők voltak, noha a Socket már jelentette őket az npm felé:

      • typescriptjs
      • deezcord[.]js
      • dizcordjs
      • dezcord[.]js
      • etherdjs
      • ethesjs
      • ethetsjs
      • nodemonjs
      • react-router-dom[.]js
      • zustand[.]js

A Socket kutatói szerint a csomagok hamis CAPTCHA-megjelenítést alkalmaznak a terminálban, hogy legitimnek tűnjenek, majd letöltenek egy 24 MB-os, PyInstallerrel csomagolt információlopó komponenst.

A támadó typosquatting technikát alkalmazott, vagyis olyan csomagneveket hozott létre, amelyek kismértékben térnek el ismert és legitim könyvtárak neveitől (például: TypeScript, discord[.]js, ethers[.]js, nodemon, react-router-dom, zustand). Ezáltal a fejlesztők – elgépelés vagy figyelmetlenség miatt – könnyen egy rosszindulatú csomagot választhatnak ki a találati listából.

A telepítés során automatikusan lefut egy postinstall script, amely felismeri a gazdarendszer operációs rendszerét, megnyit egy új terminálablakot, majd ott észrevétlenül lefuttatja az app[.]js fájlt, elkerülve a naplózásban való megjelenést.

Az app[.]js fájl maga a malware betöltője, amely négy obfuszkációs réteget használ:

      • önmagát dekódoló eval-burkolat,
      • dinamikusan generált kulccsal történő XOR-alapú titkosítás,
      • URL-kódolt payload,
      • bonyolult vezérlési struktúra (control-flow obfuszkáció).

A script ASCII-karakterekből álló hamis CAPTCHA-t jelenít meg, ezzel tovább erősítve a telepítés látszólagos hitelességét.

A script ezt követően elküldi az áldozat geolokációs adatait és a rendszer egyedi azonosítóit a támadó C2 (Command and Control) szerverére. Ezt követően letölt és automatikusan elindít egy az adott operációs rendszerhez illeszkedő, 24 MB-os, PyInstallerrel csomagolt bináris állományt.

Az eszköz az alábbi célpontokra összpontosít:

      • Rendszerszintű jelszótárolók, például: Windows Credential Manager, macOS Keychain, Linux SecretService, libsecret,
      • Chromium-alapú és Firefox böngészők: profiladatok, mentett jelszavak, munkamenet-sütik.
      • SSH-kulcsok gyakran használt könyvtárakban.
      • OAuth-, JWT- és egyéb API-tokenek.

A begyűjtött adatokat a rendszer ideiglenes könyvtáraiban (/var/tmp, /usr/tmp) tárolja, majd tömörített archívumként továbbítja a támadó szerverére: 195[.]133[.]79[.]43.

Azoknak a fejlesztőknek, akik letöltötték a fent felsorolt csomagok bármelyikét, haladéktalanul javasolt a fertőzött eszköz(ök) helyreállítása, valamint valamennyi jelszó és hozzáférési token azonnali cseréje, mivel nagy a valószínűsége annak, hogy a hitelesítő adatok illetéktelen kezekbe kerültek.

Nyílt forráskódú csomagok telepítésekor (npm-ről vagy más csomagkezelőről) mindig célszerű körültekintően ellenőrizni a csomagnevet és kizárólag hiteles forrásból, hivatalos kiadótól származó csomagokat használni.

 

(bleepingcomputer.com)