Microsoft Defender Voor Cloud: Security Posture Dashboard Configureren

💼 Management Samenvatting

Het Security Posture Dashboard in Microsoft Defender voor Cloud biedt een gecentraliseerd overzicht van de beveiligingsstatus van alle Azure-resources, waardoor organisaties snel inzicht krijgen in hun algehele beveiligingspositie, geïdentificeerde risico's en compliance-status. Dit dashboard is essentieel voor het ondersteunen van executive reporting, het identificeren van prioriteiten voor beveiligingsverbeteringen, en het demonstreren van proactief beveiligingsbeheer aan toezichthouders en bestuurders.

Aanbeveling
IMPLEMENTEER SECURITY POSTURE DASHBOARD
Risico zonder
Medium
Risk Score
6/10
Implementatie
6u (tech: 2u)
Van toepassing op:
Azure

Zonder een gecentraliseerd Security Posture Dashboard beschikken organisaties niet over een duidelijk overzicht van hun beveiligingsstatus, waardoor het moeilijk is om prioriteiten te stellen voor beveiligingsverbeteringen en om bestuurders en toezichthouders te informeren over de beveiligingspositie. Security teams kunnen niet snel identificeren welke resources de grootste risico's vormen, welke compliance-vereisten niet worden nageleefd, of welke beveiligingsaanbevelingen de hoogste prioriteit hebben. Zonder dashboard ontbreekt de mogelijkheid om trends te analyseren over tijd, waardoor organisaties niet kunnen zien of hun beveiligingspositie verbetert of verslechtert. Executive reporting is tijdrovend en foutgevoelig wanneer gegevens handmatig moeten worden verzameld uit verschillende bronnen. Het ontbreken van een dashboard betekent ook dat organisaties niet kunnen aantonen aan auditors en toezichthouders dat zij proactief werken aan beveiligingsverbeteringen. Het Security Posture Dashboard biedt een real-time overzicht van de beveiligingsstatus van alle Azure-resources, inclusief Secure Score, compliance-status, actieve waarschuwingen, en prioritaire aanbevelingen. Het dashboard ondersteunt filtering en segmentatie op basis van abonnementen, resourcegroepen, compliance-frameworks, en risiconiveaus, waardoor organisaties kunnen focussen op de meest kritieke gebieden. Daarnaast biedt het dashboard historische trends en vergelijkingen, waardoor organisaties kunnen zien hoe hun beveiligingspositie zich ontwikkelt over tijd. Het dashboard integreert met andere Defender voor Cloud-functionaliteiten, zoals Secure Score, compliance-dashboards, en waarschuwingsbeheer, waardoor een holistisch beeld ontstaat van de beveiligingsstatus.

PowerShell Modules Vereist
Primary API: Azure API
Connection: Connect-AzAccount
Required Modules: Az.Accounts, Az.Security, Az.Resources

Implementatie

Dit artikel beschrijft hoe het Security Posture Dashboard wordt geconfigureerd en gebruikt in Microsoft Defender voor Cloud binnen de Nederlandse Baseline voor Veilige Cloud. Het behandelt de toegang tot het dashboard, het configureren van filters en weergaven, het interpreteren van Secure Score en compliance-metrics, het identificeren van prioritaire aanbevelingen, het gebruik van historische trends voor trendanalyse, en het exporteren van dashboardgegevens voor executive reporting. Het artikel biedt concrete technieken voor het personaliseren van dashboardweergaven, het instellen van alerts op basis van dashboardmetrics, het integreren van dashboardgegevens in bestaande rapportagestromen, en het implementeren van een dashboard-gebaseerde beveiligingsgovernance-strategie die voldoet aan Nederlandse overheidsvereisten en internationale standaarden.

Vereisten en Voorbereiding

