Prompt Security En Misbruikpreventie Voor AI-systemen

💼 Management Samenvatting

Prompt security is een cruciaal onderdeel van het veilig inzetten van generatieve AI binnen Nederlandse overheidsorganisaties. Het richt zich op het beschermen van AI-systemen tegen kwaadaardige, misleidende of ongewenste invoer (prompts) die kunnen leiden tot datalekken, manipulatie van uitkomsten of ondermijning van beleids- en beveiligingskaders.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
9/10
Implementatie
100u (tech: 60u)
Van toepassing op:
Azure
M365
AI Services

Generatieve AI-systemen, zoals Azure OpenAI Service en Microsoft Copilot, reageren direct op natuurlijke taal. Daardoor kunnen kwaadwillenden met ogenschijnlijk onschuldige prompts proberen beveiligingsmaatregelen te omzeilen, interne beleidsinformatie te achterhalen of het systeem aan te zetten tot het genereren van ongewenste of onrechtmatige inhoud. Zonder een gestructureerde aanpak voor prompt security lopen Nederlandse publieke organisaties aanzienlijke risico’s: vertrouwelijke informatie kan via conversaties naar buiten lekken, beleidsrichtlijnen kunnen worden genegeerd, en beslissingsondersteunende AI kan worden gemanipuleerd om uitkomsten te produceren die niet stroken met wet- en regelgeving. Bovendien stelt de EU AI Act dat high-risk AI-systemen robuust en veilig moeten zijn tegen opzettelijk misbruik, terwijl de AVG eist dat persoonsgegevens adequaat worden beschermd – ook wanneer ze via prompts worden ingebracht of opgevraagd. In een overheidscontext, waar vertrouwen van burgers en parlementaire verantwoording centraal staan, is het onacceptabel dat een AI-systeem gevoelig is voor simpele prompt-injecties of social-engineering-achtige manipulatie. Prompt security biedt een structureel kader om deze risico’s te identificeren, te mitigeren en blijvend te monitoren.

PowerShell Modules Vereist
Primary API: Azure OpenAI Service, Azure AI Foundry, Microsoft Graph API
Connection: Connect-AzAccount, Connect-MgGraph
Required Modules: Az.Accounts, Microsoft.Graph

Implementatie

Dit artikel beschrijft een complete aanpak voor prompt security in generatieve AI-omgevingen, specifiek gericht op Nederlandse overheidsorganisaties. Het behandelt de onderliggende dreigingsmodellen, zoals prompt injection, data exfiltration, jailbreaks, rol-ontduiking en indirecte promptaanvallen via documenten of externe bronnen. Vervolgens wordt uitgewerkt hoe technische maatregelen (zoals inputvalidatie, systeem- en contentfilters, contextafbakening, rolgebaseerde prompting en gebruik van Azure AI Content Safety) gecombineerd kunnen worden met organisatorische maatregelen, waaronder beleid, awarenesstraining en governance-processen. Ook wordt ingegaan op logging, toetsing en auditing van conversaties, zodat organisaties kunnen aantonen dat zij misbruik actief voorkomen en tijdig ingrijpen bij incidenten. Ten slotte biedt het artikel praktische richtlijnen voor implementatie in Azure OpenAI Service, Microsoft Copilot en andere AI-platformen, inclusief voorbeeldpatronen voor veilige prompts, testscenario’s en integratie met bestaande informatiebeveiligings- en privacykaders.

Dreigingsmodel en Risico’s van Prompt Misbruik

Prompt security begint met een helder begrip van het dreigingslandschap rondom generatieve AI. In tegenstelling tot traditionele applicaties, waar aanvallen vaak plaatsvinden via technische kwetsbaarheden in code of infrastructuur, richt een groot deel van de risico’s bij generatieve AI zich op de interactielaag: de geschreven of gesproken prompts. Een aanvaller hoeft geen toegang te hebben tot beheerportalen of onderliggende infrastructuur; het enkel kunnen voeren van een conversatie met het model kan al voldoende zijn om schade aan te richten. Denk aan scenario’s waarin een gebruiker het model probeert te verleiden om vertrouwelijke beleidsdocumenten samen te vatten, interne procedures te onthullen of beveiligingsconfiguraties te beschrijven. Ook subtiele aanwijzingen, verpakt in schijnbaar legitieme vragen, kunnen het model sturen richting ongewenste antwoorden. Daarbij komt dat generatieve AI-systemen probabilistisch zijn: zij proberen ‘het beste mogelijke antwoord’ te genereren op basis van de prompt en de context, zonder intrinsiek onderscheid te maken tussen legitieme en malafide intenties.

