AI-threatdetectie Voor De Nederlandse Overheid

💼 Management Samenvatting

AI-threatdetectie richt zich op het tijdig herkennen van aanvallen en misbruikscenario's die specifiek gericht zijn op AI-systemen, machine learning-modellen en generatieve AI-diensten. Voor Nederlandse overheidsorganisaties is dit essentieel om te voldoen aan de eisen van BIO, NIS2, EU AI Act en AVG bij de inzet van AI voor kritieke processen.

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

De opkomst van generatieve AI, machine learning-modellen en geautomatiseerde besluitvorming brengt nieuwe dreigingsscenario's met zich mee die klassieke beveiligingscontroles niet afdoende afdekken. Denk aan prompt injection-aanvallen op ChatGPT en Copilot, adversarial voorbeelden die machine learning-modellen misleiden, datavergiftiging om modellen te beïnvloeden, modeldiefstal door onbevoegde extractie, en misbruik van AI-diensten voor social engineering of deepfake-generatie. Overheidsorganisaties die AI inzetten voor risicoselectie, fraudedetectie, documentverwerking of ondersteunende besluitvorming moeten kunnen aantonen dat zij deze dreigingen tijdig detecteren en adequaat reageren. Zonder specifieke AI-threatdetectie blijven aanvallen op AI-systemen onopgemerkt, met risico op onjuiste besluiten, schending van privacy, manipulatie van processen en verlies van vertrouwen in digitale overheidsdiensten.

PowerShell Modules Vereist
Primary API: Microsoft Sentinel, Microsoft Defender XDR, Azure AI Services, Microsoft Purview
Connection: Connect-AzAccount, Connect-MgGraph
Required Modules: Az.Accounts, Az.Monitor, Az.OperationalInsights, Microsoft.Graph

Implementatie

Dit artikel biedt een praktisch raamwerk voor AI-threatdetectie binnen de "Nederlandse Baseline voor Veilige Cloud". We beschrijven de belangrijkste dreigingsscenario's voor AI-systemen, hoe u deze detecteert met Microsoft Sentinel, Defender XDR en Azure Monitor, en hoe u threat intelligence en gedragsanalyse combineert voor vroegtijdige signalering. Vervolgens behandelen we de inrichting van detectieregels, correlaties en playbooks voor AI-specifieke incidenten. Het bijbehorende PowerShell-script helpt om verdachte patronen in AI-servicegebruik te identificeren en ondersteunt securityteams bij het analyseren van potentiële dreigingen tegen AI-workloads.

Het dreigingslandschap voor AI-systemen in de overheid

AI-systemen worden blootgesteld aan een breed spectrum van aanvallen die fundamenteel verschillen van traditionele cybersecurity-dreigingen. Een eerste categorie betreft adversarial aanvallen, waarbij aanvallers subtiele wijzigingen aanbrengen in inputdata om machine learning-modellen te misleiden. Een afbeelding kan bijvoorbeeld zodanig worden aangepast dat een menselijk oog geen verschil ziet, maar het model de afbeelding verkeerd classificeert. In overheidscontext kan dit leiden tot verkeerde risicoscores, onterechte fraudesignalen of gemiste bedreigingen. Een tweede categorie vormt prompt injection, waarbij aanvallers via slim geformuleerde prompts generatieve AI-diensten zoals Copilot manipuleren om gevoelige informatie te lekken, verboden acties uit te voeren of schadelijke content te genereren. Deze aanvallen zijn bijzonder lastig te detecteren omdat ze gebruikmaken van de normale interface van de AI-dienst en niet direct als malware of exploit verschijnen.

Datavergiftiging en modeldiefstal vormen eveneens significante risico's. Bij datavergiftiging injecteren aanvallers kwaadaardige voorbeelden in trainingsdatasets, waardoor modellen geleerd wordt om verkeerde beslissingen te nemen. Dit kan jarenlang onopgemerkt blijven en geleidelijk de betrouwbaarheid van AI-systemen aantasten. Modeldiefstal treedt op wanneer aanvallers via systematische API-aanroepen de interne logica van een model trachten te reconstrueren, bijvoorbeeld door duizenden voorbeeldvragen te stellen en op basis van de antwoorden het onderliggende model na te bouwen. Voor overheidsorganisaties die investeren in eigen AI-modellen voor specifieke use cases, zoals risicoselectie of documentclassificatie, betekent modeldiefstal een verlies van concurrentievoordeel en mogelijk schending van intellectueel eigendom.

