Ze vroegen het de bot gewoon netjes: je supportagent is het aanvalsoppervlak
8m leestijd

Ze vroegen het de bot gewoon netjes: je supportagent is het aanvalsoppervlak

Pro-Iraanse hackers kaapten de Instagram-accounts van het Obama-Witte Huis en de Amerikaanse Space Force door Meta's AI-supportbot een wachtwoord te laten resetten. Geen exploit, geen CVE. Gewoon een gesprek met een systeem dat geen achterdocht kent.

In het eerste weekend van juni werd het Instagram-account van het Obama-Witte Huis beklad met pro-Iraanse afbeeldingen. Het account van de hoogste onderofficier van de Amerikaanse Space Force ook. Sephora raakte zijn account kwijt.

En beveiligingsonderzoeker Jane Wong keek toe hoe haar wachtwoord veranderde zonder dat zij iets deed, gevolgd door een hele dag aan reset-pogingen. "Quite concerning", noteerde ze, met professioneel understatement.

De aanvallers vonden geen zero-day. Ze phishten geen wachtwoord. Ze kraakten geen enkele database. Meta bevestigde zelf dat er geen enkel back-endsysteem was aangeraakt.

Ze openden een chat met Meta's AI-supportassistent en vroegen om hulp.

Dat is het. Dat is de hele hack.

Hoe de "exploit" werkte ​

Er was geen exploit, niet zoals we dat woord meestal bedoelen. De stappen, zoals Krebs on Security ze beschreef, lezen minder als een CVE en meer als een transcript van de klantenservice.

Je maakt via een VPN verbinding met een IP-adres bij de gebruikelijke woonplaats van het doelwit, genoeg om de geautomatiseerde alarmen van Instagram niet te laten afgaan. Je vraagt een wachtwoordreset aan en kiest ervoor om met de AI-supportassistent te chatten. Je zegt tegen de bot dat hij het account moet koppelen aan een nieuw e-mailadres dat van jou is. De bot stuurt netjes een eenmalige code naar dat adres.

Je leest de code terug. De bot reset het wachtwoord.

Nieuw e-mailadres op het account. Wachtwoord gereset. Account weg.

En hier zit het stukje dat het bijna elegant maakt, op de manier waarop alleen iets dat echt kapot is elegant kan zijn: de aanvaller had op geen enkel moment het echte e-mailadres van het slachtoffer nodig. TechCrunch bevestigde het. Normaal betekent een account kapen dat je het gekoppelde e-mailadres moet overnemen. De bot sloeg die hele controle over.

Hij voegde gewoon een tweede e-mailadres toe toen daarom werd gevraagd, en een tweede adres is alles wat je nodig hebt.

Geen buffer overflow. Geen SQL-injectie. Een gesprek, volledig via de voordeur, met de bot die hem de hele tijd voor je openhield.

Het deel dat je de meeste zorgen zou moeten baren ​

Op 31 mei was dit van een slimme eenmalige truc een recept geworden.

Pro-Iraanse hackers zetten een video op Telegram die het hele proces stap voor stap liet zien, en de instructies verspreidden zich over meerdere kanalen. Zodra het een recept is, slaat de rekensom om.

Een menselijke supportmedewerker die door een virale exploit te grazen is genomen, leert snel. Bij de tweede poging is hij achterdochtig, bij de tiende heeft hij het naar het securityteam geëscaleerd, en het gat sluit zich door pure opgebouwde alertheid.

De bot leert niet. Hij voert exact hetzelfde kunstje voor de tienduizendste beller net zo opgewekt uit als voor de eerste. Er is niemand thuis om een naar gevoel te krijgen.

Dat is de echte verschuiving. Een gepubliceerde exploit tegen een proces met mensen erachter verzwakt naarmate die mensen wijzer worden.

Een gepubliceerde exploit tegen een agent is een permanente, oneindig herhaalbare, volledig automatiseerbare mogelijkheid, totdat iemand een patch uitrolt. De aanvaller schaalt gratis. De verdediger niet.

De wrijving deed het beveiligingswerk ​

Hier zit het detail dat dit van een Meta-verhaal verandert in een verhaal over hoe we tegenwoordig allemaal software bouwen.

De menselijke support van Instagram is berucht slecht. Een geblokkeerd account terugkrijgen kan weken heen-en-weer met een geautomatiseerd ticketsysteem kosten.

