Historien om open source-sikkerhed er fyldt med eksempler på katastrofale fejl og næsten-uheld. En krypto-malware-kampagne opdaget i begyndelsen af ​​september falder et sted mellem de to. Ifølge rapporter, kompromitterede en uidentificeret trusselsaktør en enkelt npm-vedligeholderkonto og implementerede med den adgang skadelig kode på tværs af pakker med over to milliarder ugentlige downloads.

Det er allerede blevet beskrevet som det største forsyningskædekompromis i npm's historie – i sig selv verdens største softwareregister. Hvis dette er et tegn på, hvad der kommer til at ske, hvordan beskytter virksomhedsbrugere af open source sig så mod den stigende cyberrisiko?

Hvad skete der med npm?

Den 8. september afslørede udvikler og open source-vedligeholder Josh Junon (også kendt som "qix") på sociale medier, at hans npm-konto var blevet kompromitteret. Han fandt ud af det, efter at kontoen begyndte at poste trojaniserede versioner af populære pakker som chalk (300 millioner ugentlige downloads), debug (357 millioner) og ansi-styles (371 millioner).

Den ondsindede kode "opfanger lydløst krypto- og web3-aktivitet i browseren, manipulerer interaktioner med tegnebøger og omskriver betalingsdestinationer, så penge og godkendelser omdirigeres til angriberkontrollerede konti uden tydelige tegn for brugeren," ifølge Aikido.

Junon blev angiveligt mål for et sofistikeret social engineering-angreb. Trusselaktørerne registrerede et typosquatting-domæne flere dage forinden og brugte det til at udgive sig for at være legitime npm-administratorer i en e-mail med nulstilling af tofaktorgodkendelse. Junon hævdede, at det "så meget legitimt ud".

En heldig flugt?

Til sidst samledes open source-fællesskabet, og – imponerende nok – var alle ondsindede pakkeversioner blevet fjernet mindre end fire timer senere.

"Alle arbejder sammen. Information kan deles. Antallet af personer, der nu arbejder på dette, er ikke bare større end dit sikkerhedsteam, det er større end din virksomhed," sagde Anchores sikkerhedsvicedirektør, Josh Bressers. Rapporter på daværende tidspunkt antydede, at trusselsaktørerne havde formået at stjæle mindre end $1000 fra ofrenes krypto-tegnebøger, på trods af kampagnens potentielt enorme rækkevidde.

Men det var ikke slutningen på historien. Selv i det korte tidsrum, hvor pakkerne cirkulerede vildt, spredte de sig vidt og bredt. Ifølge sikkerhedsleverandøren Wiz har 10 % af cloudmiljøerne blev påvirket.

"I løbet af den korte tidsramme på to timer, hvor versionerne var tilgængelige til download, ville enhver browser, der indlæste det berørte websted, hvis de blev integreret i frontend-builds og leveret som webaktiver, udføre en ondsindet nyttelast, der kobler netværks- og wallet-API'er for lydløst at omskrive kryptovalutamodtagere/godkendelser før underskrivelse, så transaktioner ville blive omdirigeret til angriberstyrede wallets," hævdede sælgeren.

Det kom senere frem, at trusselsaktørerne også var målrettet mod andre vedligeholdere og pakker, herunder duckdb, proto-tinker-wc, prebid-universal-creative, samt prebid og prebid.js. Selvom det er heldigt, at den ondsindede nyttelast "kun" var kryptostjælende malware snarere end noget mere alvorligt, er det helt sikkert en advarsel for fremtiden.

Vedligeholdere i sigtekornet

Der er ingen måde at smide open source-ånden tilbage på flasken. Over 6.6 billioner open source-komponenter blev downloadet i 2024, hvor npm tegnede sig for 4.5 billioner anmodninger, ifølge SonatypeMen det er bekymrende, at administratorer af enormt populære pakker, ofte underressourcede og overbelastede, bliver målrettet i større antal. Sonatypes regionale vicedirektør, Mitun Zavery, sammenligner denne seneste kampagne med den, der målrettet mod xz Utils sidste år.

"Vi har set et tydeligt mønster vise sig, hvor trusselsaktører går efter vedligeholdere af udbredte, men underressourcede projekter. Den nylige kompromittering af npm-pakker som chalk og debug afspejler, hvad vi observerede med xZ Utils-bagdørsforsøget. I begge tilfælde opbyggede modstanderen tålmodigt tillid for at få kontrol, hvilket viser, at social engineering nu er et nøglestadium i kompromittering af forsyningskæden," fortæller han til ISMS.online.

"Branchen skal erkende, at open source-vedligeholdere er en del af vores kritiske infrastruktur, og begynde at forsyne dem med finansiering, sikkerhedsværktøjer og supportnetværk i overensstemmelse hermed. Vores arbejde med xz Utils viste, at samarbejdsbaseret tidlig varsling og hurtig reaktion på tværs af økosystemet kan stoppe disse angreb, før de spreder sig."

Antag kompromis

JFrogs vicedirektør for sikkerhedsforskning, Sachar Menashe, argumenterer for, at udfordringen med sådanne angreb er deres hastighed.

"Når en betroet pakke er kompromitteret, kan den sprede sig hurtigt gennem CI/CD-pipelines og på tværs af projekter. En nul-trust-tilgang er afgørende: ingen pakke bør have tillid udelukkende fordi den er populær," fortæller han ISMS.online. "For at afbøde disse angreb bør organisationer kræve tofaktorgodkendelse. Dette håndhæves allerede i npm og PyPI, men ikke i andre repositories som Maven og NuGet."

Ideelt set bør pakker kontrolleres, før de kommer ind i en organisation, med definerede regler og analyse af direkte og transitive afhængigheder i kontekst, fortsætter Menashe.

"Det hjælper også at udsætte opgraderinger. Faktisk viser vores forskning, at det giver en stærk sikkerhedsforanstaltning at vente mindst 14 dage, før nye pakkeversioner implementeres, da kaprede pakker næsten altid opdages og fjernes inden for denne tidsramme," siger han.

Sonatypes Zavery argumenterer for, at indsigt i open source-komponenter og -pakker også er nøglen.

"Organisationer skal antage, at kompromittering er mulig, og være klar til at reagere ved at vedligeholde nøjagtige softwarestyklister (SBOM'er), overvåge mistænkelige afhængighedsændringer og sandboxe-builds," forklarer han. "Da vi undersøgte xz Utils-hændelsen, så vi, hvordan denne synlighed gjorde det muligt hurtigt at identificere og fjerne inficerede komponenter."

Sikkerhedsstandarder kan også hjælpe organisationer, argumenterer Zavery.

"Rammer som ISO 27001 kan hjælpe ved at håndhæve disciplinerede risikostyrings-, adgangskontrol- og hændelsesresponsprocesser, men de skal anvendes med et forsyningskædeperspektiv," konkluderer han. "Integrering af open source-sikkerhedskontroller i disse standarder kan gøre organisationer mere modstandsdygtige over for den slags kontoovertagelser, vi lige har set."

Én ting er sikkert: disse angreb vil blive ved med at komme tilbage stærkere hver gang. Blot få dage efter at denne kampagne startede, den første ormekompatibele malware nogensinde ramte npm-økosystemet. Uanset hvad der sker, har CISO'er ikke råd til at have en blind plet i open source-sikkerhed i deres organisation.