A ReversingLabs egy jelentős ellátási lánc támadást fedezett fel a Node package manager (npm) csomagkezelőt érintően: legalább 2021 decembere óta folyamatosan kerülnek fel káros kódokat tartalmazó modulok az npm tárolóba.
Az npm-et Javascript fejlesztők világszerte több, mint 11 millióan használják, ez a programnyelv egyfajta „App Store-jának” számít. A nyílt forrású tárolóból a fejlesztők pillanatok alatt tölthetnek le programkönyvtárakat, amiket azután felhasznáhatnak a saját projektjeikhez. Ezek a programkódok azután számtalan rendszerben, mobilalkalmazásban és weboldalon „élnek tovább”. Míg ez egy remek megoldás a fejlesztőknek, jelentős biztonsági kockázatot jelenthet, ha egy fertőzött verzió válik elérhetővé.
Az IconBurst kampány
A ReversingLabs szerint a támadók egy egyszerű, azonban hatásos, typosquatting nevű taktikát választották: az eredeti csomagok nevéhez nagyon hasonló, sokszor csupán egy-egy betűvel eltérő nevű káros csomagokat töltöttek fel az npm tárolóba. Példaként a mostani kampányban a népszerű umbrellajs keretrendszer káros verzióját umbrellaks-nek nevezték el. A billentyűzeten a J és a K betűk billenytűi egymás mellett találhatóak, nem nehéz elképzelni, hogy egy fejlesztő elüti a billentyűt, és ezzel máris egy káros verziót telepített.
„Bár ennek a támadásnak a teljes kiterjedése még nem ismert, az általunk felfedezett rosszindulatú csomagokat valószínűleg több száz, ha nem több ezer downstream mobil- és asztali alkalmazás, valamint webhely használja” – mondta Karlo Zanki, a ReversingLabs kutatója
A fertőzött csomagokat a támadók elsősorban webes formokon, és mobilalkalmazásokon keresztüli adatlopásra használják. A ReversingLabs szerint egyes káros csomagok (pl.: footericon) kifejezetten agresszív technikákkal gyűjtenek be minden lehetséges adatot.
Az eddig felfedezett káros csomagok listája alább található:
Készítő / csomagnév | Letöltésszám (2022.07.05.) |
fontsawesome | |
ionic-icon | 108 |
ionicio | 3,724 |
ionic-io | |
icon-package | 17,774 |
ajax-libs | 2,440 |
umbrellaks | 686 |
ajax-library | 530 |
arpanrizki | |
iconion-package | 101 |
package-sidr | 91 |
kbrstore | 89 |
icons-package | 380 |
subek | 99 |
package-show | 103 |
package-icon | 122 |
kbrstore | |
icons-packages | 170 |
ionicon-package | 64 |
icons-pack | 49 |
pack-icons | 468 |
ionicons-pack | 89 |
aselole | |
package-ionicons | 144 |
package-ionicon | 57 |
base64-javascript | 40 |
ionicons-js | 38 |
ionicons-json | 39 |
footericon | |
footericon | 1,903 |
ajax-libz | |
roar-01 | 40 |
roar-02 | 37 |
wkwk100 | 38 |
swiper-bundie | 39 |
ajax-libz | 40 |
swiper-bundle | 185 |
atez | 43 |
A mostani már nem az első eset, hogy káros kódot tartalmazó csomag került az npm-re, ezért a nyíltforrású programozói csomagok biztonságos terjesztésére mindenképp nagyobb hangsúlyt kell fektetni. Az Open Source Security Foundation (OpenSSF) nemrég bejlentett Package Analysis projektje egy lehetséges megoldási irányt jelent.