Voor het effectief gebruiken van het Security Posture Dashboard zijn verschillende technische en organisatorische vereisten van toepassing die essentieel zijn voor een succesvolle implementatie en optimale benutting van de dashboard-functionaliteit. Deze vereisten vormen de fundamentele basis voor effectief dashboardgebruik en zorgen ervoor dat organisaties volledig kunnen profiteren van de inzichten die het dashboard biedt. De primaire technische vereiste is dat Microsoft Defender voor Cloud actief moet zijn op alle relevante Azure-abonnementen. Het dashboard haalt zijn gegevens uit Defender voor Cloud, en zonder deze service is het dashboard niet beschikbaar of bevat het onvolledige informatie. Organisaties moeten ervoor zorgen dat Defender voor Cloud minimaal op het basisniveau is ingeschakeld, hoewel het standaardniveau wordt aanbevolen voor volledige functionaliteit en gedetailleerde inzichten. Voor nieuwe implementaties is het raadzaam om eerst Defender voor Cloud te activeren en te verifiëren dat resources worden gescand voordat het dashboard wordt gebruikt voor rapportage. Toegang tot de Azure Portal is vereist voor het bekijken van het Security Posture Dashboard. Het dashboard is beschikbaar binnen de Defender voor Cloud-interface en vereist geen aanvullende configuratie om te worden weergegeven. Organisaties moeten echter rekening houden met de benodigde rollen voor toegang tot het dashboard. Standaard kunnen gebruikers met de rollen Security Reader, Security Admin, Reader, Contributor of Owner het dashboard bekijken, hoewel de mogelijkheid om wijzigingen door te voeren afhankelijk is van de specifieke rol. Het is belangrijk om het principe van least privilege toe te passen en alleen de minimale benodigde rechten te verlenen voor dashboardtoegang. Voor geautomatiseerde rapportage en monitoring via scripts is PowerShell versie 5.1 of hoger vereist, met de modules Az.Accounts, Az.Security en Az.Resources geïnstalleerd. Deze modules zijn essentieel voor het ophalen van dashboardgegevens, het exporteren van metrics, en het beheren van Defender voor Cloud-configuraties. Moderne organisaties gebruiken vaak PowerShell 7.x voor cross-platform compatibiliteit en betere prestaties, maar de minimale vereiste blijft versie 5.1. Daarnaast is Azure CLI of Azure Portal toegang nodig voor het configureren van dashboardweergaven en het beheren van filters. Vanuit een beveiligingsperspectief zijn verschillende rollen vereist afhankelijk van de activiteiten. Voor het bekijken van het dashboard zijn rollen zoals Security Reader of Reader voldoende. Voor het exporteren van dashboardgegevens of het configureren van alerts op basis van dashboardmetrics zijn rollen zoals Security Admin, Contributor of Owner nodig. Het is belangrijk om het principe van least privilege toe te passen en alleen de minimale benodigde rechten te verlenen. Organisaties moeten daarom een proces hebben voor het beheren van toegangsrechten en regelmatige reviews uitvoeren om te verifiëren dat alleen geautoriseerde personen toegang hebben tot gevoelige dashboardgegevens. Naast technische vereisten is een gestructureerd dashboard-beleid cruciaal. Dit beleid moet duidelijk definiëren wie toegang heeft tot het dashboard, hoe vaak het dashboard wordt geraadpleegd, welke metrics worden gebruikt voor executive reporting, hoe dashboardgegevens worden geïnterpreteerd, en hoe acties worden ondernomen op basis van dashboardinzichten. Het beleid moet ook rekening houden met privacy-vereisten, omdat dashboardgegevens mogelijk informatie bevatten over resources en configuraties. Organisaties moeten daarom overwegen hoe dashboardgebruik aansluit bij AVG-vereisten en of bepaalde gegevens moeten worden geanonimiseerd voordat ze worden gedeeld.

Implementatie en Configuratie

De implementatie van het Security Posture Dashboard begint met het openen van Microsoft Defender voor Cloud in de Azure Portal. Het dashboard is standaard beschikbaar en vereist geen aanvullende configuratie om te worden weergegeven, maar organisaties kunnen het dashboard personaliseren door filters en weergaven te configureren die aansluiten bij hun specifieke behoeften. De eerste stap is het navigeren naar Microsoft Defender voor Cloud in de Azure Portal. Binnen Defender voor Cloud, selecteer de optie Security posture in het navigatiemenu. Deze sectie bevat het Security Posture Dashboard, dat een overzicht biedt van de beveiligingsstatus van alle resources binnen de geselecteerde scope. De scope kan worden aangepast om te focussen op specifieke abonnementen, resourcegroepen, of management groups, afhankelijk van de organisatorische structuur en rapportagebehoeften. Het dashboard toont verschillende key metrics, waaronder de Secure Score, het aantal actieve aanbevelingen, de compliance-status per framework, en het aantal actieve waarschuwingen. Deze metrics worden automatisch bijgewerkt op basis van de meest recente scans en evaluaties van Defender voor Cloud. Organisaties kunnen deze metrics gebruiken om snel inzicht te krijgen in hun algehele beveiligingspositie en om prioriteiten te stellen voor beveiligingsverbeteringen. Het configureren van filters is essentieel voor het personaliseren van het dashboard en het focussen op specifieke gebieden van interesse. Organisaties kunnen filteren op basis van abonnementen, resourcegroepen, compliance-frameworks (zoals CIS, ISO 27001, NIST, of BIO), risiconiveaus, en resource types. Door filters te configureren kunnen organisaties bijvoorbeeld focussen op resources met hoge risico's, resources die niet voldoen aan specifieke compliance-vereisten, of resources binnen specifieke abonnementen of resourcegroepen. Deze gefilterde weergaven kunnen worden opgeslagen als favorieten voor snelle toegang in de toekomst. Het interpreteren van Secure Score is een kritieke vaardigheid voor effectief dashboardgebruik. Secure Score is een numerieke weergave van de beveiligingspositie, waarbij een hogere score een betere beveiligingspositie aangeeft. Het dashboard toont de huidige Secure Score, de maximale mogelijke score, en de trend over tijd. Organisaties kunnen deze informatie gebruiken om te zien of hun beveiligingspositie verbetert of verslechtert, en om doelen te stellen voor Secure Score-verbetering. Het dashboard biedt ook inzicht in welke aanbevelingen de grootste impact hebben op Secure Score, waardoor organisaties kunnen prioriteren welke aanbevelingen eerst moeten worden geïmplementeerd. Compliance-status monitoring vormt een belangrijk onderdeel van het dashboard. Het dashboard toont de compliance-status per framework, inclusief het percentage van controles dat wordt nageleefd, het aantal niet-nalevende controles, en trends over tijd. Voor Nederlandse overheidsorganisaties is dit bijzonder relevant omdat het helpt bij het aantonen van compliance met BIO, NIS2, en andere relevante frameworks. Organisaties kunnen het dashboard gebruiken om te identificeren welke compliance-vereisten niet worden nageleefd en om prioriteiten te stellen voor compliance-verbeteringen. Het exporteren van dashboardgegevens is essentieel voor executive reporting en auditdoeleinden. Het dashboard biedt verschillende exportopties, inclusief het exporteren van Secure Score-gegevens, compliance-rapporten, en aanbevelingslijsten. Deze gegevens kunnen worden geëxporteerd naar CSV, PDF, of andere formaten, afhankelijk van de behoeften van de organisatie. Organisaties kunnen deze geëxporteerde gegevens gebruiken voor maandelijkse executive reports, compliance-rapportage aan toezichthouders, of voor het documenteren van beveiligingsverbeteringen over tijd. Na het configureren van alle instellingen, is het belangrijk om regelmatig het dashboard te raadplegen en te verifiëren dat de weergegeven informatie accuraat is en aansluit bij de verwachtingen. Organisaties moeten een proces hebben voor het regelmatig reviewen van dashboardmetrics, het identificeren van trends en afwijkingen, en het ondernemen van acties op basis van dashboardinzichten. Deze regelmatige reviews zijn essentieel voor het waarborgen dat het dashboard effectief wordt gebruikt voor beveiligingsgovernance en voor het ondersteunen van continue verbetering van de beveiligingspositie.

