Microsoft Defender For Cloud: Defender For Open-Source Databases Inschakelen

💼 Management Samenvatting

Microsoft Defender voor Open Source Relational Databases biedt geavanceerde bedreigingsbescherming voor Azure Database voor PostgreSQL, MySQL en MariaDB door SQL-injectie pogingen, brute force aanvallen en afwijkende database toegangspatronen te detecteren.

Aanbeveling
IMPLEMENTEER VOOR OPEN SOURCE DATABASES
Risico zonder
High
Risk Score
8/10
Implementatie
2u (tech: 1u)
Van toepassing op:
Azure Database voor PostgreSQL
Azure Database voor MySQL
Azure Database voor MariaDB

Open source databases bevatten vaak kritieke applicatiedata maar beschikken over minder ingebouwde beveiligingsfuncties dan commerciële databases. Aanvallers richten zich op deze databases voor: SQL-injectie via ORM-bypasses, brute force authenticatie waarbij vaak zwakke standaard inloggegevens worden gebruikt, rechtenescannotatie via stored procedures, data-exfiltratie via langzame queries, database enumeratieaanvallen en exploitatie van niet-gepatcheerde CVEs. Open source databases worden ook regelmatig verkeerd geconfigureerd met publieke eindpunten en zwakke authenticatie.

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

Implementatie

Deze control activeert Defender voor Open Source Databases op alle abonnementen met PostgreSQL, MySQL of MariaDB-instanties. Functionaliteit: realtime detectie van SQL-injectie pogingen, brute force authenticatiemonitoring, analyse van afwijkende querypatronen, detectie van ongebruikelijke geografische toegang, rechtenescannotatie pogingen, potentiële data-exfiltratie door grote resultatensets, afwijkende inlogtijden en bron-IP-adressen, en integratie met Microsoft bedreigingsinformatie. Machine learning leert het baselinegedrag per database. Kosten: ongeveer 5% van de database computekosten.

Vereisten

Voordat u Microsoft Defender voor Open Source Databases kunt implementeren, is het essentieel om te controleren of alle benodigde vereisten zijn vervuld. Deze control vormt de basis voor succesvolle implementatie en effectieve bedreigingsbescherming voor uw databaseomgeving.

De primaire vereiste betreft toegangsrechten binnen Azure. U moet beschikken over een Azure-abonnement met eigenaar- of medewerkerrechten (Owner of Contributor). Deze rechten zijn noodzakelijk omdat de implementatie van Defender voor Open Source Databases wijzigingen vereist op abonnementsniveau. Zonder deze rechten kunt u de prijzenplannen niet wijzigen of de benodigde beveiligingsconfiguraties toepassen. Het is belangrijk om te controleren dat uw account daadwerkelijk de juiste rechten heeft binnen het betreffende abonnement, omdat rollen op resourcegroepsniveau onvoldoende zijn voor deze operatie.

Op het gebied van technische infrastructuur is PowerShell 5.1 of hoger een vereiste. Deze versie van PowerShell ondersteunt alle benodigde cmdlets en functies voor het beheren van Azure-resources. Moderne versies van PowerShell Core (7.0+) worden ook ondersteund, maar PowerShell 5.1 blijft de standaard voor veel Windows-omgevingen. Daarnaast moeten de specifieke Azure PowerShell-modules zijn geïnstalleerd: Az.Accounts en Az.Security. De Az.Accounts-module verzorgt de authenticatie en verbindingsbeheer met Azure, terwijl Az.Security alle specifieke cmdlets bevat voor het beheren van Defender voor Cloud-configuraties.

Uiteraard moeten er daadwerkelijk database-instanties aanwezig zijn binnen uw Azure-abonnement. De oplossing ondersteunt Azure Database voor PostgreSQL, Azure Database voor MySQL en Azure Database voor MariaDB. Het maakt niet uit of deze databases al draaien of recentelijk zijn gedeployeerd; zolang ze aanwezig zijn binnen het abonnement, kan Defender worden ingeschakeld. Het is wel belangrijk om te beseffen dat Defender voor Cloud zelf eerst moet zijn ingeschakeld op het abonnement voordat u specifieke componenten zoals Defender voor Open Source Databases kunt activeren.

Financieel gezien moet u rekening houden met een budget dat ongeveer vijf procent bedraagt van de totale database computekosten. Dit betekent dat als uw PostgreSQL, MySQL of MariaDB-instanties bijvoorbeeld driehonderd euro per maand kosten aan compute-capaciteit, u rekening moet houden met ongeveer vijftien euro per maand aan extra kosten voor Defender-beveiliging. Voor grote omgevingen met meerdere database-instanties kan dit bedrag oplopen, maar het is relatief bescheiden gezien de uitgebreide beveiligingsmogelijkheden die u ontvangt.

