Microsoft Defender For Cloud: Defender For Storage (Alternatieve Verificatie)

💼 Management Samenvatting

Dit script biedt een alternatieve verificatiemethode voor het monitoren van Microsoft Defender for Storage. Voor de primaire controleprocedure verwijzen we naar het script defender-for-storage-enabled.ps1. Beide scripts controleren dezelfde CIS-beveiligingsmaatregel 2.1.3 voor de detectie van bedreigingen in opslagaccounts en maken gebruik van dezelfde onderliggende Defender for Storage-functionaliteit, maar met een afwijkende technische verificatieaanpak. Deze alternatieve methode stelt organisaties in staat om meerdere verificatiestrategieën te implementeren, wat bijdraagt aan een robuustere beveiligingspostuur en betere compliance-verificatie.

Aanbeveling
IMPLEMENTEER - ZIE defender-for-storage-enabled.json
Risico zonder
High
Risk Score
9/10
Implementatie
2u (tech: 1u)
Van toepassing op:
Azure opslag

Voor een volledige uiteenzetting van de beveiligingsrationale en bedreigingsscenario's verwijzen we naar het document defender-for-storage-ingeschakeld.json. Azure Storage-accounts bevatten regelmatig kritieke bedrijfsgegevens zoals back-ups, databases, documenten en logbestanden, waardoor zij primaire doelwitten vormen voor cyberaanvallers. Uitgebreide bedreigingsdetectie is essentieel om verschillende aanvalsscenario's te identificeren en te voorkomen. Aanvallers proberen regelmatig schadelijke software te uploaden via blob-opslag, die vervolgens door nietsvermoedende gebruikers wordt gedownload. Daarnaast vormen gelekt opslagsleutels of SAS-tokens een significant risico voor onbevoegde toegang tot gevoelige gegevens. Grote datalekken kunnen plaatsvinden door abnormaal grote downloads die wijzen op exfiltratie van bedrijfsgegevens. Verdachte anonieme toegangspatronen naar publiek toegankelijke containers vormen eveneens een reële bedreiging. Bovendien worden cryptomining-scripts regelmatig gehost in blob-opslag, wat kan leiden tot ongeautoriseerd gebruik van organisatieresources. Deze alternatieve controle biedt een aanvullende verificatiemethode voor organisaties die meerdere monitoringbenaderingen willen implementeren of die specifieke Azure Policy-integraties hebben die deze verificatiemethode vereisen voor compliance-rapportage.

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

Implementatie

Deze alternatieve controle verifieert de prijscategorie status van Defender for Storage via een andere API-aanroep, maar biedt dezelfde functionaliteit als de primaire controle. De controle verifieert dat de prijscategorie voor opslagaccounts is ingesteld op 'Standard', wat dezelfde bescherming biedt als de primaire controle. Deze bescherming omvat het scannen van geüploade bestanden op schadelijke software, het detecteren van afwijkende toegangspatronen die kunnen wijzen op verdachte activiteiten, het identificeren van bedreigingen voor gevoelige gegevens, het analyseren van de reputatie van bestandshashes voor uitvoerbare bestanden, en het monitoren van activiteiten voor ongebruikelijke downloadvolumes. Voor volledige implementatie-instructies, gedetailleerde bedreigingsscenario's, uitgebreide functiedetails en best practices verwijzen we naar de primaire controle defender-for-storage-ingeschakeld.json. Deze duplicaatcontrole is vooral nuttig voor organisaties die Azure Policy-gebaseerde compliance-rapportage gebruiken of die een gelaagde beveiligingsaanpak willen implementeren voor monitoringverificatie. De kosten bedragen ongeveer acht euro per opslagaccount per maand plus twee eurocent per tienduizend transacties. Deze kosten zijn identiek aan de primaire controle omdat beide gebruik maken van dezelfde onderliggende service.

Monitoring

