Microsoft Defender For Cloud: Defender CSPM Inschakelen

💼 Management Samenvatting

Microsoft Defender Cloud Security Posture Management (CSPM) vormt het centrale zenuwstelsel van de beveiligingsbewaking binnen Azure doordat de dienst configuraties, identiteiten en netwerkpaden voortdurend beoordeelt. Het platform combineert inzichten uit de cloud security graph, agentloze kwetsbaarheidsscans en geavanceerde posture-analyse, zodat bestuurders en security engineers realtime overzicht krijgen van risico's die anders verborgen blijven. Door deze samenhangende bril te bieden verandert Defender CSPM gefragmenteerde logdata in concrete stuurinformatie voor besluitvorming binnen de Nederlandse publieke sector.

Aanbeveling
IMPLEMENTEER VOOR ENTERPRISE SECURITY POSTURE
Risico zonder
Critical
Risk Score
9/10
Implementatie
4u (tech: 2u)
Van toepassing op:
Azure
Azure-abonnementen
Multi-cloud omgevingen

Cloudomgevingen binnen de Nederlandse overheid groeien harder dan traditionele beveiligingsprocessen kunnen bijbenen. Nieuwe workloads worden binnen minuten uitgerold, tijdelijke projectteams creëren eigen configuraties en gedeelde platformen zoals Azure Landing Zones bevatten honderden beleidsregels die op elkaar moeten aansluiten. Zonder geautomatiseerde posture-analyse ontstaan blinde vlekken: een vergeten opslagaccount blijft publiek toegankelijk, identiteiten erven per ongeluk beheerdersrechten en legacy-VM's worden niet meer gepatcht omdat niemand de verantwoordelijkheid voelt. Aanvallers hebben daardoor genoeg tijd om zwakke combinaties te zoeken, bijvoorbeeld een openbaar IP-adres in combinatie met een ruim netwerkregel en een onversleutelde schijf. Defender CSPM monitort deze configuratieketens continu, prioriteert de bevindingen op basis van technische impact en koppelt ze direct aan de verantwoordelijke teams. De dienst levert bovendien governance-inzichten op managementniveau, waardoor bestuurders kunnen aantonen dat de BIO, AVG en NIS2-vereisten aantoonbaar zijn geborgd. Zonder CSPM blijven organisaties blind voor de werkelijke beveiligingspositie, waardoor compliance-vereisten niet kunnen worden aangetoond en kritieke misconfiguraties onopgemerkt blijven totdat zij worden uitgebuit door aanvallers.

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

Implementatie

Deze best practice beschrijft het proces voor het inschakelen en configureren van Microsoft Defender CSPM op Azure-abonnementen. Defender CSPM activeert het CloudPosture-prijsplan van Defender voor Cloud en ontsluit daarmee een samenhangend pakket aan functies. Alle Azure-resources worden continu vergeleken met beveiligingsbenchmarks en maatwerkbeleid, waarna de cloud security graph relaties legt tussen identiteiten, secrets, netwerksegmenten en data-opslag. Attack path analysis simuleert hoe een dreigingsactor de omgeving zou doorkruisen en laat zien welke stap de hoogste risicoverlaging oplevert. Governance dashboards tonen nalevingsscores voor CIS, ISO 27001 en de BIO, inclusief trendinformatie voor directies. De service biedt agentloze kwetsbaarheidsscanning inzicht in misconfiguraties van virtuele machines zonder dat beheerders agents hoeven te plaatsen, wat essentieel is voor streng gereguleerde omgevingen. Security recommendations worden automatisch gegenereerd en geprioriteerd op basis van risico-impact, waardoor beveiligingsteams zich kunnen focussen op de meest kritieke verbeteringen. De kosten voor Defender CSPM bedragen gemiddeld €15 tot €25 per abonnement per maand, afhankelijk van het aantal resources en de omvang van de omgeving, wat een kosteneffectieve investering is gezien de uitgebreide beveiligingsbescherming en compliance-rapportage die wordt geboden.

Vereisten en Voorbereiding

Voor het succesvol inschakelen van Microsoft Defender CSPM moeten organisaties voldoen aan een reeks technische, licentie- en organisatorische vereisten die essentieel zijn voor een soepele implementatie en optimale werking van de beveiligingsoplossing. Deze vereisten vormen de fundamentele basis waarop de posture management-oplossing wordt gebouwd en zijn cruciaal om ervoor te zorgen dat de implementatie succesvol verloopt zonder onverwachte belemmeringen of configuratiefouten die kunnen leiden tot gedeeltelijke of onvolledige beveiligingsdekking.

