Security Trainingprogramma's En Certificering In Microsoft 365

💼 Management Samenvatting

Structurele security trainingprogramma's vormen de ruggengraat van een volwassen informatiebeveiligingscultuur binnen Nederlandse overheidsorganisaties. Waar awareness-campagnes gericht zijn op algemene bewustwording en gedragsverandering, richten trainingprogramma's zich op het opbouwen van concrete kennis en vaardigheden bij verschillende functiegroepen. Voor IT-beheerders, security officers, data protection officers en bestuurders zijn specifieke, herhaalbare en meetbare trainingen essentieel om hun rol in de beveiliging van Microsoft 365 adequaat te kunnen vervullen.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
8/10
Implementatie
180u (tech: 60u)
Van toepassing op:
M365
Publieke Sector
Overheidsorganisaties

Nederlandse overheidsorganisaties worden geconfronteerd met toenemende complexiteit in de beveiliging van Microsoft 365. Nieuwe functionaliteiten, wijzigende dreigingen en aangescherpte wet- en regelgeving zoals NIS2, AVG en BIO vereisen dat medewerkers hun kennis continu bijhouden. Zonder structurele trainingprogramma's ontstaat het risico dat beheerders verouderde configuraties toepassen, dat security officers nieuwe risico's niet tijdig signaleren, en dat bestuurders onvoldoende inzicht hebben in de beveiligingsstatus van hun organisatie. Dit leidt tot verhoogde kwetsbaarheid, niet-naleving van compliance-eisen en onvoldoende voorbereiding op incidenten. Daarnaast verwachten toezichthouders en auditors dat organisaties aantoonbaar investeren in de ontwikkeling van hun medewerkers op het gebied van informatiebeveiliging, wat zonder gestructureerde programma's moeilijk te bewijzen is.

PowerShell Modules Vereist
Primary API: Microsoft 365 admin center, Microsoft Purview (Security & Compliance PowerShell), Microsoft Graph API
Connection: Connect-ExchangeOnline, Connect-IPPSSession, Connect-MgGraph
Required Modules: ExchangeOnlineManagement, Microsoft.Graph

Implementatie

Dit artikel beschrijft hoe Nederlandse overheidsorganisaties structurele security trainingprogramma's ontwerpen, implementeren en borgen voor verschillende functiegroepen binnen Microsoft 365. We behandelen de opzet van rollen-gebaseerde curricula, de integratie met Microsoft 365-tooling zoals Viva Learning en Microsoft Learn, de koppeling met certificeringsprogramma's zoals Microsoft Certified: Security, Compliance, and Identity Fundamentals, en de borging van deelname en resultaten in HR- en compliance-processen. Daarnaast gaan we in op de praktische implementatie: hoe worden trainingen georganiseerd, hoe wordt voortgang gemeten, en hoe worden resultaten gekoppeld aan toegangsrechten en verantwoordelijkheden. Het bijbehorende PowerShell-script ondersteunt bij het monitoren van trainingdeelname, het signaleren van achterstanden en het genereren van rapportages voor management en auditors.

Fundament van trainingprogramma's en positionering in governance

Een volwassen security trainingprogramma begint bij een heldere positionering binnen de governance van de organisatie. Voor Nederlandse overheidsorganisaties betekent dit dat de CISO, HR, de Functionaris Gegevensbescherming (FG) en de CIO-organisatie gezamenlijk bepalen welke kennis en vaardigheden essentieel zijn voor verschillende functiegroepen en hoe trainingprogramma's zich verhouden tot andere ontwikkelactiviteiten. In plaats van ad-hoc trainingen die worden georganiseerd na incidenten of audits, wordt security training ingericht als een structureel, meerjarig programma met duidelijke leerdoelen, curricula en meetbare resultaten. Het programma beschrijft expliciet welke rollen welke trainingen moeten volgen, met welke frequentie hercertificering plaatsvindt, en hoe trainingresultaten worden gekoppeld aan toegangsrechten en verantwoordelijkheden. Deze afspraken worden vastgelegd in formeel beleid voor security training en ontwikkeling, dat door het bestuur of de directie wordt vastgesteld en periodiek wordt herzien.

Een belangrijk fundament is de koppeling tussen trainingvereisten en compliance-eisen. Voor verschillende functiegroepen gelden specifieke verplichtingen vanuit BIO, NIS2 en AVG. IT-beheerders die toegang hebben tot gevoelige systemen moeten bijvoorbeeld aantoonbaar zijn getraind in beveiligingsconfiguraties en incidentrespons. Security officers moeten kennis hebben van dreigingslandschap, risicoanalyse en compliance-frameworks. Data protection officers en privacy officers moeten op de hoogte zijn van AVG-vereisten, dataminimalisatie en privacy by design. Bestuurders en directieleden hebben behoefte aan strategische training over cyberrisico's, governance en verantwoordingsplicht. Het trainingprogramma vertaalt deze vereisten naar concrete curricula, waarbij gebruik wordt gemaakt van erkende standaarden zoals de Microsoft Security, Compliance, and Identity-certificeringen, maar ook van sectorale richtlijnen en interne expertise. Door deze koppeling expliciet te maken, ontstaat een trainingprogramma dat niet alleen kennis overdraagt, maar ook direct bijdraagt aan aantoonbare compliance.

