Stel: je organisatie doet alles goed. Firewalls, MFA, patchbeheer. En dan wordt ze alsnog gehackt — niet via jouw deur, maar via de updates van software die je vertrouwde. Dat is een software supply chain attack, en het is de afgelopen jaren uitgegroeid van bijzonderheid tot standaard repertoire.
Het idee in één zin
Je valt niet de organisatie aan, maar de weg waarlangs haar software binnenkomt: updates, installatiepakketten, externe bibliotheken of het bouwproces zelf. Compromitteer één schakel en je zit bij duizenden slachtoffers tegelijk binnen.
De patronen
- Geïnfecteerde updates: de bouwomgeving van een leverancier wordt gehackt, waardoor legitieme updates malware meenemen. Het klassieke voorbeeld is SolarWinds (2020), waarbij via een software-update duizenden organisaties werden getroffen — onder wie grote Amerikaanse overheidsdiensten.
- Backdoors in open-sourcepakketten: de XZ Utils-backdoor (2024) liet zien dat een geduldige aanvaller jaren kan investeren in vertrouwen om dan vlak voor opschaling een backdoor te plaatsen — ontdekt vlak vóór het uitrollen naar grote Linux-distributies.
- Pakketnaam-trucs: typosquatting (een pakket dat lijkt op een bekend pakket) en dependency confusion (een intern pakketnaam die publiek wordt geregistreerd, waarmee bouwpipelines de malware versie binnenhalen). Incidenten op npm en PyPI verschijnen vrijwel maandelijks.
- Gehackte maintainer-accounts: één account met gestolen toegang, en eenmalige codes van populaire pakketten bevatten payload.
Waarom dit blijft groeien
Omdat moderne software een berg aan afhankelijkheden is — honderden externe pakketten, via honderden handen. Elke update die automatisch binnenkomt, is een deur die op een haakje staat. Aanvallers zoeken de schakel met de minste bewaking, en dat is zelden de best beveiligde eindorganisatie.
Wat je als organisatie doet
- Weet wat je gebruikt: een actuele software-bill-of-materials (SBOM) per applicatie. Je kunt geen risico’s beperken in pakketten waarvan je het bestaan niet kent.
- Pin en lock: vaste versies en lockfiles, geen zwevende “latest”-afhankelijkheden.
- Minder afhankelijkheden: elke bibliothek die je schrapt is een deur minder. Kopiëren drie regels code soms beter dan een pakket van 40 MB.
- Ondertekening en verificatie: geverifieerde bronnen, signature-checks, en twee-factor-authenticatie op elk pakketbeheer- en repository-account (de goedkope stap die de meeste maintainer-hacks had tegengehouden).
- Bouwomgeving afschermen: CI/CD-pipelines zijn productiesystemen, geen bijzaak. MFA, minimale rechten, logging.
Wat je níet doet
Stoppen met updaten. “De update wordt gekaapt” is een reëel risico, maar “we patchen niet meer” geeft aanvallers een miljoen andere ingangen. Updaten blijft; alleen met pinning, verificatie en een signaal als iets onverwacht anders gedraagt.
Verder lezen en bronnen: zie onze bronnenpagina (oa MITRE CWE-1399 en OWASP Supply Chain-guidance).