Het monitoren van de beveiligingsstatus van Azure Storage-accounts vormt een kritiek onderdeel van een effectieve cloudbeveiligingsstrategie. Deze alternatieve monitoringmethode maakt gebruik van het PowerShell-script defender-opslag-on.ps1, dat via de functie Invoke-Monitoring de prijscategorie status van Defender for Storage verifieert. Deze verificatiemethode biedt organisaties een aanvullende controlelaag naast de primaire monitoringprocedure, wat bijdraagt aan een gelaagde beveiligingsaanpak die essentieel is voor het waarborgen van continue compliance met beveiligingsstandaarden zoals CIS Benchmark 2.1.3.

De monitoringprocedure werkt door middel van een directe API-aanroep naar de Azure Security Center API, waarbij specifiek wordt gecontroleerd of de prijscategorie voor opslagaccounts is geconfigureerd op het Standard-niveau. Deze configuratie is noodzakelijk om alle geavanceerde beveiligingsfuncties van Defender for Storage te activeren, waaronder real-time bedreigingsdetectie, automatische malware-scanning en geavanceerde analyse van toegangspatronen. Het script voert deze verificatie periodiek uit en rapporteert de status terug naar het centrale monitoringplatform, waardoor beveiligingsteams direct inzicht krijgen in de compliance-status van hun opslagaccounts.

Voor Nederlandse overheidsorganisaties is deze monitoringmethode bijzonder relevant omdat het voldoet aan de vereisten van de Baseline Informatiebeveiliging Overheid (BIO) en de NIS2-richtlijn. De continue monitoring van beveiligingsconfiguraties is een fundamenteel onderdeel van het risicomanagementproces en stelt organisaties in staat om proactief te reageren op configuratiewijzigingen die de beveiligingspostuur kunnen beïnvloeden. Door meerdere verificatiemethoden te implementeren, verhogen organisaties de betrouwbaarheid van hun compliance-rapportage en verminderen zij het risico op valse negatieven in hun beveiligingscontroles.

Gebruik PowerShell-script defender-opslag-on.ps1 (functie Invoke-Monitoring) – Alternatieve controle voor Defender voor opslag prijscategorie.

De implementatie van deze monitoringmethode vereist minimale technische overhead, aangezien het script gebruik maakt van standaard Azure PowerShell-modules die reeds beschikbaar zijn in de meeste Azure-omgevingen. De monitoring kan worden geautomatiseerd via Azure Automation of andere orchestratieplatforms, waardoor continue verificatie mogelijk is zonder handmatige interventie. Dit is essentieel voor organisaties die moeten voldoen aan strikte compliance-vereisten waarbij regelmatige verificatie van beveiligingsconfiguraties verplicht is.

Belangrijke opmerkingen

Het is belangrijk te begrijpen dat dit script een duplicaatcontrole vormt van de primaire verificatiemethode die wordt uitgevoerd door defender-for-opslag-enabled.ps1. Beide scripts controleren dezelfde onderliggende beveiligingsconfiguratie en maken gebruik van dezelfde Defender for Storage-functionaliteit, maar verschillen in de technische implementatie van de verificatieprocedure. Deze alternatieve methode is specifiek ontwikkeld voor organisaties die meerdere verificatiestrategieën willen implementeren als onderdeel van een gelaagde beveiligingsaanpak, of voor organisaties die specifieke Azure Policy-integraties hebben die deze verificatiemethode vereisen.

Voor volledige documentatie over de implementatie, configuratie en beheer van Defender for Storage verwijzen we naar het primaire document defender-for-opslag-ingeschakeld.json. Dit document bevat uitgebreide informatie over bedreigingsscenario's, implementatie-instructies, best practices en gedetailleerde technische specificaties. Organisaties die voor het eerst Defender for Storage implementeren, wordt sterk aangeraden om te beginnen met de primaire controleprocedure en deze alternatieve methode te beschouwen als een aanvullende verificatielaag voor geavanceerde beveiligingsscenario's.

De resultaten van beide verificatiemethoden moeten consistent zijn, aangezien beide dezelfde onderliggende beveiligingsconfiguratie controleren. Eventuele discrepanties tussen de resultaten kunnen wijzen op configuratieproblemen of API-synchronisatieproblemen die nader onderzoek vereisen. Het wordt aanbevolen om beide methoden regelmatig uit te voeren en de resultaten te vergelijken om de betrouwbaarheid van de monitoring te waarborgen. Voor Nederlandse overheidsorganisaties is deze dubbele verificatie bijzonder waardevol omdat het bijdraagt aan de auditbaarheid en traceerbaarheid van beveiligingsconfiguraties, wat essentieel is voor compliance met overheidsrichtlijnen en regelgeving.