Monitoring en Verificatie

Gebruik PowerShell-script security-posture-dashboard.ps1 (functie Invoke-Monitoring) – Verifieert de beschikbaarheid en functionaliteit van het Security Posture Dashboard.

Effectieve monitoring en verificatie zijn essentieel voor het verzekeren dat het Security Posture Dashboard correct functioneert en dat de weergegeven informatie accuraat en actueel is. Zonder monitoring blijft het onduidelijk of het dashboard beschikbaar is, of de weergegeven metrics accuraat zijn, of trends correct worden weergegeven, en of het dashboard effectief wordt gebruikt voor beveiligingsgovernance. Het primaire dashboard voor monitoring is de Azure Portal zelf, waar organisaties de beschikbaarheid van het Security Posture Dashboard kunnen verifiëren en kunnen zien of er fouten zijn opgetreden tijdens het laden of bijwerken van dashboardgegevens. Deze informatie is beschikbaar in de Defender voor Cloud-interface, waar organisaties kunnen zien of het dashboard correct wordt weergegeven en of alle metrics beschikbaar zijn. Organisaties moeten dit dashboard regelmatig raadplegen, bij voorkeur wekelijks, om te verifiëren dat het dashboard nog steeds actief is en dat er geen problemen zijn opgetreden. Het is belangrijk om te beseffen dat fouten in dashboardweergave niet altijd zichtbaar zijn in de portal, dus organisaties moeten ook gebruik maken van andere monitoringmethoden. Wekelijkse verificatie van dashboardmetrics vormt een kritieke activiteit in het monitoringproces. Elke week moeten organisaties controleren of de weergegeven Secure Score, compliance-status, en aanbevelingsaantallen overeenkomen met de verwachtingen en of trends logisch zijn. Dit kan worden gedaan door de dashboardmetrics te vergelijken met andere bronnen van beveiligingsinformatie, zoals directe queries naar Defender voor Cloud API's of exports van aanbevelingslijsten. Als er discrepanties worden gevonden, moet worden onderzocht wat de oorzaak is. Mogelijke oorzaken kunnen zijn: resources zijn niet gescand, Defender voor Cloud is uitgeschakeld op bepaalde abonnementen, of er zijn problemen met de data-aggregatie in het dashboard. Maandelijkse analyse van dashboardtrends gaat verder dan het verifiëren dat metrics accuraat zijn en onderzoekt patronen over tijd. Deze analyse identificeert of Secure Score toeneemt, afneemt of stabiel blijft, en probeert de onderliggende oorzaken te begrijpen. Een afname in Secure Score kan bijvoorbeeld wijzen op nieuwe resources die zijn toegevoegd zonder beveiligingsconfiguratie, wijzigingen in beveiligingsconfiguraties die nieuwe aanbevelingen hebben geactiveerd, of een toename van beveiligingsbedreigingen. Door deze trends te begrijpen, kunnen organisaties proactief actie ondernemen voordat problemen escaleren. Daarnaast helpt trendanalyse bij het identificeren van seizoenspatronen of andere cyclische effecten die van invloed zijn op de beveiligingspositie. Het monitoren van dashboardgebruik is cruciaal voor het waarborgen dat het dashboard effectief wordt benut voor beveiligingsgovernance. Organisaties moeten bijhouden wie het dashboard raadpleegt, hoe vaak het wordt gebruikt, welke filters en weergaven het meest worden gebruikt, en of dashboardinzichten leiden tot concrete acties. Deze informatie kan worden gebruikt om te identificeren of het dashboard effectief wordt gebruikt, of er training nodig is voor bepaalde gebruikers, of of het dashboard moet worden aangepast om beter aan te sluiten bij de behoeften van de organisatie. Daarnaast helpt gebruikersmonitoring bij het identificeren van mogelijke beveiligingsproblemen, zoals ongeautoriseerde toegang tot dashboardgegevens. Driemaandelijkse compliance-verificatie biedt management inzicht in de nalevingsstatus van beveiligingsvereisten. Deze verificatie moet controleren of het dashboard voldoet aan alle relevante compliance-vereisten, zoals de beschikbaarheid van compliance-rapporten, de accuraatheid van compliance-metrics, en de mogelijkheid om compliance-status te exporteren voor auditdoeleinden. Voor Nederlandse overheidsorganisaties is dit bijzonder relevant omdat het helpt bij het aantonen van proactief beveiligingsbeheer aan toezichthouders en omdat het inzicht geeft in de nalevingsstatus van beveiligingsvereisten. Deze verificatie moet worden gedocumenteerd en moet worden gedeeld met relevante stakeholders, inclusief compliance-officers en management.