Monitoring

Het monitoren van de status van Microsoft Defender voor Open Source Databases vormt een essentieel onderdeel van een effectieve beveiligingsstrategie. Door regelmatig te controleren of Defender correct is ingeschakeld en geconfigureerd, zorgt u ervoor dat uw PostgreSQL, MySQL en MariaDB-instanties continue bescherming genieten tegen geavanceerde bedreigingen. Monitoring moet zowel bij de initiële implementatie als periodiek daarna worden uitgevoerd om te waarborgen dat de configuratie ongewijzigd blijft en dat nieuwe database-instanties automatisch worden beschermd.

De primaire monitoringmethode maakt gebruik van de Azure PowerShell-cmdlet Get-AzSecurityPricing, die specifiek de status van Defender voor Open Source Relational Databases kan opvragen. Deze cmdlet retourneert gedetailleerde informatie over het prijzenplan van de Defender-component, waarbij de waarde 'Standard' aangeeft dat de beveiligingsfunctionaliteit volledig actief is. Een waarde van 'Free' of het ontbreken van de component in de resultaten betekent dat er geen geavanceerde bedreigingsbescherming actief is voor uw open source databases.

Bij het uitvoeren van monitoringcontroles is het belangrijk om systematisch te werk te gaan. Controleer niet alleen of Defender is ingeschakeld op abonnementsniveau, maar verifieer ook of alle individuele database-instanties daadwerkelijk worden beschermd. Microsoft Defender voor Open Source Databases zou automatisch alle PostgreSQL, MySQL en MariaDB-instanties binnen het abonnement moeten detecteren en beschermen, maar in sommige gevallen kunnen configuratiewijzigingen of netwerkproblemen ervoor zorgen dat bepaalde databases niet worden gemonitord.

Naast het controleren van de configuratiestatus is het essentieel om ook de beveiligingswaarschuwingen en detectieresultaten te monitoren. Microsoft Defender voor Cloud genereert realtime waarschuwingen wanneer verdachte activiteit wordt gedetecteerd op uw database-instanties. Deze waarschuwingen kunnen variëren van SQL-injectie pogingen tot ongebruikelijke toegangspatronen of brute force authenticatieaanvallen. Regelmatige controle van deze waarschuwingen stelt u in staat om snel te reageren op potentiële beveiligingsincidenten en de impact daarvan te minimaliseren.

Voor organisaties met meerdere abonnementen of complexe Azure-omgevingen is geautomatiseerde monitoring aan te raden. Door gebruik te maken van het bijbehorende PowerShell-script, kunnen monitoringcontroles worden geautomatiseerd en geïntegreerd in bestaande DevOps-workflows of security operations processen. Dit zorgt ervoor dat wijzigingen in de configuratie direct worden opgemerkt en dat nieuwe database-instanties automatisch worden gecontroleerd op de juiste Defender-configuratie.

Gebruik PowerShell-script defender-opensource-databases-on.ps1 (functie Invoke-Monitoring) – Controleert Defender prijzenplan met Get-AzSecurityPricing -Name 'OpenSourceRelationalDatabases'.

Remediatie

Remediatie van niet-ingeschakelde Defender voor Open Source Databases configuraties vormt een kritieke beveiligingsmaatregel voor organisaties die PostgreSQL, MySQL of MariaDB-instanties beheren binnen Azure. Wanneer monitoringcontroles aangeven dat Defender niet is ingeschakeld of niet is geconfigureerd met het Standard-prijzenplan, moet onmiddellijk actie worden ondernomen om de beveiligingspostuur te verbeteren. Het inschakelen van Defender voor Open Source Databases is een relatief eenvoudige maar essentiële stap die direct bescherming biedt tegen een breed scala aan database-specifieke bedreigingen.

De remediatieprocedure maakt gebruik van de Azure PowerShell-cmdlet Set-AzSecurityPricing, die specifiek is ontworpen voor het configureren van Defender-voor-Cloud-componenten. Door deze cmdlet uit te voeren met de naam 'OpenSourceRelationalDatabases' en het prijzenplan 'Standard', wordt Defender voor Open Source Databases geactiveerd op abonnementsniveau. Het is belangrijk om te beseffen dat deze configuratie automatisch van toepassing is op alle PostgreSQL, MySQL en MariaDB-instanties binnen het abonnement, wat zorgt voor consistente beveiligingsbescherming zonder individuele configuratie per database.