Een belangrijk aanvalstype is prompt injection, waarbij een aanvaller instructies in de prompt opneemt die in strijd zijn met de oorspronkelijke systeeminstructies of beleidsregels. Bijvoorbeeld door het model te vragen eerdere instructies te negeren, de rol van ‘beveiligingsauditor’ over te nemen, of interne richtlijnen expliciet te overschrijven. In hybride scenario’s, waarin het model documenten of externe bronnen raadpleegt via Retrieval-Augmented Generation, kunnen aanvallers zelfs proberen malafide tekst in bronbestanden op te nemen, die vervolgens als ‘verborgen prompt’ wordt geïnjecteerd wanneer het document wordt opgehaald. Daarnaast bestaat het risico op data exfiltration: gebruikers kunnen prompts formuleren die het model ertoe aanzetten om vertrouwelijke passages uit interne documenten te reproduceren. Dit kan bijzonder schadelijk zijn in overheidsomgevingen, waar informatie vaak een hoge classificatie heeft en onder de Archiefwet, Woo en de AVG valt. Ten slotte zijn er jailbreak-aanvallen, waarbij gebruikers systematisch proberen ingebouwde veiligheidsfilters te omzeilen door creatief taalgebruik, vertalingen, coderingen of rolspellen te gebruiken. Zonder een expliciet dreigingsmodel dat deze scenario’s beschrijft, is het vrijwel onmogelijk om adequate maatregelen te treffen en de effectiviteit daarvan te toetsen.

Voor Nederlandse overheidsorganisaties is het essentieel om deze dreigingen te plaatsen in de context van bestaande risicokaders zoals de BIO, de EU AI Act en sectorale regelgeving. Prompt-aanvallen kunnen niet alleen leiden tot vertrouwelijkheidsinbreuken, maar ook tot integriteitsschade wanneer beleidsadviezen, juridische interpretaties of risicoanalyses ongemerkt worden beïnvloed door malafide promoties. Bovendien kan misbruik van generatieve AI leiden tot onrechtmatige verwerking van persoonsgegevens, bijvoorbeeld wanneer een model aanzet tot het combineren of reconstrueren van persoonsgegevens uit verschillende bronnen. Een solide prompt security-aanpak vereist daarom dat CISO’s, privacy officers, juridisch adviseurs en AI-ontwikkelteams gezamenlijk vastleggen welke typen prompts, use-cases en informatiecategorieën als hoog risico worden beschouwd en welke beveiligingsniveaus daar minimaal bij horen. Dit vormt de basis voor gerichte technische en organisatorische maatregelen.

Beveiligingsmaatregelen voor Veilige Prompts

Effectieve prompt security vergt een combinatie van technische maatregelen, configuratiekeuzes en duidelijke functionele afspraken met gebruikers. Een eerste stap is het scherp afbakenen van de context waarbinnen het AI-systeem mag opereren. In Azure OpenAI Service betekent dit dat system messages en deploymentconfiguraties expliciet vastleggen welke rollen het model mag aannemen, welke bronnen het mag raadplegen en welke soorten antwoorden zijn toegestaan. De systeemprompt moet duidelijke beveiligingsinstructies bevatten, zoals het nooit delen van ruwe broninhoud, het weigeren van verzoeken om beleid of beveiligingsmaatregelen te omzeilen, en het consistent verwijzen naar officiële kanalen voor gevoelige acties. Deze basisinstructies moeten zo zijn opgesteld dat ze bestand zijn tegen pogingen tot overschrijving: het model moet altijd de systeemregels laten prevaleren boven gebruikersinstructies, ongeacht de formulering of creatieve omwegen in de prompt.