De primaire licentievereiste betreft de Azure-abonnementen waarop Defender CSPM wordt geactiveerd. Organisaties moeten beschikken over een Azure-abonnement met eigenaar- of Security Admin-rechten op abonnementsniveau, omdat de activering van Defender CSPM wijzigingen vereist in de beveiligingsprijstiers en resourceconfiguraties die alleen kunnen worden uitgevoerd met deze verhoogde rechten. Zonder de juiste rechten kunnen beheerders de service niet activeren of configureren, wat een belemmering vormt voor de implementatie van adequate posture management en kan leiden tot situaties waarin cloudomgevingen onbeschermd blijven. Het is raadzaam om te werken met een service principal of managed identity die specifiek is aangemaakt voor automatiseringsdoeleinden, bij voorkeur met minimale benodigde rechten voor het uitvoeren van beveiligingsconfiguratietaken, om het principe van least privilege te volgen en de beveiligingsposture te verbeteren.

De technische omgeving vereist PowerShell versie 5.1 of hoger voor Windows-systemen, of PowerShell Core versie 7.0 of hoger voor cross-platform ondersteuning op Linux- en macOS-systemen. Deze versievereisten zijn belangrijk omdat de Azure PowerShell-modules moderne PowerShell-functies gebruiken die niet beschikbaar zijn in oudere versies, en omdat cross-platform ondersteuning essentieel is voor organisaties die geautomatiseerde scripts willen uitvoeren vanuit verschillende operating systems. De Azure PowerShell-modules moeten worden geïnstalleerd, met name de Az.Accounts-module voor authenticatie en sessiebeheer, en de Az.Security-module voor interactie met Azure Defender-services en het beheren van beveiligingsprijstiers. Deze modules kunnen eenvoudig worden geïnstalleerd via het PowerShell Gallery met behulp van de Install-Module-cmdlet, en regelmatige updates worden aanbevolen om toegang te hebben tot de nieuwste functionaliteit, beveiligingspatches en verbeteringen die Microsoft regelmatig uitbrengt.

Microsoft Defender voor Cloud moet reeds zijn ingeschakeld op het Azure-abonnement voordat Defender CSPM kan worden geactiveerd, omdat Defender voor Cloud de basislaag vormt voor alle Defender-modules en de centrale beveiligingsconsole biedt waarbinnen alle beveiligingsmogelijkheden worden geïntegreerd. De activering van Defender voor Cloud is typisch een eenmalige actie op abonnementsniveau en vormt de eerste stap in het opzetten van een uitgebreide Azure-beveiligingsposture die alle aspecten van cloudbeveiliging omvat, van compute en netwerk tot data en identiteit. Zonder deze basislaag kunnen individuele Defender-modules zoals Defender CSPM niet worden geactiveerd, omdat zij afhankelijk zijn van de centrale infrastructuur en services die door Defender voor Cloud worden geleverd. De gratis tier van Defender voor Cloud is voldoende als basis, maar voor volledige CSPM-functionaliteit moet het CloudPosture-prijsplan worden geactiveerd.

Voor effectieve posture-analyse is het belangrijk dat de Azure-abonnementen minstens tien representatieve Azure-resources bevatten, zoals virtuele machines, PaaS-databases, opslagaccounts en identiteiten. Hoe rijker het landschap, hoe beter de cloud security graph-analyse patronen kan herkennen en hoe nauwkeuriger de aanbevelingen en risico-inschattingen worden. Voor kleinere pilots kunnen tijdelijke workloads worden gecreëerd zodat de eerste aanbevelingen voldoende context leveren om direct waarde te tonen aan bestuurders. Het is belangrijk om te documenteren welke resources bewust buiten scope vallen en waarom, zodat posture-rapportages altijd een eenduidige interpretatie hebben tijdens audits en compliance-beoordelingen.

Toegang tot de Azure Portal voor attack-pathvisualisatie en posture-dashboards is essentieel voor de dagelijkse samenwerking tussen security officers en platform engineers. Configureer rolgebaseerde toegang, activeer meervoudige authenticatie en spreek af welk SOC-dashboard als bron van waarheid geldt. Zo kunnen bevindingen inclusief visuele graph-weergave tijdens stand-ups of CAB-sessies worden besproken zonder dat men afhankelijk is van schermafbeeldingen of exportbestanden. Voorzie key-users van handleidingen, demo's en contactpersonen zodat inzichten uit de portal direct worden vertaald naar acties binnen beheer- en ontwikkelteams.