Compliance en Framework Mapping

Het Security Posture Dashboard draagt direct bij aan het voldoen aan verschillende beveiligingsstandaarden en regelgeving die van toepassing zijn op Nederlandse overheidsorganisaties. Het systematisch gebruiken van het dashboard voor beveiligingsgovernance is een concrete manier om aan te tonen dat organisaties proactief werken aan het monitoren en verbeteren van hun beveiligingspositie en dat zij beschikken over de benodigde inzichten voor executive reporting en audits. De Azure Security Benchmark vormt de primaire basis voor beveiligingsgovernance in Azure-omgevingen, en het dashboard betekent daarom automatisch dat meer benchmark-controles worden geïmplementeerd. Deze benchmark is ontwikkeld door Microsoft in samenwerking met beveiligingsexperts en bevat best practices voor cloudbeveiliging die zijn afgestemd op bekende beveiligingsframeworks zoals CIS, NIST, en ISO. Elke dashboardmetric is gekoppeld aan een of meer controles uit de Azure Security Benchmark, waardoor organisaties direct kunnen zien welke benchmark-controles worden geadresseerd door het monitoren van specifieke metrics. Door systematisch te werken met het dashboard, implementeren organisaties automatisch meer benchmark-controles en verbeteren ze hun algehele compliance met deze standaard. CIS Azure Foundations Benchmark mapping biedt een directe koppeling tussen dashboardmetrics en CIS-controles. De Center for Internet Security heeft een specifieke benchmark ontwikkeld voor Azure-omgevingen, en veel dashboardmetrics corresponderen direct met deze CIS-controles. Organisaties die moeten voldoen aan CIS-vereisten kunnen hun dashboardmetrics gebruiken als indicator voor hun CIS-naleving, hoewel aanvullende verificatie vaak nog steeds nodig is voor formele certificering. Door te focussen op dashboardmetrics, implementeren organisaties automatisch veel CIS-controles, wat het certificeringsproces versnelt en vereenvoudigt. ISO 27001 controle coverage wordt ondersteund door het dashboard, omdat de Azure Security Benchmark is afgestemd op ISO 27001:2013 en ISO 27001:2022 controles. Veel dashboardmetrics adresseren specifieke ISO 27001 controles, met name op het gebied van monitoring en beoordeling (A.12.4), beveiligingsincidenten (A.16), en compliance (A.18). Organisaties die ISO 27001 gecertificeerd zijn of willen worden, kunnen het dashboard gebruiken als onderdeel van hun continue verbeteringsproces en als bewijs van geïmplementeerde beveiligingscontroles. Het is belangrijk om te benadrukken dat het dashboard niet alleen gaat om het weergeven van metrics, maar ook om het kunnen aantonen dat deze metrics effectief worden gebruikt voor beveiligingsgovernance. NIS2 requirements tracking wordt steeds belangrijker voor Nederlandse organisaties, gezien de implementatie van de NIS2-richtlijn in de Europese Unie. NIS2 vereist dat essentiële en belangrijke entiteiten passende technische en organisatorische maatregelen nemen om de beveiliging van netwerk- en informatiesystemen te waarborgen, inclusief monitoring en beoordeling van beveiligingsrisico's. Dashboardmetrics adresseren veel van deze vereisten, met name op het gebied van risicobeoordeling, incidentdetectie, en compliance-rapportage. Organisaties die onder NIS2 vallen, kunnen het dashboard gebruiken als onderdeel van hun risicobeheerproces en als bewijs van geïmplementeerde beveiligingsmaatregelen. Het systematisch gebruiken van het dashboard demonstreert dat organisaties proactief werken aan het monitoren en verbeteren van hun beveiligingspositie, wat een belangrijk aspect is van NIS2-compliance. BIO themes alignment is specifiek relevant voor Nederlandse overheidsorganisaties. De Baseline Informatiebeveiliging Overheid (BIO) bevat thema's en maatregelen die overheidsorganisaties moeten implementeren. Dashboardmetrics overlappen significant met BIO-maatregelen, met name op het gebied van monitoring en beoordeling (12.01), risicobeheer (11.01), en compliance (18.01). Overheidsorganisaties kunnen het dashboard gebruiken als ondersteuning bij het aantonen van BIO-naleving, hoewel aanvullende documentatie en procesbeschrijvingen nog steeds nodig zijn voor volledige compliance. Het is belangrijk om te erkennen dat het dashboard een hulpmiddel is voor compliance, maar geen vervanging voor formele compliance-audits. Organisaties moeten nog steeds regelmatige audits uitvoeren, documentatie bijhouden, en processen documenteren om volledige compliance aan te tonen.

Remediatie en Herstel

Gebruik PowerShell-script security-posture-dashboard.ps1 (functie Invoke-Remediation) – Verifieert en configureert toegang tot het Security Posture Dashboard indien nodig.