Daarnaast is inputvalidatie op promptniveau noodzakelijk. Dat houdt in dat prompts automatisch worden gescreend op indicatoren van misbruik, zoals expliciete verzoeken om vertrouwelijke informatie vrij te geven, technische details over beveiligingsconfiguraties te delen, of inhoud te genereren die in strijd is met wet- en regelgeving. Azure AI Content Safety biedt mogelijkheden om prompts en responses automatisch te classificeren en te blokkeren wanneer zij bepaalde risicocategorieën overschrijden, bijvoorbeeld haatdragende taal, geweldsverheerlijking of expliciete instructies voor cyberaanvallen. Voor overheidsomgevingen is het wenselijk om bovenop deze standaardclassificaties eigen beleidscategorieën te definiëren, bijvoorbeeld ‘vertrouwelijke beleidsinformatie’ of ‘operationele beveiligingsmaatregelen’. Prompts die in deze categorieën vallen, kunnen automatisch worden geweigerd of omgeleid naar een menselijke beoordelaar. Zo ontstaat een gelaagde verdedigingslijn waarin zowel de modelconfiguratie als de omringende applicatielaag actief meewerken om misbruik te voorkomen.

Contextafbakening is een derde pijler van prompt security. Bij Retrieval-Augmented Generation moet zorgvuldig worden bepaald welke documenten en dataverzamelingen beschikbaar zijn voor het model en onder welke voorwaarden. Informatie met een hoge classificatie of gevoelige persoonsgegevens hoort niet rechtstreeks door een generatief model verwerkt te worden zonder aanvullende waarborgen, zoals pseudonimisering, sterke toegangscontrole en aanvullende reviewmechanismen. Het is raadzaam om aparte indexen en zoekkaders te hanteren voor verschillende vertrouwelijkheidsniveaus, en om per use-case expliciet te bepalen welke index gekoppeld mag worden aan de AI-assistent. In combinatie met rolgebaseerde toegang kan zo worden voorkomen dat een medewerker met een beperkte autorisatierol via de AI-toepassing alsnog toegang krijgt tot gevoelige dossiers. Tot slot moeten alle genomen maatregelen worden vastgelegd in technische en functionele documentatie, zodat bij audits helder kan worden aangetoond hoe prompt security is ingericht en welke controles periodiek worden uitgevoerd om de effectiviteit ervan te toetsen.

Operationeel Beheer, Logging en Incidentrespons

Wanneer prompt security in productie wordt gebracht, verschuift de focus van ontwerp naar operationeel beheer. Generatieve AI-systemen genereren grote hoeveelheden conversatiedata die zowel kansen als risico’s bieden. Aan de ene kant bieden logs een rijke bron van informatie om misbruikpogingen te detecteren, gebruikersgedrag te analyseren en beveiligingsmaatregelen continu te verbeteren. Aan de andere kant bevatten dezelfde logs mogelijk gevoelige informatie en moeten ze in lijn met de AVG, de Archiefwet en interne bewaartermijnen worden beheerd. Een volwassen prompt security-strategie definieert daarom expliciet welke conversatie-elementen worden gelogd, hoe lang deze worden bewaard, wie toegang heeft tot de logs en hoe deze data worden geanonimiseerd of gepseudonimiseerd waar dat mogelijk is. Bovendien moeten logging- en monitoringprocessen integraal onderdeel zijn van het bestaande security operations centre, zodat verdachte prompts en responses net zo serieus worden behandeld als andere beveiligingssignalen.

Incidentrespons voor prompt-gerelateerde beveiligingsincidenten vereist aangepaste draaiboeken. Waar traditionele incidenten vaak draaien om systeeminbraken of malware, gaat het bij prompt security veelal om misbruik van legitieme functionaliteit. Een voorbeeld is een medewerker die onbedoeld vertrouwelijke informatie in een conversatie plakt, of een externe gebruiker die het model met creatieve prompts ertoe brengt gevoelige details te onthullen. In dergelijke gevallen moet snel kunnen worden vastgesteld welke informatie is gedeeld, welke gebruikers betrokken waren, welke technische configuraties mogelijk hebben bijgedragen aan de fout en welke herstelmaatregelen nodig zijn. Dit kan variëren van het intrekken van tokens en toegang, via het bijwerken van systeem- en contentfilters, tot het herindexeren of verwijderen van documenten uit de zoekindex. Daarnaast moeten lessons learned structureel worden teruggekoppeld naar ontwerp- en governanceprocessen, zodat het beveiligingsniveau aantoonbaar verbetert na elk incident.

