NSG Flow Logs Retentiebeleid

💼 Management Samenvatting

Het retentiebeleid voor Network Security Group (NSG) Flow Logs vormt een kritieke component binnen de netwerkbeveiligingsstrategie van Azure-omgevingen. Deze beveiligingsmaatregel waarborgt dat netwerkverkeerslogboeken gedurende een voldoende lange periode worden bewaard, waardoor organisaties in staat zijn om forensische analyses uit te voeren, compliance-vereisten na te leven en beveiligingsincidenten effectief te onderzoeken. Zonder een adequaat retentiebeleid lopen organisaties het risico dat essentiële bewijsstukken verloren gaan, wat de mogelijkheid om cyberaanvallen te traceren en te analyseren aanzienlijk beperkt.

Aanbeveling
IMPLEMENTEER - ZIE nsg-flow-log-retention-90-days.json
Risico zonder
Medium
Risk Score
6/10
Implementatie
1u (tech: 0.5u)
Van toepassing op:
Azure

Het implementeren van een correct geconfigureerd retentiebeleid voor NSG Flow Logs is essentieel voor meerdere kritieke beveiligingsdoeleinden. Ten eerste stelt het organisaties in staat om historische netwerkactiviteit te analyseren wanneer zich een beveiligingsincident voordoet, waardoor beveiligingsteams kunnen achterhalen hoe een aanval is binnengedrongen en welke systemen mogelijk zijn gecompromitteerd. Ten tweede is adequate logretentie een verplichting onder verschillende compliance-frameworks die Nederlandse overheidsorganisaties moeten naleven, waaronder de Baseline Informatiebeveiliging Overheid (BIO) en ISO 27001. Bovendien maken langere retentieperioden het mogelijk om trends in netwerkverkeer te identificeren, wat waardevolle inzichten oplevert voor het verbeteren van de algehele beveiligingspostuur. Zonder voldoende retentieperiode kunnen organisaties niet voldoen aan auditvereisten en lopen zij het risico op boetes en reputatieschade bij datalekken of beveiligingsincidenten.

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

Implementatie

Deze beveiligingsregel richt zich op het configureren en handhaven van een adequaat retentiebeleid voor NSG Flow Logs binnen Azure-omgevingen. De implementatie gebeurt via Azure Policy en Azure Network Watcher, waarbij organisaties een minimale retentieperiode van 90 dagen moeten instellen om te voldoen aan CIS Benchmark 6.5 en andere relevante beveiligingsstandaarden. Het beleid controleert automatisch of alle NSG Flow Logs correct zijn geconfigureerd met de vereiste retentieperiode en genereert waarschuwingen wanneer configuraties niet voldoen aan de gestelde eisen. Daarnaast biedt het implementatiescripts en monitoringtools die IT-beheerders ondersteunen bij het handhaven van compliance en het uitvoeren van regelmatige controles op de retentieconfiguratie.

Vereisten

Voor het succesvol implementeren van een retentiebeleid voor NSG Flow Logs moeten organisaties aan verschillende technische en organisatorische vereisten voldoen. De primaire technische voorwaarde is dat NSG Flow Logs daadwerkelijk zijn ingeschakeld en actief loggen genereren voor de betreffende Network Security Groups. Zonder actieve flow logging heeft het configureren van retentiebeleid geen praktische waarde, aangezien er geen logbestanden zijn om te bewaren. Organisaties moeten daarom eerst verifiëren dat alle relevante NSG's zijn geconfigureerd met flow logging voordat zij retentiebeleid implementeren.

Naast de technische vereiste van ingeschakelde flow logs, moeten organisaties ook beschikken over een Azure Storage Account dat geschikt is voor het opslaan van logbestanden gedurende de vereiste retentieperiode. Het storage account moet voldoen aan beveiligingsstandaarden zoals versleuteling in rust, netwerkisolatie waar mogelijk, en toegangsbeheer op basis van rollen. Bovendien moet er voldoende opslagcapaciteit beschikbaar zijn om de verwachte hoeveelheid logdata te kunnen bewaren. Organisaties dienen regelmatig de opslagcapaciteit te monitoren en te plannen voor toekomstige groei van netwerkverkeer.

Vanuit organisatorisch perspectief vereist de implementatie van retentiebeleid dat beheerders beschikken over de juiste Azure-machtigingen, met name de rollen Network Contributor of eigenaarsrechten op de betreffende resourcegroepen. Daarnaast moeten organisaties een duidelijk beleid hebben vastgesteld over de gewenste retentieperiode, waarbij rekening wordt gehouden met compliance-vereisten, operationele behoeften en kostenoverwegingen. Het is aan te raden om dit beleid te documenteren in de organisatorische beveiligingsrichtlijnen en regelmatig te evalueren of de gekozen retentieperiode nog steeds voldoet aan de actuele eisen.