Financiële overwegingen zijn cruciaal bij de planning van de implementatie, omdat Defender CSPM directe kosten met zich meebrengt die moeten worden begrepen en gepland voordat de service wordt geactiveerd. De service wordt gefactureerd tegen een tarief van gemiddeld €15 tot €25 per abonnement per maand, afhankelijk van het aantal resources, de omvang van de omgeving en het gebruik van specifieke functies zoals attack path analysis en agentloze scanning. Voor organisaties met meerdere abonnementen kunnen deze kosten snel oplopen, maar de waarde die wordt geboden in termen van beveiligingsinzicht, compliance-rapportage en risicovermindering rechtvaardigt deze investering. Het is raadzaam om een kostenanalyse uit te voeren voordat de service wordt geactiveerd om te begrijpen wat de maandelijkse kosten zullen zijn op basis van uw specifieke omgeving en om budgetgoedkeuring te verkrijgen van de juiste stakeholders.

Monitoring en Verificatie

Effectieve monitoring van de status van Microsoft Defender CSPM is essentieel om te verzekeren dat de service continu actief blijft en continue beveiligingsbescherming biedt voor alle Azure-resources binnen het abonnement. Regelmatige verificatie voorkomt dat de service onbedoeld wordt uitgeschakeld, wat zou kunnen gebeuren tijdens beveiligingswijzigingen, kostenbesparingsinitiatieven, herconfiguratie van abonnementen, of door menselijke fouten tijdens beheeractiviteiten. Zonder actieve monitoring bestaat het risico dat Defender CSPM wordt gedeactiveerd zonder dat beveiligingsteams hiervan op de hoogte worden gesteld, waardoor cloudomgevingen kwetsbaar worden voor aanvallen, misconfiguraties en beveiligingsincidenten die niet worden gedetecteerd of gereageerd.

De monitoring kan worden uitgevoerd via verschillende methoden, waaronder Azure PowerShell, Azure CLI, de Azure Resource Manager API, of de Azure Portal, afhankelijk van de voorkeur en automatiseringvereisten van de organisatie. De meest directe en geautomatiseerde methode is het gebruik van de Get-AzSecurityPricing-cmdlet uit de Az.Security-module, waarbij de parameter Name wordt ingesteld op 'CloudPosture' om de specifieke pricing tier voor Defender CSPM op te halen voor een bepaald abonnement. Deze cmdlet retourneert belangrijke informatie, waaronder de huidige pricing tier (Standard of Free), de status van de service, en eventuele gerelateerde configuratie-instellingen die van invloed zijn op de functionaliteit en dekking van de beveiligingsoplossing. De pricing tier moet ingesteld zijn op 'Standard' om volledige beveiligingsbescherming te krijgen, inclusief attack path analysis, cloud security graph, governance dashboards en alle geavanceerde beveiligingsmogelijkheden die Defender CSPM biedt.

Naast het controleren van de pricing tier is het belangrijk om te verifiëren dat Defender CSPM daadwerkelijk actief is en dat de posture-analyse correct functioneert. Dit kan worden geverifieerd via de Azure Portal door naar Microsoft Defender voor Cloud te navigeren, de Cloud Security Posture Management-sectie te selecteren, en de posture-score en aanbevelingen te controleren om te zien of de service actief is en of er eventuele configuratiewaarschuwingen of foutmeldingen zijn die aandacht vereisen. Automatische monitoring kan worden geïmplementeerd met behulp van Azure Monitor alertregels die worden geactiveerd wanneer de pricing tier wijzigt van Standard naar Free, wanneer de service wordt gedeactiveerd, of wanneer er problemen worden gedetecteerd met de posture-analyse of cloud security graph. Deze alertregels kunnen worden geconfigureerd om beveiligingsteams te informeren via e-mail, SMS, push-notificaties, of integratie met incidentbeheersystemen zoals ServiceNow, Jira of Microsoft Teams, waardoor snelle respons wordt gegarandeerd wanneer problemen worden gedetecteerd.