Naast aanvallen op modellen zelf ontstaan er ook nieuwe vormen van misbruik waarbij AI-diensten worden ingezet voor kwaadaardige doeleinden. Deepfakes en synthetische content kunnen worden gebruikt voor identiteitsfraude, social engineering of desinformatie. AI-gestuurde chatbots kunnen worden getraind om phishing-campagnes te automatiseren of om massaal persoonlijke informatie te verzamelen. Ook het systematisch testen van AI-systemen om kwetsbaarheden te vinden, zonder dat dit onderdeel is van een goedgekeurd securitytestprogramma, vormt een risico. Voor Nederlandse overheidsorganisaties is het daarom cruciaal om niet alleen te monitoren op directe aanvallen op AI-systemen, maar ook op ongebruikelijk gebruik van AI-diensten dat kan wijzen op misbruik of voorbereiding van aanvallen op andere systemen of processen.

Detectiecapaciteiten en signalering in Microsoft-omgevingen

Microsoft Sentinel, Defender XDR en Azure Monitor bieden verschillende bouwstenen voor AI-threatdetectie, maar deze moeten worden geconfigureerd en aangevuld met specifieke use cases voor AI-dreigingen. Microsoft Sentinel bevat analytics rules die afwijkend gedrag in Microsoft 365, Azure AD en cloudworkloads detecteren, en kan worden uitgebreid met aangepaste regels die specifiek zijn gericht op AI-servicegebruik. Voorbeeldindicatoren zijn plotselinge toename in API-aanroepen naar AI-services, ongebruikelijke patroonherkenning in promptgeschiedenis, massale download van AI-gegenereerde content of systematische toegang tot gevoelige documenten via Copilot. Deze signalen worden idealiter gecorreleerd met andere beveiligingsgebeurtenissen, zoals verdachte inlogpogingen, dataleaks of wijzigingen in machtigingen, om een completer beeld te krijgen van potentiële bedreigingen.

Defender XDR biedt geavanceerde detecties voor Microsoft 365 Copilot-gebruik en kan signaleren wanneer gebruikers ongebruikelijk gedrag vertonen bij interactie met generatieve AI. Denk aan een gebruiker die in korte tijd duizenden prompts verstuurt, systematisch probeert gevoelige informatie te extraheren, of content genereert die mogelijk schadelijk is. Deze signalen worden verrijkt met context over gebruiker, apparaat, locatie en tijd, waardoor securityteams kunnen bepalen of het om legitiem gebruik, misbruik of een daadwerkelijke aanval gaat. Azure Monitor en Log Analytics kunnen worden ingezet om telemetrie van Azure AI Services, Cognitive Services en Azure Machine Learning te verzamelen en te analyseren op afwijkende patronen in modelgebruik, responstijden, foutpercentages of toegangspatronen.

Een effectieve AI-threatdetectiestrategie combineert meerdere databronnen en detectietechnieken. Gedragsanalyse identificeert afwijkingen in normaal gebruikersgedrag bij interactie met AI-diensten. Anomaliedetectie signaleert statistische uitschieters in modelprestaties, API-gebruik of datastromen. Threat intelligence feeds kunnen worden gebruikt om bekende adversarial voorbeelden, kwetsbare modelversies of indicatoren van modeldiefstal te identificeren. Daarnaast is het belangrijk om expliciete detectieregels te hebben voor hoog-risicoscenario's, zoals pogingen om AI-systemen te gebruiken voor het genereren van phishing-content, systematische extractie van trainingdata via API-aanroepen, of onbevoegde toegang tot productiemodellen. Door deze technieken te combineren in een gelaagde detectiearchitectuur, ontstaat een robuust beeld van de beveiligingsstatus van AI-systemen en kunnen bedreigingen in een vroeg stadium worden gedetecteerd en aangepakt.

Implementatiepatronen en detectieregels voor AI-bedreigingen

Gebruik PowerShell-script index.ps1 (functie Invoke-AiThreatAnalysis) – Analyseert loggegevens van AI-services op verdachte patronen en potentiële dreigingsindicatoren voor machine learning-modellen en generatieve AI-diensten..