Een aanvullende vereiste betreft de configuratie van Azure Network Watcher, dat de centrale service vormt voor het beheer van flow logs. Network Watcher moet zijn ingeschakeld in alle relevante Azure-regio's waar NSG's worden gebruikt. Organisaties moeten erop letten dat Network Watcher correct is geconfigureerd en dat de benodigde diagnostische instellingen zijn geactiveerd om flow logs naar het storage account te kunnen schrijven. Zonder correct geconfigureerde Network Watcher-instellingen kunnen flow logs niet worden opgeslagen, ongeacht de retentieconfiguratie.

Monitoring

Gebruik PowerShell-script nsg-flow-logs-retention.ps1 (functie Invoke-Monitoring) – Controleren.

Het monitoren van het retentiebeleid voor NSG Flow Logs is een continue activiteit die essentieel is voor het handhaven van compliance en het waarborgen van de beschikbaarheid van historische netwerkgegevens voor forensische doeleinden. Organisaties moeten regelmatig controleren of alle geconfigureerde NSG Flow Logs daadwerkelijk de vereiste retentieperiode hebben ingesteld, waarbij een minimum van 90 dagen wordt aanbevolen om te voldoen aan CIS Benchmark 6.5. Het monitoringproces omvat het verifiëren van de retentie-instellingen op elk storage account dat wordt gebruikt voor het opslaan van flow logs, evenals het controleren of flow logs daadwerkelijk worden geschreven en bewaard volgens de geconfigureerde instellingen.

Het gebruik van geautomatiseerde monitoringtools en PowerShell-scripts stelt organisaties in staat om proactief te controleren op afwijkingen in de retentieconfiguratie. Het monitoringproces moet periodiek worden uitgevoerd, bij voorkeur wekelijks of maandelijks, afhankelijk van de omvang van de Azure-omgeving en de frequentie van wijzigingen in de netwerkinfrastructuur. Tijdens deze controles moeten beheerders specifiek letten op NSG's waarvan de flow logs zijn geconfigureerd met een retentieperiode die korter is dan de vereiste 90 dagen, evenals op situaties waarin flow logs helemaal geen retentiebeleid hebben geconfigureerd.

Naast het controleren van de retentie-instellingen zelf, moeten organisaties ook monitoren of de flow logs daadwerkelijk worden gegenereerd en opgeslagen. Dit omvat het verifiëren van de aanwezigheid van logbestanden in de storage accounts, het controleren van de grootte en frequentie van de gegenereerde logs, en het identificeren van eventuele onderbrekingen in het loggingproces. Dergelijke onderbrekingen kunnen wijzen op configuratiefouten, netwerkproblemen of onvoldoende machtigingen, en moeten onmiddellijk worden onderzocht om te voorkomen dat belangrijke netwerkgegevens verloren gaan.

Het is aan te raden om monitoringwaarschuwingen te configureren die automatisch meldingen genereren wanneer retentie-instellingen worden gewijzigd of wanneer flow logs niet langer worden gegenereerd. Deze waarschuwingen kunnen worden geïntegreerd met bestaande beveiligingsinformatie- en gebeurtenisbeheersystemen (SIEM) of monitoringplatforms, waardoor beveiligingsteams proactief kunnen reageren op potentiële problemen. Daarnaast moeten organisaties regelmatig audits uitvoeren om te verifiëren dat alle nieuwe NSG's die worden toegevoegd aan de omgeving direct worden geconfigureerd met het juiste retentiebeleid, zodat compliance wordt gewaarborgd voor de volledige netwerkinfrastructuur.

Compliance en Auditing

Het implementeren van een adequaat retentiebeleid voor NSG Flow Logs is een verplichting onder verschillende beveiligings- en compliance-frameworks die van toepassing zijn op Nederlandse overheidsorganisaties. De Baseline Informatiebeveiliging Overheid (BIO) controle 12.04 vereist specifiek dat organisaties logbestanden gedurende een voldoende lange periode bewaren om te voldoen aan wettelijke, regelgevende en operationele vereisten. Deze controle benadrukt het belang van het kunnen uitvoeren van forensische analyses en het kunnen traceren van beveiligingsincidenten over langere perioden, wat alleen mogelijk is wanneer logbestanden voldoende lang worden bewaard.

