Security Metrics En KPI's Voor Microsoft 365 Governance

💼 Management Samenvatting

Effectieve security governance voor Microsoft 365 vereist dat organisaties beschikken over betrouwbare, actuele en betekenisvolle metrics en Key Performance Indicators (KPI's) die inzicht geven in de beveiligingsstatus van de omgeving, de effectiviteit van geïmplementeerde maatregelen en de voortgang richting beveiligingsdoelstellingen. Zonder gestructureerde security metrics en KPI's kunnen organisaties niet objectief vaststellen of hun beveiligingsinspanningen effectief zijn, kunnen zij geen gefundeerde beslissingen nemen over prioritering van beveiligingsmaatregelen, en kunnen zij bestuur en stakeholders niet adequaat informeren over de beveiligingsstatus. Een gestructureerd framework voor security metrics en KPI's vertaalt strategische beveiligingsdoelstellingen naar meetbare indicatoren die periodiek worden verzameld, geanalyseerd en gerapporteerd.

Aanbeveling
IMPLEMENT
Risico zonder
Medium
Risk Score
8/10
Implementatie
200u (tech: 80u)
Van toepassing op:
M365
Publieke Sector
Overheidsorganisaties
Azure AD / Entra ID
Exchange Online
SharePoint Online
Teams
Security Teams
CISO
Bestuur

Nederlandse overheidsorganisaties worden geconfronteerd met toenemende verwachtingen van bestuur, toezichthouders en stakeholders om aantoonbaar te maken dat beveiligingsmaatregelen effectief zijn en dat beveiligingsrisico's adequaat worden beheerd. De BIO, NIS2-richtlijn, ISO 27001 en andere normenkaders vereisen expliciet dat organisaties beveiligingsmetrics en KPI's definiëren, monitoren en rapporteren. Zonder een gestructureerd metrics framework kunnen organisaties niet aantonen dat zij voldoen aan deze vereisten, kunnen zij niet objectief beoordelen of geïmplementeerde maatregelen het beoogde effect hebben, en kunnen zij geen gefundeerde keuzes maken over waar extra beveiligingsinspanningen het meeste effect hebben. Bovendien maakt de complexiteit van Microsoft 365-omgevingen, met tientallen services, workloads en beveiligingsmaatregelen, het essentieel om te beschikken over gestructureerde metrics die helpen om prioriteiten te stellen en de effectiviteit van beveiligingsinspanningen te monitoren. Zonder gestructureerde metrics blijven beveiligingsbeslissingen gebaseerd op subjectieve inschattingen, incidenten en ad-hoc observaties in plaats van op objectieve data en trends.

PowerShell Modules Vereist
Primary API: Microsoft Graph API, Microsoft 365 Admin Center, Microsoft Defender for Cloud Apps, Microsoft Secure Score, Microsoft Compliance Manager
Connection: Connect-MgGraph, Connect-IPPSSession, Connect-MicrosoftTeams
Required Modules: Microsoft.Graph, ExchangeOnlineManagement, MicrosoftTeams

Implementatie

Dit artikel beschrijft hoe Nederlandse overheidsorganisaties een gestructureerd framework kunnen ontwikkelen en implementeren voor security metrics en KPI's binnen Microsoft 365 governance. We bespreken hoe strategische beveiligingsdoelstellingen worden vertaald naar meetbare indicatoren, welke metrics relevant zijn voor verschillende doelgroepen zoals bestuur, CISO en operationele teams, en hoe metrics worden verzameld, geanalyseerd en gerapporteerd. Het artikel behandelt verschillende categorieën van metrics zoals technische beveiligingsmetrics, compliance metrics, operationele metrics en strategische metrics, en beschrijft hoe deze metrics worden gebruikt voor besluitvorming, prioritering en verbetering van beveiligingsmaatregelen. Daarnaast beschrijven we hoe Microsoft 365-native tools zoals Secure Score, Compliance Manager en Defender voor Cloud Apps kunnen worden gebruikt als bron voor metrics, hoe metrics worden geaggregeerd en gepresenteerd in dashboards en rapportages, en hoe metrics worden geëvalueerd en aangepast om te waarborgen dat zij nog relevant en effectief zijn. Het bijbehorende PowerShell-script ondersteunt deze aanpak door automatisch security metrics en KPI's te verzamelen uit Microsoft 365-omgevingen en deze te presenteren in een gestructureerd formaat.

Begrijpen van Security Metrics en KPI's in Microsoft 365 Context

Security metrics zijn kwantitatieve of kwalitatieve indicatoren die inzicht geven in de beveiligingsstatus van een organisatie, de effectiviteit van geïmplementeerde beveiligingsmaatregelen, en de voortgang richting beveiligingsdoelstellingen. Key Performance Indicators (KPI's) zijn specifieke metrics die kritisch zijn voor het succes van beveiligingsstrategieën en die direct verband houden met strategische doelstellingen. Voor Microsoft 365-omgevingen betekent dit dat organisaties expliciet moeten bepalen welke aspecten van beveiliging zij willen meten, welke indicatoren het meest relevant zijn voor hun context en doelstellingen, en hoe deze indicatoren worden verzameld, geanalyseerd en gebruikt voor besluitvorming. Metrics zijn niet alleen bedoeld om achteraf te beoordelen of beveiliging effectief is, maar vooral om proactief te signaleren wanneer beveiligingsstatus afneemt, wanneer nieuwe risico's ontstaan, of wanneer geïmplementeerde maatregelen niet het beoogde effect hebben.

Voor Nederlandse overheidsorganisaties zijn verschillende categorieën van security metrics relevant. Technische beveiligingsmetrics meten de configuratie en effectiviteit van technische beveiligingsmaatregelen, zoals het percentage gebruikers met meervoudige authenticatie (MFA), het aantal geconfigureerde conditional access policies, de Secure Score van de tenant, of het aantal gedetecteerde bedreigingen. Compliance metrics meten de naleving van relevante normenkaders zoals BIO, NIS2, AVG en ISO 27001, zoals het aantal geïmplementeerde controls, het percentage controls dat compliant is, of het aantal openstaande compliance issues. Operationele metrics meten de effectiviteit van security operations, zoals de gemiddelde tijd tot detectie (MTTD) van incidenten, de gemiddelde tijd tot respons (MTTR), het aantal false positives in detectiesystemen, of de workload van het security team. Strategische metrics meten de bijdrage van beveiliging aan organisatiedoelstellingen, zoals het aantal voorkomen incidenten, de vermindering van beveiligingsrisico's over tijd, of de ROI van beveiligingsinvesteringen.

De context van Nederlandse overheidsorganisaties bepaalt in belangrijke mate welke metrics het meest relevant zijn. Organisaties die werken met zeer gevoelige informatie zoals justitiële of medische gegevens hebben vaak meer focus op compliance metrics en data protection metrics. Organisaties die verantwoordelijk zijn voor kritieke infrastructuur hebben vaak meer focus op availability metrics, incident response metrics en threat detection metrics. De omvang van de organisatie, de complexiteit van de IT-omgeving, en de volwassenheid van de beveiligingsorganisatie zijn allemaal factoren die meewegen bij het bepalen van welke metrics het meest waardevol zijn. Bovendien moeten metrics worden afgestemd op de doelgroep: bestuur heeft behoefte aan hoog-niveau strategische metrics die inzicht geven in trends en risico's, terwijl operationele teams behoefte hebben aan gedetailleerde technische metrics die direct actiebaar zijn voor het verbeteren van beveiligingsmaatregelen.

Effectieve security metrics moeten voldoen aan verschillende kwaliteitscriteria. Metrics moeten relevant zijn voor de beveiligingsdoelstellingen en strategie van de organisatie, en moeten inzicht geven in aspecten die daadwerkelijk belangrijk zijn voor het succes van beveiliging. Metrics moeten betrouwbaar zijn, wat betekent dat zij consistent worden verzameld en dat de data accuraat en compleet is. Metrics moeten begrijpelijk zijn voor de doelgroep, wat betekent dat zij duidelijk gecommuniceerd moeten worden en dat de betekenis en implicaties helder zijn. Metrics moeten actiebaar zijn, wat betekent dat zij inzicht geven in wat er moet gebeuren om beveiliging te verbeteren. Metrics moeten tijdig zijn, wat betekent dat zij regelmatig worden verzameld en gerapporteerd zodat trends tijdig kunnen worden gesignaleerd. En metrics moeten vergelijkbaar zijn, wat betekent dat zij over tijd kunnen worden gevolgd en dat trends kunnen worden geanalyseerd.

Definiëren van Strategische Metrics en KPI's

Strategische security metrics en KPI's vertalen de beveiligingsstrategie en doelstellingen van de organisatie naar meetbare indicatoren die inzicht geven in de voortgang richting strategische beveiligingsdoelstellingen en in de bijdrage van beveiliging aan organisatiedoelstellingen. Strategische metrics zijn doorgaans hoog-niveau indicatoren die relevant zijn voor bestuur en executive management, en die helpen bij het maken van strategische beslissingen over beveiligingsinvesteringen, prioritering van beveiligingsprogramma's en evaluatie van beveiligingsstrategieën. Voor Microsoft 365-omgevingen betekent dit dat organisaties expliciet moeten bepalen welke strategische beveiligingsdoelstellingen zij hebben, hoe deze doelstellingen worden vertaald naar meetbare indicatoren, en hoe deze indicatoren worden gebruikt voor besluitvorming en rapportage aan bestuur.

Voor Nederlandse overheidsorganisaties zijn verschillende strategische security metrics relevant. De Overall Security Posture metric geeft een hoog-niveau overzicht van de algehele beveiligingsstatus van de Microsoft 365-omgeving, bijvoorbeeld uitgedrukt als een security maturity score of als een percentage van geïmplementeerde best practices. De Risk Reduction metric meet de vermindering van beveiligingsrisico's over tijd, bijvoorbeeld door het monitoren van trends in risicoscore, het aantal geïdentificeerde kwetsbaarheden, of het aantal high-risk gebruikers of configuraties. De Compliance Posture metric meet de naleving van relevante normenkaders zoals BIO, NIS2 en AVG, bijvoorbeeld uitgedrukt als een compliance percentage of als het aantal openstaande compliance issues. De Incident Impact metric meet de impact van beveiligingsincidenten, bijvoorbeeld door het monitoren van het aantal incidenten, de ernst van incidenten, of de tijd tot herstel. En de Security Investment ROI metric meet de return on investment van beveiligingsinvesteringen, bijvoorbeeld door het monitoren van de kosten versus de waarde van voorkomen incidenten of verbeterde compliance.

Strategische metrics moeten worden gekoppeld aan de beveiligingsstrategie en doelstellingen van de organisatie, en moeten inzicht geven in aspecten die belangrijk zijn voor het succes van de beveiligingsstrategie. Wanneer een organisatie bijvoorbeeld als strategische doelstelling heeft om zero-trust architecture te implementeren, moeten strategische metrics inzicht geven in de voortgang van zero-trust implementatie, zoals het percentage workloads dat is beveiligd met zero-trust principes, of het percentage gebruikers dat is overgestapt naar zero-trust authenticatie. Wanneer een organisatie als strategische doelstelling heeft om compliance te verbeteren, moeten strategische metrics inzicht geven in de voortgang van compliance, zoals het aantal geïmplementeerde controls, of het percentage controls dat compliant is. Strategische metrics moeten regelmatig worden geëvalueerd en aangepast om te waarborgen dat zij nog relevant zijn voor de huidige beveiligingsstrategie en doelstellingen.

Microsoft 365 biedt verschillende tools en services die kunnen worden gebruikt als bron voor strategische metrics. Microsoft Secure Score biedt een gestandaardiseerde security posture score die inzicht geeft in de algehele beveiligingsstatus van de tenant, en die kan worden gebruikt als strategische metric om de voortgang richting beveiligingsdoelstellingen te monitoren. Microsoft Compliance Manager biedt compliance scores en compliance percentages voor verschillende normenkaders, die kunnen worden gebruikt als strategische metrics voor compliance posture. Microsoft Defender voor Cloud Apps biedt inzicht in cloud security posture en shadow IT risico's, die kunnen worden gebruikt als strategische metrics voor cloud security. En Microsoft 365 Admin Center biedt service health en uptime informatie, die kan worden gebruikt als strategische metrics voor service availability en reliability. Het PowerShell-script dat bij dit artikel hoort, ondersteunt het verzamelen van strategische metrics door automatisch gegevens op te halen uit deze Microsoft 365 tools en services, en door deze gegevens te presenteren in een gestructureerd formaat dat geschikt is voor rapportage aan bestuur en executive management.

Technische Security Metrics voor Microsoft 365

Technische security metrics meten de configuratie en effectiviteit van technische beveiligingsmaatregelen binnen Microsoft 365-omgevingen, en geven inzicht in de technische beveiligingsstatus op operationeel niveau. Technische metrics zijn doorgaans gedetailleerde indicatoren die relevant zijn voor security engineers, beheerders en operationele teams, en die helpen bij het monitoren en verbeteren van specifieke beveiligingsconfiguraties en maatregelen. Voor Microsoft 365-omgevingen betekent dit dat organisaties expliciet moeten bepalen welke technische aspecten van beveiliging zij willen meten, welke indicatoren het meest relevant zijn voor hun configuraties en workloads, en hoe deze indicatoren worden verzameld, geanalyseerd en gebruikt voor operationele verbeteringen.

Voor Microsoft 365-omgevingen zijn verschillende categorieën van technische security metrics relevant. Identity en Access Management metrics meten de configuratie en effectiviteit van identity- en toegangsbeheer, zoals het percentage gebruikers met meervoudige authenticatie (MFA), het aantal geconfigureerde conditional access policies, het percentage gebruikers met privileged access, of het aantal failed login attempts. Data Protection metrics meten de configuratie en effectiviteit van databescherming, zoals het aantal geconfigureerde sensitivity labels, het percentage documenten met sensitivity labels, het aantal geconfigureerde DLP policies, of het aantal DLP violations. Threat Protection metrics meten de effectiviteit van threat detection en response, zoals het aantal gedetecteerde bedreigingen, de false positive rate, de tijd tot detectie (MTTD), of het aantal geblokkeerde phishing attempts. Compliance metrics meten de naleving van technische beveiligingsvereisten, zoals het aantal geconfigureerde retention policies, het percentage workloads met audit logging, of het aantal openstaande security recommendations.

Technische metrics moeten worden gekoppeld aan specifieke beveiligingsconfiguraties en maatregelen, en moeten inzicht geven in aspecten die direct actiebaar zijn voor het verbeteren van beveiligingsmaatregelen. Wanneer een organisatie bijvoorbeeld conditional access policies heeft geconfigureerd, moeten technische metrics inzicht geven in de effectiviteit van deze policies, zoals het aantal gebruikers dat wordt geblokkeerd door policies, het aantal policies dat wordt geëvalueerd, of het aantal false positives. Wanneer een organisatie DLP policies heeft geconfigureerd, moeten technische metrics inzicht geven in de effectiviteit van deze policies, zoals het aantal DLP violations, het aantal false positives, of het aantal gebruikers dat wordt getraind na een violation. Technische metrics moeten regelmatig worden geëvalueerd en aangepast om te waarborgen dat zij nog relevant zijn voor de huidige beveiligingsconfiguraties en dat zij inzicht geven in aspecten die belangrijk zijn voor operationele verbeteringen.

Microsoft 365 biedt uitgebreide mogelijkheden voor het verzamelen van technische security metrics via verschillende API's en tools. Microsoft Graph API biedt toegang tot beveiligingsgegevens zoals sign-in logs, audit logs, security events en threat detection data, die kunnen worden gebruikt als bron voor technische metrics. Microsoft Secure Score biedt gedetailleerde security recommendations en improvement actions, die kunnen worden gebruikt als bron voor technische metrics over security posture en openstaande verbeteringen. Microsoft Defender voor Cloud Apps biedt gedetailleerde cloud security analytics, die kunnen worden gebruikt als bron voor technische metrics over cloud security en shadow IT. En Microsoft Compliance Manager biedt gedetailleerde compliance assessments en recommendations, die kunnen worden gebruikt als bron voor technische metrics over compliance posture. Het PowerShell-script dat bij dit artikel hoort, ondersteunt het verzamelen van technische metrics door automatisch gegevens op te halen uit deze Microsoft 365 API's en tools, en door deze gegevens te presenteren in een gestructureerd formaat dat geschikt is voor operationele teams en security engineers.

Compliance Metrics voor Normenkaders

Compliance metrics meten de naleving van relevante normenkaders zoals BIO, NIS2, AVG en ISO 27001 binnen Microsoft 365-omgevingen, en geven inzicht in de compliance status op verschillende niveaus van granulariteit. Compliance metrics zijn essentieel voor Nederlandse overheidsorganisaties omdat zij moeten aantonen dat zij voldoen aan wettelijke en normatieve vereisten, en omdat compliance een belangrijke driver is voor beveiligingsinvesteringen en prioritering. Voor Microsoft 365-omgevingen betekent dit dat organisaties expliciet moeten bepalen welke normenkaders relevant zijn, welke controls en vereisten uit deze kaders van toepassing zijn op Microsoft 365, en hoe compliance wordt gemeten, gemonitord en gerapporteerd.

Voor Nederlandse overheidsorganisaties zijn verschillende normenkaders relevant voor Microsoft 365 compliance. De Baseline Informatiebeveiliging Overheid (BIO) stelt beveiligingsvereisten voor overheidsorganisaties, en bevat specifieke controls die van toepassing zijn op cloud services zoals Microsoft 365. De NIS2-richtlijn stelt beveiligingsvereisten voor essentiële en belangrijke entiteiten, en vereist dat organisaties technische en organisatorische maatregelen implementeren voor cybersecurity. De Algemene Verordening Gegevensbescherming (AVG) stelt privacy-vereisten voor verwerking van persoonsgegevens, en vereist dat organisaties passende beveiligingsmaatregelen implementeren. En ISO 27001 stelt beveiligingsvereisten voor informatiebeveiligingsmanagementsystemen, en bevat specifieke controls die van toepassing zijn op cloud services. Voor elk van deze normenkaders moeten organisaties bepalen welke controls van toepassing zijn op Microsoft 365, hoe compliance wordt gemeten, en hoe metrics worden gebruikt voor monitoring en rapportage.

Compliance metrics moeten inzicht geven in verschillende aspecten van compliance. De Overall Compliance Score metric geeft een hoog-niveau overzicht van de algehele compliance status, bijvoorbeeld uitgedrukt als een percentage van geïmplementeerde controls of als een compliance maturity score. De Control Implementation Rate metric meet het percentage controls dat is geïmplementeerd, bijvoorbeeld door het monitoren van het aantal geïmplementeerde controls versus het totale aantal relevante controls. De Control Effectiveness metric meet de effectiviteit van geïmplementeerde controls, bijvoorbeeld door het monitoren van het aantal controls dat compliant is versus het aantal controls dat niet-compliant is. De Compliance Gap metric meet de gap tussen huidige compliance status en doelstellingen, bijvoorbeeld door het monitoren van het aantal openstaande compliance issues of het aantal controls dat nog moet worden geïmplementeerd. En de Compliance Trend metric meet trends in compliance over tijd, bijvoorbeeld door het monitoren van verbetering of verslechtering van compliance scores over meerdere perioden.

Microsoft Compliance Manager biedt uitgebreide mogelijkheden voor het meten en monitoren van compliance voor verschillende normenkaders. Compliance Manager bevat pre-built assessments voor normenkaders zoals ISO 27001, NIST, AVG en andere, die kunnen worden gebruikt als basis voor compliance metrics. Compliance Manager biedt compliance scores en compliance percentages voor verschillende assessments, die kunnen worden gebruikt als compliance metrics. Compliance Manager biedt gedetailleerde compliance assessments en recommendations, die kunnen worden gebruikt als bron voor compliance metrics over specifieke controls en vereisten. En Compliance Manager biedt compliance reporting en dashboard functionaliteit, die kunnen worden gebruikt voor rapportage van compliance metrics aan bestuur en stakeholders. Het PowerShell-script dat bij dit artikel hoort, ondersteunt het verzamelen van compliance metrics door automatisch gegevens op te halen uit Compliance Manager, en door deze gegevens te presenteren in een gestructureerd formaat dat geschikt is voor compliance rapportage en monitoring.

Operationele Metrics voor Security Operations

Operationele security metrics meten de effectiviteit van security operations binnen Microsoft 365-omgevingen, en geven inzicht in de performance van security teams, processen en tools. Operationele metrics zijn essentieel voor het monitoren en verbeteren van security operations, en helpen bij het identificeren van bottlenecks, inefficiënties en verbeterkansen. Voor Microsoft 365-omgevingen betekent dit dat organisaties expliciet moeten bepalen welke aspecten van security operations zij willen meten, welke indicatoren het meest relevant zijn voor hun security operations, en hoe deze indicatoren worden gebruikt voor operationele verbeteringen.

Voor Microsoft 365 security operations zijn verschillende categorieën van operationele metrics relevant. Incident Detection metrics meten de effectiviteit van threat detection, zoals de gemiddelde tijd tot detectie (MTTD) van incidenten, het aantal gedetecteerde bedreigingen, de false positive rate, of de detection coverage. Incident Response metrics meten de effectiviteit van incident response, zoals de gemiddelde tijd tot respons (MTTR), de tijd tot containment, de tijd tot herstel, of het aantal geëscaleerde incidenten. Alert Management metrics meten de effectiviteit van alert processing, zoals het aantal alerts per dag, de alert resolution time, de alert false positive rate, of de alert backlog. Security Operations Workload metrics meten de workload en capaciteit van security teams, zoals het aantal behandelde incidenten per analist, de gemiddelde tijd per incident, of de workload distribution. En Security Tools Performance metrics meten de performance van security tools en systemen, zoals de uptime van security tools, de query performance, of de data ingestion rate.

Operationele metrics moeten worden gekoppeld aan specifieke security operations processen en activiteiten, en moeten inzicht geven in aspecten die direct actiebaar zijn voor operationele verbeteringen. Wanneer een organisatie bijvoorbeeld een Security Operations Center (SOC) heeft, moeten operationele metrics inzicht geven in de performance van het SOC, zoals de MTTD, MTTR, of de alert processing efficiency. Wanneer een organisatie threat hunting activiteiten uitvoert, moeten operationele metrics inzicht geven in de effectiviteit van threat hunting, zoals het aantal gedetecteerde bedreigingen, de time-to-detection, of de threat hunting coverage. Operationele metrics moeten regelmatig worden geëvalueerd en aangepast om te waarborgen dat zij nog relevant zijn voor de huidige security operations en dat zij inzicht geven in aspecten die belangrijk zijn voor operationele verbeteringen.

Microsoft Sentinel en andere Microsoft 365 security tools bieden uitgebreide mogelijkheden voor het verzamelen van operationele metrics. Microsoft Sentinel biedt incident management en analytics functionaliteit, die kunnen worden gebruikt als bron voor operationele metrics over incident detection en response. Microsoft Sentinel biedt query performance en data ingestion monitoring, die kunnen worden gebruikt als bron voor operationele metrics over security tools performance. Microsoft Defender voor Cloud Apps biedt threat detection en analytics functionaliteit, die kunnen worden gebruikt als bron voor operationele metrics over cloud security operations. En Microsoft 365 Unified Audit Log biedt uitgebreide audit logging, die kunnen worden gebruikt als bron voor operationele metrics over security events en activities. Het PowerShell-script dat bij dit artikel hoort, ondersteunt het verzamelen van operationele metrics door automatisch gegevens op te halen uit deze Microsoft 365 security tools, en door deze gegevens te presenteren in een gestructureerd formaat dat geschikt is voor operationele teams en security operations centers.

Verzamelen en Analyseren van Security Metrics

Gebruik PowerShell-script security-metrics-kpis.ps1 (functie Invoke-SecurityMetricsCollection) – Verzamelt automatisch security metrics en KPI's uit Microsoft 365-omgevingen en presenteert deze in een gestructureerd formaat voor rapportage en monitoring.

Het verzamelen en analyseren van security metrics vereist een gestructureerde aanpak waarbij metrics automatisch worden verzameld uit verschillende bronnen, geaggregeerd en geanalyseerd worden, en gepresenteerd worden in een formaat dat geschikt is voor verschillende doelgroepen. Voor Microsoft 365-omgevingen betekent dit dat organisaties expliciet moeten bepalen welke bronnen worden gebruikt voor het verzamelen van metrics, hoe metrics worden geaggregeerd en geanalyseerd, en hoe metrics worden gepresenteerd in dashboards en rapportages. Automatische verzameling is essentieel om te waarborgen dat metrics regelmatig en consistent worden verzameld, en om de workload voor security teams te minimaliseren.

Microsoft 365 biedt verschillende bronnen voor het verzamelen van security metrics. Microsoft Graph API biedt programmatische toegang tot beveiligingsgegevens zoals sign-in logs, audit logs, security events en threat detection data, die kunnen worden gebruikt als bron voor technische en operationele metrics. Microsoft Secure Score API biedt toegang tot security posture scores en recommendations, die kunnen worden gebruikt als bron voor strategische metrics. Microsoft Compliance Manager API biedt toegang tot compliance scores en assessments, die kunnen worden gebruikt als bron voor compliance metrics. En Microsoft Defender voor Cloud Apps API biedt toegang tot cloud security analytics, die kunnen worden gebruikt als bron voor cloud security metrics. Het PowerShell-script dat bij dit artikel hoort, ondersteunt het automatisch verzamelen van metrics uit deze bronnen door gebruik te maken van Microsoft Graph API en andere Microsoft 365 API's, en door metrics te presenteren in een gestructureerd formaat.

Het analyseren van security metrics vereist dat metrics worden geaggregeerd, geëvalueerd en geïnterpreteerd om inzicht te krijgen in trends, patronen en afwijkingen. Aggregatie betekent dat metrics worden gecombineerd en samengevat op verschillende niveaus van granulariteit, bijvoorbeeld per workload, per service, of per tijdseenheid. Evaluatie betekent dat metrics worden vergeleken met doelstellingen, benchmarks of historische data om te bepalen of performance acceptabel is of dat verbetering nodig is. Interpretatie betekent dat metrics worden geanalyseerd om te begrijpen wat de onderliggende oorzaken zijn van trends of afwijkingen, en om te bepalen welke acties nodig zijn voor verbetering. Het PowerShell-script dat bij dit artikel hoort, ondersteunt het analyseren van metrics door automatisch aggregaties en evaluaties uit te voeren, en door inzicht te geven in trends en afwijkingen.

Het presenteren van security metrics vereist dat metrics worden gevisualiseerd en gerapporteerd in een formaat dat geschikt is voor verschillende doelgroepen. Dashboards bieden visuele overzichten van metrics op verschillende niveaus van granulariteit, en helpen bij het snel identificeren van trends, patronen en afwijkingen. Rapportages bieden gedetailleerde analyses van metrics, en helpen bij het begrijpen van onderliggende oorzaken en bij het bepalen van acties. Het PowerShell-script dat bij dit artikel hoort, ondersteunt het presenteren van metrics door automatisch dashboards en rapportages te genereren in verschillende formaten, zoals JSON, CSV of HTML, die kunnen worden gebruikt voor verschillende doelgroepen en doeleinden. Het script ondersteunt ook een DebugMode waarin geen verbinding wordt gemaakt met Microsoft 365 en waarin voorbeelddata wordt teruggegeven, zodat het script lokaal kan worden getest en gedemonstreerd zonder toegang tot productie-omgevingen.

Rapportage en Governance van Security Metrics

Gebruik PowerShell-script security-metrics-kpis.ps1 (functie Invoke-SecurityMetricsReporting) – Genereert gestructureerde rapportages van security metrics en KPI's voor verschillende doelgroepen zoals bestuur, CISO en operationele teams.

Effectieve rapportage van security metrics vereist dat metrics worden gepresenteerd in een formaat dat geschikt is voor verschillende doelgroepen, en dat metrics worden gebruikt voor besluitvorming, prioritering en verbetering van beveiligingsmaatregelen. Voor Nederlandse overheidsorganisaties betekent dit dat metrics regelmatig worden gerapporteerd aan bestuur, CISO, security teams en andere relevante stakeholders, en dat metrics worden gebruikt voor governance en besluitvorming. Rapportage moet inzicht geven in trends, patronen en afwijkingen, en moet helpen bij het identificeren van acties en prioriteiten.

Voor verschillende doelgroepen zijn verschillende typen rapportages relevant. Bestuur en executive management hebben behoefte aan hoog-niveau strategische rapportages die inzicht geven in trends en risico's, en die helpen bij het maken van strategische beslissingen over beveiligingsinvesteringen en prioritering. CISO en security management hebben behoefte aan gedetailleerde operationele rapportages die inzicht geven in de effectiviteit van beveiligingsmaatregelen, en die helpen bij het monitoren en verbeteren van security operations. Security teams hebben behoefte aan technische rapportages die inzicht geven in specifieke beveiligingsconfiguraties en maatregelen, en die helpen bij het verbeteren van technische beveiligingsmaatregelen. En compliance officers hebben behoefte aan compliance rapportages die inzicht geven in de naleving van relevante normenkaders, en die helpen bij het monitoren en verbeteren van compliance.

Governance van security metrics vereist dat metrics regelmatig worden geëvalueerd en aangepast om te waarborgen dat zij nog relevant en effectief zijn. Evaluatie betekent dat organisaties periodiek beoordelen of metrics nog aansluiten bij beveiligingsstrategie en doelstellingen, of metrics nog inzicht geven in aspecten die belangrijk zijn voor beveiliging, en of metrics nog worden gebruikt voor besluitvorming en verbetering. Aanpassing betekent dat organisaties metrics aanpassen, toevoegen of verwijderen wanneer beveiligingsstrategie, doelstellingen of context veranderen. Governance betekent ook dat organisaties processen en procedures hebben voor het verzamelen, analyseren en rapporteren van metrics, en dat organisaties verantwoordelijkheden en rollen hebben gedefinieerd voor metrics management. Het PowerShell-script dat bij dit artikel hoort, ondersteunt governance door automatisch metrics te verzamelen en te rapporteren, en door inzicht te geven in trends en afwijkingen die kunnen worden gebruikt voor evaluatie en aanpassing van metrics.

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 Metrics en KPI's voor Microsoft 365 Governance. .DESCRIPTION Dit script verzamelt automatisch security metrics en KPI's uit Microsoft 365-omgevingen en presenteert deze in een gestructureerd formaat voor rapportage en monitoring. Het script ondersteunt verschillende categorieën van metrics: strategisch, technisch, compliance en operationeel. In DebugMode worden geen cloudverbindingen gemaakt en wordt voorbeelddata teruggegeven zodat het script lokaal getest kan worden zonder toegang tot een tenant. .NOTES Filename: security-metrics-kpis.ps1 Author: Nederlandse Baseline voor Veilige Cloud Created: 2025-01-27 Last Modified: 2025-01-27 Version: 1.0 Related JSON: content/m365/governance/security-metrics-kpis.json Category: governance Workload: m365 .LINK https://github.com/m365-tenant-best-practise .EXAMPLE .\security-metrics-kpis.ps1 -DebugMode Voert een lokale testrun uit met voorbeelddata zonder verbinding met Microsoft 365. .EXAMPLE .\security-metrics-kpis.ps1 -Function Invoke-SecurityMetricsCollection Verzamelt automatisch security metrics en KPI's uit Microsoft 365-omgevingen. .EXAMPLE .\security-metrics-kpis.ps1 -Function Invoke-SecurityMetricsReporting Genereert gestructureerde rapportages van security metrics en KPI's voor verschillende doelgroepen. #> #Requires -Version 5.1 [CmdletBinding()] param( [Parameter(HelpMessage = "Voer een lokale debug-run uit met voorbeelddata, zonder cloudverbinding.")] [switch]$DebugMode, [Parameter(HelpMessage = "Specificeer welke functie moet worden uitgevoerd.")] [ValidateSet("Invoke-SecurityMetricsCollection", "Invoke-SecurityMetricsReporting")] [string]$Function = "Invoke-SecurityMetricsCollection" ) $ErrorActionPreference = 'Stop' $VerbosePreference = 'Continue' Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Security Metrics en KPI's (M365)" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan function Connect-M365SecurityMetricsContext { <# .SYNOPSIS Maakt verbinding met Microsoft Graph en Security & Compliance Center voor metrics verzameling. .DESCRIPTION Gebruikt Connect-MgGraph en Connect-IPPSSession met benodigde scopes voor metrics verzameling. Deze functie maakt geen verbinding wanneer DebugMode is ingeschakeld. #> [CmdletBinding()] param() if ($DebugMode) { Write-Host "DebugMode: er wordt geen verbinding gemaakt met Microsoft 365." -ForegroundColor Yellow return } Write-Host "Verbinding maken met Microsoft Graph..." -ForegroundColor Gray Connect-MgGraph -Scopes "SecurityEvents.Read.All","Directory.Read.All","User.Read.All","Policy.Read.All","AuditLog.Read.All","SecurityActions.Read.All" -ErrorAction Stop | Out-Null Write-Host "Verbonden met Microsoft Graph" -ForegroundColor Green Write-Host "Verbinding maken met Security & Compliance Center..." -ForegroundColor Gray Connect-IPPSSession -ErrorAction Stop | Out-Null Write-Host "Verbonden met Security & Compliance Center" -ForegroundColor Green } function Get-StrategicMetrics { <# .SYNOPSIS Haalt strategische security metrics op. .OUTPUTS PSCustomObject met strategische security metrics. #> [CmdletBinding()] param() if ($DebugMode) { return [PSCustomObject]@{ OverallSecurityPosture = 82.5 SecureScore = 785 MaxSecureScore = 950 SecureScorePercentage = 82.6 RiskReduction = -12.3 CompliancePosture = 88.0 IncidentImpact = "Laag" SecurityInvestmentROI = 3.2 LastAssessed = (Get-Date).AddDays(-1) } } Write-Verbose "Ophalen van strategische security metrics..." try { $secureScore = Get-MgSecuritySecureScore -Top 1 -ErrorAction SilentlyContinue $scoreValue = if ($secureScore) { $secureScore.CurrentScore } else { 0 } $maxScore = if ($secureScore) { $secureScore.MaxScore } else { 1000 } $scorePercentage = if ($maxScore -gt 0) { [Math]::Round(($scoreValue / $maxScore) * 100, 2) } else { 0 } return [PSCustomObject]@{ OverallSecurityPosture = $scorePercentage SecureScore = $scoreValue MaxSecureScore = $maxScore SecureScorePercentage = $scorePercentage RiskReduction = 0 CompliancePosture = 0 IncidentImpact = "Onbekend" SecurityInvestmentROI = 0 LastAssessed = Get-Date } } catch { Write-Host "Kon strategische metrics niet ophalen: $_" -ForegroundColor Yellow } return [PSCustomObject]@{ OverallSecurityPosture = 0 SecureScore = 0 MaxSecureScore = 0 SecureScorePercentage = 0 RiskReduction = 0 CompliancePosture = 0 IncidentImpact = "Onbekend" SecurityInvestmentROI = 0 LastAssessed = Get-Date } } function Get-TechnicalMetrics { <# .SYNOPSIS Haalt technische security metrics op. .OUTPUTS PSCustomObject met technische security metrics. #> [CmdletBinding()] param() if ($DebugMode) { return [PSCustomObject]@{ MfaCoverage = 96.5 ConditionalAccessPoliciesCount = 12 EnabledConditionalAccessPolicies = 11 SensitivityLabelsCount = 8 DocumentsWithSensitivityLabels = 78.2 DlpPoliciesCount = 6 DlpViolationsCount = 23 ThreatDetectionsCount = 45 FalsePositiveRate = 12.5 RetentionPoliciesCount = 4 AuditLoggingEnabled = $true SecurityRecommendationsCount = 15 LastAssessed = (Get-Date).AddDays(-1) } } Write-Verbose "Ophalen van technische security metrics..." try { $users = Get-MgUser -All -Property Id,UserPrincipalName,StrongAuthenticationMethods -ErrorAction SilentlyContinue $totalUsers = ($users | Measure-Object).Count $usersWithMfa = ($users | Where-Object { $_.StrongAuthenticationMethods -and $_.StrongAuthenticationMethods.Count -gt 0 } | Measure-Object).Count $mfaCoverage = if ($totalUsers -gt 0) { [Math]::Round(($usersWithMfa / $totalUsers) * 100, 2) } else { 0 } $caPolicies = Get-MgIdentityConditionalAccessPolicy -All -ErrorAction SilentlyContinue $totalCaPolicies = ($caPolicies | Measure-Object).Count $enabledCaPolicies = ($caPolicies | Where-Object { $_.State -eq "enabled" } | Measure-Object).Count return [PSCustomObject]@{ MfaCoverage = $mfaCoverage ConditionalAccessPoliciesCount = $totalCaPolicies EnabledConditionalAccessPolicies = $enabledCaPolicies SensitivityLabelsCount = 0 DocumentsWithSensitivityLabels = 0 DlpPoliciesCount = 0 DlpViolationsCount = 0 ThreatDetectionsCount = 0 FalsePositiveRate = 0 RetentionPoliciesCount = 0 AuditLoggingEnabled = $true SecurityRecommendationsCount = 0 LastAssessed = Get-Date } } catch { Write-Host "Kon technische metrics niet ophalen: $_" -ForegroundColor Yellow } return [PSCustomObject]@{ MfaCoverage = 0 ConditionalAccessPoliciesCount = 0 EnabledConditionalAccessPolicies = 0 SensitivityLabelsCount = 0 DocumentsWithSensitivityLabels = 0 DlpPoliciesCount = 0 DlpViolationsCount = 0 ThreatDetectionsCount = 0 FalsePositiveRate = 0 RetentionPoliciesCount = 0 AuditLoggingEnabled = $false SecurityRecommendationsCount = 0 LastAssessed = Get-Date } } function Get-ComplianceMetrics { <# .SYNOPSIS Haalt compliance metrics op. .OUTPUTS PSCustomObject met compliance metrics. #> [CmdletBinding()] param() if ($DebugMode) { return [PSCustomObject]@{ OverallComplianceScore = 88.0 BioComplianceScore = 85.5 Nis2ComplianceScore = 90.0 AvgComplianceScore = 89.5 Iso27001ComplianceScore = 87.0 ControlsImplemented = 142 TotalControls = 165 ControlsCompliant = 128 ComplianceGap = 23 OpenComplianceIssues = 18 LastAssessed = (Get-Date).AddDays(-1) } } Write-Verbose "Ophalen van compliance metrics..." # In productie zou dit gegevens ophalen uit Compliance Manager of andere bronnen return [PSCustomObject]@{ OverallComplianceScore = 0 BioComplianceScore = 0 Nis2ComplianceScore = 0 AvgComplianceScore = 0 Iso27001ComplianceScore = 0 ControlsImplemented = 0 TotalControls = 0 ControlsCompliant = 0 ComplianceGap = 0 OpenComplianceIssues = 0 LastAssessed = Get-Date } } function Get-OperationalMetrics { <# .SYNOPSIS Haalt operationele security metrics op. .OUTPUTS PSCustomObject met operationele security metrics. #> [CmdletBinding()] param() if ($DebugMode) { return [PSCustomObject]@{ MeanTimeToDetect = 4.5 MeanTimeToRespond = 12.3 MeanTimeToContain = 8.7 MeanTimeToRecovery = 24.1 AlertsPerDay = 156 AlertResolutionTime = 2.3 AlertFalsePositiveRate = 15.2 AlertBacklog = 23 IncidentsPerAnalyst = 8.5 SecurityToolsUptime = 99.8 LastAssessed = (Get-Date).AddDays(-1) } } Write-Verbose "Ophalen van operationele security metrics..." # In productie zou dit gegevens ophalen uit Sentinel of andere bronnen return [PSCustomObject]@{ MeanTimeToDetect = 0 MeanTimeToRespond = 0 MeanTimeToContain = 0 MeanTimeToRecovery = 0 AlertsPerDay = 0 AlertResolutionTime = 0 AlertFalsePositiveRate = 0 AlertBacklog = 0 IncidentsPerAnalyst = 0 SecurityToolsUptime = 0 LastAssessed = Get-Date } } function Invoke-SecurityMetricsCollection { <# .SYNOPSIS Verzamelt automatisch security metrics en KPI's uit Microsoft 365-omgevingen. .DESCRIPTION Verzamelt verschillende categorieën van security metrics (strategisch, technisch, compliance, operationeel) uit Microsoft 365-omgevingen en presenteert deze in een gestructureerd formaat voor rapportage en monitoring. .OUTPUTS PSCustomObject met security metrics en KPI's. #> [CmdletBinding()] param() Connect-M365SecurityMetricsContext Write-Host "`nVerzamelen van security metrics en KPI's..." -ForegroundColor Yellow Write-Host "========================================================" -ForegroundColor Yellow $strategicMetrics = Get-StrategicMetrics $technicalMetrics = Get-TechnicalMetrics $complianceMetrics = Get-ComplianceMetrics $operationalMetrics = Get-OperationalMetrics $metrics = [PSCustomObject]@{ ScriptName = "security-metrics-kpis.ps1" Function = "Invoke-SecurityMetricsCollection" GeneratedAt = Get-Date DebugMode = [bool]$DebugMode Strategic = $strategicMetrics Technical = $technicalMetrics Compliance = $complianceMetrics Operational = $operationalMetrics Summary = [PSCustomObject]@{ OverallSecurityPosture = $strategicMetrics.OverallSecurityPosture SecureScore = $strategicMetrics.SecureScore SecureScorePercentage = $strategicMetrics.SecureScorePercentage ComplianceScore = $complianceMetrics.OverallComplianceScore MfaCoverage = $technicalMetrics.MfaCoverage ThreatDetections = $technicalMetrics.ThreatDetectionsCount } } Write-Host "`nSecurity metrics verzameling voltooid:" -ForegroundColor Green Write-Host " Overall Security Posture: $($strategicMetrics.OverallSecurityPosture)%" -ForegroundColor Cyan Write-Host " Secure Score: $($strategicMetrics.SecureScore) / $($strategicMetrics.MaxSecureScore)" -ForegroundColor Cyan Write-Host " Compliance Score: $($complianceMetrics.OverallComplianceScore)%" -ForegroundColor Cyan Write-Host " MFA Coverage: $($technicalMetrics.MfaCoverage)%" -ForegroundColor Cyan Write-Host " Threat Detections: $($technicalMetrics.ThreatDetectionsCount)" -ForegroundColor Cyan return $metrics } function Invoke-SecurityMetricsReporting { <# .SYNOPSIS Genereert gestructureerde rapportages van security metrics en KPI's voor verschillende doelgroepen. .DESCRIPTION Genereert rapportages op basis van verzamelde security metrics die geschikt zijn voor verschillende doelgroepen zoals bestuur, CISO en operationele teams. Rapporten bevatten samenvattingen, trends en aanbevelingen. .OUTPUTS PSCustomObject met rapportage resultaten. #> [CmdletBinding()] param() Connect-M365SecurityMetricsContext Write-Host "`nGenereren van security metrics rapportages..." -ForegroundColor Yellow Write-Host "========================================================" -ForegroundColor Yellow $metrics = Invoke-SecurityMetricsCollection $report = [PSCustomObject]@{ ScriptName = "security-metrics-kpis.ps1" Function = "Invoke-SecurityMetricsReporting" GeneratedAt = Get-Date DebugMode = [bool]$DebugMode Metrics = $metrics ExecutiveSummary = [PSCustomObject]@{ OverallSecurityPosture = $metrics.Summary.OverallSecurityPosture SecureScore = $metrics.Summary.SecureScore ComplianceScore = $metrics.Summary.ComplianceScore KeyFindings = @( "Overall Security Posture: $($metrics.Summary.OverallSecurityPosture)%", "Secure Score: $($metrics.Summary.SecureScorePercentage)%", "Compliance Score: $($metrics.Summary.ComplianceScore)%" ) Recommendations = @( "Blijf periodiek monitoren of security metrics actueel blijven", "Evalueer regelmatig of aanvullende maatregelen nodig zijn", "Gebruik metrics voor besluitvorming en prioritering" ) } TechnicalReport = [PSCustomObject]@{ MfaCoverage = $metrics.Technical.MfaCoverage ConditionalAccessPolicies = $metrics.Technical.ConditionalAccessPoliciesCount SensitivityLabels = $metrics.Technical.SensitivityLabelsCount DlpPolicies = $metrics.Technical.DlpPoliciesCount ThreatDetections = $metrics.Technical.ThreatDetectionsCount } ComplianceReport = [PSCustomObject]@{ OverallCompliance = $metrics.Compliance.OverallComplianceScore ControlsImplemented = $metrics.Compliance.ControlsImplemented ControlsCompliant = $metrics.Compliance.ControlsCompliant OpenIssues = $metrics.Compliance.OpenComplianceIssues } OperationalReport = [PSCustomObject]@{ MeanTimeToDetect = $metrics.Operational.MeanTimeToDetect MeanTimeToRespond = $metrics.Operational.MeanTimeToRespond AlertsPerDay = $metrics.Operational.AlertsPerDay AlertFalsePositiveRate = $metrics.Operational.AlertFalsePositiveRate } } Write-Host "`nRapportage generatie voltooid:" -ForegroundColor Green Write-Host " Executive Summary gegenereerd" -ForegroundColor Cyan Write-Host " Technical Report gegenereerd" -ForegroundColor Cyan Write-Host " Compliance Report gegenereerd" -ForegroundColor Cyan Write-Host " Operational Report gegenereerd" -ForegroundColor Cyan return $report } # ============================================================================ # MAIN EXECUTION # ============================================================================ try { $result = switch ($Function) { "Invoke-SecurityMetricsCollection" { Invoke-SecurityMetricsCollection } "Invoke-SecurityMetricsReporting" { Invoke-SecurityMetricsReporting } default { Invoke-SecurityMetricsCollection } } Write-Host "`n========================================" -ForegroundColor Cyan # Optioneel: exporteer naar JSON $exportPath = ".\security-metrics-report-$(Get-Date -Format 'yyyyMMdd-HHmmss').json" $result | ConvertTo-Json -Depth 10 | Out-File -FilePath $exportPath -Encoding UTF8 Write-Host "`nRapportage geëxporteerd naar: $exportPath" -ForegroundColor Green $result | Format-List return $result exit 0 } catch { Write-Error "Fout tijdens uitvoering van $Function : $_" exit 1 } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan } # Exitcodes: # 0 = Script succesvol uitgevoerd # 1 = Fout tijdens uitvoering

Risico zonder implementatie

Risico zonder implementatie
Medium: Zonder gestructureerde security metrics en KPI's kunnen organisaties niet objectief vaststellen of beveiligingsinspanningen effectief zijn, kunnen zij geen gefundeerde beslissingen nemen over prioritering van beveiligingsmaatregelen, en kunnen zij bestuur en stakeholders niet adequaat informeren over beveiligingsstatus. Dit kan leiden tot ineffectieve beveiligingsinvesteringen, gemiste verbeterkansen, onvoldoende accountability voor beveiligingsresultaten, en niet-naleving van normenkaders zoals BIO, NIS2 en ISO 27001 die expliciet vereisen dat organisaties security metrics definiëren, monitoren en rapporteren.

Management Samenvatting

Ontwikkel en implementeer een gestructureerd framework voor security metrics en KPI's voor Microsoft 365 governance dat strategische beveiligingsdoelstellingen vertaalt naar meetbare indicatoren, verschillende categorieën van metrics definieert (strategisch, technisch, compliance, operationeel), automatisch metrics verzamelt uit Microsoft 365-omgevingen, en metrics gebruikt voor besluitvorming, prioritering en rapportage aan bestuur en stakeholders. Gebruik het PowerShell-script om automatisch metrics te verzamelen en te rapporteereren. Implementatie: 200 uur. Must-Have governance vereiste voor effectief beveiligingsmanagement en compliance.