Het monitoringproces dient regelmatig te worden uitgevoerd, bij voorkeur dagelijks of ten minste wekelijks, afhankelijk van het risicoprofiel van de organisatie, de kritikaliteit van de cloudworkloads, en de compliance-vereisten die van toepassing zijn. Voor organisaties met hoge beveiligingsvereisten, kritieke cloudworkloads, of strikte compliance-verplichtingen zoals NIS2, BIO of ISO 27001, is dagelijkse monitoring aanbevolen om snel te kunnen reageren op eventuele wijzigingen in de serviceconfiguratie en om te verzekeren dat de beveiligingsbescherming continu actief blijft. Geautomatiseerde monitoring via Azure Automation runbooks, Logic Apps workflows, of Azure Functions kan de belasting op beheerders aanzienlijk verminderen terwijl continue controle wordt gegarandeerd, en kan worden gecombineerd met rapportage naar beveiligingsdashboards, SIEM-systemen, of compliance-rapportagetools, zodat de status van Defender CSPM zichtbaar is voor alle belanghebbenden, inclusief beveiligingsteams, compliance-officers, en bestuurders.

Gebruik PowerShell-script defender-cspm-enabled.ps1 (functie Invoke-Monitoring) – Controleert de prijscategorie van Defender CSPM met Get-AzSecurityPricing -Name 'CloudPosture' voor alle abonnementen.

Implementatie en Remediatie

Wanneer monitoring aantoont dat Microsoft Defender CSPM niet actief is, niet op de juiste pricing tier is ingesteld, of niet correct functioneert op een of meer Azure-abonnementen, dient onmiddellijke remediatie te worden uitgevoerd om de beveiligingsbescherming te herstellen en te verzekeren dat alle cloudresources adequaat worden beschermd tegen bedreigingen en misconfiguraties. De activering van Defender CSPM is een relatief eenvoudig proces dat kan worden uitgevoerd via de Azure Portal, Azure PowerShell, Azure CLI, of Infrastructure as Code-templates zoals ARM-templates of Terraform, afhankelijk van de voorkeur en automatiseringvereisten van de organisatie.

De meest betrouwbare en geautomatiseerde methode voor implementatie is het gebruik van Azure PowerShell met de Set-AzSecurityPricing-cmdlet uit de Az.Security-module, waarbij de parameter Name wordt ingesteld op 'CloudPosture' en de parameter PricingTier wordt ingesteld op 'Standard' om volledige beveiligingsbescherming te activeren. Het remediatieproces begint met verificatie van de huidige abonnementsstatus en het bevestigen dat de benodigde rechten aanwezig zijn om wijzigingen aan te brengen op abonnementsniveau, wat essentieel is omdat de activering van Defender CSPM wijzigingen vereist in de beveiligingsprijstiers die alleen kunnen worden uitgevoerd met eigenaar- of Security Admin-rechten. Beheerders dienen zich eerst aan te melden bij Azure met behulp van Connect-AzAccount, waarbij wordt gecontroleerd dat zij zijn aangemeld bij het juiste abonnement met behulp van Get-AzContext om te verzekeren dat wijzigingen worden aangebracht in het correcte abonnement en niet per ongeluk in een ander abonnement.

Nadat de context is geverifieerd, kan de Set-AzSecurityPricing-cmdlet worden uitgevoerd om Defender CSPM te activeren door de pricing tier in te stellen op 'Standard', wat de service activeert op abonnementsniveau en automatisch Defender CSPM implementeert voor alle Azure-resources binnen het abonnement. Na activering van de service duurt het enkele uren voordat Defender CSPM volledig operationeel is, omdat gedurende deze periode de cloud security graph wordt opgebouwd, de eerste posture-analyse wordt uitgevoerd, en de eerste aanbevelingen worden gegenereerd. Het is belangrijk om na de activering te verifiëren dat de service daadwerkelijk actief is via de Azure Portal of door opnieuw de Get-AzSecurityPricing-cmdlet uit te voeren, en om te controleren of er geen foutmeldingen of waarschuwingen zijn die kunnen wijzen op problemen met de implementatie of configuratie.

