Security Awareness-training Voor Publieke Organisaties

💼 Management Samenvatting

Security awareness-training is in de Nederlandse Baseline voor Veilige Cloud geen vrijblijvende e-learning, maar een bestuurlijk instrument dat direct invloed heeft op continuïteit, compliance en publieke verantwoording. Door gedragsontwikkeling te koppelen aan Microsoft 365-telemetrie ontstaat een meetbaar programma dat bestuurders inzicht geeft in vaardigheden, discipline en resterende risico’s binnen iedere organisatie-eenheid.

Aanbeveling
IMPLEMENT
Risico zonder
Medium
Risk Score
6/10
Implementatie
280u (tech: 120u)
Van toepassing op:
Microsoft 365
Microsoft Defender XDR
Entra ID
Intune
Exchange Online

Publieke instellingen hebben te maken met uiteenlopende doelgroepen, van beleidsadviseurs tot buitendienstinspecteurs. Wanneer training te generiek is, blijven risicovolle gedragingen bestaan en is het onmogelijk om aan te tonen dat de BIO, AVG en Wbni-bepalingen daadwerkelijk worden nageleefd. Bovendien vragen NIS2 en de Wet open overheid expliciet om aantoonbaar risicomanagement en transparantie rond incidenten. Zonder volwassen awareness-programma blijft menselijk gedrag de zwakste schakel.

PowerShell Modules Vereist
Primary API: Microsoft Graph Reports API, Microsoft Defender for Office 365 Reporting, Viva Learning API
Connection: Connect-MgGraph met Reports.Read.All en SecurityEvents.Read.All; OAuth 2.0 client credentials voor Defender for Office 365 rapport-API's
Required Modules: Microsoft.Graph.Reports, Microsoft.Graph.Users, ExchangeOnlineManagement

Implementatie

Dit artikel beschrijft hoe organisaties security awareness structureel verankeren, hoe campagnes worden ontworpen en uitgevoerd, en hoe telemetrie wordt gebruikt om governancebesluiten te onderbouwen. De bijbehorende PowerShell-code levert directe inzichten op basis van lokale debugdata of productierapportages zodat CISO’s, HR en serviceorganisaties concrete verbeteracties kunnen plannen.

Strategische verankering en regievoering

Een effectief security awareness-programma begint bij bestuurlijke regie. Colleges van B&W, gedeputeerden en directies van zelfstandig bestuursorganen moeten formeel vastleggen dat gedragsrisico’s dezelfde aandacht krijgen als technische kwetsbaarheden, inclusief budget, KPI’s en rapportagelijnen. Het governancebesluit verwijst naar de Baseline Informatiebeveiliging Overheid, de AVG en de Wbni, zodat duidelijk is dat training geen optionele HR-activiteit is maar een wettelijke verplichting. Door het mandaat vast te leggen in hetzelfde register waarin ook kritieke processen en leveranciers zijn opgenomen, ontstaat een direct verband tussen security awareness en continuïteitsdoelstellingen.

Na het mandaat volgt een diepgaande analyse van risicoprofielen. Publieke organisaties brengen per afdeling in kaart welke processen persoonsgegevens verwerken, welke systemen buitenlandse afhankelijkheden kennen en welke medewerkers verhoogde privileges bezitten. Deze analyse wordt gevoed met data uit Entra ID, Microsoft Defender XDR en servicecatalogi. De resultaten bepalen welk trainingsniveau verplicht is, welke scenario’s centraal staan en welke aanvullende gedragsmaatregelen noodzakelijk zijn, zoals verplichte MFA-verificatie voor portefeuilles met staatsgeheime dossiers. Door deze analyse te documenteren in dezelfde tooling als het risicoregister voorkomen organisaties dat bewustwording een losstaand traject blijft.

Strategische verankering vraagt ook om aansluiting op HR-cycli en werkgeverschap. Nieuwe medewerkers volgen binnen tien werkdagen een basishandelingstraining die volledig is afgestemd op de lokale samenwerking met shared service centers. Periodieke beoordelingen bespreken vervolgens, net als financiële of juridische competenties, specifieke gedragsindicatoren op het gebied van informatiebeveiliging. Leidinggevenden krijgen heldere dashboards waarmee ze de voortgang van hun teams vergelijken en waaruit blijkt welke interventies nodig zijn wanneer medewerkers structureel achterblijven. Hierdoor beklijft security awareness als vast onderdeel van functioneringsgesprekken en opleidingsplannen.

