Een computerscherm met programmacode in een donkere kamer
Nieuws27 juni · 22:425 min leestijd

Schone GitHub-repo laat AI-coderingsagent ongemerkt malware draaien

Mozilla's 0DIN toont hoe een schijnbaar schone GitHub-repo een AI-coderingsagent als Claude Code malware laat uitvoeren, simpelweg door hem een fout te laten oplossen. Elk bedrijf dat AI-codering inzet, moet zijn beleid herzien.

Een GitHub-repo zonder ook maar een regel kwaadaardige code kan je AI-coderingsagent toch malware op je machine laten installeren. Niet via een exploit, maar via iets veel banalers: een foutmelding die de agent netjes probeert op te lossen. Onderzoekers van 0DIN, het Zero Day Investigative Network van Mozilla, demonstreerden de aanval met Claude Code, maar het patroon bedreigt elke agentische codeertool die zelfstandig commando's uitvoert om een project aan de praat te krijgen.

Hoe de val dichtklapt

De repo oogt volkomen normaal, met gewone installatie-instructies. Het venijn zit in een meegeleverd Python-pakket dat weigert te starten en een behulpzame foutmelding teruggeeft: draai eerst python3 -m axiom init. De agent leest die melding, concludeert dat er nog een initialisatiestap mist, en voert het commando uit, precies zoals hij is gebouwd om te doen. Dat commando roept een setup-script aan dat een configuratie ophaalt uit een DNS-record en die direct uitvoert. In dat record stopte 0DIN een base64-gecodeerde reverse shell.

Het resultaat is een interactieve shell met de rechten van de ontwikkelaar: toegang tot omgevingsvariabelen zoals API-sleutels, AWS-credentials en GitHub-tokens, plus de mogelijkheid om zich vast te nesten. De agent besloot nooit om een shell te openen, hij besloot een fout te repareren, vatten de onderzoekers Andre Hall en Miller Engelbrecht het kernachtig samen. Daar zit precies het probleem: het hulpvaardige zelfherstel dat een agent nuttig maakt, is hier het aanvalsoppervlak.

Het GitHub-logo. De aanval gebruikt een schijnbaar schone publieke repository als lokaas. Bron: GitHub / Wikimedia Commons (publiek domein)
Het GitHub-logo. De aanval gebruikt een schijnbaar schone publieke repository als lokaas. Bron: GitHub / Wikimedia Commons (publiek domein)

Waarom scanners hier niets zien

Het sluwe is dat de kwaadaardige instructie nergens in de repo staat. De payload leeft in een DNS-record dat de aanvaller op elk moment kan aanpassen, zonder ook maar iets te committen. Een codereview, een dependency-scan of een malwarescanner ziet dus een schoon project; de schadelijke lading wordt pas tijdens runtime opgehaald en is onzichtbaar voor zowel de gebruiker als de standaard beveiligingscontroles. Het is een variant op indirecte prompt-injectie en het verwarde-hulpje-probleem, waarbij een legitieme tool met te veel rechten een aanvaller zijn werk laat doen.

Het is dezelfde grondvorm die de afgelopen weken vaker opdook. Bij een lek in Amazon Q kon een kwaadaardige repository via het Model Context Protocol stilletjes AWS-sleutels van ontwikkelaars stelen, en met de AutoJack-techniek liet een geprepareerde webpagina een AI-agent ongevraagd code op je server uitvoeren. Het patroon is telkens hetzelfde: niet het model wordt gehackt, maar de autonomie eromheen wordt misbruikt.

Wat dit betekent voor jouw bedrijf

Als je team AI-coderingsagents inzet, en dat doen steeds meer ontwikkelteams, dan is dit een beleidsvraag, geen technische curiositeit. De agent draait commando's met de rechten van degene die hem aanstuurt, dus de eerste vraag is wat die rechten zijn. Drie maatregelen wegen het zwaarst: draai agents in een geisoleerde omgeving die je makkelijk kunt weggooien, houd geheimen en productie-credentials uit de shell waarin de agent werkt, en laat een mens elk shell- of installatiecommando bevestigen voordat het loopt. Het advies van 0DIN sluit daarop aan: een agent zou de volledige uitvoeringsketen van een setup-commando moeten tonen, inclusief de scripts en alles wat tijdens het draaien wordt opgehaald, niet alleen het commando zelf.