Voor organisaties met meerdere Azure-abonnementen dient het remediatieproces te worden uitgevoerd op elk abonnement dat cloudresources bevat, wat handmatig tijdrovend kan zijn en foutgevoelig is wanneer abonnementen worden gemist of wanneer configuratiewijzigingen niet consistent worden toegepast. Dit kan worden geautomatiseerd met behulp van PowerShell-scripts die itereren over alle abonnementen in een tenant, waarbij voor elk abonnement wordt gecontroleerd of cloudresources aanwezig zijn en of Defender CSPM actief is, en waarbij automatisch remediatie wordt uitgevoerd als de service niet actief is. Deze geautomatiseerde aanpak zorgt voor consistente beveiligingsdekking over de hele organisatie, vermindert het risico dat resources onbeschermd blijven door menselijke fouten of gemiste abonnementen, en maakt het mogelijk om snel te reageren op wijzigingen in de omgeving, zoals nieuwe abonnementen of resources die worden toegevoegd.

Het is belangrijk op te merken dat de activering van Defender CSPM directe kosten met zich meebrengt op basis van het aantal abonnementen en de omvang van de omgeving, en dat beheerders zich bewust moeten zijn van deze kosten en deze moeten monitoren na activering om te verzekeren dat de kosten binnen het budget blijven en om onverwachte kosten te voorkomen. Als kostenbesparingen nodig zijn, kan overleg worden gepleegd met de beveiligingsteams om te bepalen welke abonnementen de hoogste prioriteit hebben voor beveiligingsbescherming, hoewel volledige dekking wordt aanbevolen voor alle productie-abonnementen omdat partiële dekking gaten in de beveiliging kan creëren die kunnen worden uitgebuit door aanvallers. Organisaties kunnen ook overwegen om Azure Cost Management en Billing te gebruiken om de kosten van Defender CSPM te monitoren en te analyseren, en om budgetwaarschuwingen in te stellen die worden geactiveerd wanneer de kosten een bepaalde drempel overschrijden.

Gebruik PowerShell-script defender-cspm-enabled.ps1 (functie Invoke-Remediation) – Activeert Defender CSPM met Set-AzSecurityPricing -Name 'CloudPosture' -PricingTier 'Standard' voor alle abonnementen.

Compliance en Auditing

Microsoft Defender CSPM vormt een essentieel onderdeel van de compliance-positie van organisaties die cloudomgevingen gebruiken, omdat het voldoet aan meerdere beveiligingsstandaarden en compliance-frameworks die vereist zijn voor Nederlandse overheidsorganisaties, bedrijven in kritieke sectoren, en organisaties die moeten voldoen aan internationale beveiligingsstandaarden. De implementatie van Defender CSPM is niet alleen een best practice voor cloudbeveiliging, maar ook een expliciete vereiste volgens verschillende erkende beveiligingsstandaarden die worden gebruikt binnen de Nederlandse publieke sector en daarbuiten, en het niet implementeren van deze oplossing kan leiden tot niet-naleving van compliance-vereisten, audit-bevindingen, en potentiële boetes of handhavingsmaatregelen.

De CIS Azure Foundations Benchmark versie 3.0.0 specificeert in controle 2.1.24 expliciet dat Microsoft Defender CSPM moet zijn ingesteld op 'On' voor alle Azure-abonnementen, wat betekent dat de pricing tier moet zijn ingesteld op 'Standard' om volledige beveiligingsbescherming te krijgen. Deze benchmark is een internationaal erkende standaard die wordt gebruikt door organisaties wereldwijd om hun Azure-beveiligingsposture te beoordelen en te verbeteren, en vormt een belangrijke basis voor cloudbeveiligingsbest practices. Het niet naleven van deze controle wordt beschouwd als een hoog risico, omdat het betekent dat cloudresources niet adequaat worden beschermd tegen misconfiguraties en bedreigingen, wat kan leiden tot beveiligingsincidenten, datalekken, en service-onderbrekingen. Auditors die CIS-benchmark-assessments uitvoeren, zullen expliciet controleren of Defender CSPM actief is door de pricing tier te verifiëren en door te controleren of de service daadwerkelijk functioneert op alle Azure-abonnementen, en het niet voldoen aan deze vereiste zal resulteren in een bevinding die moet worden gerepareerd voordat de audit kan worden afgerond.

Binnen de Baseline Informatiebeveiliging Overheid (BIO) sluit deze control aan op thema 11.01 over beleidsmatige borging en thema 12.06 over kwetsbaarheidsbeheer. Door posture-scores per taakorganisatie te koppelen aan de risicodossiers ontstaat een integraal beeld van waar aanvullende maatregelen, zoals segmentatie of identity hardening, noodzakelijk zijn. Defender CSPM helpt organisaties te voldoen aan deze BIO-vereisten door continue beveiligingsbeoordeling te bieden, misconfiguraties te identificeren, en compliance-rapportage te genereren die kan worden gebruikt tijdens audits en beoordelingen. Vergeet niet de verantwoordingsplicht richting Algemene Rekenkamer te ondersteunen met dezelfde datasets, en documenteer eveneens hoe uitkomsten met bedrijfscontinuïteitsteams worden gedeeld zodat risico's voor vitale processen zichtbaar blijven.