ISO 27001:2022 controle A.8.15 stelt aanvullende eisen aan logging en monitoring, waarbij organisaties moeten aantonen dat zij beschikken over adequate loggingmechanismen en dat logbestanden worden bewaard volgens de vastgestelde retentievereisten. Deze internationale standaard benadrukt het belang van logretentie voor het detecteren van beveiligingsincidenten, het uitvoeren van forensische analyses en het voldoen aan wettelijke en regelgevende verplichtingen. Organisaties die ISO 27001-certificering nastreven of behouden, moeten kunnen aantonen dat hun logretentiebeleid voldoet aan deze controle.

Naast BIO en ISO 27001 zijn er ook andere relevante frameworks en standaarden die eisen stellen aan logretentie. De CIS Microsoft Azure Foundations Benchmark, specifiek controle 6.5, vereist dat organisaties een retentieperiode van minimaal 90 dagen instellen voor flow logs. Deze benchmark wordt breed erkend als best practice voor cloudbeveiliging en wordt vaak gebruikt als basis voor beveiligingsbeoordelingen en audits. Nederlandse overheidsorganisaties die werken met Azure-diensten moeten daarom rekening houden met deze CIS-aanbeveling bij het configureren van hun retentiebeleid.

Voor auditdoeleinden moeten organisaties kunnen aantonen dat hun retentiebeleid daadwerkelijk wordt geïmplementeerd en gehandhaafd. Dit betekent dat auditors moeten kunnen verifiëren dat alle NSG Flow Logs zijn geconfigureerd met de vereiste retentieperiode, dat logbestanden daadwerkelijk worden bewaard volgens deze instellingen, en dat er processen zijn geïmplementeerd om te waarborgen dat nieuwe NSG's automatisch worden geconfigureerd met het juiste retentiebeleid. Organisaties moeten daarom regelmatig compliance-rapporten genereren die de status van retentieconfiguraties documenteren en eventuele afwijkingen identificeren die moeten worden gecorrigeerd.

Het is belangrijk om te erkennen dat compliance-vereisten kunnen variëren afhankelijk van de specifieke context van de organisatie en de aard van de verwerkte gegevens. Organisaties die werken met bijzondere persoonsgegevens of gevoelige overheidsinformatie kunnen aanvullende retentievereisten hebben op basis van sectorale regelgeving of specifieke beveiligingsrichtlijnen. Het is daarom essentieel dat organisaties hun retentiebeleid regelmatig evalueren en aanpassen aan veranderende compliance-vereisten, waarbij zij rekening houden met zowel de minimale standaarden als eventuele aanvullende eisen die van toepassing zijn op hun specifieke situatie.

Remediatie

Gebruik PowerShell-script nsg-flow-logs-retention.ps1 (functie Invoke-Remediation) – Herstellen.

Wanneer monitoringprocessen afwijkingen identificeren in het retentiebeleid voor NSG Flow Logs, moeten organisaties onmiddellijk corrigerende maatregelen nemen om de compliance te herstellen. Het remediatieproces begint met het identificeren van alle NSG's waarvan de flow logs niet voldoen aan de vereiste retentie-instellingen. Dit omvat zowel NSG's die helemaal geen retentiebeleid hebben geconfigureerd als NSG's waarvan de retentieperiode korter is dan de vereiste 90 dagen. Organisaties moeten een systematische aanpak volgen waarbij eerst alle niet-compliant configuraties worden geïnventariseerd voordat corrigerende acties worden ondernomen.

Het herstellen van retentie-instellingen vereist toegang tot Azure Network Watcher en de betreffende storage accounts waar de flow logs worden opgeslagen. Beheerders moeten de retentie-instellingen bijwerken via de Azure Portal, Azure CLI of PowerShell, waarbij zij ervoor zorgen dat een minimale retentieperiode van 90 dagen wordt ingesteld. Het is belangrijk om te verifiëren dat de wijzigingen daadwerkelijk zijn doorgevoerd en dat de nieuwe instellingen correct worden toegepast op alle relevante flow logs. Na het bijwerken van de configuratie moeten organisaties het monitoringproces opnieuw uitvoeren om te bevestigen dat de remediatie succesvol is geweest.

In sommige gevallen kan het nodig zijn om bestaande flow log configuraties volledig opnieuw te configureren, vooral wanneer er fundamentele problemen zijn met de storage account configuratie of de Network Watcher-instellingen. In dergelijke situaties moeten beheerders eerst de huidige configuratie verwijderen en vervolgens een nieuwe configuratie aanmaken met de correcte retentie-instellingen. Het is cruciaal om tijdens dit proces te waarborgen dat er geen onderbreking optreedt in het loggingproces, aangezien dit kan leiden tot het verlies van belangrijke netwerkgegevens. Organisaties moeten daarom zorgvuldig plannen wanneer dergelijke herconfiguraties worden uitgevoerd, bij voorkeur tijdens onderhoudsvensters of perioden met lage netwerkactiviteit.