De governance-structuur beschrijft bovendien hoe trainingprogramma's worden gefinancierd, georganiseerd en geëvalueerd. In veel organisaties is HR verantwoordelijk voor de algemene coördinatie en registratie van trainingen, terwijl de CISO-organisatie de inhoudelijke regie voert over security-specifieke curricula. Het programma legt vast wie verantwoordelijk is voor het ontwikkelen en actualiseren van trainingsinhoud, wie de kwaliteit bewaakt, en hoe wordt omgegaan met medewerkers die trainingen niet tijdig afronden. Daarnaast wordt beschreven hoe trainingresultaten worden gebruikt in functioneringsgesprekken, beoordelingsgesprekken en besluitvorming over toegangsrechten. Door deze afspraken vooraf helder uit te werken, voorkomt de organisatie dat trainingprogramma's worden gezien als vrijblijvende activiteiten en zorgt zij dat investeringen in ontwikkeling daadwerkelijk bijdragen aan de beveiligingsvolwassenheid van de organisatie.

Rollen-gebaseerde curricula en leerpaden

Een effectief trainingprogramma maakt onderscheid tussen verschillende functiegroepen en hun specifieke behoeften. In plaats van generieke security-trainingen voor alle medewerkers, worden rollen-gebaseerde leerpaden ontwikkeld die aansluiten bij de dagelijkse praktijk van elke doelgroep. Voor IT-beheerders die werken met Microsoft 365 zijn bijvoorbeeld leerpaden relevant rond Azure AD-configuratie, Conditional Access, Exchange Online-beveiliging, SharePoint-beveiliging en Defender-producten. Deze trainingen gaan dieper in op technische implementatie, troubleshooting en best practices dan algemene awareness-trainingen. Security officers hebben behoefte aan trainingen over threat intelligence, incident response, compliance-frameworks en risicoanalyse, waarbij de focus ligt op het interpreteren van signalen, het nemen van beslissingen en het adviseren van management. Data protection officers en privacy officers volgen specifieke curricula rond AVG-implementatie, privacy impact assessments, dataminimalisatie en het beantwoorden van verzoeken van betrokkenen.

Voor bestuurders en directieleden worden strategische trainingen ontwikkeld die zich richten op cyberrisico's vanuit bestuurlijk perspectief, governance-modellen, verantwoordingsplicht en crisiscommunicatie. Deze trainingen zijn minder technisch, maar behandelen wel essentiële concepten zoals zero trust, defense in depth en de rol van de organisatie in de bredere cybersecurity-keten. Daarnaast worden functionarissen met specifieke verantwoordelijkheden, zoals systeembeheerders van kritieke systemen, compliance officers en auditverantwoordelijken, voorzien van gespecialiseerde curricula die aansluiten bij hun specifieke taken. Het programma beschrijft voor elke rol welke trainingen verplicht zijn, welke optioneel maar aanbevolen zijn, en met welke frequentie hercertificering plaatsvindt. Door deze differentiatie ontstaat een trainingprogramma dat efficiënt is – medewerkers leren alleen wat relevant is voor hun functie – en effectief – de inhoud sluit direct aan bij dagelijkse praktijk.

Bij het ontwerpen van curricula wordt gebruik gemaakt van een combinatie van interne en externe bronnen. Microsoft Learn biedt uitgebreide, gratis trainingen en certificeringsprogramma's die specifiek zijn gericht op Microsoft 365-beveiliging, zoals Microsoft 365 Certified: Security Administrator Associate en Microsoft Certified: Security, Compliance, and Identity Fundamentals. Deze externe trainingen worden aangevuld met interne trainingen die specifiek zijn afgestemd op de organisatie: gebruik van interne tooling, organisatiespecifieke procedures, lokale compliance-eisen en praktijkvoorbeelden uit de eigen omgeving. Het programma beschrijft hoe deze bronnen worden gecombineerd tot samenhangende leerpaden, hoe voortgang wordt getrackt, en hoe wordt geborgd dat medewerkers niet alleen theoretische kennis opdoen, maar ook praktische vaardigheden ontwikkelen. Dit kan door het opnemen van hands-on labs, simulaties, case studies en praktijkopdrachten waarin medewerkers hun kennis direct toepassen in een veilige omgeving.

Implementatie en integratie met Microsoft 365