Tot slot is awareness en training van gebruikers een onmisbare component van operationele prompt security. Medewerkers moeten begrijpen dat prompts onderdeel zijn van de formele informatieketen en dat dezelfde zorgvuldigheid vereist is als bij e-mail, dossiers of vergaderverslagen. Dit betekent dat zij geen vertrouwelijke gegevens mogen invoeren in generatieve AI-systemen zonder expliciete toestemming en passende waarborgen, dat zij alerts en blokkades niet mogen proberen te omzeilen, en dat zij verdachte systeemreacties direct moeten melden. Door duidelijke richtlijnen, praktijkvoorbeelden en periodieke oefeningen – bijvoorbeeld scenario’s waarin een model verleid wordt tot ongepaste antwoorden – internaliseren gebruikers het belang van veilig promptgedrag. Dit sluit aan bij bestaande security awareness-programma’s binnen de overheid en helpt om generatieve AI op een verantwoorde, gecontroleerde manier in de dagelijkse praktijk te integreren.

Monitoring en Continue Verbetering

Gebruik PowerShell-script index.ps1 (functie Invoke-Monitoring) – Monitort configuraties, logging en beleid rondom prompt security voor AI-systemen.

Prompt security is geen eenmalige configuratie-inspanning maar een continu verbeterproces. Naarmate generatieve AI-modellen evolueren, nieuwe functionaliteiten beschikbaar komen en aanvallers creatiever worden, moeten beveiligingsmaatregelen periodiek worden herzien. Monitoring speelt hierin een centrale rol. Door conversatielogs en configuratie-informatie gestructureerd te analyseren, kunnen patronen van misbruikpogingen worden herkend en kunnen organisaties vroegtijdig ingrijpen. Dit vereist heldere KPI’s en meetpunten, zoals het aantal geblokkeerde prompts, de frequentie van jailbreak-pogingen, het percentage conversaties dat door Content Safety wordt gemarkeerd en de doorlooptijd van incidentopvolging. Door deze indicatoren te koppelen aan managementrapportages ontstaat inzicht in de effectiviteit van prompt security-maatregelen en kan gericht worden geïnvesteerd in verbeteringen.

Een praktische aanpak is om periodiek geautomatiseerde controles uit te voeren op AI-configuraties en logbestanden. Scripts kunnen bijvoorbeeld valideren of alle productie-deployments een actuele systeemprompt met beveiligingsinstructies hebben, of Content Safety correct is geconfigureerd en of logging en bewaartermijnen voldoen aan de vastgestelde standaarden. Daarnaast kunnen synthetische tests worden uitgevoerd, waarbij vooraf gedefinieerde ‘red team’-prompts automatisch naar testomgevingen worden gestuurd om te verifiëren dat veiligheidsfilters correct reageren. De resultaten van deze controles moeten worden vastgelegd als auditbewijslast, zodat bij interne of externe audits direct kan worden aangetoond dat prompt security structureel wordt bewaakt. Door monitoring te combineren met een formeel wijzigingsbeheerproces – waarin aanpassingen aan prompts, filters of indexconfiguraties worden beoordeeld en gedocumenteerd – ontstaat een volwassen beheercyclus die aansluit bij de eisen van de EU AI Act en de BIO.

Remediatie en Hardening van Prompt Security

Gebruik PowerShell-script index.ps1 (functie Invoke-Remediation) – Genereert rapporten en aanbevelingen voor het versterken van prompt security-configuraties.

Wanneer monitoring of audits aantonen dat prompt security tekortschiet, is een gestructureerd remediatieproces noodzakelijk. In de praktijk betekent dit dat per AI-use-case wordt vastgesteld welke tekortkomingen aanwezig zijn, welke risico’s daaraan zijn verbonden en welke prioriteit de herstelmaatregelen krijgen. Een toepassing die wordt ingezet in uitkeringsbesluitvorming of fraudedetectie zal bijvoorbeeld een hogere prioriteit hebben dan een interne kennisassistent. Remediatie kan bestaan uit het aanscherpen van systeem- en contentprompts, het uitbreiden van Content Safety-configuraties, het herinrichten van documentindexen of het beperken van toegangsrechten tot bepaalde datasets. Belangrijk is dat elke wijziging aantoonbaar bijdraagt aan risicoreductie en dat mogelijke bijwerkingen – zoals een vermindering van bruikbaarheid of toename van false positives – expliciet worden afgewogen en geaccepteerd door de verantwoordelijke proceseigenaren.

