Dinsdagochtend, kwart over negen. Je securityteam opent het dashboard en scrollt door de resultaten van de vulnerability scanner die net heeft gedraaid. Drie kritieke kwetsbaarheden, twee medium, de rest laag risico. Het team prioriteert, plant de fixes en werkt de lijst af. Tot zover een normale werkdag.

Maar stel dat de scanner zelf is besmet. Dat elke scan kwetsbaarheden rapporteert én tegelijkertijd inloggegevens doorstuurt naar een aanvaller. De monitoring bleef stil en niets in het gedrag van de tool wees op een probleem. De scanner deed wat hij beloofde, en daarnaast iets waar niemand om had gevraagd.

Dat is precies wat er gebeurde bij een van de meest gebruikte open-source scanners ter wereld. En de gevolgen reikten veel verder dan die ene tool.

Hoe de aanval zich verspreidde

Het begon bij Trivy, een open-source vulnerability scanner van Aqua Security die duizenden organisaties dagelijks gebruiken om containers, code en cloudconfiguraties te controleren. Aanvallers kregen toegang tot het proces waarmee nieuwe versies van Trivy worden gebouwd en uitgerold, en injecteerden daar malware die inloggegevens stal.

Daarna overschreven ze de versielabels op GitHub, de verwijzingen waarmee organisaties automatisch de nieuwste release ophalen. Wie Trivy bijwerkte via die labels, haalde zonder het te weten een besmette versie binnen.

Met de gestolen GitHub-inloggegevens werkten de aanvallers zich verder. Ze compromitteerden Checkmarx KICS, een veelgebruikt hulpmiddel dat automatisch infrastructuurconfiguraties controleert binnen GitHub. Via PyPI, het centrale register voor Python-pakketten, infecteerden ze LiteLLM.

Meer dan 33.000 computers van ontwikkelaars raakten besmet. De aanvallers maakten ruim 3.700 wachtwoorden, tokens en andere geheimen buit.

Bij de Telnyx Python SDK kaapten ze de rechten om nieuwe versies te publiceren en verspreidden malware die gestolen gegevens verborg in afbeeldingen, onzichtbaar voor standaard controles.

Elk gecompromitteerd pakket leverde nieuwe inloggegevens op, waarmee weer toegang ontstond tot volgende doelen. In totaal raakten 48 pakketten besmet in cloud-diensten, geautomatiseerde bouwstraten en Kubernetes-clusters. Eén besmette scanner groeide zo uit tot een keten die zichzelf voedde.

Wat er concreet verloren ging

De schade bleef niet beperkt tot gestolen wachtwoorden.

Cisco bevestigde dat inloggegevens uit de Trivy-keten werden gebruikt om meer dan 300 privé-codebibliotheken buit te maken. Daarin zat broncode van AI-producten en vertrouwelijke informatie van overheidsklanten.

Bij Mercor, een AI-recruitmentbedrijf, leidde dezelfde keten tot een datalek van 4 terabyte. Een klantenbestand van 211 gigabyte, kopieën van paspoorten en opnames van video-sollicitaties kwamen in handen van de aanvallers.

Beide organisaties hadden zelf niets verkeerd geconfigureerd. Ze hadden geen patch gemist en geen medewerker had op een verdachte link geklikt.

De tooling was bewust geselecteerd, geïnstalleerd en opgenomen in het beveiligingsproces. Juist dát onderdeel bleek de ingang.

Voor bestuurders is dat ongemakkelijk. De schade begon bij een tool die het securityteam dagelijks gebruikte om risico’s zichtbaar te maken. Het vertrouwen in die tool was precies wat de aanval mogelijk maakte.

Waar het vertrouwensmodel faalt

De meeste organisaties halen updates automatisch op via versielabels die altijd naar de nieuwste release verwijzen. Dat werkt snel en scheelt handmatig werk.

Maar een aanvaller die toegang krijgt tot zo’n label, kan de inhoud verwisselen zonder dat iemand het ziet. De volgende update bevat dan malware in plaats van een fix.

Securityteams controleren of een scan slaagt, of een build groen is, of tests doorlopen. Maar wie controleert de scanner zelf?

Zolang het dashboard groen kleurt en de rapporten er normaal uitzien, kijkt niemand verder. En dat is precies het moment waarop een aanvaller ongestoord kan meebewegen.

“Vertrouwen is geen uitgangspunt meer, maar een risico dat gemanaged moet worden.”
Leon Smit, General Manager Acora Nederland

Patchmanagement helpt hier niet. De kwetsbaarheid was geen bekende fout die wachtte op een update.

De aanval liep via de distributieketen van tooling waar organisaties actief op bouwden. De scanner draaide gewoon door en de rapporten zagen er normaal uit.

Builds bleven groen. Alles leek in orde terwijl de aanval al weken meebewoog.

Stel je een inbreker voor die het slot vervangt door een kopie die er identiek uitziet. De deur gaat open en dicht zoals altijd, alleen zit er nu iemand anders aan de sleutel. Zo werkt een gecompromitteerde scanner.

Wat je vandaag kunt controleren

Er zijn concrete stappen die het risico rond je toolketen verkleinen, zonder dat je hele beveiligingsarchitectuur op de schop moet.

Verwijs naar specifieke hashes in plaats van versielabels. Een SHA-256-hash is een unieke vingerafdruk van een bestand. Wijzigt iemand de inhoud, dan klopt de hash niet meer.

Bij de Trivy-aanval had deze ene maatregel voorkomen dat besmette versies ongemerkt werden binnengehaald.

Draai regelmatig de credentials terug die scanners en build-taken gebruiken. Bij deze campagne werden gestolen tokens pas dagen later ingezet voor vervolgaanvallen. Wie dat venster verkleint, breekt de keten voordat die zich kan uitbreiden.

Publicatie van pakketten hoort cryptografisch gekoppeld te zijn aan een geverifieerde bron, bijvoorbeeld via GitHub OIDC (een mechanisme dat publicatierechten koppelt aan een bewezen identiteit). Een aanvaller kan dan niet namens een legitieme ontwikkelaar publiceren zonder dat het opvalt.

Neem ook je toolketen mee in je beveiligingsaudits. Welke hulpmiddelen komen je builds binnen, welke rechten hebben ze en hoe vaak worden ze bijgewerkt? Tooling verdient dezelfde controle als de software die je ermee beoordeelt.

Controleer ook de controleur

Supply-chain-aanvallen richten zich op plekken waar organisaties stoppen met kijken. Tooling die als betrouwbaar geldt krijgt zelden een tweede blik, updates komen automatisch binnen en handmatige controles slaat vrijwel iedereen over.

De tijd tussen het moment dat een kwetsbaarheid openbaar wordt en het moment dat aanvallers die misbruiken, krimpt. Bij Trivy liep de aanval al weken voordat er iets bekend was. Wie in die tussentijd geen zicht heeft op wat zijn toolketen binnenhaalt, merkt het pas als de schade al is aangericht.

Elk securityteam weet welke kwetsbaarheden hun scanner vindt. Maar wanneer heb je voor het laatst gecontroleerd of die scanner zelf nog schoon is?

Wil je weten hoe dit er in jouw organisatie uitziet? Leon Smit denkt graag mee over concrete vervolgstappen.

Je bereikt ons via netherlands@acora.com of via de contactpagina.