De geschiedenis van open-sourcebeveiliging is bezaaid met voorbeelden van catastrofale mislukkingen en bijna-ongelukken. Een crypto-malwarecampagne die begin september werd ontdekt, valt ergens tussen die twee in. Volgens meldteen onbekende bedreigingsactor heeft één enkele npm-beheerdersaccount gecompromitteerd en met die toegang schadelijke code verspreid over pakketten met meer dan twee miljard wekelijkse downloads.
Het is al beschreven als het grootste compromis in de toeleveringsketen in de geschiedenis van npm – zelf het grootste softwareregister ter wereld. Als dit een voorbode is van wat komen gaat, hoe beschermen zakelijke gebruikers van open source zich dan tegen toenemende cyberrisico's?
Wat is er met npm gebeurd?
Op 8 september meldde ontwikkelaar en opensourcebeheerder Josh Junon (ook bekend als "qix") op sociale media dat zijn npm-account was gehackt. Hij ontdekte dit nadat zijn account trojanversies van populaire pakketten zoals chalk (300 miljoen wekelijkse downloads), debug (357 miljoen) en ansi-styles (371 miljoen) begon te posten.
De kwaadaardige code “onderschept op stille wijze crypto- en web3-activiteit in de browser, manipuleert interacties met wallets en herschrijft betalingsbestemmingen zodat fondsen en goedkeuringen worden omgeleid naar door de aanvaller gecontroleerde accounts zonder dat de gebruiker daar enig teken van heeft”, aldus Aikido.
Junon zou het doelwit zijn geweest van een geavanceerde social engineering-aanval. De hackers registreerden enkele dagen eerder een typosquattingdomein en gebruikten dit om zich voor te doen als legitieme npm-beheerders in een e-mail om de tweefactorauthenticatie te resetten. Junon beweerde dat het "er heel legitiem uitzag".
Een gelukkige ontsnapping?
Uiteindelijk kwam de open-sourcegemeenschap in actie en – indrukwekkend genoeg – waren alle kwaadaardige pakketversies minder dan vier uur later verwijderd.
"Iedereen werkt samen. Informatie kan worden gedeeld. Het aantal mensen dat hier nu aan werkt, is niet alleen groter dan je beveiligingsteam, maar ook groter dan je bedrijf", aldus Anchore, VP Security. Josh Bressers. Uit berichten uit die tijd bleek dat de daders minder dan $ 1000 uit de cryptowallets van slachtoffers hadden weten te stelen, ondanks het potentieel enorme bereik van de campagne.
Maar dat was niet het einde van het verhaal. Zelfs in de korte tijd dat de pakketten in het wild circuleerden, verspreidden ze zich wijd en zijd. Volgens beveiligingsleverancier Wiz is 10% van de cloudomgevingen werden beïnvloed.
"Gedurende het korte tijdsbestek van twee uur waarin de versies beschikbaar waren om te downloaden, zouden, als ze werden opgenomen in frontend-builds en verzonden als webassets, alle browsers die de getroffen website laadden een schadelijke payload uitvoeren die netwerk- en wallet-API's koppelt om stilletjes ontvangers/goedkeuringen van cryptovaluta te herschrijven vóór ondertekening, zodat transacties zouden worden omgeleid naar door aanvallers gecontroleerde wallets", beweerde de leverancier.
Later bleek dat de aanvallers zich ook richtten op andere beheerders en pakketten, waaronder duckdb, proto-tinker-wc, prebid-universal-creative, en prebid en prebid.js. Hoewel het een geluk is dat de kwaadaardige payload "slechts" crypto-stelende malware was, en niet iets ernstigers, is het zeker een waarschuwing voor de toekomst.
Beheerders in het vizier
De geest van open source is niet meer terug in de fles te krijgen. In 2024 werden er meer dan 6.6 biljoen open source-componenten gedownload, waarbij npm verantwoordelijk was voor 4.5 biljoen verzoeken, aldus sonatypeMaar het is zorgwekkend dat beheerders van enorm populaire pakketten, die vaak over te weinig middelen beschikken en overbelast zijn, steeds vaker het doelwit zijn. Sonatype Regional VP, Mitun Zavery, vergelijkt deze laatste campagne met die van vorig jaar gericht op xz Utils.
"We hebben een duidelijk patroon gezien waarbij cybercriminelen zich richten op beheerders van veelgebruikte, maar onderbemande projecten. De recente inbreuk op npm-pakketten zoals chalk en debug weerspiegelt wat we zagen bij de backdoor-poging van xZ Utils. In beide gevallen bouwde de aanvaller geduldig vertrouwen op om de controle te krijgen, wat aantoont dat social engineering nu een cruciale fase is in de inbreuk op de toeleveringsketen", vertelt hij aan ISMS.online.
De industrie moet erkennen dat open-sourcebeheerders deel uitmaken van onze kritieke infrastructuur en hen dienovereenkomstig voorzien van financiering, beveiligingstools en ondersteunende netwerken. Ons werk aan xz Utils heeft aangetoond dat gezamenlijke vroegtijdige waarschuwing en snelle reactie binnen het hele ecosysteem deze aanvallen kunnen stoppen voordat ze zich verspreiden.
Ga uit van een compromis
Sachar Menashe, VP van veiligheidsonderzoek bij JFrog, beweert dat de uitdaging bij zulke aanvallen de snelheid is.
"Zodra een vertrouwd pakket gecompromitteerd is, kan het zich snel verspreiden via CI/CD-pipelines en tussen projecten. Een zero-trust-aanpak is cruciaal: geen enkel pakket mag vertrouwd worden puur omdat het populair is", vertelt hij aan ISMS.online. "Om deze aanvallen te beperken, zouden organisaties tweefactorauthenticatie moeten verplichten. Dit wordt al afgedwongen in npm en PyPI, maar niet in andere repositories zoals Maven en NuGet."
Idealiter zouden pakketten gecontroleerd moeten worden voordat ze een organisatie binnenkomen, met gedefinieerde regels en een analyse van directe en transitieve afhankelijkheden in context, vervolgt Menashe.
"Het uitstellen van upgrades helpt ook. Sterker nog, ons onderzoek toont aan dat het wachten van minstens 14 dagen met de implementatie van nieuwe pakketversies een sterke bescherming biedt, aangezien gekaapte pakketten bijna altijd binnen dit tijdsbestek worden gedetecteerd en verwijderd", zegt hij.
Zavery van Sonatype stelt dat inzicht in open-sourcecomponenten en -pakketten ook essentieel is.
"Organisaties moeten ervan uitgaan dat een inbreuk mogelijk is en klaar zijn om te reageren door nauwkeurige softwarefacturen (SBOM's) bij te houden, te controleren op verdachte afhankelijkheidswijzigingen en builds te sandboxen", legt hij uit. "Toen we het xz Utils-incident onderzochten, zagen we hoe deze zichtbaarheid het mogelijk maakte om snel besmette componenten te identificeren en te verwijderen."
Zavery stelt dat beveiligingsnormen ook organisaties kunnen helpen.
"Kadersystemen zoals ISO 27001 kunnen helpen bij het afdwingen van gedisciplineerd risicomanagement, toegangscontrole en incidentresponsprocessen, maar ze moeten worden toegepast vanuit een supply chain-perspectief", concludeert hij. "Het integreren van open-source beveiligingsmaatregelen in deze standaarden kan organisaties weerbaarder maken tegen het soort accountovernames dat we zojuist hebben gezien."
Eén ding is zeker: deze aanvallen zullen steeds sterker terugkomen. Slechts enkele dagen nadat deze campagne van start ging, allereerste wormbare malware Wat er ook gebeurt, CISO's kunnen het zich niet veroorloven om een blinde vlek te hebben in hun organisatie wat betreft open-sourcebeveiliging.