De implementatie van AI-threatdetectie begint met het expliciet definiëren van use cases en dreigingsscenario's die relevant zijn voor uw organisatie. Stel vast welke AI-diensten worden gebruikt, welke gevoelige data daarbij betrokken zijn, en wat de impact zou zijn van een succesvolle aanval. Vervolgens identificeert u de databronnen die nodig zijn om deze scenario's te detecteren: Microsoft 365 audit logs voor Copilot-gebruik, Azure Monitor logs voor AI-servicegebruik, Defender-signalen voor verdacht gedrag, en eventueel applicatiespecifieke logs van custom AI-oplossingen. Deze databronnen worden geconsolideerd in Microsoft Sentinel of een centrale Log Analytics workspace, waarop vervolgens detectieregels worden gebouwd met Kusto Query Language (KQL).

Voorbeelddetectieregels kunnen zich richten op verschillende categorieën van dreigingen. Een regel voor prompt injection detecteert wanneer gebruikers in korte tijd veel prompts versturen die mogelijk schadelijk zijn, bijvoorbeeld door te zoeken naar patronen zoals instructies om systeemprompts te negeren, verzoeken om gevoelige informatie, of pogingen om de AI-dienst te laten fungeren als andere systemen. Een regel voor modeldiefstal signaleert systematische API-aanroepen met systematisch gevarieerde inputs, waarbij de aanvaller probeert het modelgedrag te mappen. Een regel voor datavergiftiging kan worden gebaseerd op ongebruikelijke wijzigingen in trainingsdatasets, plotselinge achteruitgang in modelprestaties zonder duidelijke oorzaak, of onverwachte correlaties tussen inputs en outputs. Daarnaast zijn regels nodig voor het detecteren van misbruik van AI-diensten, zoals massale generatie van content, gebruik van AI voor social engineering, of systematische extractie van trainingdata.

Detectieregels alleen zijn niet voldoende; ze moeten worden ingebed in een volledige responscyclus. Wanneer een regel een potentiële dreiging signaleert, moet deze worden verrijkt met context over de betrokken gebruiker, de timing, de omgeving en eventuele gerelateerde gebeurtenissen. Vervolgens worden alerts doorgestuurd naar de juiste securityteams voor triage en onderzoek. Playbooks in Microsoft Sentinel kunnen worden gebruikt om bepaalde acties automatisch uit te voeren, zoals het tijdelijk blokkeren van verdacht AI-servicegebruik, het verhogen van logging voor specifieke accounts, of het genereren van incidenttickets. Het bijbehorende PowerShell-script biedt aanvullende mogelijkheden voor offline analyse van logbestanden, bijvoorbeeld voor forensisch onderzoek na een incident of voor periodieke review van AI-servicegebruikpatronen. Door detectie, verrijking, triage en respons naadloos te koppelen, ontstaat een volwassen AI-threatdetectieprogramma dat niet alleen bedreigingen signaleert, maar ook snel en adequaat reageert.

Integratie van threat intelligence en continue verbetering

Gebruik PowerShell-script index.ps1 (functie Invoke-ThreatIntelligenceCheck) – Controleert AI-servicegebruik tegen bekende dreigingsindicatoren en genereert een overzicht van potentiële risico's en aanbevelingen voor verdere verbetering..