Bij het uitvoeren van de remediatieprocedure moet rekening worden gehouden met de beschikbaarheid en prestaties van uw database-instanties. Hoewel het inschakelen van Defender geen directe impact heeft op de prestaties van de databases zelf, begint het systeem onmiddellijk met het analyseren van querypatronen en authenticatiepogingen. Machine learning-modellen hebben enige tijd nodig om het baselinegedrag van elke database te leren, waardoor de detectiebetrouwbaarheid in de eerste dagen na activering geleidelijk zal verbeteren.

Na het uitvoeren van de remediatieprocedure is het essentieel om te verifiëren dat de configuratie daadwerkelijk is toegepast. Dit kan worden gedaan door opnieuw de monitoringprocedure uit te voeren en te controleren of Get-AzSecurityPricing de waarde 'Standard' retourneert voor Open Source Relational Databases. Daarnaast is het raadzaam om de Azure-portal te controleren om te bevestigen dat alle database-instanties worden weergegeven als beschermd door Defender. In sommige gevallen kan het enkele minuten duren voordat de configuratie volledig is doorgevoerd en zichtbaar is in alle Azure-interfaces.

Voor organisaties die meerdere abonnementen beheren of die geautomatiseerde remediatie willen implementeren, is het bijbehorende PowerShell-script de aangewezen methode. Dit script kan worden geïntegreerd in bestaande compliance-automatisering of security orchestration workflows, waardoor remediatie automatisch kan plaatsvinden wanneer monitoringcontroles aangeven dat Defender niet is ingeschakeld. Dit zorgt voor proactieve beveiliging en minimaliseert de tijd dat databases onbeschermd blijven tegen geavanceerde bedreigingen.

Gebruik PowerShell-script defender-opensource-databases-on.ps1 (functie Invoke-Remediation) – Activeert met Set-AzSecurityPricing -Name 'OpenSourceRelationalDatabases' -PricingTier 'Standard'.

Compliance en Auditing

Compliance en auditing vormen essentiële aspecten van databasebeveiliging binnen de Nederlandse publieke sector. Het implementeren van Microsoft Defender voor Open Source Databases draagt significant bij aan het voldoen aan diverse internationale en nationale compliance-eisen en beveiligingsstandaarden. Deze sectie bespreekt de verschillende compliance-frameworks waaraan wordt voldaan door het inschakelen van Defender voor Open Source Databases en hoe deze controle bijdraagt aan de algehele beveiligingspostuur van uw organisatie.

De CIS Azure Foundations Benchmark versie 3.0.0 specificeert in control 2.1.10 expliciet dat Microsoft Defender voor open-source relationele databases moet zijn ingeschakeld. Deze controle vormt onderdeel van de tweede reeks van CIS-controles die zich richten op Security Center-configuratie. De CIS Azure Foundations Benchmark wordt wereldwijd erkend als een van de meest uitgebreide sets van beveiligingsaanbevelingen voor Azure-omgevingen. Organisaties die voldoen aan deze benchmark demonstreren een sterke commitment aan cloudbeveiligingsbest practices en kunnen dit gebruiken als basis voor hun algehele beveiligingsstrategie.

Op het gebied van internationale standaarden draagt de implementatie van Defender voor Open Source Databases bij aan ISO 27001-compliantie, specifiek de controles A.12.4.1 en A.12.6.1. Controle A.12.4.1 betreft de logging van gebeurtenissen, waarbij Defender uitgebreide logging en monitoring biedt van alle database-activiteiten en beveiligingsgerelateerde gebeurtenissen. Controle A.12.6.1 richt zich op kwetsbaarheidsbeheer voor databases, waarbij de realtime bedreigingsdetectie van Defender essentiële functionaliteit biedt. ISO 27001-certificering is voor veel Nederlandse overheidsorganisaties een vereiste, waardoor de implementatie van Defender een directe bijdrage levert aan het behouden of verkrijgen van deze certificering.

De NIS2-richtlijn, zoals geïmplementeerd in de Nederlandse wetgeving, stelt specifieke eisen aan cybersecurity risicobeheer voor essentiële en belangrijke entiteiten. Artikel 21 van de NIS2-richtlijn vereist dat organisaties passende en evenredige technische en organisatorische maatregelen treffen om de beveiliging van netwerk- en informatiesystemen te waarborgen. Het implementeren van geavanceerde bedreigingsbescherming voor databases, zoals Defender voor Open Source Databases, vormt een concrete invulling van deze eis. Voor Nederlandse organisaties die onder de NIS2-richtlijn vallen, is dit niet alleen een best practice maar een wettelijke verplichting.