Naast technische aanpassingen omvat remediatie vaak ook organisatorische verbeteringen. Dit kan variëren van het herzien van beleid en gedragscodes rond het gebruik van generatieve AI, tot het intensiveren van awarenessprogramma’s of het instellen van aanvullende goedkeuringsstappen voor bepaalde promptcategorieën. In sommige gevallen kan het nodig zijn om een bestaande AI-use-case tijdelijk te beperken of zelfs buiten gebruik te stellen totdat voldoende zeker is dat prompt security op orde is. Alle genomen maatregelen, besluiten en achterliggende risicoafwegingen moeten zorgvuldig worden gedocumenteerd, zodat bij toekomstige incidenten of toezichtonderzoeken helder is waarom bepaalde keuzes zijn gemaakt. Door remediatie te benaderen als een cyclisch verbeterproces, waarin bevindingen uit monitoring, audits en incidenten steeds weer worden vertaald naar concrete verbeteracties, kunnen Nederlandse overheidsorganisaties het beveiligingsniveau van hun generatieve AI-omgevingen stap voor stap verhogen en tegelijkertijd het vertrouwen van burgers en toezichthouders versterken.

Compliance & Frameworks

Automation

Gebruik het onderstaande PowerShell script om deze security control te monitoren en te implementeren. Het script bevat functies voor zowel monitoring (-Monitoring) als remediation (-Remediation).