Tot slot verbindt de Baseline het awareness-programma aan externe partners en toezichthouders. Regionale samenwerkingsverbanden, IBD en NCSC ontvangen periodiek dezelfde KPI’s zodat trends over de hele overheid zichtbaar worden. Bij crisisoefeningen simuleren organisaties niet alleen technische grootschalige aanvallen, maar ook communicatie richting burgers, bestuur en media waarin de rol van getrainde medewerkers centraal staat. Door resultaten te publiceren in openbare verantwoordingsrapportages bevorderen organisaties vertrouwen en laten zij zien dat zij investeren in de digitale weerbaarheid van dienstverleners en burgers.

Strategische besturing houdt eveneens in dat financiering en inkoopprocessen voorspelbaar zijn. Gemeenten, provincies en departementen reserveren in de Meerjaren-Investeringsplannen structurele middelen voor awareness, inclusief licenties voor simulatieplatforms, communicatiecampagnes en interne trainers. Inkoopafdelingen leggen kwaliteitseisen vast waarmee leveranciers aantonen dat hun materialen voldoen aan toegankelijkheidsrichtlijnen, meertalige ondersteuning en privacy by design. Door raamcontracten te koppelen aan prestatie-indicatoren over adoptie en effectiviteit wordt voorkomen dat korte, hypegedreven trajecten de plaats innemen van langdurige gedragsverandering.

Tot slot wordt juridische borging afgestemd met ondernemingsraad, privacy officers en functionarissen gegevensbescherming. Zij toetsen of monitoring van medewerkers proportioneel is, welke gegevens worden opgeslagen en wanneer resultaten anoniem moeten worden gepresenteerd. Deze governance waarborgt dat awareness niet ontaardt in surveillance, maar juist bijdraagt aan vertrouwen en professionele trots. Door afspraken vast te leggen in protocollen die deel uitmaken van het kwaliteitssysteem kunnen auditors eenvoudig vaststellen dat het programma in lijn is met arbeidsrecht, AVG en de beginselen van behoorlijk bestuur.

Periodieke maturity-reviews sluiten de strategische cyclus. Tijdens deze sessies vergelijken bestuurders en CISO’s de bereikte resultaten met de ambities uit de coalitieprogramma’s en digitaliseringsagenda’s. Afwijkingen leiden direct tot nieuwe opdrachten voor veranderteams of aanvullende investeringen, waardoor security awareness continu zichtbaar blijft op de bestuursagenda.

Implementatie, campagnes en automatisering

Gebruik PowerShell-script awareness-training.ps1 (functie Invoke-AwarenessTrainingAssessment) – Analyseert trainingsvoltooiing, phishing-scores en beleidsbekrachtiging op basis van lokale debugdata of productie-exporten en genereert een rapport voor bestuurders..

Security awareness krijgt pas impact wanneer campagnes aansluiten op dagelijkse werkprocessen. In Microsoft 365 betekent dit dat communicatie plaatsvindt via dezelfde kanalen waarmee medewerkers al samenwerken: Microsoft Teams, Outlook, Viva Engage en intranetportalen. Campagnes bestaan uit scenario’s die aansluiten op actuele dreigingen, zoals spear phishing op collegeleden, misbruik van generatieve AI of datalekken via persoonlijke cloudopslag. Elk scenario koppelt trainingsmomenten aan realistische beslismomenten, bijvoorbeeld het goedkeuren van facturen of het delen van informatie met ketenpartners. Door Azure Automation en Power Automate in te zetten, ontvangen medewerkers automatische herinneringen zodra ze een nieuw systeem of rol toegewezen krijgen, waardoor onboarding en training synchroon blijven lopen.