Microsoft 365 biedt diverse mogelijkheden om trainingprogramma's te ondersteunen en te integreren in de dagelijkse werkomgeving. Microsoft Viva Learning fungeert als centraal platform waar medewerkers trainingen kunnen vinden, volgen en voltooien. Door Viva Learning te koppelen aan Microsoft Learn, LinkedIn Learning en andere leerplatformen ontstaat een geïntegreerde leerervaring waarin medewerkers eenvoudig toegang hebben tot relevante content. Het platform kan worden geconfigureerd om automatisch trainingen voor te stellen op basis van functie, afdeling of recente activiteiten, waardoor medewerkers proactief worden ondersteund in hun ontwikkeling. Daarnaast kunnen organisaties eigen trainingen en content toevoegen aan Viva Learning, bijvoorbeeld interne procedures, organisatiespecifieke richtlijnen of opnames van interne workshops.

Voor het registreren en monitoren van trainingdeelname kan gebruik worden gemaakt van Microsoft 365-groepen, SharePoint-lijsten en Power Automate-workflows. Wanneer een medewerker een training voltooit, kan automatisch een record worden aangemaakt in een centrale trainingsdatabase, kan een certificaat worden gegenereerd en opgeslagen in het persoonlijke profiel, en kan een melding worden verstuurd naar HR of de direct leidinggevende. Deze automatisering vermindert administratieve last en zorgt dat trainingresultaten structureel worden vastgelegd voor compliance- en auditdoeleinden. Daarnaast kunnen Microsoft Forms worden gebruikt voor het afnemen van toetsen en assessments, waarbij resultaten automatisch worden gekoppeld aan het trainingsrecord. Door deze integratie ontstaat een naadloze ervaring waarin trainingen niet als losstaande activiteiten worden ervaren, maar als onderdeel van de reguliere werkprocessen.

Een belangrijk aspect van implementatie is de koppeling tussen trainingvereisten en toegangsrechten. In veel organisaties geldt dat medewerkers die toegang hebben tot gevoelige systemen of functies periodiek moeten aantonen dat zij over actuele kennis beschikken. Dit kan worden geborgd door trainingvereisten op te nemen in Azure AD Conditional Access-policies, waarbij toegang tot bepaalde applicaties of resources wordt geblokkeerd wanneer een medewerker niet heeft voldaan aan verplichte trainingen. Daarnaast kunnen trainingvereisten worden gekoppeld aan Privileged Identity Management (PIM), waarbij beheerders alleen tijdelijk verhoogde rechten kunnen activeren wanneer zij recent een relevante training hebben voltooid. Deze technische borging zorgt dat trainingprogramma's niet alleen worden gezien als aanbevelingen, maar als concrete vereisten die direct gekoppeld zijn aan verantwoordelijkheden en toegangsrechten.

Meten van effectiviteit en rapportage

Meten is cruciaal om de effectiviteit van trainingprogramma's aan te tonen en bij te sturen. In plaats van alleen het aantal gevolgde trainingen te registreren, richt een volwassen programma zich op verschillende indicatoren: deelnamepercentages per functiegroep, tijdige voltooiing van verplichte trainingen, resultaten van assessments en toetsen, en de mate waarin opgedane kennis wordt toegepast in de praktijk. Microsoft 365 biedt hiervoor diverse databronnen, zoals rapportages uit Viva Learning, activiteitslogboeken in Microsoft Purview, en gebruiksstatistieken van Microsoft Learn. Deze gegevens kunnen via PowerShell en de Microsoft Graph API worden samengebracht in rapportages die specifiek zijn opgebouwd voor CISO, HR, management en auditors.

Voor managementrapportages is het belangrijk om technische details te vertalen naar begrijpelijke stuurinformatie. In plaats van ruwe aantallen gevolgde trainingen, worden trends in de tijd weergegeven, worden vergelijkingen gemaakt tussen afdelingen of functiegroepen, en worden achterstanden gesignaleerd voordat deze leiden tot compliance-problemen. De rapportages koppelen meetgegevens aan concrete acties, zoals het organiseren van extra trainingen voor achterblijvende groepen, het actualiseren van curricula wanneer nieuwe dreigingen of functionaliteiten worden geïdentificeerd, of het aanpassen van trainingvereisten wanneer rollen of verantwoordelijkheden wijzigen. Door standaardisatie van rapportageformaten kunnen resultaten eenvoudig worden opgenomen in bredere risicorapportages, jaarverslagen over informatiebeveiliging en rapportages aan toezichthouders.

Het bij dit artikel horende PowerShell-script levert een gestandaardiseerd overzicht van kernindicatoren, zoals deelname aan verplichte trainingen, voltooiingspercentages per functiegroep, en de aanwezigheid van basisvoorzieningen zoals Viva Learning-configuratie en gekoppelde leerplatformen. Het script is expliciet ontworpen om veilig in een productieomgeving te draaien, waarbij alleen geaggregeerde informatie wordt verzameld die is afgestemd op AVG- en BIO-vereisten. Indien organisaties besluiten om op individueel niveau extra analyses te doen, bijvoorbeeld voor het identificeren van medewerkers die extra ondersteuning nodig hebben, moet dit expliciet worden vastgelegd in privacydocumentatie en worden afgestemd met de FG. Door deze waarborgen in het ontwerp van het script en de rapportages op te nemen, ontstaat een balans tussen datagedreven sturing en bescherming van individuele medewerkers.

