Supply chain-aanval: hoe hackers vertrouwde software als wapen gebruiken
Stel je een fabriek voor die onderdelen levert aan honderden autobedrijven. Een inbreker die ƩƩn auto wil saboteren, klimt over het hek van een garage. Maar wie slimmer en ambitieuzer is, sluipt de fabriek binnen en verstopt een gebrekkig onderdeel tussen de duizenden die de deur uitgaan. Dat ene moment van inbraak besmet ineens honderden bedrijven tegelijk, zonder dat iemand van hen doorheeft dat er iets mis is met wat ze net keurig via de officiƫle weg hebben binnengekregen.
Zo werkt een supply chain-aanval ook in de digitale wereld. In plaats van rechtstreeks een bedrijf of overheidsinstantie aan te vallen, richten hackers zich op een leverancier: een softwarebedrijf, een open source-programmeur of een updateserver waar veel andere organisaties op vertrouwen. Wie die ene schakel weet te besmetten, krijgt in ƩƩn klap toegang tot alle klanten die de software vervolgens braaf installeren, omdat het immers een vertrouwde, officiƫle update lijkt.
Wat is het precies?
Vrijwel geen enkel computerprogramma wordt vandaag de dag helemaal zelf gebouwd. Een applicatie bestaat doorgaans uit eigen code, aangevuld met tientallen tot honderden externe bouwstenen: opensource-bibliotheken, hulpprogramma's en diensten van andere partijen. Al die onderdelen samen vormen de softwareketen (supply chain) van een programma.
Een aanvaller kan op verschillende plekken in die keten toeslaan. Dat kan bij de broncode zelf, door een kwaadaardige wijziging te laten opnemen in een softwareproject ā bijvoorbeeld door het vertrouwen van een vrijwillige beheerder te winnen. Het kan ook bij het bouwproces, waar broncode wordt omgezet in een werkend programma; wie dat proces infiltreert, kan onopgemerkt schadelijke code toevoegen vlak voordat het eindproduct wordt verpakt. Een derde route loopt via het distributiekanaal: de server die updates verstuurt naar klanten. En ten slotte zijn er de openbare pakkettenregisters, zoals npm (voor JavaScript) of PyPI (voor Python), waar aanvallers een kwaadaardig pakket uploaden met een naam die lijkt op een populaire, legitieme bibliotheek.
Het venijnige zit in het vertrouwen. De besmette software wordt vaak digitaal ondertekend met een geldig certificaat van de Ć©chte leverancier, en komt binnen via een kanaal dat gebruikers en beveiligingssoftware juist als veilig bestempelen. Antivirusprogramma's en firewalls zijn ontworpen om verdacht, onbekend verkeer te herkennen ā niet om een officiĆ«le software-update van een bekende leverancier te wantrouwen.
Wat wil men ermee bereiken?
Het grote voordeel voor een aanvaller is schaal. EƩn succesvolle inbraak bij een leverancier kan toegang geven tot honderden of duizenden slachtoffers tegelijk, in plaats van dat elk doelwit apart bestookt moet worden. Dat maakt supply chain-aanvallen bijzonder efficiƫnt voor partijen met beperkte middelen maar een breed doel.
De precieze motieven verschillen per aanval. Bij spionagegerichte operaties, vaak toegeschreven aan statelijke actoren, gaat het om langdurige, onopgemerkte toegang tot gevoelige netwerken van overheden en bedrijven. Bij financieel gemotiveerde aanvallen draait het om het stelen van inloggegevens, bedrijfsgeheimen of cryptovaluta. En soms is het doel puur destructief: platgooien van systemen bij een specifiek doelwit, waarbij de bredere schade aan andere gebruikers wereldwijd op de koop toe wordt genomen.
Daarnaast heeft dit type aanval een bijeffect dat aanvallers soms bewust benutten: het ondermijnt het vertrouwen in software-updates en open source in het algemeen. Als organisaties niet meer zeker weten of een update wel echt van de leverancier komt, ontstaat er twijfel die verlammend kan werken.
Voorbeelden uit de praktijk
De aanval op SolarWinds in 2020 geldt als een van de bekendste voorbeelden. Aanvallers wisten het bouwproces van het netwerkbeheerprogramma Orion te infiltreren en voegden daar kwaadaardige code aan toe, bekend geworden als Sunburst. Zo'n 18.000 organisaties installeerden de besmette update, waarvan een kleiner aantal, waaronder Amerikaanse overheidsinstanties, daadwerkelijk verder werd aangevallen. Amerikaanse autoriteiten schreven de operatie toe aan een groep die wordt gelinkt aan de Russische buitenlandse inlichtingendienst SVR.
NotPetya, in juni 2017, verspreidde zich via een besmette update van het OekraĆÆense boekhoudprogramma M.E.Doc, dat veel OekraĆÆense bedrijven verplicht gebruikten voor belastingaangiften. Wat begon als een gerichte aanval op OekraĆÆne, groeide door de manier waarop het zich zelfstandig door netwerken verspreidde uit tot een wereldwijde ramp, met schade in de miljarden dollars bij onder meer rederij Maersk en farmaceut Merck. Westerse overheden schreven de aanval toe aan de Russische militaire inlichtingendienst GRU.
Bij het opensource-pakket event-stream nam in 2018 een onbekende de rol van beheerder over van de oorspronkelijke, drukbezette vrijwilliger. De nieuwe beheerder voegde een verborgen kwaadaardige afhankelijkheid toe, gericht op het stelen van bitcoin uit een specifieke cryptowallet-app die van het pakket gebruikmaakte. Het incident liet zien hoe kwetsbaar veelgebruikte, maar onderbemande opensource-projecten kunnen zijn.
In 2023 werd de bureau-applicatie van telefoniebedrijf 3CX besmet via een geldig ondertekend installatiebestand. Onderzoek wees uit dat dit een 'dubbele' supply chain-aanval was: de aanvallers waren eerder al binnengedrongen bij 3CX via een besmette versie van een heel ander programma, een handelsapplicatie die een medewerker had geĆÆnstalleerd. Onderzoeksbureau Mandiant koppelde de aanval aan een groep die wordt gelinkt aan Noord-Korea.
Een van de meest besproken recente gevallen is de XZ Utils-achterdeur, ontdekt in maart 2024. In het compressieprogramma xz, dat via een keten van afhankelijkheden ook in veel Linux-distributies en de SSH-inlogdienst terechtkomt, bleek een achterdeur te zitten die twee jaar lang geleidelijk was ingebouwd door een gebruiker die zich onder de naam 'Jia Tan' had opgewerkt tot mede-beheerder van het project. De achterdeur werd bij toeval ontdekt door softwareontwikkelaar Andres Freund, die opviel dat SSH-inlogpogingen net iets trager verliepen dan verwacht. Had hij dat niet opgemerkt, dan was de achterdeur mogelijk in stabiele versies van grote Linux-distributies terechtgekomen.
Hoe ver is de techniek?
Supply chain-aanvallen zijn geen technologie die naar volwassenheid toegroeit, maar een aanvalsmethode die de afgelopen tien jaar in populariteit en verfijning is toegenomen. Beveiligingsbedrijven die opensource-pakketregisters monitoren, rapporteren jaar op jaar duizenden nieuw ontdekte kwaadaardige pakketten op platforms als npm en PyPI, een aantal dat gestaag oploopt.
Een belangrijk obstakel voor verdedigers is de complexiteit van moderne software. Een gemiddelde applicatie leunt op honderden directe en indirecte afhankelijkheden, vaak beheerd door vrijwilligers zonder budget voor beveiligingsonderzoek, zoals het XZ-incident pijnlijk duidelijk maakte. Volledig overzicht houden over wat er precies in een softwareketen zit, is voor veel organisaties nog altijd lastig.
Een opkomend en nog onzeker risico is dat AI-codeassistenten soms niet-bestaande pakketnamen 'verzinnen' (hallucineren), waarna kwaadwillenden die namen alvast registreren met kwaadaardige inhoud, in de hoop dat een ontwikkelaar de suggestie van de AI blindelings overneemt. Onderzoekers noemen dit soms 'slopsquatting'; hoe groot dit risico in de praktijk wordt, is nog niet goed te zeggen.
Aan de verdedigende kant zijn er wel duidelijke mijlstenen. Na de SolarWinds-aanval vaardigde de Amerikaanse overheid in 2021 een presidentieel decreet uit dat softwareleveranciers aan de federale overheid verplicht een 'ingrediƫntenlijst' te leveren van hun software, een zogeheten Software Bill of Materials (SBOM). Kaders zoals SLSA, voor het beveiligen van bouwprocessen, en hulpmiddelen zoals Sigstore, voor het digitaal ondertekenen van software, winnen terrein. Toch is de toepassing van dit soort maatregelen buiten de grootste techbedrijven en overheidsleveranciers nog allesbehalve standaard.
Wie werken eraan?
Aan de verdedigende kant spelen overheidsinstanties een coƶrdinerende rol. In de Verenigde Staten publiceert het Cybersecurity and Infrastructure Security Agency (CISA) waarschuwingen en richtlijnen, terwijl het Amerikaanse standaardiseringsinstituut NIST kaders opstelt zoals de Secure Software Development Framework. In Europa vervult ENISA, het Europese agentschap voor cyberbeveiliging, een vergelijkbare rol, en in Nederland is dat het Nationaal Cyber Security Centrum (NCSC-NL), dat de overheid en vitale sectoren informeert over dreigingen.
In de opensource-wereld coƶrdineert de Open Source Security Foundation (OpenSSF), onderdeel van de Linux Foundation, projecten als SLSA en Sigstore, met steun van onder meer Google, Microsoft en Red Hat. Commerciƫle partijen zoals Sonatype, Snyk, Chainguard en JFrog bouwen tools die bedrijven helpen hun softwareafhankelijkheden in kaart te brengen en te controleren op bekende kwetsbaarheden. GitHub, in handen van Microsoft, biedt met functies als Dependabot ingebouwde scanning voor miljoenen opensource-projecten.
Aan de aanvallende kant zijn, blijkens publieke toeschrijvingen door westerse overheden, vooral statelijke actoren en aan hen gelieerde groepen actief, zoals de eerder genoemde Russische en Noord-Koreaanse groepen. Wie precies achter de XZ Utils-achterdeur zat, is officieel nog niet vastgesteld; de identiteit 'Jia Tan' wordt breed aangenomen als een dekmantel, maar een bevestigde toeschrijving aan een land of groep ontbreekt vooralsnog.