Stel, je wilt als cracker geen achterdeuren vinden maar achterdeuren maken. Wat dan? Dan is het een optie om via GitHub binnen te dringen in vele andere projecten, en een supply chain-aanval uit te voeren die duizenden CI/CD-pijplijnen raakt.
Maart 2025 werd gekenmerkt door een grootschalige supply chain-aanval die de kwetsbaarheid van CI/CD-omgevingen blootlegde. Een kwaadaardige wijziging in een populaire GitHub Action leidde tot het uitlekken van gevoelige gegevens bij duizenden organisaties wereldwijd.
De aanval: van reviewdog naar duizenden repositories
De aanval begon met de compromittering van de GitHub Action reviewdog/action-setup@v1
. Deze werd aangepast om geheime tokens te loggen in de workflow-logs. Vervolgens werd deze kwaadaardige versie opgenomen in tj-actions/eslint-changed-files
, een actie die door meer dan 23.000 projecten wordt gebruikt. Hierdoor werden CI/CD-omgevingen van meer dan 4.000 organisaties blootgesteld aan datalekken.
Impact op grote spelers
Onder de getroffen organisaties bevond zich ook Coinbase, waarbij de agentkit
-repository specifiek werd genoemd. Hoewel er geen directe schade werd gemeld, benadrukt dit incident de risico's van het vertrouwen op externe acties binnen CI/CD-pijplijnen.
Kwetsbaarheden in versiebeheer
Een belangrijke factor in de verspreiding van de aanval was het gebruik van mutable versie-tags zoals @v1
. Deze tags verwijzen naar veranderlijke versies, waardoor kwaadaardige wijzigingen ongemerkt kunnen worden doorgevoerd. Dit onderstreept het belang van het gebruik van specifieke commit-hashes of immutable versie-tags om de integriteit van CI/CD-pijplijnen te waarborgen.
Wat kunnen organisaties doen?
- Gebruik specifieke versies: Vermijd het gebruik van mutable tags zoals
@latest
of@v1
. Verwijs in plaats daarvan naar specifieke commit-hashes. - Beperk toegang tot secrets: Zorg ervoor dat secrets alleen beschikbaar zijn voor de noodzakelijke stappen binnen de workflow.
- Implementeer monitoring: Houd logs en workflows nauwlettend in de gaten op ongebruikelijke activiteiten.
- Voer regelmatige audits uit: Controleer regelmatig de gebruikte acties en dependencies op integriteit en herkomst.
Als je leunt op het werk van anderen, dan zul je je dat werk moeten blijven controleren om te voorkomen dat via ‘geleende’ code achterdeuren in je eigen software ontstaan.
Kortom, het vertrouwen op externe componenten vereist een verhoogd bewustzijn en proactieve maatregelen om de integriteit van softwareleveringsprocessen te waarborgen.