Security Contacts GeConfigureererd In Microsoft Defender Voor Cloud

💼 Management Samenvatting

Security contact configuratie in Microsoft Defender voor Cloud zorgt dat KRITIEKE beveiliging alerts en compliance notificaties naar de juiste personen worden gestuurd via email en telefoon, wat essentieel is voor tijdige incidentrespons.

Aanbeveling
IMPLEMENTEER VERPLICHT
Risico zonder
High
Risk Score
7/10
Implementatie
2.5u (tech: 0.5u)
Van toepassing op:
Azure
Microsoft Defender voor Cloud

Zonder geConfigureererde security contacts blijven KRITIEKE beveiliging alerts onopgemerkt in het Azure Portal, wat leidt tot delayed incidentrespons. Bij een active breach is elke minuut kostbaar - security teams moeten onmiddellijk geïnformeerd worden via email en telefoon. Het ontbreken van security contacts betekent dat ransomware infections, data exfiltration attempts, en credential compromises pas worden opgemerkt als de schade al is aangericht. Proper security contact configuratie is de eerste lijn van defense in de incidentrespons chain.

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

Implementatie

Deze control verifieert dat er minimaal één security contact is geConfigureererd per subscription met zowel email adres als telefoonnummer. De security contact ontvangt: high-severity security alerts uit Microsoft Defender voor Cloud, compliance violation notificaties, security recommendation updates, en monthly security digests. Best practice is configuratie van een shared mailbox (bijv. security@company.com) gekoppeld aan het SOC team, en een 24/7 bereikbaar telefoonnummer voor critical alerts. Alert notificaties en alerts to admins moeten beide ingeschakeld zijn.

Vereisten

Voor configuratie van security contacts in Defender voor Cloud zijn de volgende voorwaarden vereist:

  1. Azure subscription met Owner of Security Admin rechten
  2. PowerShell 5.1 of hoger
  3. Az PowerShell modules: Az.Accounts, Az.Security
  4. Gevalideerd email adres voor security notificaties (shared mailbox AANBEVOLEN)
  5. 24/7 bereikbaar telefoonnummer voor critical alerts
  6. Toegang tot Azure Portal voor validatie van notification settings

Monitoring

Gebruik PowerShell-script security-contacts-configured.ps1 (functie Invoke-Monitoring) – PowerShell script voor compliance checking van security contacts configuratie. Het script controleert alle subscriptions en rapporteert welke subscriptions security contacts hebben geConfigureererd..

Het Monitoring script gebruikt Get-AzSecurityContact om te controleren of security contacts zijn geConfigureererd per subscription. Het rapporteert email adressen en phone numbers van geConfigureererde contacts, en identificeert subscriptions waar security contacts ontbreken.

Best practice: Valideer maandelijks dat security contact informatie up-to-date is. Test notification delivery door een test alert te triggeren.

Remediatie

Gebruik PowerShell-script security-contacts-configured.ps1 (functie Invoke-Remediation) – Automatische configuratie van security contacts voor alle subscriptions. Het script vereist -Email parameter en optioneel -Phone parameter. AlertAdmin en NotifyOnAlert worden automatisch ingeschakeld..

Het remediation script Configureerert security contacts met Set-AzSecurityContact. Gebruik een shared mailbox voor email en een SOC/Security team phone number die 24/7 bemand is. Na configuratie worden alerts automatisch verstuurd bij high-severity findings.

Aanbevolen configuratie:

  1. Email: Shared mailbox (security@company.com) met distribution naar security team
  2. Phone: 24/7 SOC number of security on-call rotation
  3. AlertAdmin: Schakel ind (stuurt alerts naar subscription admins)
  4. NotifyOnAlert: Schakel ind (stuurt alerts naar security contact bij high-severity)
  5. Test notificaties na configuratie door test alert te triggeren

Compliance en Auditing

