Mandiant beschrijft in een nieuw Google Cloud-rapport hoe een gekaapte AI-codeersessie een vergiftigd PyPI-pakket installeerde en Shai-Hulud naar circa honderd interne repositories verspreidde, waarbij de worm repositorygeheimen en broncode stal.
Voor een Nederlands ontwikkelteam verandert daarmee de status van coding-agents, skills en MCP-servers. Ze zijn geen handige laag naast de ontwikkelstraat meer, maar bevoorrechte componenten die dependencies kunnen aanbevelen, code kunnen ophalen en tokens kunnen gebruiken. De inzet verschuift van codekwaliteit naar de hele herkomstketen. Het team moet kunnen aantonen waar een pakket vandaan komt en welke rechten de agent en zijn extensies gebruiken.
De aanval begint bij vertrouwen
De casus speelt bij een niet nader genoemde SaaS-aanbieder. Een aanvaller kaapte een actieve sessie van een AI-codeerassistent op een ontwikkelwerkstation. De assistent adviseerde een extern pakket dat al was vergiftigd. Nadat de ontwikkelaar die aanbeveling accepteerde, installeerde de aanvaller via de actieve sessie een infostealer, stal hij GitHub OAuth-tokens en startte hij de verspreiding van de worm.
De aanvaller vergiftigde daarna een pakket binnen de officiële namespace van het bedrijf. Een andere medewerker haalde de besmette pakketversie uit die officiële namespace binnen en raakte opnieuw geïnfecteerd. De AI-assistent was hier geen losse chatfunctie, maar de vertrouwde tolk tussen ontwikkelaar, pakketbron en lokale omgeving.
De route verschilt van ruim 7.600 nep-repository's die AI-codeeragents uit zichzelf aanbevelen: daar lag het lokaas in openbare GitHub-indexering, hier in een actieve sessie met toegang tot de eigen ontwikkelomgeving.
De rechten zijn het echte aanvalsvlak
Mandiant trekt de les breder dan dit ene pakket. Het rapport noemt lokale plugins, CLI-hulpmiddelen, agent-skills en MCP-servers onderdelen van de ontwikkelketen die vóór uitvoering cryptografisch moeten worden gecontroleerd. Wijzigingen aan interne skills en hooks horen door toegangsbeheer, code review en meerdere goedkeuringen te gaan.
Dat sluit aan bij het uitgangspunt dat een aangesloten MCP-server een productieafhankelijkheid is, geen configuratiedetail. De agent leest de toolbeschrijving en gebruikt de gekoppelde rechten. Wie die laag als onschuldig hulpmiddel behandelt, mist dus precies de plek waar een aanvaller vertrouwen kan misbruiken.
Drie controles voor AI-ondersteund ontwikkelen
Mandiant noemt in de casus maatregelen die direct in een Nederlandse ontwikkelstraat passen:
- Controleer de bron. Laat IDE- en CLI-hooks elk door een AI aanbevolen pakket toetsen aan cryptografische checksums en een goedgekeurde allowlist. Een overtuigende pakketnaam of README is geen bewijs van herkomst.
- Houd secrets buiten bereik. Geef extensies geen directe toegang tot ruwe API-sleutels, langdurige OAuth-tokens of andere geheimen. Beperk ook de netwerkuitgang van het werkstation en de runtime.
- Stuur dependencies door eigen opslag. Routeer pakketdownloads via een gecontroleerde interne repository. Zo bepaalt het team welke versies binnenkomen en blijft de keten zichtbaar.

Deze controles maken de ontwikkelstraat niet foutloos. Ze zorgen er wel voor dat een aanbeveling niet automatisch verandert in installatie, tokengebruik en verspreiding.
De ontwikkelstraat krijgt een nieuwe poort
De software supply chain begint niet langer bij een package registry. Ze begint op het moment dat een AI-assistent een bron, skill of MCP-server als betrouwbaar presenteert. Wie die laag als software met privileges behandelt, maakt de herkomst controleerbaar voordat een handige suggestie toegang krijgt tot de rest van de ontwikkelomgeving.
Veelgestelde vragen
AI-agenten met grenzen
Ik denk mee over de juiste grenzen, ontwerp de koppeling en bouw het hele systeem van eerste idee tot live product. Waar het kan houd ik data en onderdelen self-hosted, zodat automatisering niet meteen een nieuwe afhankelijkheid wordt.
Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.

