Avoimen lähdekoodin tietoturvan historia on täynnä esimerkkejä katastrofaalisista epäonnistumisista ja läheltä piti -tilanteista. Syyskuun alussa havaittu kryptohaittaohjelmakampanja sijoittuu jonnekin näiden kahden välimaastoon. raportittunnistamaton uhkatoimija vaaransi yhden npm:n ylläpitäjän tilin ja käytti tätä pääsyä haitallisen koodin levittämiseen paketteihin, joilla on yli kaksi miljardia viikoittaista latausta.

Sitä on jo kuvailtu npm:n historian suurimmaksi toimitusketjun kompromissiksi – npm on itsessään maailman suurin ohjelmistorekisteri. Jos tämä on merkki tulevasta, miten avoimen lähdekoodin yrityskäyttäjät voivat suojautua kasvavilta kyberriskeiltä?

Mitä npm:lle tapahtui?

Syyskuun 8. päivänä kehittäjä ja avoimen lähdekoodin ylläpitäjä Josh Junon (eli ”qix”) paljasti sosiaalisessa mediassa, että hänen npm-tilinsä oli murtauduttu. Hän sai tietää asiasta sen jälkeen, kun tili alkoi julkaista troijalaisia ​​versioita suosituista paketeista, kuten chalk (300 miljoonaa viikoittaista latausta), debug (357 miljoonaa) ja ansi-styles (371 miljoonaa).

Haitallinen koodi "sieppaa hiljaa krypto- ja web3-toiminnan selaimessa, manipuloi lompakoiden vuorovaikutusta ja kirjoittaa maksukohteet uudelleen siten, että varat ja hyväksynnät ohjataan hyökkääjän hallitsemille tileille ilman käyttäjälle ilmeisiä merkkejä", mukaan. Aikido.

Junonin kerrottiin joutuneen hienostuneen sosiaalisen manipuloinnin kohteeksi. Uhkatoimijat rekisteröivät kirjoitusvirheellisen verkkotunnuksen useita päiviä aiemmin ja käyttivät sitä esiintyäkseen laillisina npm-ylläpitäjinä kaksivaiheisen todennuksen palautusviestissä. Junonin mukaan se "näytti erittäin lailliselta".

Onnekas pako?

Lopulta avoimen lähdekoodin yhteisö kokoontui yhteen ja – vaikuttavaa kyllä ​​– kaikki haitalliset pakettiversiot oli poistettu alle neljässä tunnissa.

”Kaikki työskentelevät yhdessä. Tietoa voidaan jakaa. Tämän parissa työskentelevien ihmisten määrä ei ole pelkästään suurempi kuin tietoturvatiimisi, vaan se on suurempi kuin yrityksesi”, sanoi Anchore, tietoturvajohtaja. Josh Bressers. Tuolloin raporttien mukaan uhkatoimijat olivat onnistuneet varastamaan uhrien kryptolompakoista alle 1000 dollaria, vaikka kampanjan potentiaalisesti ulottuva alue oli valtava.

Tarina ei kuitenkaan ollut siinä. Jopa lyhyessä ajassa, jonka paketit liikkuivat vapaasti, ne levisivät laajalle. Tietoturvatoimittaja Wizin mukaan 10 % pilviympäristöistä olivat vaikuttaneet.

”Lyhyen kahden tunnin aikana, jolloin versiot olivat ladattavissa, kaikki kyseistä verkkosivustoa lataavat selaimet, jos ne olisi sisällytetty käyttöliittymän koontiversioihin ja toimitettu verkkoresursseina, suorittaisivat haitallisen hyötykuorman, joka kytkeytyisi verkko- ja lompakko-API-rajapintoihin kirjoittaakseen kryptovaluuttojen vastaanottajat/hyväksynnät hiljaa uudelleen ennen allekirjoittamista, jotta tapahtumat ohjautuisivat hyökkääjän hallitsemiin lompakkoihin”, myyjä väitti.

Myöhemmin kävi ilmi, että uhkatoimijat kohdistivat iskujaan myös muihin ylläpitäjiin ja paketteihin, kuten duckdb:hen, proto-tinker-wc:hen, prebid-universal-creativeen sekä prebidiin ja prebid.js:ään. Vaikka onneksi haitallinen hyötykuorma oli "vain" kryptoa varastava haittaohjelma eikä jotain vakavampaa, se on varmasti varoitus tulevaisuudesta.

Ylläpitäjät tähtäimessä