Deze control helpt bij het voldoen aan de volgende compliance frameworks:

  1. CIS Azure Foundations Benchmark v3.0.0 - control 2.1.20 (Security contacts Configureerd)
  2. BIO - Thema 16.01 (Informatiebeveiligingsincidentenbeheer - Contact procedures)
  3. ISO 27001:2022 - A.5.24, A.5.25 (incidentbeheer planning en beoordeling)
  4. NIS2 - Artikel 23 (Reporting obligations - beveiligingsincident contacts)
  5. AVG/GDPR - Article 33 (persoonsgegevenslek notification)

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 Security Contacts Configuration .DESCRIPTION CIS Azure Foundations Benchmark - Control 2.1.20 Controleert of security contact email en phone zijn geconfigureerd. Security contacts ontvangen alerts en notifications van Defender. .NOTES Filename: security-contacts-configured.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 Related JSON: content/azure/defender-cloud/security-contacts-configured.json CIS Control: 2.1.20 .PARAMETER Email Email adres voor security contact .PARAMETER Phone Phone number voor security contact #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Security [CmdletBinding()] param( [Parameter()][switch]$WhatIf, [Parameter()][switch]$Monitoring, [Parameter()][switch]$Remediation, [Parameter()][switch]$Revert, [Parameter()][string]$Email, [Parameter()][string]$Phone ) $ErrorActionPreference = 'Stop' $VerbosePreference = 'Continue' $PolicyName = "Security Contacts Configuration" function Connect-RequiredServices { function Invoke-Revert { Write-Host "`n⚠️ Security contacts verwijderen niet aanbevolen" -ForegroundColor Yellow } try { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } catch { throw } } function Test-Compliance { Write-Verbose "Testing compliance for: $PolicyName..." $result = [PSCustomObject]@{ ScriptName = "security-contacts-configured" PolicyName = $PolicyName IsCompliant = $false TotalResources = 0 CompliantCount = 0 NonCompliantCount = 0 Details = @() Recommendations = @() } function Invoke-Revert { Write-Host "`n⚠️ Security contacts verwijderen niet aanbevolen" -ForegroundColor Yellow } try { $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } $result.TotalResources = $subscriptions.Count foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id | Out-Null $contacts = Get-AzSecurityContact -ErrorAction SilentlyContinue if ($contacts -and $contacts.Email) { $result.CompliantCount++ $result.Details += "✓ '$($sub.Name)': Security contact configured ($($contacts.Email))" } else { $result.NonCompliantCount++ $result.Details += "✗ '$($sub.Name)': Security contact NIET configured" $result.Recommendations += "Configureer security contact voor '$($sub.Name)'" } } $result.IsCompliant = ($result.NonCompliantCount -eq 0) if ($result.NonCompliantCount -gt 0) { $result.Recommendations += "Run met -Remediation -Email <email> om te configureren" } } catch { $result.Details += "ERROR: $($_.Exception.Message)" } return $result } function Invoke-Remediation { Write-Host "`nStarting remediation for: $PolicyName..." -ForegroundColor Cyan if (-not $Email) { Write-Host "[FAIL] Email parameter required for remediation" -ForegroundColor Red Write-Host " Usage: -Remediation -Email <email> [-Phone <phone>]" -ForegroundColor Yellow return } function Invoke-Revert { Write-Host "`n⚠️ Security contacts verwijderen niet aanbevolen" -ForegroundColor Yellow } try { $fixed = 0 $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id | Out-Null $params = @{ Name = "default" Email = $Email AlertAdmin = $true NotifyOnAlert = $true } if ($Phone) { $params.Phone = $Phone } Set-AzSecurityContact @params -ErrorAction Stop | Out-Null Write-Host " [OK] Configured security contact for: $($sub.Name)" -ForegroundColor Green $fixed++ } Write-Host "`n[OK] Configured: $fixed subscription(s)" -ForegroundColor Green } catch { Write-Error "Remediation failed: $_" } } function Invoke-Monitoring { $result = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Subscriptions: $($result.TotalResources)" -ForegroundColor White Write-Host "Configured: $($result.CompliantCount)" -ForegroundColor Green Write-Host "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 Cyan } } return $result } function Invoke-Revert { Write-Host "`n⚠️ Security contacts verwijderen niet aanbevolen" -ForegroundColor Yellow } try { Connect-RequiredServices if ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { if ($WhatIf) { Write-Host "`n=== WHATIF MODE ===" -ForegroundColor Yellow Write-Host "Zou security contacts configureren met Email: $Email" -ForegroundColor Yellow $result = Test-Compliance Write-Host "Voor $($result.NonCompliantCount) subscription(s)" -ForegroundColor Yellow } else { Invoke-Remediation } } elseif ($Revert) { Invoke-Revert } else { $result = Test-Compliance Write-Host "`nCompliance Check: $PolicyName" -ForegroundColor Cyan if ($result.IsCompliant) { Write-Host "Status: [OK] COMPLIANT" -ForegroundColor Green } else { Write-Host "Status: [FAIL] NON-COMPLIANT ($($result.NonCompliantCount) subscriptions)" -ForegroundColor Red } } } catch { Write-Error $_ exit 1 }

Risico zonder implementatie

Risico zonder implementatie
High: Zonder beveiligingscontacten blijven kritieke waarschuwingen onopgemerkt - vertraagde incidentrespons. Ransomware- en gegevensexfiltratie-waarschuwingen vereisen onmiddellijke melding - uren vertraging kan een klein incident escaleren naar een grote inbreuk (€15K/uur kostenstijging). Zonder beveiligingscontacten geen geautomatiseerde escalatie. Compliance: CIS 2.1.20, BIO 16.01, NIS2 Artikel 23. Het risico is hoog voor productie-omgevingen.

Management Samenvatting

Beveiligingscontactconfiguratie: E-mail (beveiligingsteam distributielijst), Telefoon (24/7 SOC-nummer), Schakel waarschuwingen in voor hoge ernst. Activatie: Defender for Cloud → Environment settings → Email notifications → Security contact. Gratis. Verplicht CIS 2.1.20, BIO 16.01, NIS2. Implementatie: 30 min technisch + 1-2 uur organisatorisch. Zorgt voor geautomatiseerde incidentmelding.