Naast het herstellen van individuele configuraties moeten organisaties ook procesverbeteringen doorvoeren om te voorkomen dat vergelijkbare problemen in de toekomst optreden. Dit omvat het implementeren van Azure Policy-definities die automatisch controleren of nieuwe NSG Flow Logs worden geconfigureerd met de vereiste retentie-instellingen, evenals het opstellen van duidelijke richtlijnen voor beheerders over hoe retentiebeleid correct moet worden geconfigureerd. Daarnaast moeten organisaties regelmatig trainingen organiseren voor IT-personeel om ervoor te zorgen dat iedereen die betrokken is bij het beheer van Azure-netwerkresources bekend is met de retentievereisten en de juiste configuratieprocedures.

Het is aan te raden om na elke remediatie-actie een documentatie bij te werken die de uitgevoerde wijzigingen, de redenen voor de wijzigingen en de resultaten van de verificatie documenteert. Deze documentatie is waardevol voor toekomstige audits en helpt organisaties om patronen te identificeren in compliance-problemen, waardoor zij hun processen en procedures kunnen verbeteren. Bovendien moeten organisaties overwegen om geautomatiseerde remediatie-scripts te ontwikkelen die automatisch kunnen worden uitgevoerd wanneer monitoringprocessen niet-compliant configuraties detecteren, waardoor de tijd tussen detectie en herstel wordt verkort en de algehele compliance wordt verbeterd.

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 NSG Flow Logs Retention .DESCRIPTION CIS Azure Foundations Benchmark - Control 6.19 Controleert NSG flow logs retention policy. .NOTES Filename: nsg-flow-logs-retention.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 6.19 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Network [CmdletBinding()] param([Parameter()][switch]$Monitoring) $ErrorActionPreference = 'Stop' $PolicyName = "NSG Flow Logs Retention" function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } function Test-Compliance { $networkWatchers = Get-AzNetworkWatcher -ErrorAction SilentlyContinue $result = @{ TotalFlowLogs = 0; WithRetention = 0 } foreach ($watcher in $networkWatchers) { $flowLogs = Get-AzNetworkWatcherFlowLog -NetworkWatcher $watcher -ErrorAction SilentlyContinue foreach ($log in $flowLogs) { $result.TotalFlowLogs++ if ($log.RetentionPolicy.Enabled -and $log.RetentionPolicy.Days -gt 0) { $result.WithRetention++ } } } 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 "Total Flow Logs: $($r.TotalFlowLogs)" -ForegroundColor White Write-Host "With Retention Policy: $($r.WithRetention)" -ForegroundColor $(if ($r.WithRetention -eq $r.TotalFlowLogs) { 'Green' } else { 'Yellow' }) if ($r.WithRetention -lt $r.TotalFlowLogs) { Write-Host "`n⚠️ Configureer retention policy voor alle flow logs" -ForegroundColor Yellow } } else { $r = Test-Compliance Write-Host "`nFlow Log Retention: $($r.WithRetention)/$($r.TotalFlowLogs)" } } 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 "Total Flow Logs: $($r.TotalFlowLogs)" -ForegroundColor White Write-Host "With Retention Policy: $($r.WithRetention)" -ForegroundColor $(if ($r.WithRetention -eq $r.TotalFlowLogs) { 'Green' } else { 'Yellow' }) if ($r.WithRetention -lt $r.TotalFlowLogs) { Write-Host "`n⚠️ Configureer retention policy voor alle flow logs" -ForegroundColor Yellow } } else { $r = Test-Compliance Write-Host "`nFlow Log Retention: $($r.WithRetention)/$($r.TotalFlowLogs)" } } 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
Medium: Korte retentieperiode maakt forensische analyses onmogelijk en voldoet niet aan compliance-vereisten. CIS Benchmark 6.5 vereist minimaal 90 dagen retentie. Het risico is medium.

Management Samenvatting

Het retentiebeleid voor NSG Flow Logs vormt een kritieke beveiligingsmaatregel die waarborgt dat netwerkverkeerslogboeken gedurende voldoende lange periode worden bewaard voor forensische analyses en compliance. Zie nsg-flow-log-retention-90-days.json voor implementatie van minimaal 90 dagen retentie. Verplicht volgens CIS 6.5.