💼 Management Samenvatting
Een Azure-logprofiel moet alle regio's vastleggen om een complete audittrail te garanderen. Standaard worden alleen globale gebeurtenissen op abonnementsniveau vastgelegd, waardoor regionale gebeurtenissen worden gemist en belangrijke beveiligingsinformatie verloren gaat.
Regionale gebeurtenissen bevatten kritieke beveiligingsgegevens die essentieel zijn voor detectie en forensisch onderzoek. Wanneer een aanvaller bijvoorbeeld een virtuele machine aanmaakt in een ongebruikelijke regio zoals 'Japan East' terwijl de organisatie normaal gesproken alleen 'West-Europa' gebruikt, wordt deze activiteit gemist als het logprofiel alleen specifieke regio's vastlegt. Door alle regio's te configureren ontstaat een complete audittrail die niet alleen alle resourcebewerkingen vastlegt, maar ook shadow IT-detectie mogelijk maakt wanneer onbevoegde regio's worden gebruikt. Bovendien vereist de Baseline Informatiebeveiliging Overheid (BIO) uitgebreide logging die alle activiteiten binnen de cloudomgeving omvat, ongeacht de geografische locatie waar deze plaatsvinden.
Implementatie
Het configureren van een logprofiel voor alle regio's betekent dat de instelling 'Alle regio's' wordt geselecteerd in plaats van specifieke regio's. Dit profiel legt regionale resourcebewerkingen vast zoals het aanmaken van virtuele machines, wijzigingen aan netwerkbeveiligingsgroepen, opslagaccountbewerkingen en alle andere activiteiten die plaatsvinden binnen specifieke Azure-regio's. Daarnaast blijven globale gebeurtenissen op abonnementsniveau altijd vastgelegd, ongeacht de configuratie. Deze aanpak zorgt ervoor dat security teams en auditors een volledig beeld hebben van alle activiteiten binnen de Azure-omgeving, wat essentieel is voor compliance, incidentrespons en risicomanagement.
Vereisten
Voor het configureren van een logprofiel dat alle Azure-regio's vastlegt, zijn enkele basisvereisten noodzakelijk. Ten eerste moet er een actief Azure-abonnement beschikbaar zijn met voldoende rechten om logprofielen of diagnostische instellingen te configureren. De gebruiker die de configuratie uitvoert moet minimaal de rol 'Log Analytics Contributor' of 'Monitoring Contributor' hebben, of beschikken over eigenaarsrechten op het abonnementsniveau. Voor organisaties die werken met Azure Policy of Infrastructure-as-Code is het raadzaam om deze configuratie te automatiseren via Azure Resource Manager-templates of Terraform-configuraties, zodat nieuwe abonnementen automatisch de juiste loggingconfiguratie krijgen.
Daarnaast moet er een bestemming worden gekozen voor de loggegevens. Traditioneel werden logprofielen gebruikt, maar Microsoft raadt nu aan om diagnostische instellingen te gebruiken omdat deze meer flexibiliteit bieden en beter aansluiten op moderne monitoringoplossingen. De loggegevens kunnen worden doorgestuurd naar een Log Analytics-werkruimte voor analyse en langetermijnopslag, naar een Azure Storage-account voor archivering, of naar een Event Hub voor realtime verwerking door SIEM-systemen. Voor Nederlandse overheidsorganisaties die moeten voldoen aan BIO-vereisten is een Log Analytics-werkruimte met langetermijnretentie de meest geschikte keuze, omdat dit forensisch onderzoek en compliance-audits ondersteunt.
Tot slot is het belangrijk om vooraf te bepalen welke retentieperiode nodig is. De Baseline Informatiebeveiliging Overheid vereist dat loggegevens worden bewaard voor minimaal zeven jaar voor kritieke systemen, maar voor operationele doeleinden is vaak een kortere periode voldoende. Het is raadzaam om een gelaagde aanpak te hanteren waarbij recente gegevens snel toegankelijk zijn in Log Analytics, terwijl oudere gegevens worden gearchiveerd naar goedkoper opslag zoals Azure Blob Storage met cool of archive access tiers. Deze strategie balanceert operationele behoeften met compliance-vereisten en kostenbeheersing.
Implementatie
Gebruik PowerShell-script log-profile-all-regions.ps1 (functie Invoke-Implementation) – Implementeren.
De implementatie van een logprofiel dat alle Azure-regio's vastlegt kan op verschillende manieren worden uitgevoerd. De traditionele methode gebruikt Azure CLI of PowerShell om een logprofiel aan te maken met de parameter 'locations' ingesteld op 'global' plus alle beschikbare Azure-regio's. Deze aanpak is echter verouderd en Microsoft raadt nu aan om diagnostische instellingen te gebruiken, die logprofielen vervangen en meer flexibiliteit bieden. Diagnostische instellingen kunnen worden geconfigureerd via de Azure Portal, Azure CLI, PowerShell, Azure Resource Manager-templates of Infrastructure-as-Code-tools zoals Terraform.
Voor de implementatie via diagnostische instellingen navigeert u in de Azure Portal naar het Activity Log van uw abonnement en selecteert u 'Diagnostische instellingen'. Hier maakt u een nieuwe diagnostische instelling aan waarbij u 'Alle regio's' selecteert in plaats van specifieke regio's. Vervolgens kiest u de bestemming voor de loggegevens, meestal een Log Analytics-werkruimte die is geconfigureerd voor langetermijnopslag en compliance. Het is belangrijk om alle relevante logcategorieën te selecteren, waaronder Administrative, Security, ServiceHealth, Alert en Recommendation, zodat een complete audittrail ontstaat.
Voor organisaties die automatisering prefereren, biedt het bijbehorende PowerShell-script log-profile-all-regions.ps1 een gestandaardiseerde manier om deze configuratie uit te voeren. Het script controleert eerst of er al een logprofiel of diagnostische instelling bestaat, valideert de benodigde rechten en configureert vervolgens automatisch logging voor alle regio's. Het script kan worden uitgevoerd als onderdeel van een deployment-pipeline of via Azure Automation voor consistente configuratie across alle abonnementen binnen een organisatie.
Na de implementatie is het essentieel om te verifiëren dat de configuratie correct werkt. Dit kan door een testresource aan te maken in een ongebruikelijke regio en te controleren of de bijbehorende gebeurtenissen worden vastgelegd in de Log Analytics-werkruimte. Daarnaast moeten monitoringqueries worden opgezet die detecteren wanneer activiteiten plaatsvinden in onverwachte regio's, wat kan wijzen op shadow IT of mogelijk kwaadaardige activiteit. Deze queries kunnen worden geautomatiseerd via Azure Monitor Alert Rules om security teams direct te waarschuwen bij verdachte patronen.
Voor organisaties met meerdere Azure-abonnementen is het raadzaam om deze configuratie te standaardiseren via Azure Policy. Een aangepast policy-definitie kan ervoor zorgen dat alle nieuwe en bestaande abonnementen automatisch worden geconfigureerd met logging voor alle regio's, waardoor compliance wordt geborgd zonder handmatige interventie. Deze policy kan worden toegevoegd aan een management group-hiërarchie zodat alle onderliggende abonnementen automatisch worden gedekt.
Compliance
Het configureren van logging voor alle Azure-regio's is een fundamentele vereiste binnen meerdere compliance-frameworks die relevant zijn voor Nederlandse overheidsorganisaties. De CIS Microsoft Azure Foundations Benchmark Level 1 specificeert expliciet dat logprofielen moeten worden geconfigureerd om alle regio's vast te leggen, omdat dit essentieel is voor een complete audittrail en detectie van onbevoegde activiteiten. Deze controle is geclassificeerd als Level 1, wat betekent dat het een basisbeveiligingsmaatregel is die door alle organisaties moet worden geïmplementeerd, ongeacht hun grootte of complexiteit.
Binnen de Baseline Informatiebeveiliging Overheid (BIO) sluit deze maatregel aan bij thema 12.04, dat betrekking heeft op logging en monitoring. Specifiek vereist BIO 12.04.01 dat organisaties uitgebreide logging implementeren die alle relevante gebeurtenissen binnen de informatievoorziening vastlegt. Door alle Azure-regio's te loggen voldoet een organisatie aan deze vereiste door te garanderen dat geen activiteiten worden gemist, ongeacht waar deze plaatsvinden binnen de cloudomgeving. Dit is met name belangrijk voor organisaties die werken met geografisch gedistribueerde workloads of die gebruik maken van Azure-regio's buiten Europa voor disaster recovery-doeleinden.
De ISO 27001:2022-standaard behandelt logging en monitoring in controle A.12.4.1, die vereist dat organisaties loggingfaciliteiten implementeren en deze regelmatig testen. Het vastleggen van activiteiten in alle regio's draagt bij aan deze controle door te zorgen voor complete dekking van alle systemen en diensten. Bovendien ondersteunt deze aanpak controle A.12.4.2, die betrekking heeft op het loggen van gebruikersactiviteiten, privileges en exceptions, omdat regionale activiteiten vaak verband houden met gebruikersacties en toegangscontroles.
Voor organisaties die moeten voldoen aan de NIS2-richtlijn is logging voor alle regio's relevant voor artikel 21, dat betrekking heeft op cybersecurity-maatregelen. Specifiek vereist NIS2 dat organisaties passende maatregelen treffen voor detectie en respons op incidenten, wat alleen mogelijk is met een complete audittrail. Wanneer activiteiten in bepaalde regio's niet worden gelogd, ontstaan blinde vlekken die kunnen worden misbruikt door aanvallers om detectie te vermijden. Door alle regio's te loggen wordt deze kwetsbaarheid geëlimineerd en kan de organisatie aantonen dat zij voldoet aan de detectievereisten uit NIS2.
Daarnaast is deze maatregel relevant voor de Algemene Verordening Gegevensbescherming (AVG), met name artikel 32 dat vereist dat organisaties passende technische en organisatorische maatregelen treffen om persoonsgegevens te beschermen. Logging vormt een essentieel onderdeel van deze maatregelen omdat het detectie van datalekken mogelijk maakt en forensisch onderzoek ondersteunt wanneer er een incident plaatsvindt. Wanneer persoonsgegevens worden verwerkt in Azure-regio's die niet worden gelogd, kan de organisatie niet aantonen dat zij adequate beveiligingsmaatregelen heeft getroffen, wat kan leiden tot boetes en reputatieschade.
Tijdens audits en assessments moeten organisaties kunnen aantonen dat hun loggingconfiguratie alle relevante activiteiten vastlegt. Dit betekent dat de configuratie moet worden gedocumenteerd, regelmatig moet worden gecontroleerd en dat er procedures moeten bestaan voor het analyseren van loggegevens. Door logging voor alle regio's te configureren en deze configuratie te automatiseren via Azure Policy, kan een organisatie tijdens een audit eenvoudig aantonen dat zij voldoet aan de compliance-vereisten en dat er geen blinde vlekken bestaan in de monitoring.
Monitoring
Gebruik PowerShell-script log-profile-all-regions.ps1 (functie Invoke-Monitoring) – Controleren.
Het monitoren van de loggingconfiguratie voor alle Azure-regio's is essentieel om te garanderen dat de maatregel effectief blijft en dat er geen configuratiedrift optreedt. Het bijbehorende PowerShell-script log-profile-all-regions.ps1 bevat een monitoringfunctie die regelmatig moet worden uitgevoerd om te controleren of de configuratie nog steeds correct is ingesteld. Deze functie valideert of het logprofiel of de diagnostische instelling nog steeds alle regio's vastlegt, controleert of de bestemming voor loggegevens nog steeds actief is en verifieert of er geen wijzigingen zijn aangebracht die de loggingdekking zouden kunnen verminderen.
Naast technische validatie is het belangrijk om te monitoren of de loggegevens daadwerkelijk worden ontvangen en opgeslagen. Dit kan worden gedaan door regelmatig Log Analytics-queries uit te voeren die controleren of gebeurtenissen uit verschillende regio's worden vastgelegd. Een goede monitoringstrategie omvat queries die detecteren wanneer er gedurende een bepaalde periode geen activiteiten worden gelogd uit regio's waar normaal gesproken wel activiteit plaatsvindt, wat kan wijzen op een configuratieprobleem of een storing in de loggingpipeline.
Voor proactieve monitoring kunnen Azure Monitor Alert Rules worden geconfigureerd die automatisch waarschuwingen genereren wanneer de loggingconfiguratie wordt gewijzigd of wanneer er gedurende langere tijd geen loggegevens worden ontvangen. Deze waarschuwingen moeten worden geconfigureerd met een passende severity-level en moeten worden doorgestuurd naar het security operations center of het beheerteam dat verantwoordelijk is voor de Azure-omgeving. Door deze automatisering wordt configuratiedrift snel gedetecteerd en kan er direct actie worden ondernomen om de loggingconfiguratie te herstellen.
Daarnaast is het raadzaam om periodiek te analyseren welke regio's daadwerkelijk worden gebruikt binnen de organisatie en of er activiteiten plaatsvinden in onverwachte regio's. Deze analyse kan worden uitgevoerd met KQL-queries in Log Analytics die groeperen op regio en de frequentie van activiteiten per regio weergeven. Wanneer activiteiten worden gedetecteerd in regio's die niet overeenkomen met het beleid of de verwachtingen van de organisatie, moet dit worden onderzocht om te bepalen of dit legitieme activiteit betreft of mogelijk wijst op shadow IT of kwaadaardige activiteit.
Voor organisaties die werken met meerdere Azure-abonnementen is het belangrijk om een gecentraliseerde monitoringaanpak te hanteren waarbij alle abonnementen worden gecontroleerd vanuit een centrale Log Analytics-werkruimte of via Azure Policy compliance-rapportages. Deze aanpak maakt het mogelijk om snel te identificeren welke abonnementen niet voldoen aan de loggingvereisten en om trends te analyseren across de gehele organisatie. Regelmatige compliance-scans, bijvoorbeeld maandelijks of kwartaal, helpen om te garanderen dat nieuwe abonnementen automatisch worden geconfigureerd en dat bestaande configuraties niet worden gewijzigd zonder autorisatie.
Tot slot moet de monitoringstrategie ook aandacht besteden aan de kosten en prestaties van de loggingconfiguratie. Het vastleggen van activiteiten uit alle regio's kan leiden tot aanzienlijke hoeveelheden loggegevens, vooral voor grote organisaties met veel Azure-resources. Het is belangrijk om regelmatig te controleren of de Log Analytics-werkruimte voldoende capaciteit heeft en of de kosten binnen de begroting blijven. Wanneer nodig kunnen data retention policies worden aangepast of kunnen oudere gegevens worden gearchiveerd naar goedkoper opslag, terwijl de compliance-vereisten voor langetermijnbewaring worden behouden.
Remediatie
Gebruik PowerShell-script log-profile-all-regions.ps1 (functie Invoke-Remediation) – Herstellen.
Wanneer monitoring detecteert dat de loggingconfiguratie niet langer alle Azure-regio's vastlegt, moet er direct actie worden ondernomen om deze situatie te herstellen. Het bijbehorende PowerShell-script log-profile-all-regions.ps1 bevat een remediatiefunctie die automatisch de juiste configuratie kan herstellen wanneer er een afwijking wordt gedetecteerd. Deze functie controleert eerst de huidige configuratie, identificeert wat er ontbreekt of incorrect is geconfigureerd, en past vervolgens de instellingen aan om te garanderen dat alle regio's weer worden vastgelegd.
Het remediatieproces begint met een grondige analyse van de huidige situatie. Het script controleert of er een logprofiel of diagnostische instelling bestaat, welke regio's momenteel worden vastgelegd, en of de bestemming voor loggegevens nog steeds actief en toegankelijk is. Wanneer er geen configuratie bestaat, wordt een nieuwe diagnostische instelling aangemaakt met 'Alle regio's' geselecteerd. Wanneer er wel een configuratie bestaat maar deze niet alle regio's vastlegt, wordt de configuratie bijgewerkt om de ontbrekende regio's toe te voegen.
Na het herstellen van de configuratie is het belangrijk om te verifiëren dat de remediatie succesvol is geweest. Dit wordt gedaan door een testgebeurtenis te genereren in een regio die voorheen niet werd gelogd en te controleren of deze gebeurtenis nu wel wordt vastgelegd in de Log Analytics-werkruimte. Daarnaast moet worden gecontroleerd of er geen negatieve impact is op bestaande loggingprocessen of op de prestaties van de Azure-omgeving. Wanneer de remediatie automatisch wordt uitgevoerd via het script, moet er altijd een melding worden gegenereerd naar het beheerteam zodat zij op de hoogte zijn van de wijziging en deze kunnen valideren.
Voor situaties waarin de configuratie handmatig moet worden hersteld, bijvoorbeeld wanneer er complexe afhankelijkheden zijn of wanneer automatisering niet mogelijk is, moet er een gestructureerd proces worden gevolgd. Dit proces begint met het documenteren van de huidige staat en het identificeren van de root cause van de afwijking. Vervolgens wordt een change request aangemaakt in het change management-proces van de organisatie, waarbij wordt beschreven wat er moet worden hersteld, waarom dit nodig is, en wat de verwachte impact is. Na goedkeuring wordt de configuratie handmatig aangepast via de Azure Portal of via Azure CLI, gevolgd door verificatie en documentatie van de nieuwe configuratie.
Wanneer de loggingconfiguratie is hersteld, is het belangrijk om te onderzoeken waarom de afwijking is ontstaan. Mogelijke oorzaken zijn onbevoegde wijzigingen door gebruikers, automatische updates door Azure-services, of configuratiedrift door handmatige interventies. Door de root cause te identificeren kunnen preventieve maatregelen worden genomen, zoals het implementeren van Azure Policy om te voorkomen dat de configuratie in de toekomst wordt gewijzigd, of het verbeteren van toegangscontroles om te garanderen dat alleen geautoriseerde gebruikers wijzigingen kunnen aanbrengen aan loggingconfiguraties.
Tot slot moet elke remediatie worden gedocumenteerd in het beheerregister van de organisatie, inclusief de datum en tijd van de afwijking, de oorzaak, de genomen acties, en de verificatie dat de remediatie succesvol was. Deze documentatie is belangrijk voor compliance-doeleinden en helpt bij het identificeren van patronen of terugkerende problemen. Wanneer remediaties regelmatig nodig zijn, kan dit wijzen op een structureel probleem met de configuratiemanagementprocessen of toegangscontroles, wat verdere aandacht vereist van het security- en beheerteam.
Compliance & Frameworks
- CIS M365: Control Azure - logprofiel (L1) -
- BIO: 12.04.01 -
- ISO 27001:2022: A.12.4.1 -
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).
Risico zonder implementatie
Management Samenvatting
Configureer Activity Log-export voor alle Azure-regio's in plaats van alleen specifieke regio's. Dit zorgt voor een complete audittrail die alle activiteiten binnen de cloudomgeving vastlegt, ongeacht de geografische locatie. De configuratie wordt uitgevoerd via diagnostische instellingen waarbij 'Alle regio's' wordt geselecteerd. Deze maatregel is kosteloos in termen van Azure-kosten en is verplicht volgens CIS Level 1. De implementatie neemt ongeveer 2-3 uur in beslag en garandeert complete dekking van alle Azure-activiteiten.
- Implementatietijd: 3 uur
- FTE required: 0.02 FTE