De Algemene Verordening Gegevensbescherming (AVG), ook bekend als GDPR, vereist in Artikel 32 dat organisaties passende technische en organisatorische maatregelen nemen om persoonsgegevens te beveiligen. Voor databases die persoonsgegevens bevatten, vormt geavanceerde bedreigingsbescherming een essentiële component van deze beveiligingsmaatregelen. Defender voor Open Source Databases detecteert en voorkomt data-exfiltratie pogingen, SQL-injectie aanvallen en onbevoegde toegang, wat direct bijdraagt aan het waarborgen van de vertrouwelijkheid, integriteit en beschikbaarheid van persoonsgegevens zoals vereist door de AVG.

Voor organisaties die betalingstransacties verwerken en daardoor onder de PCI-DSS-standaard vallen, is Requirement 11.4 van bijzonder belang. Deze requirement stelt dat organisaties detectietechnologieën moeten implementeren voor het identificeren van onbevoegde netwerktoegang tot betalingsdata. Defender voor Open Source Databases voldoet aan deze requirement door realtime detectie van verdachte database-activiteiten, ongeoorloofde toegangspogingen en potentiële data-exfiltratie. Voor Nederlandse overheidsorganisaties die betalingstransacties verwerken of financiële gegevens beheren, is PCI-DSS-compliance vaak een vereiste, waardoor de implementatie van Defender essentieel is voor het voldoen aan deze standaard.

Naast het voldoen aan specifieke compliance-frameworks draagt de implementatie van Defender voor Open Source Databases bij aan een robuuste auditposuur. De uitgebreide logging en monitoringfunctionaliteiten van Defender bieden auditors gedetailleerde inzichten in de beveiligingsmaatregelen die zijn genomen om databases te beschermen. Regelmatige audits kunnen gebruikmaken van de Defender-rapportage om te verifiëren dat passende beveiligingscontroles zijn geïmplementeerd en dat deze correct functioneren. Dit draagt bij aan zowel interne als externe audits, certificeringsprocessen en compliance-verificaties.

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 Open Source Relational Databases .DESCRIPTION CIS Azure Foundations Benchmark - Control 2.1.10 Controleert of Defender for Open Source Relational Databases is ingeschakeld. .NOTES Filename: defender-opensource-databases-on.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 2.1.10 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Security [CmdletBinding()] param([Parameter()][switch]$Monitoring, [Parameter()][switch]$Remediation, [switch]$Revert, [switch]$WhatIf) $ErrorActionPreference = 'Stop' $PolicyName = "Microsoft Defender for Open Source Databases" 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 "OpenSourceRelationalDatabases" 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 "OpenSourceRelationalDatabases" -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 Open Source Relational Databases .DESCRIPTION CIS Azure Foundations Benchmark - Control 2.1.10 Controleert of Defender for Open Source Relational Databases is ingeschakeld. .NOTES Filename: defender-opensource-databases-on.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 2.1.10 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Security [CmdletBinding()] param([Parameter()][switch]$Monitoring, [Parameter()][switch]$Remediation, [switch]$Revert, [switch]$WhatIf) $ErrorActionPreference = 'Stop' $PolicyName = "Microsoft Defender for Open Source Databases" 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 "OpenSourceRelationalDatabases" 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 "OpenSourceRelationalDatabases" -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 voor Open Source Databases blijven databasebedreigingen ongedetecteerd. SQL-injectie aanvallen op PostgreSQL, MySQL of MariaDB blijven onopgemerkt, brute force authenticatiepogingen blijven ongedetecteerd, data-exfiltratie via afwijkende queries blijft onopgemerkt. Open source databases beschikken vaak over zwakkere standaardbeveiliging dan Azure SQL. Gemiddelde kosten van een database-inbreuk: meer dan één miljoen euro. Compliance-vereisten: CIS 2.1.10, BIO 12.06, NIS2, AVG. Het risico is hoog voor productie-open-source-databases met gevoelige gegevens.

Management Samenvatting

Defender voor Open Source Databases (PostgreSQL, MySQL, MariaDB) detecteert: SQL-injectie patronen, brute force authenticatie door overmatige mislukte pogingen, afwijkende data-toegang zoals bulk-exports en ongebruikelijke queries, verdachte bron-IP-adressen. Activatie: Defender voor Cloud → Databases → Open-source relationele databases → AAN. Kosten: vijf procent van database computekosten (vijftien euro per maand voor een database van driehonderd euro per maand). Verplicht volgens CIS 2.1.10, BIO 12.06, NIS2. Implementatie: één tot twee uur. Verplicht voor productie-PostgreSQL, MySQL en MariaDB-instanties.