Het PowerShell-script in deze repository ondersteunt implementatie door datasets uit Graph en Defender te combineren met lokale context. In DebugMode levert het script representatieve voorbeelddata waarmee functionele beheerders kunnen testen of dashboards en rapportages aansluiten bij de wensen van auditors en bestuurders. Wanneer productiegegevens beschikbaar zijn, valideert het script onder meer het percentage afgeronde trainingen, het aantal herhaalde fouten tijdens phishing-simulaties en de snelheid waarmee medewerkers beleidswijzigingen bevestigen. Hierdoor kunnen organisaties per afdeling exact bepalen welke interventies nodig zijn, variërend van korte coaching tot verplichte hercertificering.

Automatisering strekt zich uit tot de samenwerking tussen CISO-office, HR en communicatieteams. Door gedeelde contentbibliotheken in Viva Learning te gebruiken, kunnen securityspecialisten kernboodschappen aanpassen zonder afhankelijk te zijn van externe leveranciers. Tegelijk worden compliance-eisen vertaald naar automatische blokkades: een medewerker die na meerdere herinneringen geen training afrondt, verliest tijdelijk toegang tot gevoelige SharePoint-omgevingen of ontvangt alleen-lezen rechten totdat het gedrag is gecorrigeerd. Conditional Access Policies, gevoed door het script en Intune-compliancegegevens, zorgen ervoor dat deze restricties objectief en reproduceerbaar worden toegepast.

De operationalisering omvat bovendien ondersteunende diensten voor medewerkers die moeite hebben met digitale vaardigheden. Lokale digitale servicepunten houden spreekuren, terwijl taalcoaches en vertrouwenspersonen betrokken worden om barrières weg te nemen bij bijvoorbeeld laaggeletterde medewerkers. Door deze sociale component expliciet te koppelen aan technische telemetrie ontstaat een inclusief programma waarin ieder teamlid de kans krijgt om veilige werkwijzen vol te houden zonder dat de organisatie risico’s accepteert die strijdig zijn met wet- en regelgeving.

Specifieke risicoprofielen, zoals bestuurders, toezichthouders en OT-operators, krijgen aanvullende scenario’s die aansluiten op hun besluitvorming en technische context. Zo oefenen bestuurders hoe zij social-engineeringpogingen herkennen tijdens coalitieonderhandelingen, terwijl toezichthouders leren hoe zij vertrouwelijke dossiers veilig delen met externe onderzoekers. OT-operators krijgen simulaties die uitleggen hoe phishing of malafide USB-sticks productieprocessen kunnen verstoren en hoe zij incidentmeldingen combineren met fysieke veiligheidsprotocollen. Door deze modules te koppelen aan Intune-enrollment en rolgebaseerde toegang in Entra ID staat het trainingsniveau automatisch gelijk aan de rechten en verantwoordelijkheden van de medewerker.

Daarnaast richt het implementatieplan zich op leveranciers en ketenpartners. Contracten schrijven voor dat externe medewerkers dezelfde trainingen volgen als interne collega’s voordat zij toegang krijgen tot Teams, SharePoint of Azure-omgevingen. Het script kan datasets verrijken met leverancierscodes, waardoor zichtbaar wordt welke partners achterblijven en waar escalaties nodig zijn. Door deze informatie te delen tijdens contractbesprekingen en prestatie-evaluaties ontstaat een gedeelde verantwoordelijkheid voor veilige dienstverlening, ook wanneer onderdelen van de keten buiten nationale grenzen worden gehost.

Meting, toezicht en continue verbetering

Gebruik PowerShell-script awareness-training.ps1 (functie Invoke-AwarenessTrainingMonitoring) – Voert periodieke controles uit, signaleert afwijkingen ten opzichte van normwaarden en publiceert rapportages voor audits en managementteams..

Continue verbetering vraagt om transparante meetmethoden die zowel statistische nauwkeurigheid als menselijk gedrag omvatten. De Nederlandse Baseline voor Veilige Cloud schrijft daarom voor dat KPI’s rond security awareness bestaan uit drie lagen: deelnamegraad, effectiviteit en gedragsverandering. Deelname meet hoeveel medewerkers trainingen en simulaties afronden binnen de gestelde termijn. Effectiviteit beoordeelt of medewerkers de leerstof toepassen in hun dagelijkse werk, bijvoorbeeld door het aantal succesvolle phishingklikken, tijdige meldingen van verdachte e-mails en naleving van clean desk-principes te monitoren. Gedragsverandering richt zich op langere termijn en gebruikt interviews, compliance-audits en data over incidentmeldingen om te bepalen of cultuurverandering daadwerkelijk plaatsvindt.