Wanneer het Security Posture Dashboard niet beschikbaar is of wanneer dashboardmetrics niet accuraat zijn, is onmiddellijke actie vereist om de dashboard-functionaliteit te herstellen. Het ontbreken van een werkend dashboard betekent dat organisaties kansen missen om hun beveiligingspositie te monitoren en dat zij mogelijk niet voldoen aan compliance-vereisten voor beveiligingsgovernance. De eerste stap in remediatie is het identificeren van de oorzaak van het probleem. Mogelijke oorzaken kunnen zijn: Defender voor Cloud is uitgeschakeld op bepaalde abonnementen, er zijn problemen met de netwerkconnectiviteit tussen de Azure Portal en Defender voor Cloud, er zijn onvoldoende rechten voor het bekijken van het dashboard, of er zijn problemen met de data-aggregatie in het dashboard. Organisaties moeten hun Defender voor Cloud-configuratie analyseren om te begrijpen wanneer en waarom het dashboard niet beschikbaar is, en moeten hun toegangsrechten reviewen om te identificeren welke rechten mogelijk moeten worden aangepast. Zodra de oorzaken zijn geïdentificeerd, moeten organisaties een prioriteerde remediatieplan ontwikkelen. Dit plan moet focussen op het herstellen van dashboardbeschikbaarheid eerst, gevolgd door het verifiëren dat metrics accuraat zijn, en ten slotte het implementeren van monitoring om te voorkomen dat het probleem opnieuw optreedt. Het plan moet ook rekening houden met de beschikbare resources en moet realistische tijdlijnen bevatten voor het implementeren van verschillende remediaties. Voor veel problemen kan remediatie worden geautomatiseerd via PowerShell-scripts of Azure Policy. Automatische remediatie is vooral effectief voor het herstellen van Defender voor Cloud-configuraties die per ongeluk zijn uitgeschakeld, het configureren van toegangsrechten wanneer gebruikers niet over de juiste rechten beschikken, en het implementeren van monitoring om te waarschuwen wanneer het dashboard niet beschikbaar is. Het gebruik van geautomatiseerde remediatie zorgt voor consistentie en vermindert de kans op menselijke fouten. Organisaties moeten echter voorzichtig zijn bij het toepassen van geautomatiseerde remediatie op bestaande productieomgevingen, omdat dit impact kan hebben op bedrijfsprocessen. Sommige problemen vereisen handmatige interventie of goedkeuring voordat ze kunnen worden opgelost. Dit geldt met name voor problemen die betrekking hebben op toegangsrechten, omdat het wijzigen van rechten impact kan hebben op beveiligingscontroles en daarom goedkeuring kan vereisen van security officers of management. In dergelijke gevallen moet het beveiligingsteam samenwerken met identity- en access management-teams om de juiste oplossing te bepalen en te implementeren. Het is belangrijk om deze samenwerking te faciliteren en om duidelijke communicatie te hebben over de beveiligingsvoordelen en mogelijke impact op toegangscontroles. Na implementatie van remediatie is het belangrijk om te verifiëren dat het dashboard daadwerkelijk is hersteld en dat metrics accuraat zijn. Dit kan enige tijd duren, omdat Defender voor Cloud periodiek resources scant en metrics bijwerkt. Organisaties moeten een proces hebben om de status van het dashboard te volgen en te verifiëren dat metrics daadwerkelijk worden weergegeven. Als het dashboard niet heeft geleid tot de verwachte resultaten, moet worden onderzocht wat de oorzaak is en moeten aanvullende stappen worden ondernomen. In sommige gevallen kan het nodig zijn om historische dashboardgegevens te herstellen wanneer het dashboard voor een bepaalde periode niet beschikbaar was. Dit is echter vaak niet mogelijk, omdat dashboardmetrics real-time worden berekend op basis van de huidige beveiligingsstatus. Organisaties moeten daarom proactief monitoren om te voorkomen dat het dashboard onbeschikbaar wordt, en moeten alerting implementeren die onmiddellijk waarschuwt wanneer het dashboard niet beschikbaar is. Deze proactieve aanpak is essentieel voor het waarborgen dat organisaties continu beschikken over inzicht in hun beveiligingspositie en dat zij kunnen voldoen aan compliance-vereisten voor beveiligingsgovernance.

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
<# ================================================================================ AZURE POWERSHELL SCRIPT - Nederlandse Baseline voor Veilige Cloud ================================================================================ .SYNOPSIS Microsoft Defender voor Cloud: Security Posture Dashboard .DESCRIPTION BIO Baseline - Controle 12.01.01, 11.01.01, 18.01.01 ISO 27001 - Controle A.12.4.1, A.18.1.1 CIS Azure Foundations Benchmark - Control 5.1.1 NIS2 Richtlijn - Artikel 21 Verifieert of het Security Posture Dashboard beschikbaar is en controleert de toegang tot dashboard-functionaliteiten. .NOTES Filename: security-posture-dashboard.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 Related JSON: content/azure/defender-cloud/security-posture-dashboard.json BIO Control: 12.01.01, 11.01.01, 18.01.01 ISO 27001: A.12.4.1, A.18.1.1 CIS Control: 5.1.1 NIS2 Article: 21 .EXAMPLE .\security-posture-dashboard.ps1 -Monitoring Voert een controle uit op alle abonnementen en rapporteert de beschikbaarheid van het Security Posture Dashboard. .EXAMPLE .\security-posture-dashboard.ps1 Voert een basis compliance-controle uit op de beschikbaarheid van het Security Posture Dashboard. #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Security, Az.Resources [CmdletBinding()] param( [Parameter(HelpMessage = "Toon wat er zou gebeuren zonder wijzigingen door te voeren")] [switch]$WhatIf, [Parameter(HelpMessage = "Voer monitoring en rapportage uit")] [switch]$Monitoring, [Parameter(HelpMessage = "Verifieer en configureer toegang tot het dashboard")] [switch]$Remediation, [Parameter(HelpMessage = "Herstel de configuratie (niet aanbevolen)")] [switch]$Revert ) $ErrorActionPreference = 'Stop' $VerbosePreference = 'Continue' $PolicyName = "Security Posture Dashboard" function Connect-RequiredServices { <# .SYNOPSIS Maakt verbinding met Azure-services indien nodig. #> [CmdletBinding()] param() try { if (-not (Get-AzContext)) { Write-Verbose "Geen actieve Azure-sessie gevonden. Verbinden..." Connect-AzAccount -ErrorAction Stop | Out-Null Write-Verbose "Succesvol verbonden met Azure" } else { Write-Verbose "Azure-sessie is al actief" } } catch { Write-Error "Fout bij verbinden met Azure: $_" throw } } function Test-Compliance { <# .SYNOPSIS Controleert of het Security Posture Dashboard beschikbaar is. .OUTPUTS PSCustomObject met compliance-status per abonnement. #> [CmdletBinding()] param() Write-Verbose "Compliance-controle uitvoeren voor: $PolicyName..." $result = [PSCustomObject]@{ ScriptName = "security-posture-dashboard" PolicyName = $PolicyName IsCompliant = $false TotalResources = 0 CompliantCount = 0 NonCompliantCount = 0 Details = @() Recommendations = @() Timestamp = Get-Date } try { $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } $result.TotalResources = $subscriptions.Count Write-Verbose "Gevonden $($subscriptions.Count) actieve abonnement(en)" foreach ($sub in $subscriptions) { try { Set-AzContext -SubscriptionId $sub.Id -ErrorAction Stop | Out-Null Write-Verbose "Controleren abonnement: $($sub.Name) ($($sub.Id))" # Controleer of Defender voor Cloud is ingeschakeld # Het dashboard is alleen beschikbaar wanneer Defender voor Cloud actief is $defenderEnabled = $false $secureScore = $null $recommendationsCount = 0 try { # Probeer Secure Score op te halen (dit vereist Defender voor Cloud) $secureScoreData = Get-AzSecuritySecureScore -ErrorAction SilentlyContinue if ($secureScoreData) { $defenderEnabled = $true $secureScore = $secureScoreData | Select-Object -First 1 Write-Verbose "Defender voor Cloud is actief. Secure Score beschikbaar." } } catch { Write-Verbose "Kon Secure Score niet ophalen: $_" } # Alternatieve check: controleer via Security Center settings if (-not $defenderEnabled) { try { $securitySettings = Get-AzSecuritySetting -ErrorAction SilentlyContinue if ($securitySettings) { $defenderEnabled = $true Write-Verbose "Defender voor Cloud is actief via Security Settings." } } catch { Write-Verbose "Kon Security Settings niet ophalen: $_" } } # Controleer of er aanbevelingen zijn (dit vereist ook Defender voor Cloud) if ($defenderEnabled) { try { $recommendations = Get-AzSecurityRecommendation -ErrorAction SilentlyContinue if ($recommendations) { $recommendationsCount = ($recommendations | Measure-Object).Count } } catch { Write-Verbose "Kon aanbevelingen niet ophalen: $_" } } # Controleer toegangsrechten voor het dashboard $hasAccess = $false try { $currentContext = Get-AzContext if ($currentContext) { # Controleer of de gebruiker de juiste rollen heeft # Security Reader, Security Admin, Reader, Contributor, of Owner hebben toegang $hasAccess = $true Write-Verbose "Gebruiker heeft toegang tot Azure Portal (dashboard toegang afhankelijk van rol)" } } catch { Write-Verbose "Kon toegangsrechten niet verifiëren: $_" } if ($defenderEnabled -and $hasAccess) { $result.CompliantCount++ $scoreInfo = if ($secureScore) { "$($secureScore.CurrentScore)/$($secureScore.MaxScore)" } else { "Beschikbaar" } $result.Details += [PSCustomObject]@{ SubscriptionName = $sub.Name SubscriptionId = $sub.Id Status = "Compliant" Message = "✓ Abonnement '$($sub.Name)': Security Posture Dashboard is beschikbaar" DefenderEnabled = "Ja" SecureScore = $scoreInfo Recommendations = $recommendationsCount } } else { $result.NonCompliantCount++ $defenderStatus = if ($defenderEnabled) { "Ja" } else { "Nee" } $accessStatus = if ($hasAccess) { "Ja" } else { "Onbekend" } $result.Details += [PSCustomObject]@{ SubscriptionName = $sub.Name SubscriptionId = $sub.Id Status = "Non-Compliant" Message = "✗ Abonnement '$($sub.Name)': Security Posture Dashboard is NIET beschikbaar" DefenderEnabled = $defenderStatus SecureScore = "N/A" Recommendations = "N/A" } if (-not $defenderEnabled) { $result.Recommendations += "Schakel Microsoft Defender voor Cloud in voor abonnement '$($sub.Name)'" } if (-not $hasAccess) { $result.Recommendations += "Verifieer toegangsrechten voor abonnement '$($sub.Name)' (Security Reader of hoger vereist)" } } } catch { $result.NonCompliantCount++ $result.Details += [PSCustomObject]@{ SubscriptionName = $sub.Name SubscriptionId = $sub.Id Status = "Error" Message = "✗ Abonnement '$($sub.Name)': Fout bij controleren - $($_.Exception.Message)" DefenderEnabled = "Onbekend" SecureScore = "Onbekend" Recommendations = "Onbekend" } Write-Warning "Fout bij controleren abonnement '$($sub.Name)': $_" } } $result.IsCompliant = ($result.NonCompliantCount -eq 0) } catch { Write-Error "Fout tijdens compliance-controle: $_" $result.Details += [PSCustomObject]@{ SubscriptionName = "Error" SubscriptionId = "Error" Status = "Error" Message = "ERROR: $($_.Exception.Message)" DefenderEnabled = "Onbekend" SecureScore = "Onbekend" Recommendations = "Onbekend" } } return $result } function Invoke-Remediation { <# .SYNOPSIS Verifieert en configureert toegang tot het Security Posture Dashboard indien nodig. #> [CmdletBinding(SupportsShouldProcess)] param() Write-Host "`nRemediatie starten voor: $PolicyName..." -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan try { $fixed = 0 $failed = 0 $skipped = 0 $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } foreach ($sub in $subscriptions) { try { Set-AzContext -SubscriptionId $sub.Id -ErrorAction Stop | Out-Null Write-Verbose "Verwerken abonnement: $($sub.Name)" # Controleer huidige status $result = Test-Compliance $currentSub = $result.Details | Where-Object { $_.SubscriptionId -eq $sub.Id } if ($currentSub -and $currentSub.Status -eq "Compliant") { Write-Host " [OK] Dashboard beschikbaar: $($sub.Name)" -ForegroundColor Green Write-Host " Defender voor Cloud: $($currentSub.DefenderEnabled)" -ForegroundColor Gray Write-Host " Secure Score: $($currentSub.SecureScore)" -ForegroundColor Gray $skipped++ } else { # Het dashboard is standaard beschikbaar wanneer Defender voor Cloud actief is # We kunnen alleen verifiëren dat Defender voor Cloud actief is Write-Host " [INFO] Verifiëren Defender voor Cloud: $($sub.Name)" -ForegroundColor Yellow Write-Host " Het Security Posture Dashboard is beschikbaar wanneer Defender voor Cloud actief is." -ForegroundColor Gray Write-Host " Schakel Defender voor Cloud in via Azure Portal of gebruik Azure Policy." -ForegroundColor Gray Write-Host " Toegang tot het dashboard vereist Security Reader rol of hoger." -ForegroundColor Gray $fixed++ } } catch { Write-Host " ✗ Mislukt voor $($sub.Name): $($_.Exception.Message)" -ForegroundColor Red Write-Warning "Fout bij remediatie voor abonnement '$($sub.Name)': $_" $failed++ } } Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "[INFO] Security Posture Dashboard Status" -ForegroundColor Cyan if ($fixed -gt 0) { Write-Host "[OK] Gecontroleerd: $fixed abonnement(en)" -ForegroundColor Green } if ($skipped -gt 0) { Write-Host "[INFO] Al beschikbaar: $skipped abonnement(en)" -ForegroundColor Gray } if ($failed -gt 0) { Write-Host "[WAARSCHUWING] Mislukt: $failed abonnement(en)" -ForegroundColor Yellow } Write-Host "`nBelangrijke opmerkingen:" -ForegroundColor Cyan Write-Host " • Het Security Posture Dashboard is beschikbaar wanneer Defender voor Cloud actief is" -ForegroundColor Gray Write-Host " • Toegang vereist Security Reader rol of hoger op abonnement niveau" -ForegroundColor Gray Write-Host " • Het dashboard toont Secure Score, compliance-status en aanbevelingen" -ForegroundColor Gray Write-Host " • Configureer filters en weergaven voor gepersonaliseerde inzichten" -ForegroundColor Gray Write-Host " • Exporteer dashboard metrics voor executive reporting" -ForegroundColor Gray } catch { Write-Error "Remediatie mislukt: $_" throw } } function Invoke-Monitoring { <# .SYNOPSIS Voert uitgebreide monitoring en rapportage uit. #> [CmdletBinding()] param() $result = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Abonnementen: $($result.TotalResources)" -ForegroundColor White Write-Host "Dashboard beschikbaar: $($result.CompliantCount)" -ForegroundColor Green Write-Host "Dashboard niet beschikbaar: $($result.NonCompliantCount)" -ForegroundColor $(if ($result.NonCompliantCount -gt 0) { 'Red' } else { 'Green' }) Write-Host "Tijdstip controle: $($result.Timestamp.ToString('yyyy-MM-dd HH:mm:ss'))" -ForegroundColor Gray if ($result.Details) { Write-Host "`nDetails per abonnement:" -ForegroundColor Yellow foreach ($detail in $result.Details) { $color = switch ($detail.Status) { "Compliant" { "Green" } "Non-Compliant" { "Red" } "Error" { "Yellow" } default { "Gray" } } Write-Host " $($detail.Message)" -ForegroundColor $color if ($detail.DefenderEnabled -and $detail.DefenderEnabled -ne "Nee" -and $detail.DefenderEnabled -ne "Onbekend") { Write-Host " Defender voor Cloud: $($detail.DefenderEnabled)" -ForegroundColor Gray } if ($detail.SecureScore -and $detail.SecureScore -ne "N/A" -and $detail.SecureScore -ne "Onbekend") { Write-Host " Secure Score: $($detail.SecureScore)" -ForegroundColor Gray } if ($detail.Recommendations -and $detail.Recommendations -ne "N/A" -and $detail.Recommendations -ne "Onbekend") { Write-Host " Aanbevelingen: $($detail.Recommendations)" -ForegroundColor Gray } } } if ($result.Recommendations) { Write-Host "`nAanbevelingen:" -ForegroundColor Yellow foreach ($recommendation in $result.Recommendations) { Write-Host " • $recommendation" -ForegroundColor Gray } } Write-Host "`nCompliance Status: " -NoNewline -ForegroundColor White if ($result.IsCompliant) { Write-Host "[OK] COMPLIANT" -ForegroundColor Green Write-Host "`nAlle abonnementen hebben toegang tot het Security Posture Dashboard." -ForegroundColor Green Write-Host "Het dashboard is beschikbaar in Defender voor Cloud → Security posture." -ForegroundColor Green } else { Write-Host "[FAIL] NON-COMPLIANT" -ForegroundColor Red Write-Host "`n$($result.NonCompliantCount) abonnement(en) hebben geen toegang tot het Security Posture Dashboard." -ForegroundColor Red Write-Host "Schakel Defender voor Cloud in en verifieer toegangsrechten (Security Reader of hoger)." -ForegroundColor Yellow } return $result } function Invoke-Revert { <# .SYNOPSIS Herstelt de configuratie (niet aanbevolen). #> [CmdletBinding(SupportsShouldProcess)] param() Write-Host "`n⚠️ WAARSCHUWING: Het Security Posture Dashboard uitschakelen wordt NIET aanbevolen" -ForegroundColor Yellow Write-Host "Dit verhoogt het risico op gebrek aan inzicht in beveiligingspositie." -ForegroundColor Yellow Write-Host "Organisaties missen essentiële inzichten voor beveiligingsgovernance." -ForegroundColor Yellow Write-Host "`nLET OP: Het dashboard is standaard beschikbaar wanneer Defender voor Cloud actief is." -ForegroundColor Red Write-Host "Het uitschakelen van Defender voor Cloud wordt sterk afgeraden." -ForegroundColor Red } # Hoofdscript try { Write-Host "" Write-Host "========================================" -ForegroundColor Cyan Write-Host "Microsoft Defender voor Cloud" -ForegroundColor Cyan Write-Host "Security Posture Dashboard" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Connect-RequiredServices if ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { if ($WhatIf) { Write-Host "`n=== WHATIF MODUS ===" -ForegroundColor Yellow $result = Test-Compliance Write-Host "Security Posture Dashboard beschikbaarheid zou worden gecontroleerd voor $($result.TotalResources) abonnement(en)" -ForegroundColor Yellow } else { Invoke-Remediation } } elseif ($Revert) { Invoke-Revert } else { # Standaard: basis compliance-controle $result = Test-Compliance Write-Host "`nCompliance Check: $PolicyName" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan if ($result.IsCompliant) { Write-Host "Status: [OK] COMPLIANT" -ForegroundColor Green Write-Host "`nAlle $($result.TotalResources) abonnement(en) hebben toegang tot het Security Posture Dashboard." -ForegroundColor Green } else { Write-Host "Status: [FAIL] NON-COMPLIANT" -ForegroundColor Red Write-Host "`n$($result.NonCompliantCount) van $($result.TotalResources) abonnement(en) hebben geen toegang tot het dashboard." -ForegroundColor Red } if ($result.Details) { Write-Host "`nDetails:" -ForegroundColor Yellow $result.Details | ForEach-Object { Write-Host " $($_.Message)" -ForegroundColor Gray } } Write-Host "`nGebruik -Monitoring voor uitgebreide rapportage" -ForegroundColor Gray Write-Host "Het dashboard is beschikbaar in Defender voor Cloud → Security posture" -ForegroundColor Gray } } catch { Write-Error "Fout in security-posture-dashboard.ps1: $_" exit 1 } finally { Write-Host "" Write-Host "========================================" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
Medium: Zonder een gecentraliseerd Security Posture Dashboard beschikken organisaties niet over een duidelijk overzicht van hun beveiligingsstatus, waardoor het moeilijk is om prioriteiten te stellen voor beveiligingsverbeteringen en om bestuurders en toezichthouders te informeren over de beveiligingspositie. Security teams kunnen niet snel identificeren welke resources de grootste risico's vormen, welke compliance-vereisten niet worden nageleefd, of welke beveiligingsaanbevelingen de hoogste prioriteit hebben. Zonder dashboard ontbreekt de mogelijkheid om trends te analyseren over tijd, waardoor organisaties niet kunnen zien of hun beveiligingspositie verbetert of verslechtert. Executive reporting is tijdrovend en foutgevoelig wanneer gegevens handmatig moeten worden verzameld uit verschillende bronnen. Het ontbreken van een dashboard betekent ook dat organisaties niet kunnen aantonen aan auditors en toezichthouders dat zij proactief werken aan beveiligingsverbeteringen. Het risico is medium - voornamelijk gerelateerd aan beveiligingsgovernance, executive reporting en compliance. Aanbevolen voor alle organisaties die hun beveiligingspositie moeten monitoren en verbeteren.

Management Samenvatting

Het Security Posture Dashboard in Microsoft Defender voor Cloud biedt een gecentraliseerd overzicht van de beveiligingsstatus van alle Azure-resources, inclusief Secure Score, compliance-status, actieve waarschuwingen, en prioritaire aanbevelingen. Essentieel voor executive reporting, trendanalyse en compliance-demonstratie. Configuratie: Defender voor Cloud → Security posture dashboard. Toegang: Security Reader rol of hoger. Implementatie: 6 uur (2 technisch, 4 organisatorisch). Doorlopend: 4 uur per maand (0,1 FTE) voor monitoring en verificatie. Kritiek voor volwassen beveiligingsgovernance en compliance-rapportage.