De verleiding is om dit als een randgeval af te doen, maar de aanval werkt juist omdat de agent zich voorbeeldig gedroeg. Hij hoefde niet misleid te worden om iets stoms te doen; hij deed precies zijn werk. Behandel de shell-toegang van een AI-agent daarom zoals je de toegang van een nieuwe junior met beheerdersrechten zou behandelen: scherp afgebakend, zichtbaar, en altijd terug te draaien. Wie zijn hele AI- en automatiseringsstack bewust beveiligt tegen dit soort supply chain-aanvallen, maakt van die autonomie een gereedschap in plaats van een open deur.

Veelgestelde vragen

Alisina Nawabi
Geschreven doorAlisina Nawabi

AI Product Engineer & Solutions Architect

AI-agents veilig inzetten

Ik help je AI-codering en automatisering zo opzetten dat agents geisoleerd draaien met scherpe rechten, van het ontwerp van de werkwijze tot de techniek eronder, self-hosted waar dat kan.

Meer informatie

Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.

Genoemde integraties

Dit artikel noemt deze tools. Ik koppel ze op maat aan je eigen systemen.

Gerelateerde artikelen

MCP schrapt sessies: het protocol achter AI-agents wordt stateless
Nieuws
6 min

28 jul 16:14

MCP schrapt sessies: het protocol achter AI-agents wordt stateless

Het Model Context Protocol wordt vandaag stateless. Sessies, de initialize-handdruk en de sessie-header verdwijnen, wat MCP-servers eenvoudiger schaalbaar maakt maar bestaande eigen implementaties breekt. Dit verandert er concreet.

Microsoft: vergiftigde MCP-toolomschrijvingen kapen je AI-agent en lekken bedrijfsdata
Nieuws
5 min

30 jun 20:33

Microsoft: vergiftigde MCP-toolomschrijvingen kapen je AI-agent en lekken bedrijfsdata

Microsoft Incident Response laat zien hoe aanvallers via vergiftigde MCP-toolomschrijvingen bedrijfsdata exfiltreren zonder code te injecteren. Elke actie van de agent was legitiem. De kwetsbaarheid zit in de vertrouwensgrens tussen systemen.

Model Context Protocol (MCP) uitgelegd voor de niet-developer: wat het is en hoe je weet of jouw software klaar is
Gids
8 min

20 jun 23:05

Model Context Protocol (MCP) uitgelegd voor de niet-developer: wat het is en hoe je weet of jouw software klaar is

MCP is de stekker waarmee AI bij je eigen systemen komt. Zonder code leg ik uit wat het is, en geef ik je de exacte vragen voor je leverancier of IT-partner.

Onderzoekers lezen verborgen AI-redeneringen uit en vinden 182 credentials in publieke logs
Nieuws
5 min

11 aug 20:24

Onderzoekers lezen verborgen AI-redeneringen uit en vinden 182 credentials in publieke logs

Onderzoekers van de Universiteit Tübingen en Snyk ontcijferden de verborgen denkstappen van Claude, GPT en Gemini via de API's zelf. In publieke agent-logs vonden ze 62 API-sleutels en 33 wachtwoorden.

Agent Plugins 1.0 maakt agentuitbreidingen draagbaar tussen ChatGPT, Copilot en VS Code
Nieuws
4 min

7 aug 12:24

Agent Plugins 1.0 maakt agentuitbreidingen draagbaar tussen ChatGPT, Copilot en VS Code

Amazon, Cursor, Microsoft, OpenAI en Vercel publiceerden een open pakketformaat voor Agent Skills en MCP-servers. Google sluit aan als core maintainer. Je bouwt een agentuitbreiding voortaan een keer, niet per client.

Disney schrapt GitHub Copilot en zet in op Codex, Claude en Cursor
Nieuws
5 min

30 jul 08:12

Disney schrapt GitHub Copilot en zet in op Codex, Claude en Cursor

Disney schrapt in augustus GitHub Copilot voor zijn Amerikaanse techteams, rolt OpenAI's Codex uit en houdt Claude en Cursor. De reden is niet strategie maar gebruik: acht medewerkers zeiden Copilot zelden of nooit aan te zetten.