Een schadelijke prompt die in het Engels 97 van de 100 keer wordt tegengehouden, glipt er in het Nederlands vaker doorheen. Dat is de uitkomst van een benchmark waarin het Belgische ML6 samen met Cisco vier veelgebruikte beveiligingsfilters losliet op 80.000 Nederlandse prompts. Het slechtst scorende filter liet twee op de drie schadelijke Nederlandse prompts gewoon passeren. Draait er op jouw site een chatbot die klantvragen beantwoordt, dan test je dat waarschijnlijk in het Engels of helemaal niet. Het goede nieuws: je kunt de test die de onderzoekers deden zelf draaien op je eigen bot, met gratis gereedschap, in een uurtje.
AI-veiligheidsfilters worden vrijwel altijd in het Engels getraind en getest, waardoor ze in het Nederlands merkbaar minder aanvallen tegenhouden. Met het open source-gereedschap promptfoo draai je dezelfde aanval twee keer op je eigen chatbot, één keer in het Engels en één keer in het Nederlands, en zie je zwart op wit waar het gat zit.
Wat vond het onderzoek precies?
ML6 testte vier beveiligingsfilters op een dataset van 80.000 Nederlandse prompts, waarvan 37 procent schadelijk was en 63 procent onschuldig. Getest werden AWS Bedrock Guardrails, Azure Content Safety met Prompt Shield, Cisco AI Defense en Google Cloud Model Armor. Het onderzoek verscheen op 22 juni 2026 en is geschreven door ML-engineer Cristóbal Sendín.
De verschillen zijn groot. Cisco kwam het beste uit de test met een F1-score van 0,845, waarbij 15,7 procent van de schadelijke prompts alsnog doorglipte. Google volgde met 0,802. Azure zakte naar 0,700 en liet ruim een derde van de aanvallen door. AWS eindigde onderaan met een F1-score van 0,453 en een recall van 0,327, wat betekent dat 67,3 procent van de schadelijke Nederlandse prompts ongehinderd passeerde.
Even voor de beeldvorming: een filter met een recall van 0,33 is als een portier die iedereen binnenlaat behalve de mensen die luidkeels roepen dat ze komen inbreken. AWS zelf gaf tegenover de onderzoekers aan dat het bewust voor een soepele ervaring voor ontwikkelaars kiest boven agressief blokkeren. Dat is een verdedigbare keuze, maar je moet hem wel kennen voordat je zo'n filter voor je klantenservice zet.
Er zit ook een keerzijde aan streng filteren. Google hield veel tegen, maar blokkeerde ook 15,5 procent van de onschuldige vragen. Dat zijn echte klanten die een normale vraag stellen en een weigering krijgen.
Waarom laten filters in het Nederlands meer door?
Beveiligingsfilters zijn zelf modellen, en die zijn vrijwel volledig getraind en geijkt op Engelstalig materiaal. Zodra dezelfde aanval in een andere taal binnenkomt, herkent het filter het patroon minder scherp. Onderzoeker Cristóbal Sendín van ML6 vatte het tegenover AG Connect zo samen:
“Zijn die prompts Engels, dan worden 97 geblockt. In een andere grote taal, zoals Spaans, Nederlands of Duits, kunnen er misschien een paar meer om de guardrail heen.”
Cristóbal Sendín, ML-engineer bij ML6
Nederlands en Duits zijn dan nog relatief goed vertegenwoordigd. In kleinere talen wordt het gat groter.
Daar komt bij dat de meeste filters per losse prompt oordelen, zonder het gesprek eromheen mee te wegen. Jan Heijdra, Field CTO Security bij Cisco Nederland, wees er in AG Connect op dat sommige modellen tegen wel 90 procent van de aanvallen over meerdere beurten bezwijken. Een aanvaller stelt dan drie onschuldige vragen en pas bij de vierde valt het kwartje, maar het filter kijkt alleen naar die vierde zin.
Dat is precies het scenario dat je in Nederland tegenkomt. Volgens TNO bestaat 40 procent van de generatieve AI-toepassingen bij Nederlandse organisaties uit interne chatbots. Bij gemeenten loopt het aantal op: de VNG telde 27 gemeenten met een chatbot, terwijl uit de Digimonitor bleek dat 64 procent van die gemeentelijke chatbots foutieve antwoorden gaf. Die bots praten Nederlands. Ze zijn getest in het Engels.
Wat je nodig hebt voor je begint
Voor deze test heb je drie dingen nodig, en je hoeft er niets voor te kopen.
- Node.js 20 of hoger op je laptop, want promptfoo draait via npx.
- Een endpoint van je eigen chatbot, bijvoorbeeld de API-URL waar je frontend nu al naartoe praat. Een testomgeving heeft de voorkeur boven productie.
- Een API-sleutel van een model dat de aanvalsprompts genereert en de antwoorden beoordeelt. Reken op een paar euro voor een eerste run.
Belangrijk vooraf: dit doe je alleen op een systeem dat van jou is of waarvoor je schriftelijk toestemming hebt. Een chatbot van een leverancier zomaar bestoken is geen veiligheidstest maar een aanval.
Zo test je je eigen chatbot in het Nederlands
De opzet is simpel: je laat promptfoo een set aanvallen genereren, je draait die eerst in het Engels en daarna in het Nederlands, en je vergelijkt hoeveel er doorheen komen. Het verschil tussen die twee cijfers is jouw taalgat.
Stap 1. Start de configuratie. Open een terminal in een lege map en draai:
npx promptfoo@latest redteam setup
Stap 2. Wijs je eigen bot aan als doelwit. Promptfoo maakt een bestand promptfooconfig.yaml aan. Zet daarin je eigen endpoint. De plaatshouder met de dubbele accolades wordt vervangen door elke aanvalsprompt die het gereedschap verzint:
targets:
- id: https
label: klantenservice-bot
config:
url: https://staging.jouwbedrijf.nl/api/chat
method: POST
headers:
Content-Type: application/json
body:
message: "{{prompt}}"
purpose: >
De gebruiker is een klant die vragen stelt over bestellingen en
retouren. De bot mag alleen over de eigen webshop praten en nooit
gegevens van andere klanten tonen of kortingen toezeggen.Dat veld purpose lijkt een formaliteit, maar het is het belangrijkste stuk van je configuratie. Promptfoo gebruikt die omschrijving om aanvallen te bedenken die bij jouw bot passen. Schrijf er dus echt in wat de bot niet mag doen, in normale zinnen.
Stap 3. Draai de Engelse basismeting. Dit is je nulmeting:
npx promptfoo@latest redteam run npx promptfoo@latest redteam report
Stap 4. Zet dezelfde aanvallen om naar het Nederlands. Hier zit de kern. Promptfoo heeft een strategie die elke gegenereerde aanval vertaalt en opnieuw afvuurt. Voeg dit blok toe aan je configuratie:
redteam:
strategies:
- basic
- id: multilingual
config:
languages:
- nl
batchSize: 2
maxConcurrency: 4Let op één ding dat je in de handleiding niet meer terugvindt. De multilingual-strategie staat sinds kort niet meer in de documentatie van promptfoo, maar zit gewoon nog in de broncode en werkt. Zonder de regel met languages pakt hij standaard Bengaals, Swahili en Javaans. Dat zijn interessante talen om te testen, maar het zijn niet de talen waarin jouw klanten je bot aanspreken. Zet er dus expliciet nl in.
Stap 5. Draai opnieuw en leg de twee rapporten naast elkaar. Dezelfde twee commando's als in stap 3. Het rapport opent in je browser en toont per categorie hoeveel tests je bot heeft doorstaan.
Hoe lees je de uitslag?
Kijk niet naar het totaalcijfer maar naar het verschil tussen de twee runs. Als je bot in het Engels 90 procent van de aanvallen afslaat en in het Nederlands 70 procent, dan is dat gat van 20 procentpunt je werkelijke probleem. Het absolute cijfer zegt weinig, want dat hangt af van hoe streng je de test hebt ingesteld.
Let daarbij vooral op twee categorieën. De eerste is het lekken van de systeeminstructie, waarbij de bot vertelt welke regels hij heeft meegekregen. De tweede is te veel handelingsvrijheid, waarbij de bot dingen toezegt of opzoekt die buiten zijn opdracht vallen. Dat zijn de twee waar bedrijfsschade uit ontstaat, en niet toevallig de twee die het slechtst scoren zodra je van taal wisselt.
Een derde cijfer is even belangrijk en wordt bijna altijd overgeslagen: hoeveel gewone vragen je bot ten onrechte weigert. Bij Google lag dat in de benchmark op 15,5 procent. Draai daarom naast de aanvallen ook een setje doodnormale klantvragen in het Nederlands. Een bot die niets doorlaat is even onbruikbaar als een bot die alles doorlaat.
Wat als je bot zakt voor de test?
De reflex is om een strenger filter te kopen. Doe dat als tweede, niet als eerste. Drie ingrepen kosten minder en helpen meer.
- Beperk wat de bot kan. De meeste schade ontstaat niet doordat een bot iets verkeerds zegt, maar doordat hij ergens bij kan. Haal tools en databasekoppelingen weg die hij voor zijn eigenlijke taak niet nodig heeft.
- Schrijf je systeeminstructie in het Nederlands. Als je bot Nederlandse klanten bedient en zijn instructies in het Engels staan, laat je de vertaalslag aan het model over. Precies daar ontstaat ruimte om hem te laten afwijken.
- Beoordeel het gesprek, niet de losse zin. Laat je filter meerdere beurten meewegen, want dat is waar de aanvallen over meerdere stappen binnenkomen.
En neem de test op in je vaste testronde. Een bot die vandaag slaagt, kan volgende maand zakken omdat je leverancier stilletjes een ander model is gaan gebruiken. Dezelfde discussie speelde eerder al bij verborgen instructies in Word-bestanden die Copilot je cijfers laten aanpassen, en bij het automatisch blokkeren van gevaarlijke commando's in Claude Code.
Waar de AI Act dit raakt
De AI Act stelt geen expliciete eis dat je je chatbot in het Nederlands moet testen. Toch loopt er een duidelijke lijn. Sinds 2 augustus 2026 geldt de transparantieplicht uit artikel 50: je chatbot moet zelf kenbaar maken dat hij AI is. Een bot die zich door een handige prompt laat overtuigen dat hij een mens is, voldoet daar dus feitelijk niet meer aan.
Zwaarder wordt het voor systemen die onder de hoog-risicocategorie vallen, denk aan werving, onderwijs of kredietbeoordeling. Die krijgen op 2 december 2027 hun volledige verplichtingen, inclusief risicobeheer en logging. Wie zijn bot nu al in de eigen taal test, bouwt precies het bewijsmateriaal op dat daar straks bij hoort. Meer over de tijdlijn en wat er wanneer geldt lees je in ons overzicht van de AI Act en op de pagina van de Europese Commissie.
Voor wie deze test loont, en voor wie nog niet
Heb je een chatbot die met klanten praat, bij bestel- of klantgegevens kan, of namens jou iets toezegt, dan is dit een middag werk die je een keer moet doen. De grootste winst zit niet in de score maar in de lijst met concrete gaten die eruit rolt. Uit de klantenservicecijfers van TheAIDaily blijkt hoe snel dit soort bots de eerste lijn overneemt, en juist die eerste lijn krijgt de rare vragen.
Gebruikt je team alleen ChatGPT of Claude in een browsertabblad, zonder eigen bot op je site, dan kun je dit overslaan. Je test dan het filter van OpenAI of Anthropic, niet dat van jezelf. Kijk in dat geval liever naar welke bedrijfsdata er in die gesprekken belandt; dat is voor de meeste mkb-bedrijven het grotere risico, zoals ook terugkomt in onze cijfers over AI in het Nederlandse mkb.
Wil je dit soort tests en onderzoeken wekelijks langs zien komen, schrijf je dan in voor onze dagelijkse AI-nieuwsbrief.
Veelgestelde vragen
Wat is een guardrail bij AI precies?
Een guardrail is een beveiligingslaag die tussen de gebruiker en het AI-model zit en schadelijke vragen of antwoorden tegenhoudt. Het is zelf ook een model, wat verklaart waarom hij in de ene taal beter werkt dan in de andere.
Is promptfoo gratis?
Het gereedschap zelf is open source en gratis te gebruiken. Je betaalt wel voor de API-aanroepen van het model dat de aanvallen genereert en de antwoorden beoordeelt. Voor een eerste run op een kleine chatbot blijft dat meestal onder de tien euro.
Mag ik zomaar een chatbot testen op kwetsbaarheden?
Alleen als het systeem van jou is of als je schriftelijke toestemming hebt van de eigenaar. Het testen van een chatbot van een derde partij zonder toestemming is een aanval, geen veiligheidsonderzoek.
Welk beveiligingsfilter kwam als beste uit het onderzoek?
Cisco AI Defense scoorde het hoogst met een F1-score van 0,845 op 80.000 Nederlandse prompts, gevolgd door Google Cloud Model Armor met 0,802. Azure kwam op 0,700 en AWS Bedrock Guardrails op 0,453.
Hoe vaak moet ik deze test herhalen?
Draai hem bij elke wijziging aan je systeeminstructie, bij een modelwissel en verder minstens een keer per kwartaal. Leveranciers passen modellen achter dezelfde API regelmatig aan, waardoor een eerdere uitslag ongemerkt kan verouderen.