De ISO 27001-standaard voor informatiebeveiligingsmanagementsystemen vereist in controles A.18.2.2 en A.18.2.3 dat organisaties structurele evaluatie van compliance en technische conformiteit uitvoeren. De dashboards van Defender CSPM leveren hiervoor tijdgestempelde bewijzen, terwijl de ingebouwde workflowmodule toont welke maatregelen zijn opgevolgd en wie deze heeft goedgekeurd. Daarmee voldoet u zowel aan de documentatie-eisen als aan het principe van continue verbetering. Voeg de posture-bewijzen toe aan het Statement of Applicability en onderteken wijzigingen via het bestaande ISMS-proces. Beschrijf daarnaast hoe leveranciers en partners toegang krijgen tot relevante delen van de rapportages zonder vertrouwelijke informatie te zien.

De NIS2-richtlijn, die van toepassing is op organisaties in kritieke sectoren en digitale dienstverleners in de Europese Unie, vereist in artikel 21 dat organisaties passende en evenredige technische en organisatorische maatregelen nemen om de risico's voor de beveiliging van netwerk- en informatiesystemen te beheersen, inclusief het identificeren en beoordelen van risico's, het implementeren van beveiligingsmaatregelen, en het monitoren en detecteren van beveiligingsincidenten. Defender CSPM helpt organisaties te voldoen aan artikel 21 door uitgebreide cloudbeveiliging te bieden die misconfiguraties identificeert, bedreigingen detecteert, beveiligingsincidenten monitort, en automatische aanbevelingen biedt voor het verbeteren van de beveiligingsposture. De attack path analysis en posture-beoordeling vormen essentieel onderdeel van een robuuste cybersecurity-aanpak die vereist is onder NIS2, en Nederlandse organisaties die onder de NIS2-richtlijn vallen, dienen daarom Defender CSPM te implementeren als onderdeel van hun verplichte cybersecurity-maatregelen om te voldoen aan de vereisten voor risicobeheer, incidentdetectie, en incidentrespons.