Dus koos Meta de voor de hand liggende, redelijke, moderne oplossing. In maart rolde het de AI-supportassistent uit naar elk account op Facebook en Instagram, en gaf het de macht om wachtwoorden te resetten en kritiek accountbeheer uit te voeren.

De slogan op de productpagina: "Solutions, not just suggestions." Oplossingen, niet alleen suggesties.

Na dat weekend klinkt die slogan anders. De hele belofte was dat de bot je niet alleen zou adviseren, maar zou handelen. Hij zou ingrijpen en dingen veranderen. Dat is precies de eigenschap die de aanvallers nodig hadden.

Want een deel van die wrijving die Meta zo trots wegnam, deed beveiligingswerk.

Het pijnlijke, trage herstelproces, standaard achterdochtig, was een drempel, en drempels houden meer tegen dan alleen legitieme gebruikers met haast. Elke irritante verificatiestap, elke vertraging, elke "we komen erop terug" was ook een kostenpost voor een aanvaller. Meta optimaliseerde de drempel weg en noemde het klantbeleving.

De aanvallers stuurden een bedankje in de vorm van een beklad overheidsaccount.

Erger nog, ze haalden samen met de wrijving ook de vangrail weg. Gebruikers van wie het account gestolen was, meldden dat er helemaal geen manier was om naar een mens te escaleren. De bot was de voordeur, de achterdeur en de slotenmaker, en hij luisterde naar wie als laatste sprak.

Dit is de valkuil. We blijven wrijving behandelen als puur een UX-defect dat weg moet, en we vergeten dat een flink deel van beveiliging bewuste wrijving is. Als je het pad gladstrijkt voor de legitieme gebruiker, strijk je het glad voor iedereen.

Waarom een agent anders is dan een lek formulier ​

Je zou kunnen zeggen dat dit gewoon een slechte wachtwoordreset is, en slechte resetflows bestonden al decennia voor AI. Klopt. Maar de agent maakt het categorisch erger.

Klassieke toegangscontrole is een muur van expliciete regels. Je hebt de rechten of niet, en de controle draait elke keer hetzelfde. Je kunt hem auditen, testen, fuzzen.

Het "oordeel" van een agent is een kansverdeling over het volgende token, en de agent kan tot medewerking worden overgehaald zoals een junior medewerker van alles kan worden aangepraat door iemand die zeker genoeg klinkt.

Het aanvalsoppervlak is niet langer een formulier met velden die je valideert. Het is natuurlijke taal, en natuurlijke taal is grenzeloos. Je kunt geen regex schrijven voor "klinkt als een legitieme gebruiker die een rotdag heeft". Er is geen invoer die je volledig kunt opschonen, want de invoer is de hele ruimte van dingen die een mens kan zeggen.

Elke kritieke actie die je aan een agent koppelt, wordt een doelwit voor social engineering dat nooit leert voorzichtig te zijn. Een wachtwoord resetten. Een e-mailadres wijzigen. Een terugbetaling doen. Toegang verlenen. Elk werkwoord dat de bot kan uitvoeren, is een werkwoord dat een aanvaller kan uitvoeren door erom te vragen.

We blijven bots macht geven en doen dan verbaasd ​

We doen dit voortdurend. We geven een bot echte macht, verpakken hem in een vriendelijke interface, en doen dan verbaasd als iemand die macht gebruikt zoals hij ontworpen is.

Het is hetzelfde patroon als de bureaucratie van bots: we blijven agents met echte bevoegdheden toevoegen en gaan ervan uit dat die bevoegdheden alleen worden gebruikt op de manier die wij voor ogen hadden. Meta bedoelde zijn supportbot niet als een herstelorakel voor iedereen met een VPN.

Maar bedoeling is geen controle. De bot weet niet waar hij voor was bedoeld. Hij weet alleen wat hij kan doen, en dat doet hij voor wie het hem netjes vraagt.

En de reflex van de sector is, zoals altijd, om je nog een bot te verkopen die de eerste in de gaten houdt. Die wapenwedloop heb ik al eerder behandeld. Een tweede model dat het eerste controleert, lost dit niet op. Het voegt alleen nog iets toe dat zich laat ompraten.

Wat je echt moet doen ​

