NPM upozorenje: Ključne JavaScript biblioteke kompromitirane

  • Phishing kampanja omogućila je objavljivanje zlonamjernih verzija na NPM-u i kompromitiranje osnovnih JavaScript biblioteka.
  • Zlonamjerni softver djelovao je kao kripto-kliper, zamjenjujući adrese tijekom potpisivanja transakcija.
  • Nizak ekonomski utjecaj i brzo ublažavanje; nekoliko pružatelja usluga i novčanika nije pogođeno.
  • Preporuke: Provjeriti ovisnosti, ispraviti verzije, provesti 2FA i provjeriti transakcije na hardverskim novčanicima.

Ilustracija o JavaScriptu

Tehnička zajednica istražuje napad na lanac opskrbe NPM-a koji je ciljao široko korištene JavaScript biblioteke. Prema više sigurnosnih timova, napadači su u široko distribuirane pakete ubacili zlonamjerni softver s funkcionalnošću kripto-klipera, s potencijalom da mijenjati transakcije i preusmjeravati kriptovalute.

Iako je potencijalni opseg ogroman zbog popularnost ovih ovisnosti u JavaScript ekosustavuPočetne analize ukazuju na ograničen ekonomski utjecaj: navodno su premještene male količine, manje od nekoliko stotina dolara, dok su dobavljači i registar djelovali kako bi uklonili manipulirane verzije.

Kako je upad izvršen

Upad je započeo s Phishing e-poruke koje imitiraju službenu npm podršku, zahtijevajući od održavatelja paketa da hitno ažuriraju svoju dvofaktorsku autentifikaciju. Lažna stranica uhvatila je vjerodajnice i kod, omogućujući napadačima da preuzmu kontrolu nad računom s opsežnim dozvolama (u zajednici povezanim s pseudonimom "Qix") i objaviti krivotvorene verzije raznih namjena.

svg malware
Povezani članak:
Cyber ​​​​napadači koriste SVG datoteke za zarazu zlonamjernim softverom

Istraživači poput Aikido Securityja i kolektiva JDSTAERK opisuju kampanju sposobnu za mijenjati sadržaj na web-mjestima, presresti API pozive i mijenjati ono što korisnik misli da potpisuje., što povećava rizik za web servise koji integriraju ove biblioteke putem dubokih lanaca ovisnosti.

Ekosustav JavaScript paketa

Pogođeni paketi i opseg

Razmak koji je pogođen vrlo osnovni uslužni programi prisutni u mnogim projektima, tako da su čak i računala koja ih ne instaliraju izravno mogla biti izložena putem tranzitivnih ovisnosti. Među imenima koje navode sigurnosne tvrtke i programeri su:

  • kreda, predložak-krede, strip-ansi, slice-ansi, wrap-ansi, supports-color
  • pretvorba-boje, naziv-boje, niz-boje
  • ansi-regex, ansi-stilovi, has-ansi
  • debug, error-ex, is-arrayish, simple-swizzle
  • podržava-hiperveze, obrnuta kosa crta, proto-tinker-wc

Ovi softverski dijelovi se akumuliraju Milijuni tjednih preuzimanja i preko milijardu povijesnih zapisa, koji djeluju kao temeljni građevni blokovi za moderne poslužitelje, alate naredbenog retka i web aplikacije.

Sigurnost u JavaScriptu

Kako zlonamjerni softver funkcionira

Zlonamjerni kod je radio kao kripto-kliperDetekcijom okruženja sa softverskim novčanicima (npr. ekstenzijama poput MetaMask-a), presreo je podatke o transakcijama neposredno prije potpisivanja i zamijenio je odredišnu adresu od strane drugog kojeg kontroliraju napadači.

Ako nije identificirao aktivni novčanik, implantat je pokušao pasivno izvlačenje informacija na vanjske poslužitelje. U scenarijima aktivnog novčanika, osim manipuliranja API pozivima, pratio je međuspremnik kako bi prepisao adrese koje je korisnik kopirao, što je klasičan trik u ovoj vrsti prijevare.

Stručnjaci ističu da oni koji potvrdite podatke na hardverskom novčaniku na ekranu Imaju fizičku barijeru koja sprječava taj vektor: konačna potvrda se vrši na uređaju i prikazana adresa ne može se promijeniti putem preglednika ili weba.

Pravi utjecaj do sada

Unatoč veličini izloženosti, novac koji su napadači prebacili bio bi vrlo male (desetke do nekoliko stotina dolara), prema raznim tragovima lanca koje su objavili istraživači. Nekoliko dobavljača odmah je upozorilo i registar je onemogućio kompromitirane objave unutar nekoliko sati.

Kripto novčanik i servisni timovi kao što su Ledger, Trezor, MetaMask, Phantom ili Uniswap Izvijestili su da na njih ne utječu izmijenjene verzije niti da su zaštićeni slojevitom obranom. Međutim, preporučuju pažljiv pregled svake potpisane transakcije i održavanje dobrih praksi provjere.

Upozorenje za developere je jasno: ako projekt ažurirane ovisnosti tijekom prozora za potvrdu (commit), dobra je ideja revidirati cijelo stablo i ponovno ga izgraditi s čistim verzijama, čak i ako aplikacija ne obrađuje kriptovalute izravno.

Što bi programeri i timovi trebali učiniti

Osim neposredne sanacije, organizacije bi trebale usvojiti kontrole lanca opskrbe kako bi se smanjila površina napada u JavaScript i Node.js okruženjima. Prioritetne mjere uključuju:

  • Prikvačivanje verzija i korištenje lockfiles-ova; onemogućavanje automatskih ažuriranja u produkciji.
  • Provjerite potpise, kontrolne zbrojeve i podrijetlo; implementirajte politike pregleda prije objavljivanja.
  • Omogućite 2FA s FIDO sigurnosnim ključevima i rotiraj tokene i tajne izložen.
  • Integrirajte skenere ovisnosti i SBOM-ove; pratite neočekivane promjene u kritičnim paketima.
  • Reproducirajte čiste verzije i brzo se vratite na prethodnu verziju pri znakovima kompromitiranja.

Za krajnje korisnike, savjet ide kroz provjerite adresu i iznos na uređaju Prije potpisivanja, budite oprezni s neočekivanim skočnim prozorima i pauzirajte operacije ako primijetite čudno ponašanje na uobičajenim web stranicama ili dApp-ovima.

Kronologija i protagonisti

Zajednica je otkrila kampanju početkom tjedna, kada su se pojavile osobe iz sektora poput Tehnički direktor Ledgera Charles Guillemet, upozorio je na rizik od prodiranja ovih biblioteka u gotovo svaki JavaScript stog. Nekoliko sati kasnije, timovi poput Blockaida i Aikida podijelili su popise analiziranih paketa i artefakata.

Vlasnik povezanog s kompromitiranim računom potvrdio je na društvenim mrežama da je bio žrtva prijevara s 2FA resetiranjem i ispričao se dok je koordinirao s npm-om uklanjanje zlonamjernih objava. Pružatelj registra naznačio je da surađuje s istraživačima kako bi zatvorio nedovršene poslove i ojačao kontrole.

Iako sve ukazuje na ograničena ekonomska štetaEpizoda jasno pokazuje da sigurnost JavaScript ekosustava ovisi o zaštiti identiteta održavatelja, jačanju izdanja paketa i pretpostavci da su ovisnosti kritična veza; jačanje ovih točaka smanjuje vjerojatnost sličnog incidenta koji ponovno otvara vrata napadačima.