Blog

AI die commando's uitvoert zonder bij je sleutels te kunnen

Zodra een agent iets mag uitvoeren, verschuift de vraag van hoe goed het model is naar wat het kan aanrichten. Waarom een instructie geen grens is, hoe een sandbox eruitziet, en wat het ons kostte om die grens werkend te krijgen.

Er is een groot verschil tussen een AI die tekst schrijft en een AI die opdrachten uitvoert. De eerste kan een fout maken die je leest. De tweede kan een fout maken die bestanden verwijdert, een sleutel naar buiten stuurt of een rekening laat oplopen.

Zodra een agent iets mag uitvoeren, verschuift de vraag dus van hoe goed het model is naar wat het kan aanrichten als het zich vergist of misleid wordt. Dat is een ontwerpvraag, en het antwoord heet isolatie.

Waarom een instructie geen grens is

De eerste reflex is om het in de opdracht te zetten: verwijder nooit bestanden, blijf binnen deze map, gebruik geen sleutels. Dat werkt meestal. En meestal is bij een uitvoerende agent niet genoeg.

Er zijn twee manieren waarop het misgaat. De eerste is een vergissing van het model zelf. De tweede weegt zwaarder: de agent leest iets van buiten. Een webpagina, een mail, een document van een klant. Daar kan tekst in staan die geschreven is om gelezen te worden als opdracht.

Wie alleen op instructies vertrouwt, laat de veiligheid afhangen van de vraag of het model zich niet laat overtuigen door tekst die hij zelf ophaalt. De regel die daaruit volgt: alles wat een agent binnenkrijgt is gegevens, nooit een opdracht. En wat een agent niet mag, hoort onmogelijk te zijn in plaats van verboden. Zie AI die opdrachten uitvoert: de sandbox als grens.

Hoe een sandbox eruitziet

Een afgescheiden omgeving waarin de opdrachten draaien, met zo weinig mogelijk eromheen. Vier scheidingen doen het werk.

Geen sleutels. In de omgeving waar commando's draaien, staan geen wachtwoorden, tokens of certificaten. Ontsnapt er iets, dan is er niets te vinden.

Geen schrijfrecht buiten een werkmap. Lezen mag waar nodig, schrijven alleen op een plek die je kunt weggooien.

Geen internet, tenzij expliciet. Een uitvoerende omgeving die naar buiten kan, kan ook naar buiten sturen.

Geen accounts en geen overbodige rechten. Draaien als een gebruiker die niets bezit, niet als beheerder.

Daarbij hoort een tijdslimiet. Een proces dat blijft hangen moet vanzelf stoppen, anders is het eerste dat je merkt een volle schijf of een hoge rekening.

Wat het ons kostte om dit werkend te krijgen

Wij hebben dit bij ons eigen systeem twee keer moeten bouwen, en de tweede keer was de leerzaamste.

De eerste opzet begrensde de uitvoering met de middelen van het besturingssysteem: een aparte gebruiker met minder rechten. Op de ene machine gaf dat een toegangsfout, op de andere ontbrak het onderdeel dat de scheiding moest maken. De grens werkte dus op geen van beide plekken, terwijl het systeem verder gewoon gezond meldde.

Het antwoord was de uitvoering in een eigen container zetten: een afgesloten omgeving naast het hoofdsysteem, zonder sleutels, zonder accounts, zonder internet en zonder schrijfrecht, op een netwerk dat alleen met de toepassing zelf praat.

De regel die we eruit haalden

Belangrijker dan de oplossing is dit: een grens mag nooit stil terugvallen. Is de afgeschermde omgeving er niet, dan moet uitvoeren mislukken. Niet dan-maar-gewoon-hier, want dan draait het opeens naast alle sleutels en niemand ziet het.

Daar kwam een tweede les bij. De eerste uitrol faalde stil doordat de rechten op een map te streng stonden, terwijl de toepassing zelf meldde dat alles in orde was. Sindsdien controleert ons uitrolscript niet of de dienst draait, maar of hij werkelijk een commando kan uitvoeren. Een gezondheidsmelding die niet meet wat het onderdeel moet doen, is een gerustelling en geen controle.

Wat binnen en wat buiten de grens hoort

Binnen de afgeschermde omgeving: alles wat de agent zelf uitvoert. Scripts, analyses, tijdelijke bestanden, verkenning van gegevens.

Buiten, en alleen bereikbaar via een expliciete koppeling met eigen rechten: de database, de betaaldienst, de mailverzending, het bestandsarchief en elke andere handeling met gevolgen buiten je systeem.

Dat onderscheid maakt de rest hanteerbaar. Je hoeft niet te vertrouwen op wat de agent doet, alleen te controleren welke koppelingen hij mag aanroepen en met welke rechten. Zie wat is MCP.

Toets je grenzen met opzet

Vraag de agent iets te doen wat niet mag, en kijk of het werkelijk niet lukt. Een grens die nooit geprobeerd is, is een aanname.

Wij hebben dat bij onze eigen opstelling nagemeten via het gereedschap van de agent zelf: lezen werkte, schrijven werd geweigerd, er stond geen enkele sleutel in de omgeving, internet was dicht en er waren geen accounts. Dat is een half uur werk en het is het enige bewijs dat telt.

Leg daarnaast elke uitgevoerde opdracht vast: wat, wanneer, met welk resultaat en op wiens verzoek. Niet alleen voor onderzoek achteraf, maar om te zien of de grenzen in de praktijk geraakt worden en dus op de goede plek staan.

Veelgestelde vragen

Heeft elke AI-toepassing dit nodig?

Nee. Een chatbot die vragen beantwoordt uit je eigen documenten voert niets uit en heeft deze laag niet. Zodra een agent scripts draait, bestanden verwerkt of systemen bijwerkt, hoort de grens er te zijn voordat de eerste opdracht draait.

Maakt isolatie de agent minder bruikbaar?

Ja, en dat is de bedoeling. Een pakket installeren of even in de productiedatabase kijken lukt niet meer. Elke uitzondering hoort een bewuste koppeling te zijn met eigen rechten.

Is een goede systeeminstructie niet genoeg?

Als enige maatregel niet. Instructies helpen tegen vergissingen, niet tegen tekst die de agent ophaalt en die bedoeld is om hem te sturen.

Wat kost dit aan beheer?

Een extra omgeving die bijgewerkt moet worden, en foutzoeken dat iets langer duurt. Daar staat tegenover dat je kunt uitleggen wat er maximaal mis kan gaan.

Hoe weet ik of mijn huidige opzet veilig is?

Kijk waar de sleutels staan ten opzichte van waar de commando's draaien. Staan ze in dezelfde omgeving, dan is dat het antwoord. Zie wat is een agentic AI-systeem.

Waar je begint

Met de vraag wat uw agent vandaag zou kunnen aanrichten als hij een instructie volgt die in een binnengekomen document stond. Kunt u die vraag niet beantwoorden, dan is dat het eerste dat aandacht verdient.

Wilt u weten hoe uw opstelling ervoor staat, neem contact op.

Verder lezen in de kennisbank


dGEN Productions, AI agency en business-automation partner uit Eindhoven. info@dgenproductions.nl · 06-87413056