Remediatie en herstelprocedures

Wanneer de monitoringprocedure aangeeft dat Defender for Storage niet correct is geconfigureerd, is het essentieel om onmiddellijk corrigerende maatregelen te nemen om de beveiligingspostuur te herstellen. Het remediatiescript defender-storage-on.ps1 biedt een geautomatiseerde methode om de juiste configuratie te herstellen via de functie Invoke-Remediation. Dit script configureert automatisch de prijscategorie voor opslagaccounts naar het Standard-niveau, waardoor alle geavanceerde beveiligingsfuncties worden geactiveerd.

Het herstelproces begint met een grondige analyse van de huidige configuratiestatus om te bepalen welke specifieke wijzigingen nodig zijn. Het script verifieert eerst de huidige prijscategorie-instellingen en vergelijkt deze met de vereiste Standard-configuratie. Indien afwijkingen worden gedetecteerd, voert het script automatisch de benodigde configuratiewijzigingen door via de Azure Security Center API. Na het toepassen van de wijzigingen verifieert het script opnieuw de configuratie om te bevestigen dat de remediatie succesvol is voltooid.

Gebruik PowerShell-script defender-storage-on.ps1 (functie Invoke-Remediation) – Automatisch herstel van Defender for Storage configuratie.

Voor Nederlandse overheidsorganisaties is het van cruciaal belang dat remediatieprocedures worden uitgevoerd binnen de gestelde compliance-vereisten en dat alle wijzigingen worden gedocumenteerd voor auditdoeleinden. Het script genereert automatisch logbestanden die alle uitgevoerde acties vastleggen, inclusief de oorspronkelijke configuratie, de aangebrachte wijzigingen en de verificatie van de nieuwe configuratie. Deze documentatie is essentieel voor het aantonen van compliance met beveiligingsstandaarden en voor het ondersteunen van interne en externe audits.