Voor auditing en compliance-doeleinden is het belangrijk om regelmatig bewijs te verzamelen dat aantoont dat Defender CSPM actief is en correct functioneert, inclusief de activeringsstatus, posture-scores, aanbevelingen, attack path analyses, en eventuele configuratiewaarschuwingen of aanbevelingen. Dit bewijs kan worden verkregen via de Azure Portal, Azure PowerShell-cmdlets, de Azure Resource Manager API, of geautomatiseerde scripts die regelmatig worden uitgevoerd om compliance-rapportages te genereren. Auditlogboeken moeten worden bewaard voor de vereiste retentietijd, typisch zeven jaar voor Nederlandse overheidsorganisaties volgens de Archiefwet, en moeten regelmatig worden beoordeeld om te verzekeren dat de service actief blijft en dat alle beveiligingsgebeurtenissen correct worden gelogd en opgeslagen. Documentatie van de activeringsstatus, posture-scores, aanbevelingen en attack path analyses moeten worden onderhouden voor auditdoeleinden en kunnen worden gebruikt om te demonstreren aan auditors, toezichthouders, en bestuurders dat de organisatie voldoet aan de vereiste beveiligingsstandaarden en dat adequate maatregelen zijn genomen om cloudomgevingen te beveiligen.

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 for Cloud: Defender CSPM Inschakelen .DESCRIPTION CIS Azure Foundations Benchmark - Control 2.1.24 BIO Baseline - Thema 11.01, 12.06 NIS2 Richtlijn - Artikel 21 Controleert of Microsoft Defender CSPM (Cloud Security Posture Management) is ingeschakeld. Biedt posture management, attack path analysis en compliance-rapportage voor Azure-omgevingen. .NOTES Filename: defender-cspm-enabled.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 Related JSON: content/azure/defender-cloud/defender-cspm-enabled.json CIS Control: 2.1.24 BIO Controls: 11.01, 12.06 NIS2 Article: 21 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Security [CmdletBinding()] param( [Parameter()][switch]$WhatIf, [Parameter()][switch]$Monitoring, [Parameter()][switch]$Remediation, [Parameter()][switch]$Revert ) $ErrorActionPreference = 'Stop' $VerbosePreference = 'Continue' $PolicyName = "Microsoft Defender CSPM" function Connect-RequiredServices { try { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } catch { throw "Failed to connect to Azure: $_" } } function Test-Compliance { Write-Verbose "Testing compliance for: $PolicyName..." $result = [PSCustomObject]@{ ScriptName = "defender-cspm-enabled" PolicyName = $PolicyName IsCompliant = $false TotalResources = 0 CompliantCount = 0 NonCompliantCount = 0 Details = @() Recommendations = @() } try { $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } $result.TotalResources = $subscriptions.Count foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id | Out-Null try { $pricing = Get-AzSecurityPricing -Name "CloudPosture" -ErrorAction Stop if ($pricing.PricingTier -eq 'Standard') { $result.CompliantCount++ $result.Details += "✓ Subscription '$($sub.Name)': Defender CSPM enabled (Standard tier)" } else { $result.NonCompliantCount++ $result.Details += "✗ Subscription '$($sub.Name)': Defender CSPM DISABLED (Current tier: $($pricing.PricingTier))" $result.Recommendations += "Enable Defender CSPM op '$($sub.Name)' met Set-AzSecurityPricing -Name 'CloudPosture' -PricingTier 'Standard'" } } catch { if ($_.Exception.Message -like "*not found*" -or $_.Exception.Message -like "*does not exist*") { $result.NonCompliantCount++ $result.Details += "✗ Subscription '$($sub.Name)': Defender CSPM NOT CONFIGURED" $result.Recommendations += "Enable Defender CSPM op '$($sub.Name)'" } else { $result.NonCompliantCount++ $result.Details += "✗ Subscription '$($sub.Name)': Fout bij controleren - $($_.Exception.Message)" } } } $result.IsCompliant = ($result.NonCompliantCount -eq 0) } catch { $result.Details += "ERROR: $($_.Exception.Message)" } return $result } function Invoke-Remediation { Write-Host "`nStarting remediation for: $PolicyName..." -ForegroundColor Cyan try { $fixed = 0 $failed = 0 $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id | Out-Null try { # Check current status $pricing = Get-AzSecurityPricing -Name "CloudPosture" -ErrorAction SilentlyContinue if ($pricing -and $pricing.PricingTier -eq 'Standard') { Write-Host " [OK] Already enabled for: $($sub.Name)" -ForegroundColor Green $fixed++ } else { # Enable Defender CSPM Set-AzSecurityPricing -Name "CloudPosture" -PricingTier "Standard" -ErrorAction Stop | Out-Null Write-Host " [OK] Enabled for: $($sub.Name)" -ForegroundColor Green $fixed++ Write-Host " Note: Het kan enkele uren duren voordat de service volledig actief is" -ForegroundColor Gray Write-Host " Kosten: €15-25 per abonnement per maand" -ForegroundColor Gray } } catch { Write-Host " ✗ Failed for $($sub.Name): $($_.Exception.Message)" -ForegroundColor Red $failed++ } } Write-Host "`n[OK] Configured: $fixed subscription(s)" -ForegroundColor Green if ($failed -gt 0) { Write-Host "⚠️ Failed: $failed subscription(s)" -ForegroundColor Yellow } Write-Host "`nImportant notes:" -ForegroundColor Cyan Write-Host " • Defender CSPM is nu actief op alle abonnementen" -ForegroundColor Gray Write-Host " • De cloud security graph wordt binnen enkele uren opgebouwd" -ForegroundColor Gray Write-Host " • Controleer de status via: Azure Portal → Defender voor Cloud → Cloud Security Posture Management" -ForegroundColor Gray Write-Host " • Monitor kosten via: Azure Portal → Cost Management + Billing" -ForegroundColor Gray } catch { Write-Error "Remediation failed: $_" } } function Invoke-Monitoring { $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 "Subscriptions: $($result.TotalResources)" -ForegroundColor White Write-Host "Enabled: $($result.CompliantCount)" -ForegroundColor Green Write-Host "Disabled/Not Configured: $($result.NonCompliantCount)" -ForegroundColor $(if ($result.NonCompliantCount -gt 0) { 'Red' } else { 'Green' }) if ($result.Details) { Write-Host "`nDetails:" -ForegroundColor Yellow $result.Details | ForEach-Object { Write-Host " $_" -ForegroundColor Gray } } if ($result.Recommendations) { Write-Host "`nAanbevelingen:" -ForegroundColor Yellow $result.Recommendations | ForEach-Object { Write-Host " • $_" -ForegroundColor Gray } } Write-Host "`nCompliance Status: " -NoNewline -ForegroundColor White if ($result.IsCompliant) { Write-Host "[OK] COMPLIANT" -ForegroundColor Green Write-Host "`nAlle abonnementen hebben Defender CSPM ingeschakeld." -ForegroundColor Green } else { Write-Host "[FAIL] NON-COMPLIANT" -ForegroundColor Red Write-Host "`n$($result.NonCompliantCount) abonnement(en) hebben Defender CSPM niet ingeschakeld." -ForegroundColor Red Write-Host "Voer het script uit met -Remediation om dit op te lossen." -ForegroundColor Yellow } return $result } function Invoke-Revert { Write-Host "`n⚠️ WARNING: Defender CSPM uitschakelen wordt NIET aanbevolen" -ForegroundColor Yellow Write-Host "Dit verhoogt het risico op ongedetecteerde misconfiguraties en compliance-problemen." -ForegroundColor Yellow Write-Host "`nAls u toch wilt uitschakelen, gebruik dan:" -ForegroundColor Gray Write-Host " Set-AzSecurityPricing -Name 'CloudPosture' -PricingTier 'Free'" -ForegroundColor Gray Write-Host "`nLET OP: Dit schakelt alle posture management-functionaliteit uit!" -ForegroundColor Red } try { Connect-RequiredServices if ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { if ($WhatIf) { Write-Host "`n=== WHATIF MODE ===" -ForegroundColor Yellow $result = Test-Compliance Write-Host "Zou Defender CSPM inschakelen voor $($result.NonCompliantCount) abonnement(en)" -ForegroundColor Yellow if ($result.NonCompliantCount -gt 0) { Write-Host "`nAbonnementen die zouden worden geactiveerd:" -ForegroundColor Yellow $result.Details | Where-Object { $_ -like "✗*" } | ForEach-Object { Write-Host " $_" -ForegroundColor Gray } } } else { Invoke-Remediation } } elseif ($Revert) { Invoke-Revert } else { $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 Defender CSPM ingeschakeld." -ForegroundColor Green } else { Write-Host "Status: [FAIL] NON-COMPLIANT" -ForegroundColor Red Write-Host "`n$($result.NonCompliantCount) van $($result.TotalResources) abonnement(en) hebben Defender CSPM niet ingeschakeld." -ForegroundColor Red } if ($result.Details) { Write-Host "`nDetails:" -ForegroundColor Yellow $result.Details | ForEach-Object { Write-Host " $_" -ForegroundColor Gray } } Write-Host "`nGebruik -Monitoring voor uitgebreide rapportage" -ForegroundColor Gray Write-Host "Gebruik -Remediation om Defender CSPM in te schakelen" -ForegroundColor Gray } } catch { Write-Error $_ exit 1 } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
Critical: Zonder Defender CSPM blijft zicht op de werkelijke cloudbeveiligingspositie gefragmenteerd en zijn ketens van misconfiguraties slechts na incidenten terug te reconstrueren. Gecombineerde risico's, zoals een publiek opslagaccount dat wordt benaderd via een slecht bewaakte identity, blijven onopgemerkt waardoor aanvallers langdurig kunnen rondkijken. Ook ontbreekt aantoonbare compliance richting CIS 2.1.24, BIO-thema 11 en NIS2 Artikel 21, waardoor bestuurders geen verdedigbaar verhaal hebben richting toezichthouders.

Management Samenvatting

Defender CSPM levert geïntegreerde attack-pathanalyse, cloud security graph-visualisaties, governance op schaal, agentloze kwetsbaarheidsscans en compliance-rapportage. Activering via Defender voor Cloud → Pricing → CloudPosture Standard kost gemiddeld twee tot vier uur aan voorbereiding en validatie, waarna posture-scores, nalevingsrapportages en automatische aanbevelingen direct beschikbaar zijn. Kosten: €15-25 per abonnement per maand. Voor organisaties met meerdere kritieke workloads is dit plan onmisbaar om risico's te reduceren en audits te versnellen.