Threat intelligence speelt een cruciale rol bij AI-threatdetectie door informatie te leveren over bekende aanvalstechnieken, kwetsbare modelversies, indicatoren van compromise (IoC's) en trends in het dreigingslandschap. Nederlandse overheidsorganisaties kunnen gebruikmaken van open source threat intelligence feeds, commerciële bronnen, en informatie uit sectorale samenwerking zoals het Cyberveiligheidsberaad. Belangrijke bronnen voor AI-specifieke dreigingen zijn onder andere MITRE ATLAS (Adversarial Threat Landscape for Artificial Intelligence Systems), onderzoeksrapporten van cybersecurity-organisaties, en platforms die kwetsbaarheden in AI-systemen documenteren. Deze informatie kan worden geïntegreerd in Microsoft Sentinel via threat intelligence connectors, waardoor detectieregels automatisch kunnen worden bijgewerkt met nieuwe indicatoren en nieuwe dreigingsscenario's kunnen worden toegevoegd aan het monitoringsraamwerk.

Continue verbetering van AI-threatdetectie vereist een gestructureerde aanpak waarbij regelmatig wordt geëvalueerd of detectieregels nog effectief zijn, of nieuwe dreigingsscenario's moeten worden toegevoegd, en of false positives kunnen worden teruggedrongen. Securityteams moeten feedback verzamelen van incidentanalisten over de bruikbaarheid van alerts, de tijdigheid van signalering en de kwaliteit van de verstrekte context. Daarnaast is het belangrijk om periodiek te testen of detectieregels daadwerkelijk werken door middel van red team-oefeningen of controlled testing van dreigingsscenario's. Het bijbehorende PowerShell-script kan worden gebruikt om historische logdata te analyseren en te identificeren waar detectieregels mogelijk hebben gefaald, waar nieuwe patronen zichtbaar worden, of waar optimalisatie mogelijk is. Door deze evaluaties te koppelen aan formele reviewmomenten, bijvoorbeeld in maandelijkse security-overleggen, ontstaat een cyclisch verbeterproces waarin AI-threatdetectie steeds volwassener en effectiever wordt.

Tot slot moet AI-threatdetectie worden geplaatst in de bredere context van cybersecurity-governance en compliance. Bestuurders, CISO, FG en auditors moeten kunnen zien dat organisaties passende maatregelen hebben genomen om AI-risico's te beheersen en dat dreigingen tijdig worden gedetecteerd en aangepakt. Dit vereist duidelijke documentatie van detectieregels, dreigingsscenario's en responsprocedures, regelmatige rapportage over het aantal gedetecteerde incidenten, de tijd tot detectie en de effectiviteit van maatregelen, en bewijs van continue verbetering op basis van lessons learned en veranderende dreigingen. Door AI-threatdetectie expliciet te verankeren in securitybeleid, risicomanagement en compliance-raamwerken, wordt duidelijk dat de organisatie serieus omgaat met de beveiliging van AI-systemen en voldoet aan de eisen van BIO, NIS2, EU AI Act en AVG. Dit draagt bij aan het vertrouwen van burgers, bestuurders en toezichthouders in de verantwoorde inzet van AI binnen de Nederlandse publieke sector.

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 AI-threatdetectie en -analyse voor Microsoft-omgevingen. .DESCRIPTION Analyseert loggegevens van AI-services op verdachte patronen en potentiële dreigingsindicatoren voor machine learning-modellen en generatieve AI-diensten. Ondersteunt Nederlandse overheidsorganisaties bij het detecteren van aanvallen zoals prompt injection, adversarial voorbeelden, modeldiefstal en datavergiftiging. .NOTES Filename: index.ps1 Author: Nederlandse Baseline voor Veilige Cloud Created: 2025-01-27 Last Modified: 2025-01-27 Version: 1.0 Related JSON: content/ai/threat-detection/index.json .LINK https://github.com/[org]/m365-tenant-best-practise .EXAMPLE .\index.ps1 -AiThreatAnalysis -LogPath "D:\Logs\ai-services" Voert AI-threatanalyse uit op logbestanden in het opgegeven pad. .EXAMPLE .\index.ps1 -ThreatIntelligenceCheck Controleert AI-servicegebruik tegen bekende dreigingsindicatoren. #> #Requires -Version 5.1 [CmdletBinding()] param( [Parameter()] [switch]$WhatIf, [Parameter()] [switch]$AiThreatAnalysis, [Parameter()] [switch]$ThreatIntelligenceCheck, [Parameter()] [string]$LogPath = "D:\Github\m365-tenant-best-practise\log", [Parameter()] [string]$ReportPath = "D:\Github\m365-tenant-best-practise\log\ai-threat-detection-report.md" ) $ErrorActionPreference = 'Stop' $VerbosePreference = 'Continue' function Get-AiServiceLogs { <# .SYNOPSIS Leest logbestanden van AI-services in en retourneert gestructureerde data. .OUTPUTS PSCustomObject[] #> [CmdletBinding()] param( [Parameter(Mandatory = $true)] [string]$Path, [Parameter()] [int]$MaxLinesPerFile = 1000 ) Write-Verbose "AI-servicelogs ophalen uit: $Path" if (-not (Test-Path -Path $Path)) { Write-Verbose "Logpad bestaat niet, retourneer lege verzameling." return @() } $files = Get-ChildItem -Path $Path -Filter "*.log" -Recurse -ErrorAction SilentlyContinue if (-not $files) { Write-Verbose "Geen *.log bestanden gevonden, retourneer lege verzameling." return @() } $rows = @() foreach ($file in $files) { Write-Verbose "Verwerken logbestand: $($file.FullName)" try { $content = Get-Content -Path $file.FullName -ErrorAction Stop | Select-Object -First $MaxLinesPerFile } catch { Write-Warning "Kon logbestand niet lezen: $($file.FullName) - $_" continue } $index = 0 foreach ($line in $content) { $index++ if ([string]::IsNullOrWhiteSpace($line)) { continue } # Probeer JSON te parsen als de regel JSON lijkt te zijn $parsed = $null try { if ($line.Trim().StartsWith('{') -or $line.Trim().StartsWith('[')) { $parsed = $line | ConvertFrom-Json -ErrorAction SilentlyContinue } } catch { # Geen JSON, blijf doorgaan met ruwe tekst } $rows += [PSCustomObject]@{ File = $file.FullName LineNumber = $index RawText = $line Length = $line.Length IsJson = ($null -ne $parsed) ParsedData = $parsed } } } return $rows } function Test-PromptInjectionIndicator { <# .SYNOPSIS Test een tekststring op indicatoren van prompt injection-aanvallen. .OUTPUTS Boolean #> [CmdletBinding()] param( [Parameter(Mandatory = $true)] [string]$Text ) $indicators = @( 'ignore previous instructions', 'system prompt', 'ignore all', 'forget everything', 'show me the prompt', 'what are your instructions', 'reveal your system', 'act as if', 'pretend you are', 'disregard safety', 'bypass restrictions', 'ignore ethical' ) $textLower = $Text.ToLower() foreach ($indicator in $indicators) { if ($textLower -like "*$indicator*") { return $true } } return $false } function Test-ModelTheftPattern { <# .SYNOPSIS Identificeert patronen die kunnen wijzen op modeldiefstal pogingen. .OUTPUTS Boolean #> [CmdletBinding()] param( [Parameter(Mandatory = $true)] [int]$RequestCount, [Parameter(Mandatory = $true)] [TimeSpan]$TimeWindow, [Parameter()] [int]$Threshold = 500 ) # Als er meer dan de drempelwaarde aan requests zijn binnen een korte tijdspanne, # kan dit wijzen op systematische modeldiefstal if ($TimeWindow.TotalHours -lt 1 -and $RequestCount -gt $Threshold) { return $true } return $false } function Invoke-AiThreatAnalysis { <# .SYNOPSIS Analyseert loggegevens op verdachte patronen en potentiële dreigingsindicatoren voor AI-systemen. .OUTPUTS Hashtable met analyseresultaten. #> [CmdletBinding()] param() Write-Host "`nAI-Threatanalyse: Detectie van bedreigingen" -ForegroundColor Yellow Write-Host "=============================================" -ForegroundColor Yellow $data = Get-AiServiceLogs -Path $LogPath if (-not $data -or $data.Count -eq 0) { Write-Host "`nGeen loggegevens gevonden om te analyseren." -ForegroundColor Green return @{ HasData = $false Threats = @() } } $totalRows = $data.Count $promptInjectionCount = 0 $suspiciousPatterns = @() Write-Host "`nAnalyseren van $totalRows logregels..." -ForegroundColor Cyan # Analyseer elke regel op dreigingsindicatoren foreach ($row in $data) { if ($null -ne $row.RawText) { if (Test-PromptInjectionIndicator -Text $row.RawText) { $promptInjectionCount++ $suspiciousPatterns += [PSCustomObject]@{ Type = "Prompt Injection" File = $row.File LineNumber = $row.LineNumber Indicator = "Verdachte prompt gedetecteerd" Severity = "High" } } } } # Analyseer request-patronen voor modeldiefstal $requestsByFile = $data | Group-Object File $modelTheftCandidates = @() foreach ($group in $requestsByFile) { $requestCount = $group.Count if ($requestCount -gt 100) { $modelTheftCandidates += [PSCustomObject]@{ File = $group.Name RequestCount = $requestCount Type = "Mogelijke Modeldiefstal" Severity = "Medium" } } } Write-Host "`nAnalyse voltooid:" -ForegroundColor Cyan Write-Host (" Totaal aantal logregels : {0}" -f $totalRows) Write-Host (" Prompt injection-indicatoren : {0}" -f $promptInjectionCount) Write-Host (" Mogelijke modeldiefstalcases : {0}" -f $modelTheftCandidates.Count) if ($promptInjectionCount -gt 0) { Write-Host "`n⚠ Waarschuwing: Prompt injection-indicatoren gedetecteerd!" -ForegroundColor Red } if ($modelTheftCandidates.Count -gt 0) { Write-Host "`n⚠ Waarschuwing: Ongebruikelijk hoog aantal requests gedetecteerd!" -ForegroundColor Yellow } return @{ HasData = $true TotalRows = $totalRows PromptInjectionCount = $promptInjectionCount SuspiciousPatterns = $suspiciousPatterns ModelTheftCandidates = $modelTheftCandidates } } function New-AiThreatReport { <# .SYNOPSIS Genereert een markdown rapport met analyseresultaten en aanbevelingen. #> [CmdletBinding()] param( [Parameter(Mandatory = $true)] [hashtable]$AnalysisResult, [Parameter(Mandatory = $true)] [string]$OutputPath ) $now = Get-Date -Format "yyyy-MM-dd HH:mm:ss" $lines = @() $lines += "# AI-Threatdetectie Rapport" $lines += "" $lines += "**Laatst gegenereerd:** $now " $lines += "**Bron:** code/ai/threat-detection/index.ps1" $lines += "" if (-not $AnalysisResult.HasData) { $lines += "## Samenvatting" $lines += "" $lines += "Er zijn geen loggegevens gevonden in het opgegeven pad. Zonder voldoende en consistente logdata kan AI-threatdetectie niet effectief worden uitgevoerd." $lines += "" $lines += "## Aanbevolen vervolgacties" $lines += "" $lines += "- Controleer of AI-services (bijvoorbeeld Microsoft 365 Copilot, Azure AI Services, Cognitive Services) hun logs wel naar een centrale locatie schrijven." $lines += "- Richt waar mogelijk forwarding in naar een Log Analytics workspace of centrale logdirectory." $lines += "- Zorg dat audit logging is ingeschakeld voor alle AI-workloads die gevoelige data verwerken." $lines += "- Leg in architectuur- en ontwerpdocumenten vast welke logbronnen als input dienen voor AI-threatdetectie." } else { $lines += "## Samenvatting" $lines += "" $lines += ("In totaal zijn **{0}** logregels geanalyseerd. De analyse heeft **{1}** indicatoren van prompt injection-aanvallen gedetecteerd en **{2}** mogelijke gevallen van modeldiefstal geïdentificeerd." -f $AnalysisResult.TotalRows, $AnalysisResult.PromptInjectionCount, $AnalysisResult.ModelTheftCandidates.Count) $lines += "" if ($AnalysisResult.PromptInjectionCount -gt 0) { $lines += "## ⚠ Prompt Injection Indicatoren" $lines += "" $lines += ("Er zijn **{0}** indicatoren van mogelijke prompt injection-aanvallen gedetecteerd in de loggegevens." -f $AnalysisResult.PromptInjectionCount) $lines += "Dit vereist onmiddellijke aandacht en verdere onderzoek door het securityteam." $lines += "" if ($AnalysisResult.SuspiciousPatterns.Count -gt 0) { $lines += "### Gedetecteerde verdachte patronen" $lines += "" foreach ($pattern in $AnalysisResult.SuspiciousPatterns | Select-Object -First 10) { $lines += ("- **{0}** in `{1}` (regel {2}) - Ernst: {3}" -f $pattern.Type, $pattern.File, $pattern.LineNumber, $pattern.Severity) } $lines += "" } } if ($AnalysisResult.ModelTheftCandidates.Count -gt 0) { $lines += "## ⚠ Mogelijke Modeldiefstal" $lines += "" $lines += ("Er zijn **{0}** bestanden met een ongebruikelijk hoog aantal requests gedetecteerd, wat kan wijzen op systematische pogingen tot modeldiefstal." -f $AnalysisResult.ModelTheftCandidates.Count) $lines += "" $lines += "### Top 5 verdachte bestanden" $lines += "" foreach ($candidate in $AnalysisResult.ModelTheftCandidates | Sort-Object RequestCount -Descending | Select-Object -First 5) { $lines += ("- `{0}` : {1} requests - Ernst: {2}" -f $candidate.File, $candidate.RequestCount, $candidate.Severity) } $lines += "" } $lines += "## Aanbevolen vervolgacties" $lines += "" if ($AnalysisResult.PromptInjectionCount -eq 0 -and $AnalysisResult.ModelTheftCandidates.Count -eq 0) { $lines += "- Geen directe bedreigingen gedetecteerd. Blijf regelmatig monitoren op nieuwe dreigingspatronen." $lines += "- Overweeg om deze analyse te automatiseren en te integreren in Microsoft Sentinel of Defender XDR." $lines += "- Zorg voor periodieke review van detectieregels en drempelwaarden op basis van nieuwe threat intelligence." } else { $lines += "- **Onmiddellijke actie vereist:** Onderzoek alle gedetecteerde verdachte patronen en modeldiefstalcases." $lines += "- Verrijk loggegevens met aanvullende context (gebruikers, apparaten, locaties) voor diepgaandere analyse." $lines += "- Implementeer of versterk detectieregels in Microsoft Sentinel voor real-time signalering." $lines += "- Overweeg om betrokken accounts tijdelijk te blokkeren of extra monitoring in te stellen." $lines += "- Documenteer bevindingen en maatregelen voor audit- en compliance-doeleinden." } $lines += "" $lines += "- Gebruik threat intelligence feeds om detectieregels bij te werken met nieuwe indicatoren." $lines += "- Test detectieregels regelmatig door middel van red team-oefeningen of controlled testing." } $folder = Split-Path -Path $OutputPath -Parent if (-not (Test-Path -Path $folder)) { New-Item -Path $folder -ItemType Directory -Force | Out-Null } $lines | Out-File -FilePath $OutputPath -Encoding UTF8 Write-Host "Rapport gegenereerd: $OutputPath" -ForegroundColor Green } function Invoke-ThreatIntelligenceCheck { <# .SYNOPSIS Controleert AI-servicegebruik tegen bekende dreigingsindicatoren en genereert een overzicht. #> [CmdletBinding()] param() Write-Host "`nThreat Intelligence Check: AI-bedreigingen" -ForegroundColor Yellow Write-Host "============================================" -ForegroundColor Yellow $analysis = Invoke-AiThreatAnalysis if ($analysis.HasData) { New-AiThreatReport -AnalysisResult $analysis -OutputPath $ReportPath Write-Host "`nThreat intelligence-check voltooid. Zie rapport voor details." -ForegroundColor Green } else { Write-Host "`nGeen data beschikbaar voor threat intelligence-check." -ForegroundColor Yellow } return $analysis } try { Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "AI-Threatdetectie en Analyse" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan if ($AiThreatAnalysis) { if ($WhatIf) { Write-Host "[WhatIf] Zou AI-threatanalyse uitvoeren op: $LogPath" -ForegroundColor Yellow } else { Invoke-AiThreatAnalysis | Out-Null } } elseif ($ThreatIntelligenceCheck) { if ($WhatIf) { Write-Host "[WhatIf] Zou threat intelligence-check uitvoeren en rapport genereren op: $ReportPath" -ForegroundColor Yellow } else { Invoke-ThreatIntelligenceCheck | Out-Null } } else { # Standaardactie: threat intelligence-check uitvoeren if ($WhatIf) { Write-Host "[WhatIf] Zou threat intelligence-check uitvoeren en rapport genereren op: $ReportPath" -ForegroundColor Yellow } else { Invoke-ThreatIntelligenceCheck | Out-Null } } } catch { Write-Error "Er is een fout opgetreden: $_" throw } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
High: Zonder specifieke AI-threatdetectie blijven aanvallen zoals prompt injection, adversarial voorbeelden, datavergiftiging en modeldiefstal onopgemerkt. Dit leidt tot risico op onjuiste besluiten, schending van privacy, manipulatie van processen en verlies van vertrouwen in digitale overheidsdiensten, met directe gevolgen voor naleving van BIO, NIS2, EU AI Act en AVG.

Management Samenvatting

Richt een specifiek AI-threatdetectieprogramma in dat aanvallen op machine learning-modellen, generatieve AI-diensten en AI-workloads tijdig detecteert. Combineer Microsoft Sentinel, Defender XDR en Azure Monitor met aangepaste detectieregels voor AI-specifieke dreigingen, integreer threat intelligence en veranker detectie in een volledige responscyclus met playbooks en incidentafhandeling.