Koppel je een agent aan iets dat met accounts, geld of toegang te maken heeft, behandel hem dan als een vijandige client, want dat wordt hij op het moment dat een aanvaller begint te typen.

  • Laat de bot de kritieke actie nooit zelf uitvoeren. Onomkeerbare bewerkingen blijven achter een deterministisch systeem met harde controles die de bot wel kan aanvragen maar nooit kan overrulen. De agent mag een ticket aanmaken. Hij mag het wachtwoord niet resetten.
  • Houd step-up-authenticatie buiten het gesprek. Een flow waarbij de bot een verificatiecode accepteert die de "gebruiker" aan hem voorleest, is al in het ontwerp kapot. Eenmalige codes zijn bearer tokens. Wie de code heeft, wint, en je hebt de bot net geleerd er in de chat om te vragen.
  • Optimaliseer beveiligingswrijving niet per ongeluk weg. Voordat je een trage, irritante flow gladstrijkt, vraag je af wat die traagheid een aanvaller kostte. Sommige drempels houden meer overeind dan je denkt.
  • Limiteer en log per identiteit, niet per sessie. Elke aanval opende een verse, onschuldig ogende chat. Als je limieten met het gesprek resetten, heb je geen limieten.
  • Zet een mens op het kritieke pad voor acties uit de categorie accountherstel. Niet voor alles. Voor de werkwoorden waarna iemand zijn account kwijt is.

Meta patchte het in het weekend. Communicatiedirecteur Andy Stone zei dat het probleem was opgelost en dat getroffen accounts werden beveiligd. En geen database was gelekt, benadrukten ze graag.

Natuurlijk was er geen database gelekt. Je hoeft de database niet te kraken als de assistent bij de balie de sleutels overhandigt, elke keer, aan iedereen die het vraagt, en zich geen moment afvraagt waarom.

De aanvaller brak niet in.

Hij vroeg het gewoon. En de bot, behulpzaam tot het bittere einde, zei ja.

(23 van 40)
1Je hebt geen AI-probleem. Je hebt een procesprobleem.2Waarom je nooit code moet shippen die je zelf niet snapt3Stop met copy-paste engineering4De lavalaag: waarom AI-code je codebase langzaam versteent5Het briljante papegaaiprobleem: wat AI eigenlijk doet als het 'denkt'6De prompt is geen spec7De bureaucratie van bots: waarom we de controleur controleren8De dag dat Claude mijn productiedatabase verwijderde9De wapenwedloop om je vertrouwen: Mythos, Cyber en de security-hype10Laat je agents stoppen met Markdown schrijven11Je agent lijdt onder je technische schuld12Je vindt de bug niet als je de code niet schreef13Een op vier: de beveiligingsschuld die niemand telt14Je 10x-developer zit vast in een 0,1x-pipeline15De benchmarks zeiden 'frontier'. Ontwikkelaars zeiden 'dom'.16Caveman vs context-mode: kleinere mond, of kleinere kamer?17Code churn: de lava die je nog kunt meten18Het plafond is van beton19De token-belasting: ik trek mijn Caveman-advies in20Zelfs de malware is nu AI-slop21ThePrimeagen had gelijk22Tokenmaxxing: wat er gebeurt als je het verkeerde meet23Ze vroegen het de bot gewoon netjes: je supportagent is het aanvalsoppervlak24Snelheid werd goedkoop. Je oordeel niet.25Je coding agent heeft geen wereldmodel. Jij hebt er een omheen gebouwd.26De Ferrari heeft een begrenzer: een dag met Claude Fable 527De uitknop was nooit van jou28Een open MCP-server is erger dan een open database29Het veerkrachtigste beroep eet zijn eigen zaaigoed op30De uitknop werkt nu ook andersom31AI genereert je tests. Maar test het ook echt?32Beter code leren lezen: een oefenroutine33Programmeren leren in het AI-tijdperk: wat ik als eerste zou leren34Wie is verantwoordelijk voor AI-code? Jij, en sinds dit jaar staat het zwart op wit35Wanneer je beter geen AI gebruikt bij programmeren: het werk dat ik zelf blijf doen36Junior developers aannemen in 2026: de instroom stopte, en dat was een keuze37Software inschatten met AI: het typen was nooit waar de tijd in zat38Slopsquatting: bestaat het package? Verkeerde vraag39Acht rapporten, één meetlat: jureren bij een AI-safety sprint40Er sloeg geen agent op hol