Azure-abonnement Beveiligingscontactpersonen Geconfigureerd

💼 Management Samenvatting

De configuratie van beveiligingscontactpersonen zorgt ervoor dat beveiligingswaarschuwingen van Microsoft Defender voor Cloud de juiste personen per abonnement bereiken voor onmiddellijke incidentrespons.

Aanbeveling
IMPLEMENTEER PER ABONNEMENT
Risico zonder
High
Risk Score
7/10
Implementatie
1.5u (tech: 1u)
Van toepassing op:
Azure Subscriptions

Zonder beveiligingscontactpersonen ontstaan er kritieke problemen: waarschuwingen gaan verloren omdat er geen ontvangers zijn geconfigureerd, incidentrespons wordt uren of dagen vertraagd omdat niemand op de hoogte wordt gesteld, er is geen verantwoordelijkheid omdat onduidelijk is wie moet reageren, en er ontstaan compliance-hiaten omdat NIS2-meldingsvereisten niet worden nageleefd. Met beveiligingscontactpersonen worden waarschuwingen onmiddellijk afgeleverd, is er duidelijke verantwoordelijkheid, worden meerdere personen tegelijkertijd geïnformeerd, en wordt er een audittrail bijgehouden voor compliance-doeleinden.

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

Implementatie

Beveiligingscontactpersonen worden per abonnement ingesteld en bestaan uit een primair e-mailadres voor het beveiligingsteam via een distributielijst, secundaire e-mailadressen voor abonnementeigenaren en het beveiligingsoperatiecentrum, een optioneel telefoonnummer voor kritieke waarschuwingen, en waarschuwingsvoorkeuren waarbij minimaal hoge ernst wordt geselecteerd. Deze configuratie is specifiek per abonnement en erft niet automatisch van de Defender voor Cloud e-mailnotificaties op tenantniveau. Voor tenantbrede configuratie raadpleeg het artikel over aanvullende e-mailadressen op Defender-niveau.

Implementatie

Gebruik PowerShell-script subscription-security-contacts.ps1 (functie Invoke-Implementation) – Implementeren.

Compliance en Audit

Toezicht en controle

Gebruik PowerShell-script subscription-security-contacts.ps1 (functie Invoke-Monitoring) – Controleren.

Remediatie

Gebruik PowerShell-script subscription-security-contacts.ps1 (functie Invoke-Remediation) – Herstellen.

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 Subscription Security Contacts .DESCRIPTION Controleert security contacts per subscription. .NOTES Filename: subscription-security-contacts.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 10.6 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Security [CmdletBinding()] param([Parameter()][switch]$Monitoring) $ErrorActionPreference = 'Stop' $PolicyName = "Subscription Security Contacts" function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } function Test-Compliance { $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } $result = @{ Total = $subscriptions.Count; Configured = 0 } foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id | Out-Null $contacts = Get-AzSecurityContact -ErrorAction SilentlyContinue if ($contacts -and $contacts.Email) { $result.Configured++ } } return $result } try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Subscriptions: $($r.Total)" -ForegroundColor White Write-Host "With Security Contacts: $($r.Configured)" -ForegroundColor $(if ($r.Configured -eq $r.Total) { 'Green' } else { 'Yellow' }) if ($r.Configured -lt $r.Total) { Write-Host "`n⚠️ $($r.Total - $r.Configured) subscription(s) zonder security contacts" -ForegroundColor Yellow } } else { $r = Test-Compliance Write-Host "`nSecurity Contacts: $($r.Configured)/$($r.Total)" } } catch { Write-Error $_; exit 1 } # ================================================================================ # Standaard Invoke-* Functions (Auto-generated) # ================================================================================ function Invoke-Implementation { <# .SYNOPSIS Implementeert de configuratie #> [CmdletBinding()] param() Invoke-Remediation } function Invoke-Monitoring { <# .SYNOPSIS Controleert de huidige configuratie status #> [CmdletBinding()] param() $Monitoring = $true try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Subscriptions: $($r.Total)" -ForegroundColor White Write-Host "With Security Contacts: $($r.Configured)" -ForegroundColor $(if ($r.Configured -eq $r.Total) { 'Green' } else { 'Yellow' }) if ($r.Configured -lt $r.Total) { Write-Host "`n⚠️ $($r.Total - $r.Configured) subscription(s) zonder security contacts" -ForegroundColor Yellow } } else { $r = Test-Compliance Write-Host "`nSecurity Contacts: $($r.Configured)/$($r.Total)" } } catch { Write-Error $_; exit 1 } } function Invoke-Remediation { <# .SYNOPSIS Herstelt de configuratie naar de gewenste staat .DESCRIPTION Dit is een monitoring-only control, remediation delegeert naar monitoring #> [CmdletBinding()] param() Write-Host "[INFO] Dit is een monitoring-only control" -ForegroundColor Yellow Write-Host "[INFO] Running monitoring check..." -ForegroundColor Cyan Invoke-Monitoring }

Risico zonder implementatie

Risico zonder implementatie
High: Zonder beveiligingscontactpersonen gaan beveiligingswaarschuwingen verloren omdat er geen ontvangers zijn geconfigureerd, wordt incidentrespons uren of dagen vertraagd, worden NIS2-meldingsdeadlines van 24 en 72 uur niet gehaald, en ontstaan er compliance-hiaten voor CIS, BIO 16.01 en NIS2 Artikel 23. Het risico is bijzonder hoog voor productie-abonnementen waar vertraagde respons kan leiden tot aanzienlijke schade.

Management Samenvatting

Beveiligingscontactpersonen per abonnement bestaan uit e-mailadressen voor het beveiligingsteam via een distributielijst en de abonnementeigenaar, een optioneel telefoonnummer voor een 24/7 beveiligingsoperatiecentrum, en het inschakelen van waarschuwingen met minimaal hoge ernst. Activering gebeurt per abonnement via Microsoft Defender voor Cloud onder Beveiligingscontactpersonen. Deze functie is gratis en verplicht voor CIS, BIO 16.01 en NIS2. De implementatie neemt ongeveer 1 tot 2 uur in beslag voor alle abonnementen en zorgt voor redundantie in de aflevering van waarschuwingen.