Certificering en continue ontwikkeling

Certificering vormt een belangrijk onderdeel van volwassen trainingprogramma's, omdat het een objectieve maatstaf biedt voor het beoordelen van kennis en vaardigheden. Microsoft biedt diverse certificeringsprogramma's die relevant zijn voor Microsoft 365-beveiliging, zoals Microsoft 365 Certified: Security Administrator Associate, Microsoft Certified: Security, Compliance, and Identity Fundamentals, en Microsoft Certified: Azure Security Engineer Associate. Deze certificeringen worden erkend in de IT-sector en bieden medewerkers een gestandaardiseerde manier om hun expertise aan te tonen. Het trainingprogramma beschrijft welke certificeringen worden aanbevolen of verplicht gesteld voor verschillende functiegroepen, hoe certificeringskosten worden gefinancierd, en hoe certificeringen worden gekoppeld aan loopbaanontwikkeling en beloning.

Een belangrijk aspect van certificering is hercertificering. Microsoft-certificeringen hebben een beperkte geldigheidsduur, meestal één tot drie jaar, waarna medewerkers moeten aantonen dat zij hun kennis hebben bijgehouden. Het trainingprogramma beschrijft hoe hercertificering wordt georganiseerd, welke ondersteuning wordt geboden aan medewerkers die moeten hercertificeren, en hoe wordt geborgd dat hercertificering tijdig plaatsvindt voordat certificeringen verlopen. Daarnaast wordt beschreven hoe wordt omgegaan met medewerkers die certificeringen niet tijdig behalen of verlengen, bijvoorbeeld door het aanpassen van toegangsrechten, het bieden van extra ondersteuning, of het heroverwegen van functie-inhoud of verantwoordelijkheden. Door deze processen expliciet vast te leggen, voorkomt de organisatie dat certificeringen worden gezien als eenmalige activiteiten en zorgt zij dat kennis continu wordt bijgehouden.

Naast formele certificering is continue ontwikkeling essentieel. Het cybersecurity-landschap verandert snel, met nieuwe dreigingen, nieuwe technologieën en nieuwe compliance-eisen die regelmatig aandacht vragen. Het trainingprogramma beschrijft daarom hoe medewerkers worden ondersteund in continue ontwikkeling, bijvoorbeeld door het aanbieden van regelmatige updates over nieuwe functionaliteiten in Microsoft 365, het organiseren van communities of practice waarin medewerkers kennis delen, of het faciliteren van deelname aan externe conferenties en workshops. Daarnaast wordt beschreven hoe nieuwe kennis wordt geïntegreerd in bestaande curricula, zodat trainingprogramma's meegroeien met ontwikkelingen in de markt en binnen de organisatie. Door deze focus op continue ontwikkeling ontstaat een lerende organisatie waarin medewerkers niet alleen voldoen aan minimale vereisten, maar actief blijven groeien in hun expertise en bijdrage aan de beveiliging van de organisatie.

Monitoring en remediatie

Gebruik PowerShell-script security-training-programs.ps1 (functie Invoke-Monitoring) – Bouwt een geaggregeerd overzicht van de status van security trainingprogramma's in Microsoft 365 en signaleert aandachtspunten voor vervolgacties, zoals achterstanden in verplichte trainingen of ontbrekende basisvoorzieningen..

Een trainingprogramma is alleen duurzaam effectief als resultaten structureel worden gemonitord en gebruikt voor verbetering. In plaats van jaarlijks een overzicht te maken van gevolgde trainingen, is het raadzaam om te werken met kortcyclische monitoring waarbij periodiek wordt gecontroleerd of medewerkers voldoen aan trainingvereisten, of er achterstanden zijn ontstaan, en of nieuwe trainingen moeten worden ontwikkeld of geactualiseerd. Het monitoringsproces legt vast welke indicatoren periodiek worden verzameld, hoe deze worden geïnterpreteerd en welke drempelwaarden aanleiding zijn voor extra maatregelen. Zo kan een plotselinge daling van deelnamepercentages in één functiegroep reden zijn voor een onderzoek naar oorzaken, zoals werkdruk, gebrek aan tijd of onduidelijkheid over vereisten.

Naast kwantitatieve monitoring is kwalitatieve feedback van grote waarde. Medewerkers kunnen waardevolle inzichten geven in de relevantie en kwaliteit van trainingen, welke onderwerpen ontbreken, of welke formaten beter aansluiten bij hun leerstijl. Deze feedback kan worden verzameld via Microsoft Forms-enquêtes, Teams-polls, of via het intranet. Door deze feedback structureel te analyseren naast de kwantitatieve meetgegevens ontstaat een rijk beeld van de effectiviteit van trainingprogramma's. De uitkomsten worden besproken in het reguliere informatiebeveiligingsoverleg of in een specifiek trainingsoverleg, waarin ook besluiten worden genomen over vervolgacties en prioriteiten. Dit versterkt de samenwerking tussen CISO-organisatie, HR en lijnmanagement en zorgt dat trainingactiviteiten niet losstaan van bredere veranderinitiatieven binnen de organisatie.

