Mastra on suosittu JavaScript- ja TypeScript-kehys tekoälysovellusten ja -agenttien rakentamiseen. Vaarantuneiden pakettien yhteenlaskettu latausmäärä ylitti 1,1 miljoonaa viikossa . Microsoft yhdisti operaation Sapphire Sleet -ryhmään suurella varmuudella 19. kesäkuuta 2026 .
Hyökkäyksessä hyödynnettiin tuttua mutta tehokasta toimitusketjuriskiä: yhtä luotettua ylläpitäjätiliä ja sen laajoja julkaisuoikeuksia.
Hyökkääjät kohdistivat sosiaalisen manipuloinnin Mastran lailliseen ylläpitäjään ja saivat haltuunsa tämän npm-tunnukset . Kaapattu tili, ehindero, pystyi julkaisemaan paketteja koko @mastra-nimitilassa .
Kaapattua tiliä käytettiin kaikkien nimitilan pakettien uudelleenjulkaisemiseen noin 88 minuutin aikana. Joidenkin raporttien mukaan suurin julkaisupyrähdys tapahtui vain 19 minuutissa . Nopeus viittaa automatisoituun julkaisuohjelmaan eikä yksittäisiin käsin tehtyihin latauksiin.
Jokaiseen vaarantuneeseen pakettiversioon lisättiin riippuvuus nimeltä easy-day-js. Nimi muistuttaa laillista ja laajasti käytettyä dayjs-päivämääräkirjastoa – kyseessä oli niin sanottu typosquatting eli kirjoitusasuun perustuva huijaus . Turvallisuustutkijat ovat nimenneet kampanjan easy-day-js:n mukaan .
Pakettien haitallinen koodi oli sidottu npm:n postinstall-skriptiin. Käytännössä jo npm install -komennon suorittaminen saattoi käynnistää hyötykuorman; sovellusta ei tarvinnut ensin ajaa .
Hyötykuorma myös poisti TLS-varmenteiden tarkistuksen käytöstä ja latasi hyökkääjien hallitsemasta infrastruktuurista toisen vaiheen varastajan .
Haittaohjelma etsi kehittäjien työasemilta ja rakennusympäristöistä muun muassa kryptovaluuttalompakoiden avaimia, pilvipalvelujen tunnuksia sekä CI/CD-putkien salaisuuksia . CI/CD tarkoittaa ohjelmiston jatkuvan integraation ja toimituksen automaatiota, jota käytetään esimerkiksi testaukseen ja julkaisemiseen.
Microsoft arvioi 19. kesäkuuta suurella varmuudella, että operaation takana oli Sapphire Sleet, pohjoiskorealainen valtiollinen toimija, joka kohdistaa toimintaansa erityisesti rahoitus- ja kryptovaluuttasektoreihin . Arvio perustui hyökkäyksessä havaittuun infrastruktuuriin sekä aiemmista operaatioista tuttuihin toimintatapoihin, tekniikoihin ja menetelmiin eli TTP-malleihin .
Amazon Threat Intelligence on lisäksi yhdistänyt saman toimijan aiempiin npm-kampanjoihin, joissa kohteina olivat muun muassa axios-, debug-, chalk- ja typo-crypto-paketit .
Mastra-tapaus korosti riskiä, jonka pitkäikäiset julkaisutunnisteet aiheuttavat. Microsoft ilmoitti jo valmistelemistaan muutoksista, joiden tarkoitus on pienentää varastettujen avainten käyttöikkunaa.
Microsoftin perustelu on suoraviivainen: pitkään voimassa olevat API-avaimet ovat helposti hukattavia merkkijonoja ja yksi keskeisistä toimitusketjuhyökkäysten väylistä . Jos hyökkääjä saa avaimen haltuunsa, hänelle voi avautua pitkä aika julkaista luotettavalta näyttäviä, mutta troijalaistettuja paketteja.
Microsoft suosittelee ylläpitäjiä siirtymään Trusted Publishing -malliin. Syyskuussa 2025 julkaistu toimintatapa käyttää pitkäikäisten API-avainten sijaan OpenID Connect - eli OIDC-todennusta .
Mallin tärkeimmät hyödyt ovat seuraavat :
Kun Trusted Publishing -mallia käyttävä työnkulku käynnistyy, CI/CD-palvelu, kuten GitHub Actions, pyytää palveluntarjoajalta kryptografisesti allekirjoitetun OIDC-tunnisteen. NuGet.org tarkistaa tunnisteen rekisteröityä julkaisukäytäntöä vasten ja myöntää kyseistä julkaisukertaa varten väliaikaisen, kertakäyttöisen API-avaimen .
Microsoftin toimet ovat osa laajempaa muutosta pakettirekistereissä:
npm login antaa nykyisin kaksituntisen istuntotunnisteen .Tavoitteena on estää juuri Mastra-hyökkäyksen kaltainen tilanne: yhden pitkäikäisen ja heikosti suojatun ylläpitäjätunnisteen avulla voidaan julkaista haitallisia päivityksiä kokonaisen pakettinimitilan laajuudelta.
npm install --ignore-scripts tai asetus ignore-scripts = true voi estää haitallisen postinstall-skriptin automaattisen suorittamisen .Mastra-tapauksen keskeinen opetus ei ole vain se, että yksittäinen paketti voi olla haitallinen. Myös luotettu ylläpitäjätili, laajat julkaisuoikeudet ja pitkään voimassa oleva tunniste muodostavat yhdessä riskin, joka voi levitä nopeasti tuhansiin kehitysympäristöihin.