Het meegeleverde script genereert per run een digitaal dossier waarin normwaardes, datasetbronnen en aanbevelingen zijn opgenomen. Hierdoor ontstaat een herleidbare audittrail die laat zien dat organisaties niet alleen meten, maar ook bijsturen. Wanneer KPI’s onder de drempel zakken, genereert het script aanbevelingen zoals het herzien van de doelgroepsegmentatie, het inplannen van aanvullende phishing-simulaties of het intensiveren van bestuurlijke communicatiecampagnes. Door hashwaarden van de rapporten op te slaan in Purview of SharePoint eDiscovery kunnen auditors later nagaan dat cijfers niet zijn gemanipuleerd.

De verbetercyclus sluit aan op bestaande overlegstructuren. CISO’s bespreken de output maandelijks met HR en CIO’s, waarna besluiten worden vastgelegd in het risicoregister en in opdrachtbrieven voor veranderprogramma’s. Lessons learned uit echte incidenten of tabletop-oefeningen worden vertaald naar nieuwe trainingsmodules en scenario’s. Door AI-ondersteunde analyse toe te passen op feedback van medewerkers en serviceverzoeken, ontdekken organisaties patronen die duiden op kennisleemtes of onduidelijke processen. Deze inzichten worden direct doorgevoerd in campagnes, zodat de tijd tussen signalering en verbetering maximaal één kwartaal bedraagt.

Ten slotte vereist continue verbetering dat resultaten met de buitenwereld worden gedeeld. Publieke organisaties publiceren samenvattingen van hun awareness-programma in jaarverslagen en in Rijksoverheidsportalen, inclusief toelichting op privacyvriendelijke meetmethoden. Burgers en volksvertegenwoordigers zien daardoor dat overheidscapaciteit wordt ingezet om digitaal vertrouwen te vergroten. Het programma sluit hiermee aan op de maatschappelijke ambitie om digitale dienstverlening toegankelijk en veilig te houden, zelfs nu cyberdreigingen complexer en meer grensoverschrijdend worden.

Kennisdeling tussen organisaties vormt een essentiële versneller. Via communities of practice onder regie van IBD, CIP of Rijksconnect wisselen security officers casuïstiek, lesmateriaal en metriekdefinities uit. Het script ondersteunt deze samenwerking doordat datasets eenvoudig geanonimiseerd kunnen worden en vervolgens als benchmark dienen. Wanneer een gemeente, provincie of agentschap aantoonbaar boven de norm presteert, kunnen best practices versneld worden opgeschaald naar andere onderdelen van de publieke sector. Dit voorkomt dat elke organisatie het wiel opnieuw moet uitvinden en verhoogt het tempo waarin gedragsrisico’s dalen.

De inzichten vloeien ten slotte terug naar portefeuilles voor bedrijfscontinuïteit, informatiebeveiliging en dienstverlening. KPI’s uit het awareness-programma worden opgenomen in enterprise risk management dashboards, zodat bestuurders direct zien hoe menselijk gedrag bijdraagt aan het restrisico per proces. Wanneer digitale transformaties worden gepland, bijvoorbeeld de invoering van nieuwe AI-diensten of het vervangen van zaaksystemen, leveren de awareness-analyse en het script input voor impactanalyses en besluitvormingsnotities. Op die manier vormt cultuurverandering geen losse werkstroom maar een integraal onderdeel van het veranderportfolio.

