De gevaarlijke combinatie: data, input en acties
Waarom een AI-agent met privédata, onbetrouwbare input en de mogelijkheid om naar buiten te communiceren te kapen is, hoe je je eigen setup in 2 minuten scoort en hoe je één poot weghaalt.
In het kort
Een agent wordt pas echt gevaarlijk als hij drie dingen tegelijk heeft: toegang tot je privédata, onbetrouwbare input (mail, webpagina's, issues) en een manier om naar buiten te communiceren of iets te veranderen. Simon Willison noemt dit de lethal trifecta; Meta's Agents Rule of Two zegt: maximaal twee van de drie per sessie. Haal één poot weg en de route waarlangs je data weglekt, is dicht.
- Gemiddeld
- 6 min
- gratis
- Feiten gecheckt op 2 november 2026
- Voltooid
Agents lezen je mail, je repo’s en het web, en ze mogen steeds vaker zelf iets doen. Daarmee kan een vreemde die alleen een mail of issue kan sturen, je agent voor zich laten werken.
Na deze les heb je: een score van 0 tot 3 voor je eigen agent-setup, en weet je welke poot je weghaalt om hem veilig te maken.
De drie ingrediënten
Section titled “De drie ingrediënten”Simon Willison beschreef in juni 2025 de lethal trifecta. Meta maakte er in oktober 2025 de Agents Rule of Two van: hooguit twee van de drie per sessie.
| Willison (trifecta) | Meta (Rule of Two) | Voorbeelden | |
|---|---|---|---|
| A. Input | “Exposure to untrusted content” | “can process untrustworthy inputs” | mail, webpagina’s, issues, PDF’s, agenda-uitnodigingen |
| B. Data | “Access to your private data” | “access to sensitive systems or private data” | inbox, privé-repo’s, bestanden, API-sleutels |
| C. Actie | “ability to externally communicate” | “can change state or communicate externally” | mail sturen, PR openen, link laden, bestand wissen |
flowchart LR
AV["Aanvaller"] -.->|"zet instructie in<br/>mail, issue of webpagina"| A["A. Onbetrouwbare input"]
A --> AG(("Agent"))
B["B. Privédata<br/>inbox, repo's, sleutels"] --> AG
AG --> C["C. Actie naar buiten<br/>mail, PR, link, API-call"]
C -.->|"data komt bij<br/>de aanvaller"| AV
Het model kan instructies en data niet betrouwbaar uit elkaar houden. Willison: “we still don’t know how to 100% reliably prevent this from happening”. Je enige echte rem is de cirkel doorbreken.
Meta is strenger dan Willison. Bij Meta telt ook state veranderen als poot C: wissen, betalen, deployen. Dat hoeft niet naar buiten te gaan om schade te doen. Een Cursor-agent wiste in april 2026 de productiedatabase plus backups van PocketOS in 9 seconden, met een token dat “any operation” mocht.
Twee echte voorbeelden
Section titled “Twee echte voorbeelden”| Incident | A. Input | B. Data | C. Actie |
|---|---|---|---|
| GitHub MCP (Invariant Labs, mei 2025) | een issue in een publieke repo | privé-repo’s via een te breed token | een nieuwe PR in de publieke repo |
| EchoLeak (Aim Security, jun 2025, CVE-2025-32711, CVSS 9.3) | een gewone mail in Outlook | Microsoft 365 Copilot zocht in mail en SharePoint | data in een URL naar buiten, zonder klik |
Bij GitHub MCP lag het niet aan een bug: “a fundamental architectural issue that must be addressed at the agent system level” (Invariant). Microsoft heeft EchoLeak gerepareerd; misbruik in het wild is niet gemeld.
Scoor je eigen setup in 2 minuten
Section titled “Scoor je eigen setup in 2 minuten”Neem één agent of chat-assistent met koppelingen, en beantwoord per poot één vraag. Elke “ja” is één punt.
| Vraag | Ja als… |
|---|---|
| A. Leest hij iets dat een vreemde kan schrijven? | mail, web zoeken, issues/PR’s, gedeelde documenten, agenda, berichten in Telegram of WhatsApp |
| B. Kan hij bij iets wat niet openbaar is? | je inbox, privé-repo’s, je schijf, .env-bestanden, een ingelogde browser |
| C. Kan hij iets naar buiten sturen of veranderen? | mail of berichten sturen, PR’s of comments plaatsen, URL’s of afbeeldingen laden, shell met netwerk, bestanden wissen |
- 0-1: prima.
- 2: oké, maar let op dat je er niet ongemerkt de derde bij koppelt (een nieuwe MCP-server of skill).
- 3: haal vandaag één poot weg.
Drie manieren om een poot weg te halen
Section titled “Drie manieren om een poot weg te halen”- Input weghalen (A). Laat de agent alleen jouw eigen, vertrouwde bronnen lezen. Moet hij toch een mail of webpagina verwerken? Laat een aparte sessie zonder tools en zonder data er een korte samenvatting van maken, en geef alleen die door.
- Data weghalen (B). Geef de agent een eigen, beperkt account of token: één repo met een fine-grained token, een aparte mailbox, geen
~/.sshof~/.awsin bereik. Invariant raadt aan: één repo per sessie. - Actie naar buiten weghalen (C). Zet het netwerk dicht, op een korte allowlist na. Codex draait standaard met “network access turned off”. In de Claude Code-sandbox begint
sandbox.network.allowedDomainsleeg. Geef geen recht om zelf te mailen of te posten, of laat het altijd door jou bevestigen.
Heb je alle drie echt nodig? Dan wil Meta toezicht, zoals een mens die acties goedkeurt, of een nieuwe sessie waarin de onbetrouwbare input niet meer zit.
Checklist
0/5
Je voortgang wordt alleen in deze browser bewaard.
Test jezelf
1Je agent leest je inbox en mag mails versturen. Welke poten heeft hij?
Een inbox is privédata én onbetrouwbare input tegelijk. Met versturen erbij heb je alle drie.
2Wat maakt Meta's Rule of Two strenger dan de trifecta?
Zo vallen ook destructieve acties eronder, zoals de PocketOS-database die in 9 seconden werd gewist.
3Welke maatregel haalt poot C weg?
Een technische grens werkt ook als het model wél wordt misleid. Een zin in de prompt niet.
Volgende les: prompt injection in de praktijk. Hoe zo’n aanval eruitziet en hoe je je agent instelt.