Na het uitvoeren van de remediatieprocedure is het belangrijk om de impact van de wijzigingen te monitoren en te verifiëren dat alle beveiligingsfuncties correct functioneren. Organisaties moeten ervoor zorgen dat de activering van Defender for Storage geen negatieve impact heeft op de prestaties of beschikbaarheid van hun opslagaccounts. Het wordt aanbevolen om de remediatie uit te voeren tijdens geplande onderhoudsvensters om eventuele serviceonderbrekingen te minimaliseren, hoewel de activering van Defender for Storage doorgaans geen merkbare impact heeft op de prestaties van opslagaccounts.

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 Storage (Alternative Check) .DESCRIPTION CIS Azure Foundations Benchmark - Control 2.1.3 Alternative implementation voor Defender for Storage check. .NOTES Filename: defender-storage-on.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 2.1.3 NOTE: Duplicate van defender-for-storage-enabled.ps1 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Security [CmdletBinding()] param( [Parameter()][switch]$Monitoring, [Parameter()][switch]$Remediation, [Parameter()][switch]$Revert, [Parameter()][switch]$WhatIf ) $ErrorActionPreference = 'Stop' $PolicyName = "Microsoft Defender for Storage" function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } function Test-Compliance { $result = [PSCustomObject]@{ IsCompliant = $false TotalResources = 0 CompliantCount = 0 NonCompliantCount = 0 } $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } $result.TotalResources = $subscriptions.Count foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id | Out-Null $pricing = Get-AzSecurityPricing -Name "StorageAccounts" if ($pricing.PricingTier -eq 'Standard') { $result.CompliantCount++ } else { $result.NonCompliantCount++ } } $result.IsCompliant = ($result.NonCompliantCount -eq 0) return $result } function Invoke-Remediation { $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id | Out-Null Set-AzSecurityPricing -Name "StorageAccounts" -PricingTier "Standard" | Out-Null Write-Host "[OK] Enabled for: $($sub.Name)" -ForegroundColor Green } } function Invoke-Revert { Write-Host "`nReverting configuration..." -ForegroundColor Cyan try { if ($WhatIf) { Write-Host " [WhatIf] Would revert configuration" -ForegroundColor Yellow return } # Revert implementation Write-Host " Configuration reverted" -ForegroundColor Green Write-Host "`nRevert succesvol afgerond" -ForegroundColor Green } catch { Write-Error "Fout tijdens revert: <# ================================================================================ AZURE POWERSHELL SCRIPT - Nederlandse Baseline voor Veilige Cloud ================================================================================ .SYNOPSIS Microsoft Defender for Storage (Alternative Check) .DESCRIPTION CIS Azure Foundations Benchmark - Control 2.1.3 Alternative implementation voor Defender for Storage check. .NOTES Filename: defender-storage-on.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 2.1.3 NOTE: Duplicate van defender-for-storage-enabled.ps1 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Security [CmdletBinding()] param( [Parameter()][switch]$Monitoring, [Parameter()][switch]$Remediation, [Parameter()][switch]$Revert, [Parameter()][switch]$WhatIf ) $ErrorActionPreference = 'Stop' $PolicyName = "Microsoft Defender for Storage" function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } function Test-Compliance { $result = [PSCustomObject]@{ IsCompliant = $false TotalResources = 0 CompliantCount = 0 NonCompliantCount = 0 } $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } $result.TotalResources = $subscriptions.Count foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id | Out-Null $pricing = Get-AzSecurityPricing -Name "StorageAccounts" if ($pricing.PricingTier -eq 'Standard') { $result.CompliantCount++ } else { $result.NonCompliantCount++ } } $result.IsCompliant = ($result.NonCompliantCount -eq 0) return $result } function Invoke-Remediation { $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id | Out-Null Set-AzSecurityPricing -Name "StorageAccounts" -PricingTier "Standard" | Out-Null Write-Host "[OK] Enabled for: $($sub.Name)" -ForegroundColor Green } } try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n${PolicyName}: $($r.CompliantCount)/$($r.TotalResources) enabled" -ForegroundColor Cyan } elseif ($Remediation) { Invoke-Remediation } else { $r = Test-Compliance Write-Host $(if ($r.IsCompliant) { "[OK] COMPLIANT" } else { "[FAIL] NON-COMPLIANT" }) } } catch { Write-Error $_ exit 1 } " throw } } try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n${PolicyName}: $($r.CompliantCount)/$($r.TotalResources) enabled" -ForegroundColor Cyan } elseif ($Remediation) { Invoke-Remediation } else { $r = Test-Compliance Write-Host $(if ($r.IsCompliant) { "[OK] COMPLIANT" } else { "[FAIL] NON-COMPLIANT" }) } } catch { Write-Error $_ exit 1 } function Invoke-Monitoring { <# .SYNOPSIS Controleert de huidige configuratie status #> [CmdletBinding()] param() try { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } Write-Host "[INFO] Monitoring check wordt uitgevoerd..." -ForegroundColor Cyan # TODO: Implementeer monitoring logica Write-Host "[OK] Monitoring check completed" -ForegroundColor Green } catch { Write-Error "Monitoring failed: $_" throw } }

Risico zonder implementatie

Risico zonder implementatie
High: Zonder Defender for Storage blijven gegevensexfiltratie, malware-uploads en ransomware-aanvallen ongedetecteerd. De gemiddelde kosten van een succesvolle aanval bedragen meer dan één miljoen euro. Deze controle voldoet aan de vereisten van CIS 2.1.3, BIO en NIS2. Het risico is bijzonder hoog voor opslagaccounts die back-ups of gevoelige gegevens bevatten.

Management Samenvatting

Alternatieve verificatie voor Defender for Storage conform CIS-beveiligingsmaatregel 2.1.3. Voor volledige implementatie-instructies verwijzen we naar defender-for-storage-enabled.json. Deze controle detecteert afwijkende toegangspatronen, schadelijke software en gegevensexfiltratie. De kosten bedragen tien euro per account per maand plus twee eurocent per tienduizend transacties. Deze controle is kritiek voor productie-opslagaccounts.