Tietoturva Nyt!
Uusi haittaohjelma leviää laajasti NPM-ekosysteemissä. Se on kohdistettu erityisesti suosittujen julkaisijoiden, kuten Zapier ja ENS Domains, paketteihin. Shai-Hulud: the Second Coming -nimellä tunnettu hyökkäys tartuttaa npm-paketteja ja kerää niitä käyttävistä järjestelmistä tunnuksia sekä arkaluontoisia tietoja. Tartunta leviää edelleen uusiin koodijakeluihin ja käyttöympäristöihin täysin ilman tai vain vähäisellä ihmisen avustuksella hyödyntäen ympäristöön luotuja automaatioita. Hyökkäys aiheuttaa kehittäjäympäristöille merkittävän tietoturvariskin ja rapauttaa luottamusta ohjelmistojen toimitusketjuihin. Organisaatioiden tulee tarkistaa kehitysinfrastruktuurit tartuntojen varalta, poistaa käytöstä vaarantuneet paketit ja kierrättää altistuneet salaisuudet.
Shai-Hulud 2.0 on NPM-ympäristössä (Node Package Manager) leviävä mato, joka on suunniteltu leviämään nopeasti itsestään ohjelmistokehittäjien kehitysympäristöjen kautta. Mato asentuu kehitysympäristöön, kun käyttäjä ottaa käyttöön saastuneen npm-paketin.
Jalansijan saatuaan mato etsii TruffleHog-työkalulla kohteesta salaisuuksia kuten API-avaimia ja tunnisteita, GitHub- ja npm-tunnuksia, pilvitunnuksia (AWS, Google Cloud, Azure) sekä ympäristömuuttujia. Löytämänsä tiedot se julkaisee julkiseen GitHub-repositorioon. Tämän jälkeen mato julkaisee uusia kopioita itsestään saataville npm-pakettikokoelmaan varastamillaan käyttäjätunnuksilla levitäkseen edelleen. Samalla se siirtää varastetut tiedot hyökkääjälle.
Erona edelliseen syyskuussa nähtyyn Shai-Hulud-aaltoon on muun muassa se, että mato luo satunnaisesti nimetyn GitHub-repositorion varastetulle datalle aiemman kovakoodatun nimen sijaan. Lisäksi se pyrkii julkaisemaan jopa 100 saastutettua npm-pakettia leviämisensä tukemiseksi. Jos mato ei pysty tunnistautumaan GitHub- tai npm-palveluihin, tuhoaa se kaikki käyttäjän kotihakemiston tiedostot.
Madon leviäminen on ollut erittäin nopeaa ja se on tartuttanut useita suosittuja npm-paketteja. Näiden joukossa on ollut lukuisia Zapier-, ENS Domains-, PostHog- ja Postman-julkaisijoiden paketteja. Uusia haittakoodin sisältäviä paketteja tunnistetaan jatkuvasti.
Haittaohjelma käynnistyy hiljaisesti saastuneen paketin asennuksen aikana. Tämä antaa haittaohjelmalle pääsyn kehitysympäristöön, eli tyypillisesti kehittäjän koneeseen tai koodia käsitteleviin automaatiojärjestelmiin. Haittaohjelman asentuminen ei aina vaadi saastuneen paketin nimenomaista asentamista, vaan on mahdollista ladata saastunut paketti automaattisesti toisen paketin riippuvuutena.
Jos madon varastamien tietojen joukossa on tunnuksia muihin koodirepositorioihin tai pakettijakeluihin, hyökkääjät voivat käyttää niitä murtautuakseen edelleen tileihin ja julkaistakseen lisää saastutettuja paketteja. Näitä palveluja käytetään laajasti ohjelmistotuotannossa ja kehittäjät luottavat erityisesti tunnettujen käyttäjien ja organisaatioiden julkaisemiin paketteihin.
Riski ei siis rajoitu vain npm-paketteja julkaisevien kehittäjien ympäristöihin ja tietokoneisiin, vaan kaikkien npm-paketteja käyttävien tahojen tunnukset ja salaisuudet sekä tiedostot ovat vaarassa. npm-paketteina toimitettua koodia on käytössä myös yksittäisillä edistyneillä käyttäjillä.
Erityisesti kaikkien NPM:ää käyttävien organisaatioiden sekä kehittäjien tulisi välittömästi tarkistaa, ovatko he altistuneet, ja vaihtaa mahdollisesti vuotaneet tunnukset. Suosittelemme myös keskeyttämään mahdolliset automaattiset npm-pakettien päivitykset siksi aikaa, että madon leviäminen on saatu pysähtymään.
Toimenpidesuositukset
Tartuntojen havaitsemiseksi ja estämiseksi organisaatioiden tulisi ensin tarkistaa koko kehitysinfrastruktuurinsa epäilyttävien merkkien varalta. Erityisesti tulisi etsiä tunnettuja tartunnan saaneita paketteja. Tartunnan saaneet paketit tulisi poistaa välittömästi ja automaattiset pakettipäivitykset kytkeä tilapäisesti pois päältä. Tartuntaepäilyn sattuessa ylläpitäjien tulisi kierrättää kaikki käyttöoikeustiedot.
Tiedota organisaatiosi kehittäjiä meneillään olevasta uhasta
- Voit linkittää tämän tiedotteen organisaatiosi kehittäjille ja turvallisuudesta vastaaville
Skannaa oma kehitysinfrastruktuuri haitallisten merkkien ja tartunnan saaneiden pakettien osalta
- Poista heti käytöstä vaarantuneet paketit
- Lista vahvistetuista vaarannetuista paketeista esimerkiksi täällä:
- Indicators of compromise https://about.gitlab.com/blog/gitlab-discovers-widespread-npm-supply-chain-attack/#indicators-of-compromise (Ulkoinen linkki)
- Confirmed Compromised Packages (Live Updates) https://www.koi.ai/incident/live-updates-sha1-hulud-the-second-coming-hundred-npm-packages-compromised (Ulkoinen linkki)
- Suosittelemme myös npm-pakettien päivittämisen keskeyttämistä joksikin aikaa, jotta riski madon leviämisestä omaan ympäristöön pienenee ja haittaohjelmakampanjan leviäminen pysähtyy
Kierrätä kaikki käyttöoikeustiedot ja salaisuudet
- Peruuta ja luo uudelleen npm-tokenit, GitHub PAT -avaimet, SSH-avaimet ja pilvipalveluiden tunnisteet
- Ota käyttöön monivaiheinen tunnistautuminen kehittäjien ja CI/CD-tileille
Poista ja korvaa vaarantuneet paketit
- Tyhjennä npm-välimuisti: "npm cache clean --force" & "rm -rf node_modules"
- Lukitse riippuvuudet tunnetusti puhtaisiin versioihin tai palauta niistä puhtaat versiot
Tarkasta GitHub- ja CI/CD-ympäristöt
- Etsi uusia repositorioita, joiden kuvauksessa esiintyy “Shai-Hulud”
- Tarkista luvattomat workflow’t tai epäilyttävät commitit, jotka viittaavat matoon
- Valvo organisaatiosi uusia npm-julkaisuja
Vahvista käytössä olevat kehitysputket
- Rajoita tai poista käytöstä lifecycle-skriptit (postinstall, preinstall) CI/CD-ympäristöissä
- Rajoita järjestelmien ulosmenevä verkkoliikenne vain luotettuihin verkkotunnuksiin
- Käytä automaatioissa lyhytikäisiä, rajattuihin oikeuksiin sidottuja token-avaimia
Löydät lisätietoja esimerkiksi alla olevien linkkien kautta.
Ilmoita Kyberturvallisuuskeskukselle
Kyberturvallisuuskeskus vastaanottaa mielellään havaintoja ilmiöön liittyen. Ilmoituksen voi tehdä verkossa alla olevasta linkistä.