Elke kwartaalcyclus sluit af met een publieke reflectie. Communicatieafdelingen vertalen de belangrijkste leermomenten naar begrijpelijke verhalen voor raadsleden, Kamercommissies en burgers, inclusief concrete voorbeelden van verbeterde dienstverlening. Deze transparantie versterkt het maatschappelijke mandate om blijvend te investeren in vaardigheden en maakt duidelijk dat security awareness een permanente pijler van digitale soevereiniteit is.

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 Beoordeelt security awareness-programma's binnen Microsoft 365-omgevingen. .DESCRIPTION Dit script ondersteunt content/security/awareness-training.json in het project "Nederlandse Baseline voor Veilige Cloud". Het combineert lokale debugdata of productie-exporten uit Microsoft Graph en Defender for Office 365 om deelnamegraad, effectiviteit en gedragsverbetering te toetsen. Resultaten worden vastgelegd in een rapport dat geschikt is voor audits, bestuurders en CISO-overleggen. .NOTES Filename: awareness-training.ps1 Author: Nederlandse Baseline voor Veilige Cloud Created: 2025-11-27 Version: 1.0 .LINK https://github.com/microsoft/m365-tenant-best-practise .EXAMPLE .\awareness-training.ps1 -Assessment -DebugMode Voert een beoordeling uit met voorbeelddata en schrijft een rapport in de artifacts-map. .EXAMPLE .\awareness-training.ps1 -Monitoring -WhatIf Toont welke afwijkingen worden gesignaleerd tijdens periodieke monitoring zonder wijzigingen door te voeren. #> #Requires -Version 5.1 [CmdletBinding()] param( [Parameter(Mandatory = $false)] [switch]$Assessment, [Parameter(Mandatory = $false)] [switch]$Monitoring, [Parameter(Mandatory = $false)] [switch]$Remediation, [Parameter(Mandatory = $false)] [switch]$DebugMode, [Parameter(Mandatory = $false)] [switch]$WhatIf, [Parameter(Mandatory = $false)] [string]$ConfigPath = ".\config\security-awareness-training.config.json", [Parameter(Mandatory = $false)] [string]$OutputPath = ".\artifacts\awareness-training-report.json" ) $ErrorActionPreference = 'Stop' $VerbosePreference = 'Continue' function Write-ScriptBanner { Write-Host "" Write-Host "========================================" -ForegroundColor Cyan Write-Host "Security Awareness Training" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "" } function Get-SampleDataset { [CmdletBinding()] param() return [ordered]@{ GeneratedAt = Get-Date EmployeePopulation = 12800 TrainingCompletionPercent = 94 HighRiskRolesCoveredPercent = 91 PolicyAcknowledgementRate = 96 PhishingSimulationFailureRate = 3.5 RepeatOffenders = 37 AwarenessChampions = 140 LastExecutiveBriefingDays = 24 ReportedIncidentsLastQuarter = 18 SimulationsPerQuarter = 4 LearningNudgesAutomatedPercent = 78 CoachingSessionsScheduled = 62 } } function Get-ConfigDataset { [CmdletBinding()] param() if (Test-Path -Path $ConfigPath) { Write-Verbose "Configuratiebestand gevonden op $ConfigPath" try { $json = Get-Content -Path $ConfigPath -Raw | ConvertFrom-Json -ErrorAction Stop return $json } catch { Write-Warning "Kon configuratie niet inlezen. Er wordt teruggevallen op voorbeelddata. Details: $($_.Exception.Message)" } } if (-not $DebugMode) { Write-Warning "Geen configuratiebestand gevonden. Gebruik DebugMode of lever een exportbestand aan via -ConfigPath." } return Get-SampleDataset } function Test-AwarenessTrainingBaseline { [CmdletBinding()] param( [Parameter(Mandatory = $true)] $Dataset ) $issues = New-Object System.Collections.Generic.List[string] if ($Dataset.TrainingCompletionPercent -lt 95) { $issues.Add("De trainingsvoltooiing staat op $($Dataset.TrainingCompletionPercent)% terwijl minimaal 95% vereist is.") } if ($Dataset.HighRiskRolesCoveredPercent -lt 98) { $issues.Add("Slechts $($Dataset.HighRiskRolesCoveredPercent)% van de hoogrisicorollen rondt verplichte modules af; norm is 98%.") } if ($Dataset.PhishingSimulationFailureRate -gt 4) { $issues.Add("De phishingfoutgraad bedraagt $($Dataset.PhishingSimulationFailureRate)% en moet onder de 4% blijven.") } if ($Dataset.PolicyAcknowledgementRate -lt 97) { $issues.Add("Het percentage bevestigde beleidswijzigingen is $($Dataset.PolicyAcknowledgementRate)% maar moet minimaal 97% zijn.") } if ($Dataset.RepeatOffenders -gt 25) { $issues.Add("Er zijn $($Dataset.RepeatOffenders) herhaaldelijk falende medewerkers; norm is maximaal 25.") } if ($Dataset.SimulationsPerQuarter -lt 4) { $issues.Add("Er worden slechts $($Dataset.SimulationsPerQuarter) simulaties per kwartaal uitgevoerd; minimaal vier zijn vereist.") } if ($Dataset.LearningNudgesAutomatedPercent -lt 75) { $issues.Add("Slechts $($Dataset.LearningNudgesAutomatedPercent)% van de leerprikkels is geautomatiseerd; norm is 75%.") } if ($Dataset.LastExecutiveBriefingDays -gt 30) { $issues.Add("Het is $($Dataset.LastExecutiveBriefingDays) dagen geleden dat bestuurders zijn bijgepraat; maximaal 30 dagen toegestaan.") } $score = 100 $score -= [math]::Max(0, (95 - $Dataset.TrainingCompletionPercent)) $score -= [math]::Max(0, (98 - $Dataset.HighRiskRolesCoveredPercent)) * 0.5 $score -= [math]::Max(0, ($Dataset.PhishingSimulationFailureRate - 4)) * 2 $score = [math]::Max(0, [math]::Min(100, $score)) return [pscustomobject]@{ ScriptName = 'awareness-training.ps1' Timestamp = Get-Date Dataset = $Dataset Issues = $issues Score = [math]::Round($score, 2) IsCompliant = ($issues.Count -eq 0) Norms = [ordered]@{ TrainingCompletionPercent = 95 HighRiskRolesCoveredPercent = 98 PhishingSimulationFailureRate = 4 PolicyAcknowledgementRate = 97 RepeatOffenders = 25 SimulationsPerQuarter = 4 LearningNudgesAutomatedPercent = 75 LastExecutiveBriefingDays = 30 } } } function Invoke-AwarenessTrainingAssessment { [CmdletBinding()] param( [Parameter(Mandatory = $true)] $Dataset ) $result = Test-AwarenessTrainingBaseline -Dataset $Dataset Write-Host "Medewerkerspopulatie : $($Dataset.EmployeePopulation)" -ForegroundColor White Write-Host "Training voltooid (%) : $($Dataset.TrainingCompletionPercent)" -ForegroundColor White Write-Host "Hoogrisicorollen afgerond (%) : $($Dataset.HighRiskRolesCoveredPercent)" -ForegroundColor White Write-Host "Phishingfoutgraad (%) : $($Dataset.PhishingSimulationFailureRate)" -ForegroundColor White Write-Host "Bevestiging beleid (%) : $($Dataset.PolicyAcknowledgementRate)" -ForegroundColor White Write-Host "Herhaalde overtreders : $($Dataset.RepeatOffenders)" -ForegroundColor White Write-Host "Simulaties per kwartaal : $($Dataset.SimulationsPerQuarter)" -ForegroundColor White Write-Host "Automatiseringsgraad leerprikkels (%) : $($Dataset.LearningNudgesAutomatedPercent)" -ForegroundColor White Write-Host "Laatste bestuurdersbriefing (dagen) : $($Dataset.LastExecutiveBriefingDays)" -ForegroundColor White if ($result.IsCompliant) { Write-Host "`nResultaat: awareness-programma voldoet aan de norm." -ForegroundColor Green } else { Write-Host "`nResultaat: aandachtspunten gevonden." -ForegroundColor Yellow $result.Issues | ForEach-Object { Write-Host " - $_" -ForegroundColor Yellow } } return $result } function Invoke-AwarenessTrainingMonitoring { [CmdletBinding()] param( [Parameter(Mandatory = $true)] $Dataset ) $assessment = Test-AwarenessTrainingBaseline -Dataset $Dataset if ($assessment.IsCompliant) { Write-Host "Monitoringcontrole: alle indicatoren binnen norm." -ForegroundColor Green } else { Write-Host "Monitoringcontrole: afwijkingen gedetecteerd." -ForegroundColor Yellow $assessment.Issues | ForEach-Object { Write-Host " - $_" -ForegroundColor Yellow } } return $assessment } function Invoke-AwarenessTrainingRemediation { [CmdletBinding()] param( [Parameter(Mandatory = $true)] $AssessmentResult ) $actions = New-Object System.Collections.Generic.List[string] if ($AssessmentResult.Issues -match "trainingsvoltooiing") { $actions.Add("Verplicht aanvullende modules en koppel niet-voldoen aan tijdelijke toegangsbeperkingen in Entra ID.") } if ($AssessmentResult.Issues -match "hoogrisicorollen") { $actions.Add("Plan maatwerkcoaching voor bestuurders, functioneel beheerders en OT-operators binnen twee weken.") } if ($AssessmentResult.Issues -match "phishingfoutgraad") { $actions.Add("Voer een versnelde phishingcampagne uit en debrief direct met betrokken teams.") } if ($AssessmentResult.Issues -match "beleidswijzigingen") { $actions.Add("Herhaal beleidsbekrachtiging via Teams-live events en registreer bevestigingen opnieuw.") } if ($AssessmentResult.Issues -match "herhaaldelijk") { $actions.Add("Koppel herhaald falende medewerkers aan HR-discipline en registreer verbeterplannen.") } if ($AssessmentResult.Issues -match "simulaties") { $actions.Add("Plan extra simulaties in Attack Simulation Training en documenteer resultaten in het risicoregister.") } if ($AssessmentResult.Issues -match "leerprikkels") { $actions.Add("Automatiseer notificaties met Power Automate zodat alle segmenten minimaal wekelijks een nudge ontvangen.") } if ($AssessmentResult.Issues -match "bestuurders") { $actions.Add("Plan binnen tien dagen een executive briefing om besluiten over aanvullende maatregelen te nemen.") } if ($actions.Count -eq 0) { Write-Host "Geen remediatie-acties vereist." -ForegroundColor Green return $AssessmentResult } Write-Host "`nRemediatie-advies:" -ForegroundColor Cyan foreach ($action in $actions) { if ($WhatIf) { Write-Host "WhatIf: $action" -ForegroundColor Yellow } else { Write-Host $action -ForegroundColor Gray } } return $AssessmentResult } function Save-AwarenessTrainingReport { [CmdletBinding()] param( [Parameter(Mandatory = $true)] $Data ) $directory = Split-Path -Parent $OutputPath if (-not (Test-Path -Path $directory)) { New-Item -ItemType Directory -Path $directory -Force | Out-Null } $Data | ConvertTo-Json -Depth 6 | Out-File -FilePath $OutputPath -Encoding UTF8 Write-Host "`nRapport opgeslagen in $OutputPath" -ForegroundColor Green } Write-ScriptBanner $dataset = Get-ConfigDataset try { if (-not ($Assessment -or $Monitoring -or $Remediation)) { $Assessment = $true } $result = if ($Remediation) { $assessment = Invoke-AwarenessTrainingAssessment -Dataset $dataset Invoke-AwarenessTrainingRemediation -AssessmentResult $assessment } elseif ($Monitoring) { Invoke-AwarenessTrainingMonitoring -Dataset $dataset } else { Invoke-AwarenessTrainingAssessment -Dataset $dataset } Save-AwarenessTrainingReport -Data $result return $result } catch { Write-Error "Fout tijdens awareness-assessment: $_" exit 1 } finally { Write-Host "" Write-Host "========================================" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
Medium: Zonder structurele awareness-training blijven menselijke fouten de grootste bron van datalekken en incidenten, waardoor toezichthouders sancties kunnen opleggen en vertrouwen van burgers afneemt.

Management Samenvatting

Veranker security awareness op bestuurlijk niveau, automatiseer campagnes en toegangscontroles via Microsoft 365, monitor telemetrie met het PowerShell-script en gebruik audits om cultuurverandering aantoonbaar te sturen.