npm csomag kódinjektálás

Az egyik szépsége a modern webnek, hogy egy cukormázzal bevont, trágyalével összeragasztott kártyavár.  A millió egy HTML és CSS implementációk, megtákolva a javascripttel és a frontend fejlesztők ész nélküli mindent letöltő és telepítő hozzáállása mellett, néha az ember még azt is csodálja, hogy egyáltalán működik az egész.

A tegnapi nap folyamán az egyik legnépszerűbb npm csomag, az ua-parser-js repoja lett account takeover áldozata. A támadók feltöltöttek, három verzió frissítést (0.7.290.8.01.0.0), melyek operációs rendszertől függő, kártékony kódot töltenek le. Az eddigi információk alapján Linux és MacOS esetében egy kryptovaluta bányászt (XMRig Monero), Windows esetében kryptovaluta bányászt (XMRig Monero) és egy jelszólopó trojant (Danabot).  Az ügy érdekessége, hogy három nappal az eset előtt a Sonatype biztonsági cég adott ki egy cikket, mely magát  ua-parser-js-nek kiadó kryptobányász payloadot telepítő npm csomagonkra hívta fel a figyelmet.

Hogy kik lehettek az elkövetők? Vagy kire akarják kenni a dolgot? Arra a 0.7.29 unixos preinstall.sh filejában található két sor adhat felvilágosítást:

...
IP=$(curl -k https://freegeoip.app/xml/ | grep 'RU\|UA\|BY\|KZ')
if [ -z "$IP" ]

....

Mit tehet a ezen javascript rákot futtató felhasználó? Elsődlegesen ellenőrizze, hogy nem került-e telepítésre a jsextension nevű futtatható file és windows alatt nem került-e telepítésre a create.dll file. Öröm az ürömben, hogy az eddigi jelentések szerint a vírusirtók felismerik és  megfogják a trojan komponenst.
Másodlagosan, el lehet gondolkodni, hogy tényleg szüksége van ennyi szemétre?

Források:
https://us-cert.cisa.gov/ncas/current-activity/2021/10/22/malware-disco…
https://www.whitesourcesoftware.com/resources/blog/popular-javascript-l…
https://github.com/faisalman/ua-parser-js/issues/536
https://blog.sonatype.com/newly-found-npm-malware-mines-cryptocurrency-…

Hozzászólások

cukormázzal bevont trágyalével összeragasztott kártyavár

Kiváló hasonlat, de a "cukormázzal bevont" melléknév után kell egy vessző, különben nem a trágyalével összeragasztott kártyavárat vonod be azzal a cukormázzal, hanem magát a trágyalevet. :)

Szerkesztve: 2021. 10. 24., v – 07:35

Másodlagosan, el lehet gondolkodni, hogy tényleg szüksége van ennyi szemétre?

Igen, mert így olcsóbb az előzetes kalkulációk szerint ...

Fedora 34, Thinkpad x280

Ott a pont, átláthatatlan taknyolt vacak, aztán csodálkozunk hogy maxon pörög a CPU böngészésnél és laggol a gép. 

A leftpad-del ellentétben ennek mintha még értelmei is lenne, de mégse, mert szerintem a user agent string és minden felhasználása egy emberiség elleni bűncselekmény.

Bar mar tobbszor is elohoztam, de ujfent: szerveroldalon pl. a composer csomagok hasonloan jol validaltak. Es nem egy db js, hanem egy mailer pl fuggosegbe behuz valami webmozartot, meg cli szinezgetot, meg a rak tudja meg micsodat. Kivancsi leszek, mikor derul ki valamelyikrol, hogy a user inputot egy-az-egyben forwardolja a keszitojenek :)

Error: nmcli terminated by signal Félbeszakítás (2)