Avoimen lähdekoodin genieä ei voi laittaa takaisin pulloon. Yli 6.6 biljoonaa avoimen lähdekoodin komponenttia ladattiin vuonna 2024, ja npm:n osuus oli 4.5 biljoonaa pyyntöä. SonatyyppiMutta on huolestuttavaa, että erittäin suosittujen pakettien ylläpitäjiin, joilla on usein aliresursseja ja ylikuormitusta, kohdistuu yhä enemmän hyökkäyksiä. Sonatypen alueellinen varatoimitusjohtaja Mitun Zavery vertaa tätä viimeisintä kampanjaa aiempaan... kohdistaen xz Utilsiin viime vuonna.

”Olemme nähneet selkeän kaavan, jossa uhkatoimijat kohdistavat hyökkäyksensä laajalti käytettyjen mutta aliresursoitujen projektien ylläpitäjiin. Äskettäinen npm-pakettien, kuten Chalkin ja Debugin, vaarantuminen heijastelee sitä, mitä havaitsimme xZ Utils -takaoviyrityksen yhteydessä. Molemmissa tapauksissa vastustaja rakensi kärsivällisesti luottamusta saadakseen hallinnan, mikä osoittaa, että sosiaalinen manipulointi on nyt keskeinen vaihe toimitusketjun vaarantamisessa”, hän kertoo ISMS.online-sivustolle.

”Alan on tunnustettava, että avoimen lähdekoodin ylläpitäjät ovat osa kriittistä infrastruktuuriamme, ja aloitettava niiden resurssointi vastaavasti rahoituksella, tietoturvatyökaluilla ja tukiverkostoilla. Työmme xz Utils -ratkaisujen parissa osoitti, että yhteistyöhön perustuva varhaisvaroitus ja nopea reagointi koko ekosysteemissä voivat pysäyttää nämä hyökkäykset ennen niiden leviämistä.”

Oletetaan kompromissi

JFrogin tietoturvatutkimuksen varapuheenjohtaja Sachar Menashe väittää, että tällaisten hyökkäysten haasteena on niiden nopeus.

”Kun luotettu paketti vaarantuu, se voi levitä nopeasti CI/CD-putkissa ja projektien välillä. Nollaluottamuslähestymistapa on ratkaisevan tärkeä: mihinkään pakettiin ei pitäisi luottaa pelkästään siksi, että se on suosittu”, hän kertoo ISMS.online-sivustolle. ”Näiden hyökkäysten lieventämiseksi organisaatioiden tulisi pakottaa kaksivaiheinen todennus. Tätä noudatetaan jo npm:ssä ja PyPI:ssä, mutta ei muissa tietovarastoissa, kuten Mavenissa ja NuGetissa.”

Ihannetapauksessa paketit tulisi tarkistaa ennen kuin ne saapuvat organisaatioon, määritellyillä säännöillä ja analysoimalla suoria ja transitiivisia riippuvuuksia kontekstissa, Menashe jatkaa.

”Päivitysten lykkääminen auttaa myös. Itse asiassa tutkimuksemme osoittaa, että vähintään 14 päivän odottaminen ennen uusien pakettiversioiden käyttöönottoa tarjoaa vahvan suojan, koska kaapatut paketit havaitaan ja poistetaan lähes aina tämän ajan kuluessa”, hän sanoo.

Sonatypen Zavery väittää, että näkyvyys avoimen lähdekoodin komponentteihin ja paketteihin on myös avainasemassa.

”Organisaatioiden on oletettava, että tietomurto on mahdollista, ja oltava valmiita reagoimaan ylläpitämällä tarkkoja ohjelmistojen osaluetteloita (SBOM), seuraamalla epäilyttäviä riippuvuusmuutoksia ja testaamalla eristysversioita”, hän selittää. ”Kun tutkimme xz Utils -tapausta, näimme, kuinka tämä näkyvyys mahdollisti saastuneiden komponenttien nopean tunnistamisen ja poistamisen.”

Zaveryn mukaan myös turvallisuusstandardit voisivat auttaa organisaatioita.

”ISO 27001 -standardin kaltaiset viitekehykset voivat auttaa valvomalla kurinalaista riskienhallintaa, pääsynhallintaa ja tietoturvaloukkauksiin reagointia, mutta niitä on sovellettava toimitusketjun näkökulmasta”, hän päättelee. ”Avoimen lähdekoodin tietoturvakontrollien upottaminen näihin standardeihin voi tehdä organisaatioista kestävämpiä juuri nähdyn kaltaisille tilien haltuunotoille.”

Yksi asia on varma: nämä hyökkäykset palaavat voimakkaampina joka kerta. Vain päiviä tämän kampanjan alkamisen jälkeen ensimmäinen matoille leviävä haittaohjelma osuu npm-ekosysteemiin. Olipa tilanne mikä tahansa, tietoturvajohtajat eivät voi varaa avoimen lähdekoodin tietoturvan sokeaan pisteeseen organisaatiossaan.