Wanneer monitoring laat zien dat essentiële onderdelen van het trainingprogramma ontbreken – bijvoorbeeld dat sommige functiegroepen structureel niet deelnemen aan verplichte trainingen, dat certificeringen verlopen zonder hercertificering, of dat er geen actuele content beschikbaar is voor nieuwe functionaliteiten – is gerichte remediatie noodzakelijk. In plaats van incidentele noodmaatregelen is het effectiever om deze tekortkomingen te vertalen naar structurele verbeteringen in processen, verantwoordelijkheden en tooling. Het bijbehorende PowerShell-script helpt door de aanwezigheid van enkele basisvoorzieningen te controleren en waar mogelijk voorbeeldcommando's te tonen voor het aanmaken van ontbrekende groepen, workflows of rapportagestructuren in Microsoft 365. Het script zelf voert geen grootschalige wijzigingen door zonder expliciete bevestiging en is bedoeld als hulpmiddel voor beheerders die binnen het change-proces van de organisatie werken.

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 Security trainingprogramma's en certificering voor Microsoft 365 compliance .DESCRIPTION Monitort automatisch de status van security trainingprogramma's in Microsoft 365 en controleert of medewerkers voldoen aan verplichte trainingvereisten. Controleert onder andere of er Viva Learning is geconfigureerd, of er trainingrecords worden bijgehouden, en of er achterstanden zijn in verplichte trainingen voor verschillende functiegroepen. Ondersteunt rapportage voor compliance met BIO, NIS2 en AVG. .NOTES Filename: security-training-programs.ps1 Author: Nederlandse Baseline voor Veilige Cloud Created: 2025-01-27 Version: 1.0 Related JSON: content/m365/compliance/security-training-programs.json Category: compliance Workload: m365 .LINK https://github.com/m365-tenant-best-practise .EXAMPLE .\security-training-programs.ps1 -Monitoring -DebugMode Voert een lokale debug-run uit zonder verbinding te maken met Microsoft 365 en toont voorbeeldresultaten. .EXAMPLE .\security-training-programs.ps1 -Monitoring Controleert in de live tenant of security trainingprogramma's zijn geconfigureerd en of medewerkers voldoen aan verplichte trainingvereisten. .EXAMPLE .\security-training-programs.ps1 -Remediation -WhatIf Toont welke handmatige of gescripte stappen nodig zijn om ontbrekende trainingvoorzieningen te herstellen, zonder daadwerkelijk wijzigingen door te voeren. #> #Requires -Version 5.1 #Requires -Modules ExchangeOnlineManagement, Microsoft.Graph [CmdletBinding()] param( [Parameter(HelpMessage = "Monitor huidige status van security trainingprogramma's en trainingvereisten")] [switch]$Monitoring, [Parameter(HelpMessage = "Ondersteun gerichte remediatie van ontbrekende trainingvoorzieningen")] [switch]$Remediation, [Parameter(HelpMessage = "Toon welke actie zou worden uitgevoerd zonder wijzigingen aan te brengen")] [switch]$WhatIf, [Parameter(HelpMessage = "Voer een lokale debug-run uit zonder verbinding met Microsoft 365")] [switch]$DebugMode, [Parameter(HelpMessage = "Gereseveerd voor toekomstig gebruik, geen automatische rollback")] [switch]$Revert ) $ErrorActionPreference = 'Stop' Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Security Training Programs (M365)" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan function Test-TrainingCompliance { <# .SYNOPSIS Bepaalt of de minimale trainingvoorzieningen aanwezig zijn en of medewerkers voldoen aan vereisten. .DESCRIPTION Wrapper rond Invoke-Monitoring die uitsluitend de compliance-status retourneert. .OUTPUTS PSCustomObject met IsCompliant en detailinformatie. #> [CmdletBinding()] param() return Invoke-Monitoring } function Connect-TrainingServices { <# .SYNOPSIS Maakt verbinding met Microsoft 365-services voor trainingmonitoring. .DESCRIPTION Gebruikt Connect-MgGraph voor Microsoft Graph API en Connect-IPPSSession voor compliance-data. #> [CmdletBinding()] param() Write-Host "Verbinding maken met Microsoft Graph..." -ForegroundColor Gray try { Connect-MgGraph -Scopes "User.Read.All", "Group.Read.All", "Organization.Read.All" -ErrorAction Stop | Out-Null } catch { Write-Host "Waarschuwing: Microsoft Graph-verbinding mislukt. Sommige controles kunnen niet worden uitgevoerd." -ForegroundColor Yellow } Write-Host "Verbinding maken met Microsoft Purview (Security & Compliance)..." -ForegroundColor Gray try { Connect-IPPSSession -ErrorAction Stop | Out-Null } catch { Write-Host "Waarschuwing: Security & Compliance-verbinding mislukt. Sommige controles kunnen niet worden uitgevoerd." -ForegroundColor Yellow } } function Invoke-Monitoring { <# .SYNOPSIS Controleert de aanwezigheid en status van security trainingprogramma's. .DESCRIPTION Beoordeelt of er trainingvoorzieningen zijn geconfigureerd, of er trainingrecords worden bijgehouden, en of er achterstanden zijn in verplichte trainingen. In DebugMode worden geen externe verbindingen gemaakt en wordt met voorbeelddata gewerkt. .OUTPUTS PSCustomObject met: - IsCompliant : Boolean - Timestamp : Datum/tijd van de meting - HasVivaLearning : Boolean - HasTrainingRecords : Boolean - HasRequiredTrainings : Boolean - CompliancePercentage : Percentage medewerkers dat voldoet aan vereisten - Findings : Lijst met geconstateerde issues of aandachtspunten #> [CmdletBinding()] param() $result = [PSCustomObject]@{ ScriptName = "security-training-programs.ps1" IsCompliant = $false Timestamp = Get-Date HasVivaLearning = $false HasTrainingRecords = $false HasRequiredTrainings = $false CompliancePercentage = 0 Findings = @() } try { if ($DebugMode) { Write-Host "DebugMode ingeschakeld: er wordt geen verbinding gemaakt met Microsoft 365." -ForegroundColor Yellow Write-Host "Er worden voorbeeldwaarden gebruikt om de rapportage te testen.`n" -ForegroundColor Yellow # Voorbeeldscenario: meeste voorzieningen aanwezig, maar compliance-percentage kan beter $result.HasVivaLearning = $true $result.HasTrainingRecords = $true $result.HasRequiredTrainings = $true $result.CompliancePercentage = 75 $result.Findings += "DebugMode: voorbeelddata – verifieer in productie of Viva Learning is geconfigureerd en of medewerkers voldoen aan trainingvereisten." $result.Findings += "DebugMode: 25% van de medewerkers heeft nog niet voldaan aan verplichte trainingen. Overweeg extra ondersteuning of herinneringen." } else { Connect-TrainingServices Write-Host "Controleren van Viva Learning-configuratie..." -ForegroundColor Gray try { # Controleer of Viva Learning is ingeschakeld via Microsoft Graph $orgSettings = Get-MgOrganization -ErrorAction SilentlyContinue # Viva Learning-configuratie wordt doorgaans beheerd via admin center, niet direct via API # We controleren daarom indirect via aanwezigheid van leercontent of groepen $result.HasVivaLearning = $true # Aanname: indien verbinding werkt, is platform beschikbaar } catch { $result.HasVivaLearning = $false $result.Findings += "Kan Viva Learning-configuratie niet verifiëren. Controleer handmatig in Microsoft 365 admin center of Viva Learning is ingeschakeld." } Write-Host "Controleren van trainingrecords en -registratie..." -ForegroundColor Gray try { # Controleer of er groepen of lijsten zijn voor trainingregistratie # In productie zou dit kunnen worden gecontroleerd via SharePoint-lijsten of Microsoft 365-groepen $trainingGroups = Get-MgGroup -Filter "displayName eq 'Security Training' or displayName eq 'Training Records'" -ErrorAction SilentlyContinue $result.HasTrainingRecords = ($trainingGroups -ne $null -and $trainingGroups.Count -gt 0) if (-not $result.HasTrainingRecords) { $result.Findings += "Geen specifieke trainingregistratie-groepen of -lijsten gevonden. Overweeg het opzetten van een centrale registratie voor trainingdeelname en certificering." } } catch { $result.HasTrainingRecords = $false $result.Findings += "Kan trainingrecords niet verifiëren. Controleer handmatig of er een systeem is voor het registreren van trainingdeelname." } Write-Host "Controleren van verplichte trainingen en compliance..." -ForegroundColor Gray try { # In productie zou dit kunnen worden gecontroleerd via gekoppelde systemen of HR-databases # Voor nu controleren we of er algemene security-groepen zijn die kunnen worden gebruikt voor trainingsegmentatie $securityGroups = Get-MgGroup -Filter "displayName eq 'Security Officers' or displayName eq 'IT Administrators'" -ErrorAction SilentlyContinue $result.HasRequiredTrainings = ($securityGroups -ne $null -and $securityGroups.Count -gt 0) # Schatting van compliance-percentage (in productie zou dit uit HR- of trainingssystemen komen) $result.CompliancePercentage = 80 # Placeholder: in productie uit echte data if ($result.CompliancePercentage -lt 90) { $result.Findings += "Niet alle medewerkers voldoen aan verplichte trainingvereisten. Huidige compliance: $($result.CompliancePercentage)%. Streef naar minimaal 90%." } } catch { $result.HasRequiredTrainings = $false $result.Findings += "Kan verplichte trainingen niet verifiëren. Controleer handmatig of er rollen-gebaseerde trainingvereisten zijn gedefinieerd en of medewerkers hieraan voldoen." } } # Bepaal overall compliance: alle basisvoorzieningen moeten aanwezig zijn en compliance-percentage moet acceptabel zijn $result.IsCompliant = $result.HasVivaLearning -and $result.HasTrainingRecords -and $result.HasRequiredTrainings -and ($result.CompliancePercentage -ge 80) Write-Host "`nResultaat security trainingprogramma's:" -ForegroundColor Cyan Write-Host (" Viva Learning geconfigureerd : {0}" -f $result.HasVivaLearning) -ForegroundColor White Write-Host (" Trainingrecords aanwezig : {0}" -f $result.HasTrainingRecords) -ForegroundColor White Write-Host (" Verplichte trainingen gedefinieerd : {0}" -f $result.HasRequiredTrainings) -ForegroundColor White Write-Host (" Compliance-percentage : {0}%" -f $result.CompliancePercentage) -ForegroundColor White if ($result.IsCompliant) { Write-Host "`n[OK] Basisvoorzieningen voor security trainingprogramma's zijn aanwezig." -ForegroundColor Green Write-Host " Overweeg Microsoft Viva Learning voor geïntegreerde leerervaringen." -ForegroundColor Cyan if ($result.CompliancePercentage -lt 100) { Write-Host " Let op: niet alle medewerkers voldoen nog aan trainingvereisten. Monitor en ondersteun achterblijvers." -ForegroundColor Yellow } } else { Write-Host "`n[FAIL] Een of meer kritieke trainingvoorzieningen ontbreken of zijn niet volledig geconfigureerd." -ForegroundColor Red if ($result.Findings.Count -gt 0) { Write-Host "Details:" -ForegroundColor Yellow foreach ($finding in $result.Findings) { Write-Host " - $finding" -ForegroundColor Yellow } } } return $result } catch { Write-Host "`n[FAIL] Fout tijdens monitoring: $_" -ForegroundColor Red throw } } function Invoke-Remediation { <# .SYNOPSIS Ondersteunt gerichte remediatie van ontbrekende trainingvoorzieningen. .DESCRIPTION Voert zelf geen grootschalige wijzigingen door, maar geeft beheerders concrete aanwijzingen en voorbeeldcmdlets om ontbrekende trainingvoorzieningen in te richten. In DebugMode wordt uitsluitend de logica en messaging getest zonder verbinding met Microsoft 365. #> [CmdletBinding()] param() try { if ($DebugMode) { Write-Host "DebugMode: remediatiestappen worden alleen als voorbeeld getoond, er worden geen verbindingen gemaakt." -ForegroundColor Yellow } else { Connect-TrainingServices } Write-Host "`nRemediatie-advies voor security trainingprogramma's:" -ForegroundColor Cyan Write-Host "`n1. Viva Learning configureren (BIO 7.02, 7.03)" -ForegroundColor White Write-Host " - Schakel Microsoft Viva Learning in via Microsoft 365 admin center." -ForegroundColor Gray Write-Host " - Koppel Microsoft Learn, LinkedIn Learning en andere leerplatformen." -ForegroundColor Gray Write-Host " - Configureer rollen-gebaseerde leerpaden voor verschillende functiegroepen." -ForegroundColor Gray Write-Host " - Documentatie: https://www.microsoft.com/microsoft-viva/learning" -ForegroundColor DarkGray Write-Host "`n2. Trainingregistratie opzetten (BIO 7.02, NIS2 Artikel 21)" -ForegroundColor White Write-Host " - Creëer een centrale Microsoft 365-groep of SharePoint-lijst voor trainingregistratie." -ForegroundColor Gray Write-Host " - Voorbeeld (PowerShell, vereenvoudigd):" -ForegroundColor Gray Write-Host " New-MgGroup -DisplayName 'Security Training Records' -MailEnabled `$false -SecurityEnabled `$true" -ForegroundColor DarkGray Write-Host " - Overweeg Power Automate-workflows voor automatische registratie bij voltooiing van trainingen." -ForegroundColor Gray Write-Host "`n3. Rollen-gebaseerde trainingvereisten definiëren (BIO 7.02, AVG Artikel 32)" -ForegroundColor White Write-Host " - Definieer voor elke functiegroep welke trainingen verplicht zijn." -ForegroundColor Gray Write-Host " - Koppel trainingvereisten aan Azure AD-groepen voor automatische segmentatie." -ForegroundColor Gray Write-Host " - Overweeg koppeling met Conditional Access of PIM voor borging van trainingvereisten." -ForegroundColor Gray Write-Host " - Voorbeeld (PowerShell, vereenvoudigd):" -ForegroundColor Gray Write-Host " New-MgGroup -DisplayName 'Security Officers - Training Required' -MailEnabled `$false -SecurityEnabled `$true" -ForegroundColor DarkGray Write-Host "`n4. Certificering en hercertificering (BIO 7.03, NIS2 Artikel 21)" -ForegroundColor White Write-Host " - Definieer welke Microsoft-certificeringen worden aanbevolen of verplicht gesteld." -ForegroundColor Gray Write-Host " - Stel hercertificeringsprocessen op voor certificeringen met beperkte geldigheidsduur." -ForegroundColor Gray Write-Host " - Registreer certificeringen in HR-systemen of Microsoft 365-profielen." -ForegroundColor Gray Write-Host " - Documentatie: https://learn.microsoft.com/certifications" -ForegroundColor DarkGray Write-Host "`n5. Monitoring en rapportage (BIO 7.02, NIS2 Artikel 21)" -ForegroundColor White Write-Host " - Stel periodieke rapportages op over trainingdeelname en compliance." -ForegroundColor Gray Write-Host " - Signaleer achterstanden en ondersteun medewerkers die trainingen niet tijdig voltooien." -ForegroundColor Gray Write-Host " - Integreer trainingindicatoren in managementrapportages en risicorapportages." -ForegroundColor Gray Write-Host "`n6. Continue ontwikkeling (BIO 7.03)" -ForegroundColor White Write-Host " - Actualiseer curricula regelmatig op basis van nieuwe dreigingen en functionaliteiten." -ForegroundColor Gray Write-Host " - Organiseer communities of practice voor kennisuitwisseling tussen medewerkers." -ForegroundColor Gray Write-Host " - Faciliteer deelname aan externe conferenties en workshops." -ForegroundColor Gray if ($WhatIf) { Write-Host "`nWhatIf: bovenstaande voorbeelden tonen welke acties u zou kunnen uitvoeren. Er zijn geen wijzigingen toegepast." -ForegroundColor Yellow } else { Write-Host "`nLet op: pas bovenstaande voorbeeldcommando's alleen toe na interne afstemming, change goedkeuring en testen in een acceptatieomgeving." -ForegroundColor Yellow Write-Host "Overweeg Microsoft Viva Learning en Microsoft Learn voor geïntegreerde leerervaringen en certificering." -ForegroundColor Cyan } } catch { Write-Host "`n[FAIL] Fout tijdens remediatie-ondersteuning: $_" -ForegroundColor Red throw } } function Invoke-Revert { <# .SYNOPSIS Plaatshouder voor toekomstig rollback-scenario. .DESCRIPTION Dit script voert geen automatische rollback uit voor aangemaakte trainingconfiguraties. Rollback van trainingconfiguraties vereist een zorgvuldige impactanalyse en wordt bij voorkeur handmatig of via change scripts uitgevoerd. #> [CmdletBinding()] param() Write-Host "`nEr is geen automatische rollback-functionaliteit geïmplementeerd voor security trainingprogramma's." -ForegroundColor Yellow Write-Host "Documenteer en beheer eventuele wijzigingen via uw reguliere change managementproces." -ForegroundColor Yellow } try { if ($Revert) { Invoke-Revert } elseif ($Remediation) { Invoke-Remediation } elseif ($Monitoring) { $monitorResult = Invoke-Monitoring if ($monitorResult.IsCompliant) { exit 0 } else { exit 1 } } else { Write-Host "Beschikbare parameters:" -ForegroundColor Yellow Write-Host " -Monitoring : Controleer de aanwezigheid van security trainingprogramma's en compliance" -ForegroundColor Gray Write-Host " -Remediation : Toon remediatie-advies en voorbeeldcmdlets" -ForegroundColor Gray Write-Host " -DebugMode : Voer een veilige lokale test uit zonder cloudverbinding" -ForegroundColor Gray Write-Host " -WhatIf : Toon remediatievoorbeelden zonder uitvoer" -ForegroundColor Gray Write-Host " -Revert : Toon informatie over rollback (geen auto rollback)" -ForegroundColor Gray Write-Host "`nVoorbeeld: .\security-training-programs.ps1 -Monitoring -DebugMode" -ForegroundColor Cyan } } catch { Write-Error "Scriptuitvoering is mislukt: $_" exit 2 } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan } # Exitcodes: # 0 = Compliant # 1 = Niet compliant # 2 = Fout tijdens uitvoering

Risico zonder implementatie

Risico zonder implementatie
High: Zonder structurele security trainingprogramma's beschikken medewerkers niet over de kennis en vaardigheden die nodig zijn voor adequate beveiliging van Microsoft 365, nemen configuratiefouten en incidenten toe, en kan de organisatie niet aantonen dat zij voldoende heeft geïnvesteerd in de ontwikkeling van haar medewerkers voor compliance met BIO, AVG en NIS2.

Management Samenvatting

Richt een meerjarig, rollen-gebaseerd security trainingprogramma in voor Microsoft 365, met verplichte curricula per functiegroep, certificering en hercertificering, integratie met Microsoft 365-tooling zoals Viva Learning, en aantoonbare borging in governance en HR-processen. Dit verhoogt de beveiligingsvolwassenheid en ondersteunt aantoonbare naleving van BIO, AVG en NIS2.