PowerShell
<# .SYNOPSIS Prompt Security Monitoring en Remediatie voor generatieve AI-systemen .DESCRIPTION Monitort configuraties, logging en beleid rondom prompt security voor AI-systemen zoals Azure OpenAI Service en Microsoft Copilot, en genereert rapporten en aanbevelingen voor het versterken van prompt security. .NOTES Filename: index.ps1 Author: Nederlandse Baseline voor Veilige Cloud Created: 2025-11-26 Last Modified: 2025-11-26 Version: 1.0 Related JSON: content/ai/prompt-security/index.json .LINK https://github.com/m365-tenant-best-practise .EXAMPLE .\index.ps1 -Monitoring Voert een controle uit op prompt security-configuraties en logging .EXAMPLE .\index.ps1 -Remediation Genereert prompt security-rapporten en aanbevelingen voor versterking #> #Requires -Version 5.1 #Requires -Modules Az.Accounts [CmdletBinding()] param( [Parameter()] [switch]$WhatIf, [Parameter()] [switch]$Monitoring, [Parameter()] [switch]$Remediation ) $ErrorActionPreference = 'Stop' $VerbosePreference = 'Continue' # Configuratie $PromptSecurityRequirements = @( "Systeemprompt bevat expliciete beveiligingsinstructies", "Content filters (bijv. Azure AI Content Safety) geconfigureerd", "Toegang tot gevoelige indexen beperkt op basis van rol", "Conversatielogs worden opgeslagen en bewaakt", "Bewaartermijnen voor logs vastgelegd en geïmplementeerd", "Incidentresponsproces voor prompt-misbruik gedocumenteerd", "Awareness en beleid voor veilig gebruik van generatieve AI beschikbaar" ) $AISystemRegistryPath = "D:\Github\m365-tenant-best-practise\documentatie\ai-systemen" $PromptSecurityReportPath = "D:\Github\m365-tenant-best-practise\reports\prompt-security" function Connect-RequiredServices { <# .SYNOPSIS Verbindt met benodigde Azure services #> [CmdletBinding()] param() Write-Verbose "Controleren van Azure verbinding..." try { $context = Get-AzContext -ErrorAction SilentlyContinue if (-not $context) { Write-Host "Verbinding maken met Azure..." -ForegroundColor Yellow Connect-AzAccount -ErrorAction Stop | Out-Null Write-Host "Verbonden met Azure" -ForegroundColor Green } else { Write-Verbose "Reeds verbonden met Azure (Account: $($context.Account.Id))" } } catch { Write-Error "Kon niet verbinden met Azure: $_" throw } } function Test-PromptSecurityConfiguration { <# .SYNOPSIS Test of AI-systemen basis prompt security-kenmerken hebben geconfigureerd .OUTPUTS PSCustomObject met compliance resultaten #> [CmdletBinding()] param() Write-Verbose "Controleren van prompt security-configuraties..." $aiSystems = @() if (Test-Path -Path $AISystemRegistryPath) { $registryFiles = Get-ChildItem -Path $AISystemRegistryPath -Filter "*.json" -Recurse -ErrorAction SilentlyContinue foreach ($file in $registryFiles) { try { $systemData = Get-Content -Path $file.FullName -Raw | ConvertFrom-Json $aiSystems += [PSCustomObject]@{ Name = $systemData.Name RiskLevel = $systemData.RiskLevel HasSystemPromptSecurity = $systemData.PromptSecurity.HasSystemPromptSecurity HasContentFiltering = $systemData.PromptSecurity.HasContentFiltering HasLoggingConfigured = $systemData.PromptSecurity.HasLoggingConfigured HasIncidentRunbook = $systemData.PromptSecurity.HasIncidentRunbook } } catch { Write-Verbose "Kon registry bestand niet lezen: $($file.FullName)" } } } if ($aiSystems.Count -eq 0) { Write-Host " Geen AI-systeem registry gevonden. Gebruik demo-systemen voor demonstratie." -ForegroundColor Yellow $aiSystems = @( [PSCustomObject]@{ Name = "Azure OpenAI Service - Beleidsassistent" RiskLevel = "High" HasSystemPromptSecurity = $false HasContentFiltering = $true HasLoggingConfigured = $true HasIncidentRunbook = $false }, [PSCustomObject]@{ Name = "Microsoft Copilot - Interne kennisbank" RiskLevel = "Medium" HasSystemPromptSecurity = $true HasContentFiltering = $true HasLoggingConfigured = $false HasIncidentRunbook = $false } ) } $compliantSystems = 0 $nonCompliantSystems = 0 $highRiskNonCompliant = @() $missingControlsSummary = @() Write-Host "`nControleren van $($aiSystems.Count) AI-systemen op prompt security..." -ForegroundColor Cyan foreach ($system in $aiSystems) { $missingControls = @() if (-not $system.HasSystemPromptSecurity) { $missingControls += "Systeemprompt beveiligingsinstructies" } if (-not $system.HasContentFiltering) { $missingControls += "Content filtering / Azure AI Content Safety" } if (-not $system.HasLoggingConfigured) { $missingControls += "Conversatielogging" } if (-not $system.HasIncidentRunbook) { $missingControls += "Incident runbook voor prompt-misbruik" } if ($missingControls.Count -eq 0) { Write-Host " ✅ $($system.Name) - Prompt security op orde" -ForegroundColor Green $compliantSystems++ } else { $nonCompliantSystems++ $missingControlsSummary += [PSCustomObject]@{ SystemName = $system.Name RiskLevel = $system.RiskLevel MissingControls = $missingControls -join ", " } $prefix = if ($system.RiskLevel -eq "High") { "[HIGH RISK]" } else { "[RISK]" } $color = if ($system.RiskLevel -eq "High") { "Red" } else { "Yellow" } Write-Host " ❌ $prefix $($system.Name) - Ontbrekende maatregelen: $($missingControls -join '; ')" -ForegroundColor $color if ($system.RiskLevel -eq "High") { $highRiskNonCompliant += $system.Name } } } $isCompliant = ($highRiskNonCompliant.Count -eq 0) return [PSCustomObject]@{ IsCompliant = $isCompliant TotalSystems = $aiSystems.Count CompliantSystems = $compliantSystems NonCompliantSystems = $nonCompliantSystems HighRiskNonCompliant = $highRiskNonCompliant MissingControlsDetail = $missingControlsSummary } } function New-PromptSecurityReport { <# .SYNOPSIS Genereert een prompt security-rapport voor een AI-systeem #> [CmdletBinding()] param( [Parameter(Mandatory = $true)] [string]$SystemName, [Parameter(Mandatory = $true)] [string]$RiskLevel, [Parameter(Mandatory = $true)] [string]$MissingControls, [Parameter(Mandatory = $true)] [string]$OutputPath ) $reportDate = Get-Date -Format "yyyy-MM-dd" $report = @" # Prompt Security Rapport: $SystemName **Rapportdatum:** $reportDate **Risiconiveau:** $RiskLevel **Status:** Verbetering van prompt security vereist ## Huidige Situatie Voor dit AI-systeem zijn de volgende prompt security-maatregelen onvoldoende of niet aanwezig: $MissingControls Dit betekent dat het systeem verhoogd kwetsbaar is voor: – Prompt injection en het negeren van systeem- en beleidsinstructies – Onbedoelde of onbevoegde vrijgave van vertrouwelijke informatie via conversaties – Onvoldoende logging en traceerbaarheid van prompt-gerelateerde incidenten ## Aanbevolen Maatregelen 1. **Systeemprompt en beleidsinstructies aanscherpen** Zorg dat de systeemprompt expliciet vastlegt welke informatie nooit mag worden gedeeld, hoe moet worden omgegaan met verzoeken om beveiligingsmaatregelen te omzeilen en hoe moet worden gereageerd op verdachte of onduidelijke prompts. 2. **Content filtering en beleid activeren** Configureer Azure AI Content Safety of een vergelijkbaar mechanisme om prompts en responses automatisch te beoordelen op misbruik, vertrouwelijkheid en ongewenste inhoud. Definieer aanvullende beleidscategorieën die aansluiten bij de organisatiecontext. 3. **Logging, monitoring en bewaartermijnen implementeren** Richt centrale logging in voor conversaties, stel bewaartermijnen in lijn met AVG en Archiefwet vast en integreer prompt security-signalen met bestaande monitoring- en SIEM-oplossingen. 4. **Incidentresponsproces uitwerken** Documenteer een specifiek runbook voor prompt security-incidenten, inclusief detectie, triage, impactanalyse, remediatie, communicatie en structurele verbeteracties. ## Implementatie-indicatie - Technische implementatie van filters, logging en configuraties: circa 40 uur - Uitwerking beleid, runbooks en awarenessmateriaal: circa 30 uur - Testen, valideren en documenteren: circa 30 uur Totale indicatie: ongeveer 100 uur, afhankelijk van complexiteit en aantal betrokken AI-use-cases. ## Compliance- en Auditperspectief De geadviseerde maatregelen ondersteunen naleving van: - **EU AI Act**: robuustheid en beveiliging van high-risk AI-systemen tegen opzettelijk misbruik - **AVG Artikel 32**: passende technische en organisatorische maatregelen voor beveiliging van persoonsgegevens - **BIO**: inrichting van logging, monitoring en incidentafhandeling voor kritieke informatiesystemen ## Volgende Stappen 1. Wijs een verantwoordelijke prompt security-eigenaar aan voor dit systeem. 2. Voer de hierboven genoemde maatregelen gefaseerd uit, te beginnen bij high-risk onderdelen. 3. Leg alle configuraties, keuzes en risico-afwegingen vast in het AI-systeemregister. 4. Plan periodieke herbeoordelingen van prompt security, minimaal jaarlijks of na grote wijzigingen. --- *Dit rapport is automatisch gegenereerd door de Nederlandse Baseline voor Veilige Cloud prompt security monitoring tool.* "@ $folder = Split-Path -Path $OutputPath -Parent if (-not (Test-Path -Path $folder)) { New-Item -Path $folder -ItemType Directory -Force | Out-Null } $report | Out-File -FilePath $OutputPath -Encoding UTF8 Write-Host " Rapport gegenereerd: $OutputPath" -ForegroundColor Green } function Invoke-Monitoring { <# .SYNOPSIS Monitort de prompt security compliance status van AI-systemen #> [CmdletBinding()] param() Write-Host "`nMonitoring: Prompt Security voor AI-systemen" -ForegroundColor Yellow Write-Host "============================================" -ForegroundColor Yellow $result = Test-PromptSecurityConfiguration Write-Host "`nResultaten:" -ForegroundColor Cyan Write-Host " Totaal AI-systemen: $($result.TotalSystems)" -ForegroundColor Cyan Write-Host " Systemen met voldoende prompt security: $($result.CompliantSystems)" -ForegroundColor Green Write-Host " Systemen met tekortkomingen: $($result.NonCompliantSystems)" -ForegroundColor $(if ($result.NonCompliantSystems -eq 0) { "Green" } else { "Red" }) if ($result.HighRiskNonCompliant.Count -gt 0) { Write-Host "`n KRITIEK: High-risk systemen met onvoldoende prompt security:" -ForegroundColor Red foreach ($system in $result.HighRiskNonCompliant) { Write-Host " - $system" -ForegroundColor Red } } if ($result.MissingControlsDetail.Count -gt 0) { Write-Host "`n Detail ontbrekende maatregelen per systeem:" -ForegroundColor Yellow foreach ($entry in $result.MissingControlsDetail) { Write-Host " - $($entry.SystemName) (Risico: $($entry.RiskLevel)) -> $($entry.MissingControls)" -ForegroundColor Yellow } } if ($result.IsCompliant) { Write-Host "`n✅ COMPLIANT - Alle high-risk AI-systemen hebben voldoende prompt security-maatregelen" -ForegroundColor Green exit 0 } else { Write-Host "`n❌ NON-COMPLIANT - Actie vereist voor high-risk systemen met onvoldoende prompt security" -ForegroundColor Red Write-Host " Gebruik -Remediation om gedetailleerde rapporten te genereren" -ForegroundColor Yellow exit 1 } } function Invoke-Remediation { <# .SYNOPSIS Genereert prompt security-rapporten en aanbevelingen voor ontbrekende maatregelen #> [CmdletBinding()] param() Write-Host "`nRemediatie: Prompt Security Rapporten Genereren" -ForegroundColor Yellow Write-Host "================================================" -ForegroundColor Yellow $result = Test-PromptSecurityConfiguration if ($result.MissingControlsDetail.Count -eq 0) { Write-Host " Geen systemen gevonden die prompt security-rapporten vereisen" -ForegroundColor Green exit 0 } Write-Host "`nGenereren van prompt security-rapporten..." -ForegroundColor Cyan foreach ($entry in $result.MissingControlsDetail) { $safeFileName = $entry.SystemName -replace '[^\w\s-]', '' -replace '\s+', '-' -replace '-+', '-' $outputPath = Join-Path -Path $PromptSecurityReportPath -ChildPath "$safeFileName-prompt-security-rapport.md" if ($WhatIf) { Write-Host " [WhatIf] Zou rapport genereren voor: $($entry.SystemName) -> $outputPath" -ForegroundColor Yellow } else { New-PromptSecurityReport -SystemName $entry.SystemName -RiskLevel $entry.RiskLevel -MissingControls $entry.MissingControls -OutputPath $outputPath } } Write-Host "`n✅ Rapporten gegenereerd. Bekijk de rapporten in: $PromptSecurityReportPath" -ForegroundColor Green Write-Host " Volg de aanbevelingen in de rapporten om prompt security te versterken." -ForegroundColor Cyan exit 0 } # ============================================================================ # MAIN EXECUTION # ============================================================================ try { Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Prompt Security Monitoring" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan if ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { Invoke-Remediation } else { $result = Test-PromptSecurityConfiguration if ($result.IsCompliant) { Write-Host "`n✅ COMPLIANT" -ForegroundColor Green } else { Write-Host "`n❌ NON-COMPLIANT" -ForegroundColor Red Write-Host "`nRun met -Monitoring voor gedetailleerde rapportage" -ForegroundColor Yellow Write-Host "Run met -Remediation om prompt security-rapporten te genereren" -ForegroundColor Yellow } return $result } } catch { Write-Error "Error: $_" throw } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
High: Critical - Zonder structurele prompt security lopen organisaties een hoog risico op datalekken, manipulatie van AI-uitkomsten, niet-naleving van EU AI Act en AVG, en ernstige reputatieschade. Aanvallers kunnen via eenvoudige prompts beveiligingsmaatregelen omzeilen en vertrouwelijke informatie ontlokken.

Management Samenvatting

Prompt security is essentieel voor veilig gebruik van generatieve AI in de overheid. Richt systeem- en contentprompts, Content Safety, logging en governance zo in dat prompt injection, data exfiltration en jailbreaks worden voorkomen en tijdig gedetecteerd. Implementatie kost circa 100 uur en is een kritische voorwaarde voor compliance en vertrouwen.