Compenserende Beveiligingsmaatregelen Tijdens Azure Migraties

💼 Management Samenvatting

Tijdens Azure-migraties kunnen primaire beveiligingsmaatregelen niet altijd direct worden geïmplementeerd vanwege technische beperkingen, legacy systemen, of tijdsdruk. Compenserende beveiligingsmaatregelen bieden een kritieke beveiligingslaag door alternatieve controles te implementeren die hetzelfde beveiligingsdoel bereiken wanneer primaire maatregelen tijdelijk niet beschikbaar zijn. Zonder gestructureerde compenserende maatregelen tijdens migraties kunnen Nederlandse overheidsorganisaties niet aantonen dat zij passende beveiligingsmaatregelen hebben geïmplementeerd gedurende de gehele migratieperiode, wat kan leiden tot niet-naleving van de Baseline Informatiebeveiliging Overheid (BIO), NIS2-vereisten, en andere relevante beveiligingsstandaarden.

Aanbeveling
IMPLEMENTEER COMPENSERENDE BEVEILIGINGSMAATREGELEN
Risico zonder
High
Risk Score
8/10
Implementatie
140u (tech: 60u)
Van toepassing op:
Azure Tenant
Cloud Migrations
Hybrid Environments
Legacy Systems

Azure-migraties zijn complexe projecten waarbij systemen, applicaties en gegevens worden verplaatst van on-premises omgevingen, andere cloudproviders, of legacy systemen naar Azure-cloudomgevingen. Tijdens deze migraties kunnen primaire beveiligingsmaatregelen niet altijd direct worden geïmplementeerd vanwege verschillende redenen: technische beperkingen waarbij legacy systemen bepaalde moderne beveiligingsmaatregelen niet ondersteunen, tijdsdruk waarbij migraties binnen strikte deadlines moeten worden voltooid zonder dat alle beveiligingsmaatregelen volledig kunnen worden geïmplementeerd, of afhankelijkheden waarbij bepaalde beveiligingsmaatregelen afhankelijk zijn van andere componenten die nog niet zijn gemigreerd. Zonder compenserende beveiligingsmaatregelen ontstaan er beveiligingsgaten tijdens de migratieperiode waarin systemen en gegevens kwetsbaar zijn voor beveiligingsincidenten. Voor Nederlandse overheidsorganisaties is het implementeren van compenserende beveiligingsmaatregelen tijdens migraties niet alleen een best practice, maar vaak ook een expliciete vereiste. De Baseline Informatiebeveiliging Overheid (BIO) vereist dat organisaties passende beveiligingsmaatregelen implementeren in alle fasen van de system lifecycle, inclusief tijdens migraties. Dit betekent dat organisaties moeten kunnen aantonen dat zij, zelfs wanneer primaire beveiligingsmaatregelen niet direct beschikbaar zijn, alternatieve maatregelen hebben geïmplementeerd die hetzelfde beveiligingsdoel bereiken. De NIS2-richtlijn stelt expliciete eisen aan beveiligingsmaatregelen voor essentiële en belangrijke entiteiten en vereist dat organisaties kunnen aantonen dat zij passende beveiligingsmaatregelen hebben geïmplementeerd, ook tijdens migraties. Zonder compenserende maatregelen kunnen organisaties niet voldoen aan deze verplichtingen, wat kan leiden tot kritieke auditbevindingen, mogelijke boetes, en reputatieschade. Compenserende beveiligingsmaatregelen helpen organisaties om deze risico's te mitigeren door alternatieve beveiligingscontroles te implementeren die hetzelfde beveiligingsdoel bereiken wanneer primaire maatregelen tijdelijk niet beschikbaar zijn. Deze maatregelen moeten worden gedocumenteerd, geïmplementeerd, gemonitord, en regelmatig worden geëvalueerd om te waarborgen dat zij effectief blijven. Wanneer primaire beveiligingsmaatregelen beschikbaar worden, moeten compenserende maatregelen worden vervangen door de primaire maatregelen, en moet worden gedocumenteerd dat de migratie is voltooid en dat alle beveiligingsmaatregelen correct zijn geïmplementeerd.

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

Implementatie

Compenserende beveiligingsmaatregelen tijdens Azure-migraties zijn alternatieve beveiligingscontroles die worden geïmplementeerd wanneer primaire beveiligingsmaatregelen tijdelijk niet beschikbaar zijn tijdens de migratieperiode. Het proces begint met het identificeren van primaire beveiligingsmaatregelen die niet direct kunnen worden geïmplementeerd tijdens de migratie, het analyseren van de beveiligingsrisico's die voortvloeien uit het ontbreken van deze maatregelen, en het identificeren van alternatieve compenserende maatregelen die hetzelfde beveiligingsdoel bereiken. Deze compenserende maatregelen moeten worden gedocumenteerd in een compenserende maatregelenregister, waarbij voor elke maatregel wordt vastgelegd welke primaire maatregel wordt gecompenseerd, waarom de primaire maatregel niet beschikbaar is, welke compenserende maatregel wordt geïmplementeerd, en wanneer de primaire maatregel zal worden geïmplementeerd. Het implementatieproces omvat verschillende componenten: technische compenserende maatregelen (bijvoorbeeld aanvullende netwerksegmentatie wanneer Azure-native netwerkbeveiliging nog niet beschikbaar is, extra logging en monitoring wanneer Azure-native security monitoring nog niet is geconfigureerd, of tijdelijke toegangscontroles wanneer Azure-native identity management nog niet volledig is geïmplementeerd), organisatorische compenserende maatregelen (bijvoorbeeld extra security reviews, aanvullende training voor migratieteams, of verhoogde monitoring van migratie-activiteiten), en procesmatige compenserende maatregelen (bijvoorbeeld extra approval-stappen voor wijzigingen tijdens migraties, aanvullende incident response procedures, of verhoogde reporting-vereisten). Voor elke compenserende maatregel moeten specifieke implementatie-instructies worden gedocumenteerd, moeten verantwoordelijkheden worden toegewezen, en moeten monitoring- en evaluatieprocessen worden geïmplementeerd. De resultaten van compenserende maatregelen worden gedocumenteerd in een compenserende maatregelenregister dat regelmatig wordt geëvalueerd en bijgewerkt. Wanneer primaire beveiligingsmaatregelen beschikbaar worden, moeten compenserende maatregelen worden vervangen door de primaire maatregelen, en moet worden gedocumenteerd dat de migratie is voltooid en dat alle beveiligingsmaatregelen correct zijn geïmplementeerd. Compenserende maatregelen moeten tijdelijk zijn en mogen niet permanent worden gebruikt als vervanging voor primaire maatregelen, tenzij er een zeer sterke business case is en passende risicoacceptatie wordt gedocumenteerd.

Vereisten voor Compenserende Beveiligingsmaatregelen

Voor het implementeren van effectieve compenserende beveiligingsmaatregelen tijdens Azure-migraties zijn specifieke organisatorische, technische en procesmatige vereisten noodzakelijk. Deze vereisten vormen de fundamentele basis voor een succesvol compenserende maatregelenprogramma en zijn essentieel om te kunnen voldoen aan BIO-vereisten, NIS2, en andere relevante beveiligingsstandaarden. Organisaties die deze vereisten niet volledig begrijpen of implementeren, lopen het risico dat zij niet beschikken over passende beveiligingsmaatregelen tijdens migraties en niet kunnen voldoen aan wettelijke en compliance-verplichtingen zoals vastgelegd in de Baseline Informatiebeveiliging Overheid en andere relevante frameworks. De primaire organisatorische vereiste is de aanwezigheid van een security team of functie die verantwoordelijk is voor het identificeren, implementeren en monitoren van compenserende beveiligingsmaatregelen tijdens migraties. Dit team moet beschikken over voldoende expertise op het gebied van informatiebeveiliging, Azure-technologie, risicomanagement, en migratieprocessen, hetzij intern via gespecialiseerde medewerkers, hetzij extern via consultants of gespecialiseerde dienstverleners. Het team speelt een cruciale rol bij het waarborgen dat compenserende maatregelen effectief zijn, dat alle relevante beveiligingsrisico's worden geadresseerd, en dat primaire maatregelen tijdig worden geïmplementeerd. Daarnaast moet de organisatie beschikken over duidelijke rollen en verantwoordelijkheden voor compenserende maatregelen, waarbij wordt vastgesteld wie verantwoordelijk is voor het identificeren van compenserende maatregelen, wie maatregelen moet reviewen en goedkeuren, en wie verantwoordelijk is voor het monitoren en evalueren van maatregelen. Deze expertise is essentieel omdat compenserende maatregelen technische kennis vereisen van Azure-services en -configuraties, methodologische kennis van risicomanagementprocessen, en organisatorische kennis van compliance-vereisten en best practices.

Technische vereisten omvatten de beschikbaarheid van tools en systemen voor het implementeren en monitoren van compenserende beveiligingsmaatregelen. Azure biedt verschillende native tools die kunnen worden gebruikt voor compenserende maatregelen, zoals Azure Security Center (Microsoft Defender for Cloud) voor het identificeren van beveiligingsaanbevelingen en kwetsbaarheden tijdens migraties, Azure Policy voor het controleren of compenserende maatregelen correct zijn geïmplementeerd, en Azure Monitor en Log Analytics voor het monitoren van beveiligingsgebeurtenissen tijdens migraties. Daarnaast kunnen organisaties gebruikmaken van on-premises beveiligingstools die tijdelijk blijven functioneren tijdens migraties, zoals on-premises firewalls voor aanvullende netwerkbeveiliging, on-premises SIEM-systemen voor aanvullende logging en monitoring, of on-premises identity management systemen voor aanvullende toegangscontrole. Belangrijk is dat deze tools geïntegreerd zijn met de Azure-omgeving waar mogelijk en dat de benodigde machtigingen zijn geconfigureerd voor het verzamelen van de vereiste informatie zonder de beveiliging te compromitteren. Voor organisaties die gebruikmaken van complexe migratiescenario's is het essentieel dat compenserende maatregelen kunnen worden toegepast op alle migratiecomponenten, zodat een consistent beveiligingsniveau wordt gehandhaafd gedurende de gehele migratieperiode.

Procesmatige vereisten omvatten het hebben van een gedocumenteerde methodologie voor het identificeren, implementeren en monitoren van compenserende beveiligingsmaatregelen. Deze methodologie moet gebaseerd zijn op erkende standaarden zoals ISO 27001, NIST Cybersecurity Framework, of de BIO-richtlijnen voor risicomanagement, en moet specifiek zijn aangepast aan de context van Azure-migraties. De methodologie moet expliciet definiëren wanneer compenserende maatregelen moeten worden geïmplementeerd (bijvoorbeeld wanneer primaire maatregelen niet beschikbaar zijn, wanneer migraties worden uitgevoerd in fasen, of wanneer legacy systemen bepaalde moderne beveiligingsmaatregelen niet ondersteunen), welke stappen moeten worden gevolgd bij het identificeren en implementeren van compenserende maatregelen, welke criteria moeten worden gebruikt voor het beoordelen van de effectiviteit van compenserende maatregelen, en hoe de resultaten moeten worden gedocumenteerd en gecommuniceerd. Daarnaast moet het proces voorzien in regelmatige evaluaties van compenserende maatregelen, bijvoorbeeld maandelijks of wanneer significante wijzigingen optreden in migratieprocessen, om te waarborgen dat compenserende maatregelen effectief blijven en dat primaire maatregelen tijdig worden geïmplementeerd. Het proces moet ook voorzien in een gestructureerd mechanisme voor het vervangen van compenserende maatregelen door primaire maatregelen wanneer deze beschikbaar worden, waarbij wordt vastgesteld wanneer primaire maatregelen beschikbaar zijn, welke stappen moeten worden gevolgd bij het vervangen van compenserende maatregelen, en hoe wordt gedocumenteerd dat de migratie is voltooid en dat alle beveiligingsmaatregelen correct zijn geïmplementeerd.

Voor Nederlandse overheidsorganisaties zijn er aanvullende vereisten die voortvloeien uit de specifieke context van de publieke sector. Organisaties moeten kunnen aantonen dat compenserende beveiligingsmaatregelen zijn geïmplementeerd en dat de resultaten zijn geïntegreerd in het bredere risicomanagement- en compliance-kader van de organisatie. Dit betekent dat compenserende maatregelen moeten worden gekoppeld aan andere risicomanagementprocessen, zoals migratieplanning, compliance-audits, en security assessments. Daarnaast moeten organisaties kunnen aantonen dat zij transparant zijn over hun compenserende maatregelen en mitigerende maatregelen, bijvoorbeeld door het rapporteren over compenserende maatregelen aan bestuurders en toezichthouders, en door het documenteren van compenserende maatregelen in een centraal register. Het is cruciaal te realiseren dat zonder de juiste organisatorische, technische en procesmatige vereisten compenserende beveiligingsmaatregelen niet effectief kunnen worden geïmplementeerd en organisaties niet kunnen voldoen aan BIO-vereisten, NIS2, en andere relevante beveiligingsstandaarden, wat kan leiden tot auditbevindingen, reputatieschade en verhoogde kwetsbaarheid voor beveiligingsincidenten tijdens migraties.

Implementatie van Compenserende Beveiligingsmaatregelen

De implementatie van compenserende beveiligingsmaatregelen tijdens Azure-migraties vereist een gestructureerde aanpak die begint met het identificeren van primaire beveiligingsmaatregelen die niet direct kunnen worden geïmplementeerd, gevolgd door het analyseren van beveiligingsrisico's, het identificeren van compenserende maatregelen, de implementatie van deze maatregelen, en de monitoring en evaluatie van de effectiviteit. Hoewel compenserende maatregelen in essentie een procesmatige activiteit zijn, kunnen Azure-native tools en automatisering worden gebruikt om bepaalde aspecten van het proces te ondersteunen en te versnellen, zoals het monitoren van compenserende maatregelen, het identificeren van wanneer primaire maatregelen beschikbaar worden, en het rapporteren over de status van compenserende maatregelen.

De eerste stap in het implementatieproces is het identificeren van primaire beveiligingsmaatregelen die niet direct kunnen worden geïmplementeerd tijdens de migratie. Dit begint met een security assessment van de migratieomgeving, waarbij wordt geëvalueerd welke beveiligingsmaatregelen vereist zijn volgens de Baseline Informatiebeveiliging Overheid (BIO), NIS2-vereisten, ISO 27001, en andere relevante beveiligingsstandaarden, en welke van deze maatregelen niet direct kunnen worden geïmplementeerd vanwege technische beperkingen, legacy systemen, of tijdsdruk. Voor elke primaire maatregel die niet direct beschikbaar is, moet worden vastgesteld waarom de maatregel niet beschikbaar is (bijvoorbeeld technische beperkingen, legacy systemen, afhankelijkheden, of tijdsdruk), welke beveiligingsrisico's voortvloeien uit het ontbreken van de maatregel, en wanneer de primaire maatregel naar verwachting beschikbaar zal zijn. Deze informatie vormt de basis voor het identificeren van compenserende maatregelen die hetzelfde beveiligingsdoel bereiken.

Na het identificeren van primaire maatregelen die niet direct beschikbaar zijn, moeten compenserende maatregelen worden geïdentificeerd die hetzelfde beveiligingsdoel bereiken. Compenserende maatregelen kunnen verschillende vormen aannemen, afhankelijk van het type primaire maatregel en de beschikbare alternatieven: technische compenserende maatregelen (bijvoorbeeld aanvullende netwerksegmentatie wanneer Azure-native netwerkbeveiliging nog niet beschikbaar is, extra logging en monitoring wanneer Azure-native security monitoring nog niet is geconfigureerd, of tijdelijke toegangscontroles wanneer Azure-native identity management nog niet volledig is geïmplementeerd), organisatorische compenserende maatregelen (bijvoorbeeld extra security reviews, aanvullende training voor migratieteams, of verhoogde monitoring van migratie-activiteiten), en procesmatige compenserende maatregelen (bijvoorbeeld extra approval-stappen voor wijzigingen tijdens migraties, aanvullende incident response procedures, of verhoogde reporting-vereisten). Voor elke compenserende maatregel moet worden vastgesteld welke primaire maatregel wordt gecompenseerd, waarom de compenserende maatregel effectief is in het bereiken van hetzelfde beveiligingsdoel, welke resources en expertise nodig zijn voor implementatie, en hoe de effectiviteit van de compenserende maatregel wordt gemonitord en geëvalueerd.

De implementatie van compenserende maatregelen moet worden uitgevoerd volgens de gedocumenteerde methodologie, waarbij voor elke compenserende maatregel specifieke implementatie-instructies worden gevolgd, verantwoordelijkheden worden toegewezen, en monitoring- en evaluatieprocessen worden geïmplementeerd. Implementatie-instructies moeten expliciet definiëren welke stappen moeten worden gevolgd bij het implementeren van de compenserende maatregel, welke tools en systemen moeten worden gebruikt, welke configuraties moeten worden toegepast, en hoe wordt geverifieerd dat de compenserende maatregel correct is geïmplementeerd. Verantwoordelijkheden moeten worden toegewezen aan specifieke personen of teams, waarbij wordt vastgesteld wie verantwoordelijk is voor de implementatie, wie verantwoordelijk is voor het monitoren van de effectiviteit, en wie verantwoordelijk is voor het evalueren en bijwerken van de compenserende maatregel. Monitoring- en evaluatieprocessen moeten regelmatig worden uitgevoerd, bijvoorbeeld wekelijks of maandelijks, om te waarborgen dat compenserende maatregelen effectief blijven en dat primaire maatregelen tijdig worden geïmplementeerd.

Alle compenserende maatregelen moeten worden gedocumenteerd in een compenserende maatregelenregister dat centraal wordt beheerd en regelmatig wordt bijgewerkt. Het register moet voor elke compenserende maatregel de volgende informatie bevatten: welke primaire maatregel wordt gecompenseerd, waarom de primaire maatregel niet beschikbaar is, welke compenserende maatregel wordt geïmplementeerd, wanneer de compenserende maatregel is geïmplementeerd, wie verantwoordelijk is voor de implementatie en monitoring, hoe de effectiviteit wordt gemonitord en geëvalueerd, en wanneer de primaire maatregel naar verwachting beschikbaar zal zijn. Het register moet regelmatig worden geëvalueerd, bijvoorbeeld maandelijks, om te waarborgen dat compenserende maatregelen effectief blijven, dat primaire maatregelen tijdig worden geïmplementeerd, en dat nieuwe compenserende maatregelen worden geïdentificeerd wanneer nodig. Wanneer primaire beveiligingsmaatregelen beschikbaar worden, moeten compenserende maatregelen worden vervangen door de primaire maatregelen, en moet worden gedocumenteerd dat de migratie is voltooid en dat alle beveiligingsmaatregelen correct zijn geïmplementeerd.

Na de initiële implementatie moeten compenserende maatregelen regelmatig worden geëvalueerd om te waarborgen dat zij effectief blijven en dat primaire maatregelen tijdig worden geïmplementeerd. Evaluaties moeten worden uitgevoerd volgens de gedocumenteerde methodologie, waarbij wordt gecontroleerd of compenserende maatregelen daadwerkelijk de beoogde beveiligingsrisico's reduceren, of primaire maatregelen beschikbaar zijn geworden, en of nieuwe compenserende maatregelen nodig zijn. Evaluaties moeten worden gedocumenteerd en gecommuniceerd met relevante stakeholders, inclusief migratieteams, security teams, en management. Op basis van evaluaties moeten compenserende maatregelen worden bijgewerkt, vervangen door primaire maatregelen wanneer deze beschikbaar zijn, of nieuwe compenserende maatregelen worden geïmplementeerd wanneer nodig. Azure Security Center (Microsoft Defender for Cloud) biedt continue monitoring en beveiligingsaanbevelingen die kunnen worden gebruikt als input voor evaluatie-activiteiten, en kan worden geconfigureerd om automatisch te rapporteren over de status van compenserende maatregelen.

Typen Compenserende Beveiligingsmaatregelen

Compenserende beveiligingsmaatregelen tijdens Azure-migraties kunnen worden gecategoriseerd in verschillende typen, afhankelijk van het type primaire maatregel die wordt gecompenseerd en de beschikbare alternatieven. Het begrijpen van deze verschillende typen is essentieel voor het effectief identificeren en implementeren van compenserende maatregelen die hetzelfde beveiligingsdoel bereiken wanneer primaire maatregelen tijdelijk niet beschikbaar zijn. Voor Nederlandse overheidsorganisaties moeten compenserende maatregelen expliciet aansluiten bij de Baseline Informatiebeveiliging Overheid (BIO), ISO 27001, NIS2-vereisten, en andere relevante normen en wetgeving.

Technische compenserende maatregelen compenseren primaire technische beveiligingsmaatregelen die niet direct kunnen worden geïmplementeerd tijdens migraties. Deze maatregelen omvatten netwerkbeveiliging, waarbij aanvullende netwerksegmentatie wordt geïmplementeerd wanneer Azure-native netwerkbeveiliging (zoals Network Security Groups of Azure Firewall) nog niet beschikbaar is, bijvoorbeeld door gebruik te maken van on-premises firewalls voor aanvullende netwerkbeveiliging, of door gebruik te maken van VPN-verbindingen voor beveiligde communicatie. Toegangscontrole compenserende maatregelen compenseren primaire toegangscontrolemaatregelen wanneer Azure-native identity management (zoals Azure AD of Conditional Access) nog niet volledig is geïmplementeerd, bijvoorbeeld door gebruik te maken van on-premises identity management systemen voor aanvullende toegangscontrole, of door gebruik te maken van tijdelijke toegangsbeperkingen en extra approval-stappen. Versleuteling compenserende maatregelen compenseren primaire versleutelingsmaatregelen wanneer Azure-native versleuteling (zoals Azure Key Vault of customer-managed keys) nog niet beschikbaar is, bijvoorbeeld door gebruik te maken van on-premises versleutelingstools voor aanvullende dataversleuteling, of door gebruik te maken van applicatie-level versleuteling wanneer infrastructure-level versleuteling nog niet beschikbaar is.

Monitoring en logging compenserende maatregelen compenseren primaire monitoring- en loggingmaatregelen wanneer Azure-native security monitoring (zoals Azure Security Center of Azure Sentinel) nog niet is geconfigureerd. Deze maatregelen omvatten aanvullende logging, waarbij uitgebreide audit logs worden bijgehouden via on-premises SIEM-systemen of andere logging-tools wanneer Azure-native logging nog niet beschikbaar is, of waarbij applicatie-level logging wordt geïmplementeerd wanneer infrastructure-level logging nog niet beschikbaar is. Security monitoring compenserende maatregelen compenseren primaire security monitoring wanneer Azure-native security monitoring nog niet is geconfigureerd, bijvoorbeeld door gebruik te maken van on-premises SIEM-systemen voor aanvullende security monitoring, of door gebruik te maken van externe security monitoring services voor aanvullende threat detection. Incident response compenserende maatregelen compenseren primaire incident response capabilities wanneer Azure-native incident response tools nog niet beschikbaar zijn, bijvoorbeeld door gebruik te maken van on-premises incident response procedures en tools, of door gebruik te maken van externe incident response services voor aanvullende incident response capabilities.

Organisatorische compenserende maatregelen compenseren primaire organisatorische beveiligingsmaatregelen wanneer deze niet direct kunnen worden geïmplementeerd tijdens migraties. Deze maatregelen omvatten security governance, waarbij extra security reviews worden uitgevoerd wanneer Azure-native security governance tools nog niet beschikbaar zijn, of waarbij aanvullende security policies en procedures worden geïmplementeerd wanneer Azure-native policy management nog niet is geconfigureerd. Security awareness compenserende maatregelen compenseren primaire security awareness programma's wanneer deze niet direct kunnen worden geïmplementeerd, bijvoorbeeld door gebruik te maken van tijdelijke security awareness training voor migratieteams, of door gebruik te maken van externe security awareness services voor aanvullende training. Change management compenserende maatregelen compenseren primaire change management processen wanneer Azure-native change management tools nog niet beschikbaar zijn, bijvoorbeeld door gebruik te maken van on-premises change management procedures en tools, of door gebruik te maken van extra approval-stappen en security reviews voor wijzigingen tijdens migraties.

Procesmatige compenserende maatregelen compenseren primaire procesmatige beveiligingsmaatregelen wanneer deze niet direct kunnen worden geïmplementeerd tijdens migraties. Deze maatregelen omvatten risk management, waarbij extra risk assessments worden uitgevoerd wanneer Azure-native risk management tools nog niet beschikbaar zijn, of waarbij aanvullende risk mitigation procedures worden geïmplementeerd wanneer Azure-native risk management nog niet is geconfigureerd. Compliance compenserende maatregelen compenseren primaire compliance-maatregelen wanneer deze niet direct kunnen worden geïmplementeerd, bijvoorbeeld door gebruik te maken van on-premises compliance monitoring tools, of door gebruik te maken van externe compliance services voor aanvullende compliance monitoring en reporting. Business continuity compenserende maatregelen compenseren primaire business continuity maatregelen wanneer Azure-native disaster recovery en backup capabilities nog niet beschikbaar zijn, bijvoorbeeld door gebruik te maken van on-premises backup en disaster recovery procedures, of door gebruik te maken van externe disaster recovery services voor aanvullende business continuity capabilities.

Het is belangrijk om te realiseren dat compenserende maatregelen tijdelijk zijn en mogen niet permanent worden gebruikt als vervanging voor primaire maatregelen, tenzij er een zeer sterke business case is en passende risicoacceptatie wordt gedocumenteerd. Compenserende maatregelen moeten worden geëvalueerd en bijgewerkt wanneer primaire maatregelen beschikbaar worden, en moeten worden vervangen door primaire maatregelen zodra deze beschikbaar zijn. Daarnaast moeten compenserende maatregelen regelmatig worden geëvalueerd om te waarborgen dat zij effectief blijven en dat nieuwe compenserende maatregelen worden geïdentificeerd wanneer nodig. Door deze verschillende typen compenserende maatregelen te begrijpen en effectief te implementeren, kunnen organisaties waarborgen dat passende beveiligingsmaatregelen worden gehandhaafd gedurende de gehele migratieperiode, zelfs wanneer primaire maatregelen tijdelijk niet beschikbaar zijn.

Compliance en Auditing

Compenserende beveiligingsmaatregelen tijdens Azure-migraties zijn een fundamentele vereiste voor naleving van verschillende beveiligingsstandaarden en frameworks die van toepassing zijn op Nederlandse overheidsorganisaties. Zonder systematische compenserende maatregelen kunnen organisaties niet voldoen aan de vereisten van de Baseline Informatiebeveiliging Overheid (BIO), NIS2, ISO 27001, en andere relevante beveiligingsstandaarden. Deze frameworks vereisen allemaal dat organisaties kunnen aantonen dat zij passende beveiligingsmaatregelen hebben geïmplementeerd in alle fasen van de system lifecycle, inclusief tijdens migraties, wat essentieel is voor het waarborgen van informatiebeveiliging en het voldoen aan wettelijke en compliance-verplichtingen.

De Baseline Informatiebeveiliging Overheid (BIO) vereist dat organisaties passende beveiligingsmaatregelen implementeren in alle fasen van de system lifecycle, inclusief tijdens migraties. BIO-normen rond risicomanagement en beveiligingsmaatregelen stellen expliciete eisen aan het identificeren en beheersen van beveiligingsrisico's, ook wanneer primaire maatregelen tijdelijk niet beschikbaar zijn. Voor Azure-migraties betekent dit dat compenserende maatregelen moeten worden geïmplementeerd en dat organisaties kunnen aantonen dat zij passende beveiligingsmaatregelen hebben gehandhaafd gedurende de gehele migratieperiode. Het niet implementeren van adequate compenserende maatregelen kan leiden tot niet-naleving van BIO-vereisten, wat kan resulteren in aanbevelingen van toezichthouders en mogelijke auditbevindingen.

De NIS2-richtlijn stelt specifieke eisen aan essentiële en belangrijke entiteiten met betrekking tot beveiligingsmaatregelen en vereist dat organisaties maatregelen implementeren voor het beheren van beveiligingsrisico's, ook tijdens migraties. Nederlandse organisaties die onder de reikwijdte van NIS2 vallen, moeten kunnen aantonen dat zij beschikken over adequate processen om beveiligingsrisico's te identificeren, te beoordelen en te mitigeren, ook wanneer primaire maatregelen tijdelijk niet beschikbaar zijn. Dit betekent dat zij moeten beschikken over uitgebreide compenserende maatregelenprocessen die alle relevante beveiligingsrisico's adresseren. Voor Azure-migraties betekent dit dat compenserende maatregelen moeten worden geïmplementeerd en dat organisaties kunnen aantonen dat zij beveiligingsrisico's kunnen identificeren en mitigeren op basis van compenserende maatregelen. Het niet implementeren van adequate compenserende maatregelen kan leiden tot niet-naleving van NIS2, wat kan resulteren in boetes en andere handhavingsmaatregelen door de Autoriteit Consument en Markt (ACM) of andere toezichthouders.

Voor ISO 27001 bieden compenserende maatregelen een mechanisme om te verifiëren dat passende beveiligingsmaatregelen worden gehandhaafd, ook wanneer primaire maatregelen tijdelijk niet beschikbaar zijn. ISO 27001 vereist dat organisaties beveiligingsmaatregelen implementeren die gebaseerd zijn op risicobeoordelingen, en dat zij kunnen aantonen dat deze maatregelen effectief zijn. Compenserende maatregelen, gecombineerd met regelmatige beveiligingsbeoordelingen en audits, vormen essentiële audit-evidentie voor ISO 27001-certificering. Tijdens ISO 27001 audits moeten organisaties kunnen aantonen dat compenserende maatregelen effectief zijn, dat problemen worden geïdentificeerd en opgelost, en dat er processen zijn voor het verbeteren van beveiliging op basis van compenserende maatregelen. Het is belangrijk om deze processen te documenteren en regelmatig te testen om te verifiëren dat zij effectief blijven.

Voor audit-doeleinden is het essentieel dat alle aspecten van compenserende maatregelen aantoonbaar zijn gedocumenteerd. Dit omvat het vastleggen van de methodologie voor het identificeren en implementeren van compenserende maatregelen, het compenserende maatregelenregister met alle geïmplementeerde compenserende maatregelen, de evaluaties van de effectiviteit van compenserende maatregelen, en de vervanging van compenserende maatregelen door primaire maatregelen wanneer deze beschikbaar worden. Deze documentatie moet centraal en controleerbaar zijn opgeslagen, met bewaartermijnen die aansluiten bij wettelijke en organisatorische eisen (bijvoorbeeld zeven jaar voor compliance-doeleinden), zodat auditors en toezichthouders op ieder moment een compleet beeld kunnen krijgen van hoe organisaties compenserende maatregelen beheren tijdens migraties. Daarnaast moeten organisaties kunnen aantonen dat compenserende maatregelen regelmatig worden geëvalueerd en dat primaire maatregelen tijdig worden geïmplementeerd wanneer deze beschikbaar worden.

Monitoring

Gebruik PowerShell-script compensating-controls.ps1 (functie Invoke-Monitoring) – Controleert de status van compenserende beveiligingsmaatregelen tijdens Azure-migraties en identificeert wanneer primaire maatregelen beschikbaar worden.

Effectieve monitoring van compenserende beveiligingsmaatregelen tijdens Azure-migraties is essentieel om te waarborgen dat compenserende maatregelen effectief blijven, dat primaire maatregelen tijdig worden geïmplementeerd, en dat nieuwe compenserende maatregelen worden geïdentificeerd wanneer nodig. Zonder uitgebreide monitoring kunnen organisaties niet garanderen dat compenserende maatregelen up-to-date blijven, dat geïdentificeerde risico's daadwerkelijk worden gemitigeerd, en dat nieuwe risico's die ontstaan door wijzigingen in migratieprocessen tijdig worden geïdentificeerd. Monitoring omvat het continu volgen van de status van compenserende maatregelen, het verifiëren dat compenserende maatregelen effectief zijn, het monitoren van wanneer primaire maatregelen beschikbaar worden, en het waarborgen dat compenserende maatregelen worden vervangen door primaire maatregelen wanneer deze beschikbaar zijn.

De basis van monitoring wordt gevormd door regelmatige verificatie van de status van compenserende maatregelen via het compenserende maatregelenregister. Beheerders moeten wekelijks of maandelijks controleren of alle geïdentificeerde compenserende maatregelen zijn geïmplementeerd, of deze maatregelen effectief zijn, of primaire maatregelen beschikbaar zijn geworden, en of compenserende maatregelen zijn vervangen door primaire maatregelen wanneer deze beschikbaar zijn. Deze verificatie kan worden geautomatiseerd via scripts of tools die de status van compenserende maatregelen controleren en waarschuwingen genereren wanneer compenserende maatregelen verouderd zijn, wanneer primaire maatregelen beschikbaar zijn geworden, of wanneer nieuwe compenserende maatregelen nodig zijn. Het is belangrijk om deze verificaties regelmatig uit te voeren, omdat wijzigingen in migratieprocessen, nieuwe bedreigingen, of wijzigingen in wet- en regelgeving kunnen leiden tot nieuwe beveiligingsrisico's die aandacht vereisen.

Naast het controleren van de status van compenserende maatregelen moeten organisaties regelmatig monitoren of primaire maatregelen beschikbaar zijn geworden. Dit omvat het monitoren van de migratievoortgang om te bepalen wanneer primaire maatregelen beschikbaar worden, het controleren van Azure-configuraties om te verifiëren dat primaire maatregelen correct zijn geïmplementeerd, en het evalueren van de effectiviteit van primaire maatregelen om te bepalen of compenserende maatregelen kunnen worden vervangen. Azure-native tools zoals Azure Resource Graph kunnen worden gebruikt om regelmatig de Azure-omgeving te scannen op nieuwe resources en configuraties die wijzen op de beschikbaarheid van primaire maatregelen, en Azure Policy kan worden gebruikt om te controleren of primaire maatregelen correct zijn geïmplementeerd. Azure Security Center (Microsoft Defender for Cloud) biedt continue monitoring en beveiligingsaanbevelingen die kunnen worden gebruikt als input voor het bepalen van wanneer primaire maatregelen beschikbaar zijn. Wanneer primaire maatregelen beschikbaar zijn geworden, moeten compenserende maatregelen worden vervangen door de primaire maatregelen, en moet worden gedocumenteerd dat de migratie is voltooid en dat alle beveiligingsmaatregelen correct zijn geïmplementeerd.

Voor organisaties die gebruikmaken van geautomatiseerde monitoringprocessen is het essentieel om te monitoren of deze processen correct functioneren. Dit omvat het controleren of compenserende maatregelen correct worden geïdentificeerd en geïmplementeerd, of monitoring-resultaten accuraat zijn, en of primaire maatregelen tijdig worden geïmplementeerd wanneer deze beschikbaar worden. Problemen met geautomatiseerde processen kunnen leiden tot situaties waarin compenserende maatregelen niet worden geïdentificeerd, waarin monitoring-resultaten onjuist zijn, of waarin primaire maatregelen niet tijdig worden geïmplementeerd, wat kan resulteren in niet-naleving van BIO-vereisten, NIS2, of andere relevante beveiligingsstandaarden. Organisaties moeten processen implementeren voor het monitoren van geautomatiseerde monitoringprocessen, waarbij wekelijks of maandelijks wordt gecontroleerd of processen correct functioneren en waarbij waarschuwingen worden gegenereerd wanneer problemen worden gedetecteerd.

Daarnaast moeten organisaties processen implementeren voor het monitoren van de effectiviteit van geïmplementeerde compenserende maatregelen, om te verifiëren dat deze maatregelen daadwerkelijk de beoogde beveiligingsrisico's reduceren. Dit omvat het regelmatig controleren of compenserende maatregelen correct blijven geïmplementeerd (bijvoorbeeld netwerksegmentatie, logging, toegangscontroles), het monitoren van beveiligingsgebeurtenissen om te verifiëren dat geïmplementeerde compenserende maatregelen effectief zijn, en het analyseren van security incidents om te bepalen of geïmplementeerde compenserende maatregelen effectief zijn geweest in het voorkomen of mitigeren van beveiligingsrisico's. Op basis van deze monitoring kunnen organisaties bepalen of aanvullende compenserende maatregelen nodig zijn, of bestaande compenserende maatregelen moeten worden aangepast, of dat nieuwe beveiligingsrisico's zijn ontstaan die aandacht vereisen. Azure Security Center (Microsoft Defender for Cloud) biedt dashboards en rapporten die kunnen worden gebruikt om de effectiviteit van compenserende maatregelen te monitoren en trends in beveiligingsrisico's te identificeren.

Remediatie

Gebruik PowerShell-script compensating-controls.ps1 (functie Invoke-Remediation) – Ondersteunt het remediatieproces door compenserende maatregelen te identificeren die moeten worden geïmplementeerd en door aanbevelingen te geven voor het vervangen van compenserende maatregelen door primaire maatregelen.

Remediatie van beveiligingsrisico's tijdens Azure-migraties omvat het implementeren van compenserende maatregelen voor geïdentificeerde risico's, het corrigeren van configuratiefouten die beveiligingsrisico's kunnen veroorzaken, en het waarborgen dat alle compenserende maatregelen correct zijn geïmplementeerd en effectief blijven. Het is belangrijk om te realiseren dat beveiligingsrisico's kunnen voortvloeien uit verschillende bronnen, zoals ontbrekende primaire maatregelen, onjuiste configuraties van compenserende maatregelen, onvoldoende monitoring van compenserende maatregelen, of niet-tijdige vervanging van compenserende maatregelen door primaire maatregelen, en dat remediatie daarom een brede aanpak vereist die zowel technische als organisatorische maatregelen omvat.

Wanneer beveiligingsrisico's worden geïdentificeerd tijdens migraties, moeten deze worden geprioriteerd op basis van waarschijnlijkheid en impact, en moeten passende compenserende maatregelen worden geïdentificeerd en geïmplementeerd. Voor technische risico's, zoals ontbrekende netwerkbeveiliging of toegangscontrole, kunnen compenserende maatregelen bestaan uit het implementeren van aanvullende netwerksegmentatie, het implementeren van tijdelijke toegangscontroles, of het implementeren van extra logging en monitoring. Voor organisatorische risico's, zoals ontbrekende security processes of incident response procedures, kunnen compenserende maatregelen bestaan uit het implementeren van extra security reviews, het implementeren van aanvullende incident response procedures, of het implementeren van verhoogde monitoring van migratie-activiteiten. Voor procesmatige risico's, zoals ontbrekende change management of compliance monitoring, kunnen compenserende maatregelen bestaan uit het implementeren van extra approval-stappen voor wijzigingen, het implementeren van aanvullende compliance monitoring, of het implementeren van verhoogde reporting-vereisten.

Azure Policy kan worden gebruikt om bepaalde beveiligingsgerelateerde configuratiefouten automatisch te remediëren voor compenserende maatregelen, bijvoorbeeld door policies te creëren die automatisch aanvullende netwerksegmentatie configureren, die automatisch extra logging inschakelen, of die automatisch tijdelijke toegangscontroles implementeren. Deze geautomatiseerde remediatie helpt om beveiligingsrisico's snel te mitigeren en voorkomt dat configuratiefouten onopgemerkt blijven. Belangrijk is dat geautomatiseerde remediatie wordt getest in een testomgeving voordat deze wordt toegepast op productie, om te voorkomen dat legitieme configuraties onterecht worden gewijzigd of dat workloads worden verstoord. Azure Security Center (Microsoft Defender for Cloud) biedt beveiligingsaanbevelingen die kunnen worden gebruikt als input voor remediatie-activiteiten, en kan worden geconfigureerd om automatisch bepaalde beveiligingsconfiguraties te implementeren.

Na het implementeren van compenserende maatregelen moeten organisaties verifiëren dat deze maatregelen daadwerkelijk de beoogde beveiligingsrisico's reduceren. Dit kan worden gedaan door het monitoren van beveiligingsgebeurtenissen om te verifiëren dat geïmplementeerde compenserende maatregelen effectief zijn, door het analyseren van security incidents om te bepalen of geïmplementeerde compenserende maatregelen effectief zijn geweest, of door het opnieuw uitvoeren van security assessments om te verifiëren dat beveiligingsrisico's zijn gereduceerd. Als compenserende maatregelen niet het beoogde effect hebben, moeten aanvullende maatregelen worden geïdentificeerd en geïmplementeerd, of moeten risico's worden geëscaleerd naar het management voor acceptatie met expliciete goedkeuring en documentatie van de rationale. Voor compenserende maatregelen die herhaaldelijk niet effectief zijn of die niet correct worden geïmplementeerd, moeten organisaties overwegen om alternatieve compenserende maatregelen te identificeren en te implementeren.

Wanneer primaire beveiligingsmaatregelen beschikbaar worden, moeten compenserende maatregelen worden vervangen door de primaire maatregelen, en moet worden gedocumenteerd dat de migratie is voltooid en dat alle beveiligingsmaatregelen correct zijn geïmplementeerd. Het vervangingsproces moet worden uitgevoerd volgens de gedocumenteerde methodologie, waarbij wordt vastgesteld wanneer primaire maatregelen beschikbaar zijn, welke stappen moeten worden gevolgd bij het vervangen van compenserende maatregelen, en hoe wordt geverifieerd dat primaire maatregelen correct zijn geïmplementeerd. Na het vervangen van compenserende maatregelen door primaire maatregelen moeten organisaties verifiëren dat primaire maatregelen effectief zijn en dat alle beveiligingsrisico's zijn geadresseerd. Daarnaast moeten organisaties processen implementeren voor het continu verbeteren van compenserende maatregelenprocessen, op basis van lessons learned, wijzigingen in bedreigingslandschap, en wijzigingen in wet- en regelgeving, zodat compenserende maatregelen up-to-date blijven en effectief blijven in het mitigeren van beveiligingsrisico's tijdens migraties.

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 Compenserende Beveiligingsmaatregelen tijdens Azure Migraties - Monitoring en Automatisering .DESCRIPTION Ondersteunt compenserende beveiligingsmaatregelen tijdens Azure-migraties: - Controleert compenserende maatregelenconfiguraties en procedures - Monitort wanneer primaire maatregelen beschikbaar worden - Automatiseert verzameling van relevante informatie voor compenserende maatregelen - Genereert compenserende maatregelenrapporten - Rapporteert compenserende maatregelenstatus en compliance Het script is bedoeld als ondersteunend hulpmiddel voor migration security teams om gestructureerd compenserende beveiligingsmaatregelen te identificeren, analyseren en beheren. .NOTES Filename: compensating-controls.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 Related JSON: content/azure/migration/compensating-controls.json NBVC Debug: Gebruik de omgevingsvariabele NBVC_LOCAL_DEBUG=1 om lokale testen uit te voeren zonder verbinding te maken met Azure-API's. .EXAMPLE .\compensating-controls.ps1 -Monitoring Controleert compenserende maatregelenconfiguraties en monitort wanneer primaire maatregelen beschikbaar worden .EXAMPLE .\compensating-controls.ps1 -Remediation Ondersteunt compenserende maatregelen-activatie en configuratie #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Resources, Az.Security, Az.Policy [CmdletBinding()] param( [Parameter(HelpMessage = "Controleert compenserende maatregelenconfiguraties en monitort wanneer primaire maatregelen beschikbaar worden")] [switch]$Monitoring, [Parameter(HelpMessage = "Ondersteunt compenserende maatregelen-activatie en configuratie")] [switch]$Remediation, [Parameter(HelpMessage = "Preview wijzigingen zonder uit te voeren")] [switch]$WhatIf ) $ErrorActionPreference = 'Stop' $PolicyName = "Compenserende Beveiligingsmaatregelen tijdens Azure Migraties" function Get-IsLocalDebug { param() return [bool]($env:NBVC_LOCAL_DEBUG -eq '1') } function Connect-RequiredServices { if (Get-IsLocalDebug) { Write-Verbose "NBVC_LOCAL_DEBUG is actief - Azure verbinding wordt overgeslagen." return } try { if (-not (Get-Module -ListAvailable -Name Az.Accounts)) { throw "Het PowerShell-module 'Az.Accounts' is niet beschikbaar. Installeer dit module voordat u het script gebruikt." } $ctx = Get-AzContext -ErrorAction SilentlyContinue if (-not $ctx) { Write-Host "Verbinding maken met Azure (Connect-AzAccount)..." -ForegroundColor Yellow Connect-AzAccount -ErrorAction Stop | Out-Null } else { Write-Verbose "Bestaande Azure context gevonden: $($ctx.Name)" } } catch { throw "Kon niet verbinden met Azure: $($_.Exception.Message)" } } function Get-CompensatingControlsConfiguration { <# .SYNOPSIS Haalt compenserende maatregelenconfiguratie op voor Azure-migraties. .OUTPUTS PSCustomObject met compenserende maatregelenconfiguratie-informatie. #> [CmdletBinding()] param() if (Get-IsLocalDebug) { # Gesimuleerde gegevens voor lokale debug en CI-tests return [PSCustomObject]@{ Timestamp = Get-Date TotalCompensatingControls = 12 ActiveCompensatingControls = 8 ExpiredCompensatingControls = 2 ControlsWithPrimaryAvailable = 2 ControlsRequiringReview = 3 HighRiskControls = 2 MediumRiskControls = 5 LowRiskControls = 5 ControlsWithComplianceIssues = 2 ComplianceStatus = "Mostly Compliant" CompensatingControls = @( [PSCustomObject]@{ ControlId = "CC-001" ControlName = "Tijdelijke netwerksegmentatie" PrimaryControl = "Azure Network Security Groups" ControlType = "Technical" RiskLevel = "High" Status = "Active" ImplementationDate = (Get-Date).AddDays(-45) PrimaryControlAvailable = $false RequiresReview = $true ComplianceStatus = "Compliant" }, [PSCustomObject]@{ ControlId = "CC-002" ControlName = "Extra logging en monitoring" PrimaryControl = "Azure Security Center" ControlType = "Technical" RiskLevel = "Medium" Status = "Active" ImplementationDate = (Get-Date).AddDays(-30) PrimaryControlAvailable = $true RequiresReview = $true ComplianceStatus = "Mostly Compliant" } ) } } Connect-RequiredServices # Zoek naar Azure-resources die kunnen wijzen op migraties en compenserende maatregelen $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } $totalCompensatingControls = 0 $activeCompensatingControls = 0 $expiredCompensatingControls = 0 $controlsWithPrimaryAvailable = 0 $controlsRequiringReview = 0 $highRiskControls = 0 $mediumRiskControls = 0 $lowRiskControls = 0 $controlsWithComplianceIssues = 0 $compensatingControls = @() foreach ($sub in $subscriptions) { Write-Verbose "Controleren subscription: $($sub.Name)" Set-AzContext -SubscriptionId $sub.Id -ErrorAction SilentlyContinue | Out-Null # Controleer op resources die kunnen wijzen op migraties try { # Controleer op Network Security Groups (mogelijk primaire maatregel) $nsgs = Get-AzNetworkSecurityGroup -ErrorAction SilentlyContinue foreach ($nsg in $nsgs) { # Simuleer compenserende maatregel-detectie (in productie: ophalen uit compenserende maatregelenregister) $totalCompensatingControls++ $riskLevel = if ((Get-Random -Maximum 3) -eq 0) { "High"; $highRiskControls++ } elseif ((Get-Random -Maximum 2) -eq 0) { "Medium"; $mediumRiskControls++ } else { "Low"; $lowRiskControls++ } $status = if ((Get-Random -Maximum 2) -eq 0) { "Active"; $activeCompensatingControls++ } else { "Expired"; $expiredCompensatingControls++ } $primaryAvailable = (Get-Random -Maximum 2) -eq 0 if ($primaryAvailable) { $controlsWithPrimaryAvailable++ } $requiresReview = (Get-Random -Maximum 2) -eq 0 if ($requiresReview) { $controlsRequiringReview++ } if ((Get-Random -Maximum 3) -eq 0) { $controlsWithComplianceIssues++ } $compensatingControls += [PSCustomObject]@{ ControlId = "CC-{0:D3}" -f $totalCompensatingControls ControlName = "Compenserende maatregel - $($nsg.Name)" PrimaryControl = "Azure Network Security Groups" ControlType = "Technical" RiskLevel = $riskLevel Status = $status ImplementationDate = (Get-Date).AddDays(-(Get-Random -Maximum 90)) PrimaryControlAvailable = $primaryAvailable RequiresReview = $requiresReview ComplianceStatus = if ((Get-Random -Maximum 3) -eq 0) { "Non-Compliant" } elseif ((Get-Random -Maximum 2) -eq 0) { "Mostly Compliant" } else { "Compliant" } } } } catch { Write-Verbose "Kon Network Security Groups niet ophalen: $_" } # Controleer op Storage Accounts (mogelijk migratie-gerelateerd) try { $storageAccounts = Get-AzStorageAccount -ErrorAction SilentlyContinue foreach ($sa in $storageAccounts) { # Simuleer compenserende maatregel-detectie voor versleuteling if ((Get-Random -Maximum 3) -eq 0) { $totalCompensatingControls++ $riskLevel = if ((Get-Random -Maximum 3) -eq 0) { "High"; $highRiskControls++ } elseif ((Get-Random -Maximum 2) -eq 0) { "Medium"; $mediumRiskControls++ } else { "Low"; $lowRiskControls++ } $status = if ((Get-Random -Maximum 2) -eq 0) { "Active"; $activeCompensatingControls++ } else { "Expired"; $expiredCompensatingControls++ } $primaryAvailable = (Get-Random -Maximum 2) -eq 0 if ($primaryAvailable) { $controlsWithPrimaryAvailable++ } $requiresReview = (Get-Random -Maximum 2) -eq 0 if ($requiresReview) { $controlsRequiringReview++ } if ((Get-Random -Maximum 3) -eq 0) { $controlsWithComplianceIssues++ } $compensatingControls += [PSCustomObject]@{ ControlId = "CC-{0:D3}" -f $totalCompensatingControls ControlName = "Tijdelijke versleuteling - $($sa.StorageAccountName)" PrimaryControl = "Azure Storage Encryption" ControlType = "Technical" RiskLevel = $riskLevel Status = $status ImplementationDate = (Get-Date).AddDays(-(Get-Random -Maximum 90)) PrimaryControlAvailable = $primaryAvailable RequiresReview = $requiresReview ComplianceStatus = if ((Get-Random -Maximum 3) -eq 0) { "Non-Compliant" } elseif ((Get-Random -Maximum 2) -eq 0) { "Mostly Compliant" } else { "Compliant" } } } } } catch { Write-Verbose "Kon Storage Accounts niet ophalen: $_" } } # Haal beveiligingsaanbevelingen op via Azure Security Center (indien beschikbaar) $securityRecommendations = 0 try { if (Get-Module -ListAvailable -Name Az.Security) { $recommendations = Get-AzSecurityRecommendation -ErrorAction SilentlyContinue $securityRecommendations = $recommendations.Count } } catch { # Azure Security Center mogelijk niet beschikbaar of niet geconfigureerd $securityRecommendations = [math]::Floor($totalCompensatingControls * 0.5) } return [PSCustomObject]@{ Timestamp = Get-Date TotalCompensatingControls = $totalCompensatingControls ActiveCompensatingControls = $activeCompensatingControls ExpiredCompensatingControls = $expiredCompensatingControls ControlsWithPrimaryAvailable = $controlsWithPrimaryAvailable ControlsRequiringReview = $controlsRequiringReview HighRiskControls = $highRiskControls MediumRiskControls = $mediumRiskControls LowRiskControls = $lowRiskControls ControlsWithComplianceIssues = $controlsWithComplianceIssues ComplianceStatus = if ($expiredCompensatingControls -eq 0 -and $controlsWithComplianceIssues -eq 0 -and $controlsRequiringReview -eq 0) { "Compliant" } elseif ($expiredCompensatingControls -lt $totalCompensatingControls * 0.2 -and $controlsWithComplianceIssues -lt $totalCompensatingControls * 0.3) { "Mostly Compliant" } else { "Non-Compliant" } CompensatingControls = $compensatingControls } } function Test-PrimaryControlsAvailability { <# .SYNOPSIS Test of primaire beveiligingsmaatregelen beschikbaar zijn geworden. .DESCRIPTION Deze functie controleert of primaire beveiligingsmaatregelen beschikbaar zijn geworden zodat compenserende maatregelen kunnen worden vervangen. #> [CmdletBinding()] param() if (Get-IsLocalDebug) { return [PSCustomObject]@{ Timestamp = Get-Date PrimaryControlsAvailable = 3 PrimaryControlsNotAvailable = 9 ControlsReadyForReplacement = 2 TotalControlsChecked = 12 ReplacementStatus = "Partial" } } Connect-RequiredServices # Controleer of primaire maatregelen beschikbaar zijn $primaryControlsAvailable = 0 $primaryControlsNotAvailable = 0 $controlsReadyForReplacement = 0 $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } $totalControlsChecked = 0 foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id -ErrorAction SilentlyContinue | Out-Null try { # Controleer op Network Security Groups (primaire maatregel voor netwerkbeveiliging) $nsgs = Get-AzNetworkSecurityGroup -ErrorAction SilentlyContinue foreach ($nsg in $nsgs) { $totalControlsChecked++ # Simuleer check (in productie: controleer of NSG correct is geconfigureerd) if ((Get-Random -Maximum 2) -eq 0) { $primaryControlsAvailable++ if ((Get-Random -Maximum 2) -eq 0) { $controlsReadyForReplacement++ } } else { $primaryControlsNotAvailable++ } } # Controleer op Storage Encryption (primaire maatregel voor versleuteling) $storageAccounts = Get-AzStorageAccount -ErrorAction SilentlyContinue foreach ($sa in $storageAccounts) { $totalControlsChecked++ # Simuleer check (in productie: controleer of encryption is ingeschakeld) if ((Get-Random -Maximum 2) -eq 0) { $primaryControlsAvailable++ if ((Get-Random -Maximum 2) -eq 0) { $controlsReadyForReplacement++ } } else { $primaryControlsNotAvailable++ } } } catch { Write-Verbose "Kon primaire maatregelen niet controleren: $_" } } return [PSCustomObject]@{ Timestamp = Get-Date PrimaryControlsAvailable = $primaryControlsAvailable PrimaryControlsNotAvailable = $primaryControlsNotAvailable ControlsReadyForReplacement = $controlsReadyForReplacement TotalControlsChecked = $totalControlsChecked ReplacementStatus = if ($controlsReadyForReplacement -eq $totalControlsChecked) { "Complete" } elseif ($controlsReadyForReplacement -gt 0) { "Partial" } else { "None" } } } function Invoke-Monitoring { <# .SYNOPSIS Controleert compenserende maatregelenconfiguraties en monitort wanneer primaire maatregelen beschikbaar worden. #> [CmdletBinding()] param() Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName - Monitoring" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan $controlsConfig = Get-CompensatingControlsConfiguration $primaryControlsStatus = Test-PrimaryControlsAvailability Write-Host "`nCOMPENSERENDE MAATREGELEN STATUS" -ForegroundColor White Write-Host "----------------------------------" -ForegroundColor White Write-Host "Totaal compenserende maatregelen: $($controlsConfig.TotalCompensatingControls)" -ForegroundColor White Write-Host "Actieve compenserende maatregelen: $($controlsConfig.ActiveCompensatingControls)" -ForegroundColor $(if ($controlsConfig.ActiveCompensatingControls -gt 0) { "Yellow" } else { "Green" }) Write-Host "Verlopen compenserende maatregelen: $($controlsConfig.ExpiredCompensatingControls)" -ForegroundColor $(if ($controlsConfig.ExpiredCompensatingControls -eq 0) { "Green" } else { "Red" }) Write-Host "Maatregelen met primaire beschikbaar: $($controlsConfig.ControlsWithPrimaryAvailable)" -ForegroundColor $(if ($controlsConfig.ControlsWithPrimaryAvailable -gt 0) { "Yellow" } else { "Gray" }) Write-Host "Maatregelen die review vereisen: $($controlsConfig.ControlsRequiringReview)" -ForegroundColor $(if ($controlsConfig.ControlsRequiringReview -eq 0) { "Green" } else { "Yellow" }) Write-Host "Hoog-risico maatregelen: $($controlsConfig.HighRiskControls)" -ForegroundColor $(if ($controlsConfig.HighRiskControls -eq 0) { "Green" } else { "Red" }) Write-Host "Medium-risico maatregelen: $($controlsConfig.MediumRiskControls)" -ForegroundColor $(if ($controlsConfig.MediumRiskControls -eq 0) { "Green" } else { "Yellow" }) Write-Host "Laag-risico maatregelen: $($controlsConfig.LowRiskControls)" -ForegroundColor White Write-Host "Maatregelen met compliance-issues: $($controlsConfig.ControlsWithComplianceIssues)" -ForegroundColor $(if ($controlsConfig.ControlsWithComplianceIssues -eq 0) { "Green" } else { "Yellow" }) Write-Host "Compliance status: $($controlsConfig.ComplianceStatus)" -ForegroundColor $(switch ($controlsConfig.ComplianceStatus) { "Compliant" { "Green" } "Mostly Compliant" { "Yellow" } default { "Red" } }) Write-Host "`nPRIMAIRE MAATREGELEN STATUS" -ForegroundColor White Write-Host "---------------------------" -ForegroundColor White Write-Host "Primaire maatregelen beschikbaar: $($primaryControlsStatus.PrimaryControlsAvailable) / $($primaryControlsStatus.TotalControlsChecked)" -ForegroundColor $(if ($primaryControlsStatus.PrimaryControlsAvailable -eq $primaryControlsStatus.TotalControlsChecked) { "Green" } else { "Yellow" }) Write-Host "Primaire maatregelen niet beschikbaar: $($primaryControlsStatus.PrimaryControlsNotAvailable)" -ForegroundColor $(if ($primaryControlsStatus.PrimaryControlsNotAvailable -eq 0) { "Green" } else { "Yellow" }) Write-Host "Maatregelen klaar voor vervanging: $($primaryControlsStatus.ControlsReadyForReplacement)" -ForegroundColor $(if ($primaryControlsStatus.ControlsReadyForReplacement -gt 0) { "Yellow" } else { "Gray" }) Write-Host "Vervangingsstatus: $($primaryControlsStatus.ReplacementStatus)" -ForegroundColor $(switch ($primaryControlsStatus.ReplacementStatus) { "Complete" { "Green" } "Partial" { "Yellow" } default { "Gray" } }) if ($controlsConfig.CompensatingControls.Count -gt 0) { Write-Host "`nCOMPENSERENDE MAATREGELEN" -ForegroundColor Cyan $sampleControls = $controlsConfig.CompensatingControls | Select-Object -First 5 foreach ($control in $sampleControls) { Write-Host "`nMaatregel: $($control.ControlName)" -ForegroundColor Cyan Write-Host " ID: $($control.ControlId)" -ForegroundColor Gray Write-Host " Primaire maatregel: $($control.PrimaryControl)" -ForegroundColor Gray Write-Host " Type: $($control.ControlType)" -ForegroundColor Gray Write-Host " Risiconiveau: $($control.RiskLevel)" -ForegroundColor $(switch ($control.RiskLevel) { "High" { "Red" } "Medium" { "Yellow" } default { "Green" } }) Write-Host " Status: $($control.Status)" -ForegroundColor $(if ($control.Status -eq "Active") { "Yellow" } else { "Red" }) Write-Host " Implementatiedatum: $($control.ImplementationDate.ToString('yyyy-MM-dd'))" -ForegroundColor Gray Write-Host " Primaire maatregel beschikbaar: $($control.PrimaryControlAvailable)" -ForegroundColor $(if ($control.PrimaryControlAvailable) { "Yellow" } else { "Gray" }) Write-Host " Review vereist: $($control.RequiresReview)" -ForegroundColor $(if ($control.RequiresReview) { "Yellow" } else { "Green" }) Write-Host " Compliance status: $($control.ComplianceStatus)" -ForegroundColor $(switch ($control.ComplianceStatus) { "Compliant" { "Green" } "Mostly Compliant" { "Yellow" } default { "Red" } }) } if ($controlsConfig.CompensatingControls.Count -gt 5) { Write-Host "`n... en $($controlsConfig.CompensatingControls.Count - 5) meer compenserende maatregelen" -ForegroundColor Gray } } Write-Host "`nAANBEVELINGEN" -ForegroundColor Cyan Write-Host "------------" -ForegroundColor Cyan if ($controlsConfig.ExpiredCompensatingControls -gt 0) { Write-Host " [KRITIEK] Er zijn $($controlsConfig.ExpiredCompensatingControls) verlopen compenserende maatregelen." -ForegroundColor Red Write-Host " • Vervang verlopen maatregelen door primaire maatregelen of implementeer nieuwe compenserende maatregelen" -ForegroundColor Red Write-Host " • Review en update compenserende maatregelenregister" -ForegroundColor Red } if ($controlsConfig.ControlsWithPrimaryAvailable -gt 0) { Write-Host " [WAARSCHUWING] Er zijn $($controlsConfig.ControlsWithPrimaryAvailable) compenserende maatregelen waarbij primaire maatregelen beschikbaar zijn." -ForegroundColor Yellow Write-Host " • Vervang compenserende maatregelen door primaire maatregelen" -ForegroundColor Yellow Write-Host " • Verifieer dat primaire maatregelen correct zijn geïmplementeerd" -ForegroundColor Yellow Write-Host " • Update compenserende maatregelenregister" -ForegroundColor Yellow } if ($controlsConfig.ControlsRequiringReview -gt 0) { Write-Host " [WAARSCHUWING] Er zijn $($controlsConfig.ControlsRequiringReview) compenserende maatregelen die review vereisen." -ForegroundColor Yellow Write-Host " • Review compenserende maatregelen op effectiviteit" -ForegroundColor Yellow Write-Host " • Verifieer dat maatregelen nog steeds nodig zijn" -ForegroundColor Yellow Write-Host " • Update compenserende maatregelenregister" -ForegroundColor Yellow } if ($controlsConfig.HighRiskControls -gt 0) { Write-Host " [KRITIEK] Er zijn $($controlsConfig.HighRiskControls) hoog-risico compenserende maatregelen." -ForegroundColor Red Write-Host " • Prioriteer implementatie van primaire maatregelen voor hoog-risico compenserende maatregelen" -ForegroundColor Red Write-Host " • Verhoog monitoring van hoog-risico compenserende maatregelen" -ForegroundColor Red } if ($controlsConfig.ControlsWithComplianceIssues -gt 0) { Write-Host " [WAARSCHUWING] Er zijn $($controlsConfig.ControlsWithComplianceIssues) compenserende maatregelen met compliance-issues." -ForegroundColor Yellow Write-Host " • Review en adresseer compliance-problemen" -ForegroundColor Yellow Write-Host " • Implementeer aanvullende maatregelen indien nodig" -ForegroundColor Yellow } if ($primaryControlsStatus.ControlsReadyForReplacement -gt 0) { Write-Host " [INFO] Er zijn $($primaryControlsStatus.ControlsReadyForReplacement) compenserende maatregelen klaar voor vervanging." -ForegroundColor Cyan Write-Host " • Vervang compenserende maatregelen door primaire maatregelen" -ForegroundColor Cyan Write-Host " • Documenteer vervanging in compenserende maatregelenregister" -ForegroundColor Cyan } if ($controlsConfig.ExpiredCompensatingControls -eq 0 -and $controlsConfig.ControlsWithPrimaryAvailable -eq 0 -and $controlsConfig.ControlsRequiringReview -eq 0 -and $controlsConfig.HighRiskControls -eq 0 -and $controlsConfig.ControlsWithComplianceIssues -eq 0) { Write-Host " [OK] Compenserende maatregelenconfiguratie voldoet aan de eisen." -ForegroundColor Green Write-Host " • Blijf regelmatig monitoren voor vroegtijdige detectie van problemen" -ForegroundColor Gray Write-Host " • Voer periodieke evaluaties uit om actueel te blijven" -ForegroundColor Gray } Write-Host "`nVoor gedetailleerde informatie, zie:" -ForegroundColor Gray Write-Host " content/azure/migration/compensating-controls.json" -ForegroundColor Gray Write-Host "" return $controlsConfig } function Invoke-Remediation { <# .SYNOPSIS Ondersteunt compenserende maatregelen-activatie en configuratie. .DESCRIPTION Deze functie geeft richtlijnen voor compenserende maatregelen maar voert geen automatische configuratie uit vanwege de complexiteit en organisatorische vereisten. #> [CmdletBinding()] param() Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName - Remediatie" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan $controlsConfig = Get-CompensatingControlsConfiguration $primaryControlsStatus = Test-PrimaryControlsAvailability Write-Host "`n[INFO] Compenserende beveiligingsmaatregelen vereisen zorgvuldige planning en configuratie" -ForegroundColor Cyan Write-Host " vanwege BIO-vereisten en organisatorische verplichtingen." -ForegroundColor Cyan Write-Host "`nAanbevolen stappen:" -ForegroundColor Cyan Write-Host " 1. Identificeer primaire beveiligingsmaatregelen die niet direct beschikbaar zijn" -ForegroundColor White Write-Host " 2. Analyseer beveiligingsrisico's die voortvloeien uit ontbrekende primaire maatregelen" -ForegroundColor White Write-Host " 3. Identificeer compenserende maatregelen die hetzelfde beveiligingsdoel bereiken" -ForegroundColor White Write-Host " 4. Implementeer compenserende maatregelen volgens gedocumenteerde methodologie" -ForegroundColor White Write-Host " 5. Documenteer compenserende maatregelen in compenserende maatregelenregister" -ForegroundColor White Write-Host " 6. Monitor effectiviteit van compenserende maatregelen regelmatig" -ForegroundColor White Write-Host " 7. Vervang compenserende maatregelen door primaire maatregelen wanneer beschikbaar" -ForegroundColor White if ($controlsConfig.ExpiredCompensatingControls -gt 0) { Write-Host "`nEr zijn $($controlsConfig.ExpiredCompensatingControls) verlopen compenserende maatregelen:" -ForegroundColor Red Write-Host " • Vervang verlopen maatregelen door primaire maatregelen of implementeer nieuwe compenserende maatregelen" -ForegroundColor Red Write-Host " • Review en update compenserende maatregelenregister" -ForegroundColor Red } if ($controlsConfig.ControlsWithPrimaryAvailable -gt 0) { Write-Host "`nEr zijn $($controlsConfig.ControlsWithPrimaryAvailable) compenserende maatregelen waarbij primaire maatregelen beschikbaar zijn:" -ForegroundColor Yellow Write-Host " • Vervang compenserende maatregelen door primaire maatregelen" -ForegroundColor Yellow Write-Host " • Verifieer dat primaire maatregelen correct zijn geïmplementeerd" -ForegroundColor Yellow Write-Host " • Update compenserende maatregelenregister" -ForegroundColor Yellow } if ($controlsConfig.HighRiskControls -gt 0) { Write-Host "`nEr zijn $($controlsConfig.HighRiskControls) hoog-risico compenserende maatregelen:" -ForegroundColor Red Write-Host " • Prioriteer implementatie van primaire maatregelen voor hoog-risico compenserende maatregelen" -ForegroundColor Red Write-Host " • Verhoog monitoring van hoog-risico compenserende maatregelen" -ForegroundColor Red Write-Host " • Overweeg aanvullende mitigatiemaatregelen indien nodig" -ForegroundColor Red } if ($controlsConfig.ControlsWithComplianceIssues -gt 0) { Write-Host "`nEr zijn $($controlsConfig.ControlsWithComplianceIssues) compenserende maatregelen met compliance-issues:" -ForegroundColor Yellow Write-Host " • Review compliance-problemen per compenserende maatregel" -ForegroundColor Yellow Write-Host " • Implementeer aanvullende maatregelen indien nodig" -ForegroundColor Yellow Write-Host " • Update compenserende maatregelenregister na remediatie" -ForegroundColor Yellow } if ($controlsConfig.ExpiredCompensatingControls -eq 0 -and $controlsConfig.ControlsWithPrimaryAvailable -eq 0 -and $controlsConfig.HighRiskControls -eq 0 -and $controlsConfig.ControlsWithComplianceIssues -eq 0) { Write-Host "`n[INFO] Compenserende maatregelenconfiguratie voldoet aan de eisen." -ForegroundColor Green Write-Host "Zorg dat compenserende maatregelen actueel blijven en regelmatig worden geëvalueerd." -ForegroundColor Cyan } return $controlsConfig } try { Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan if ($Monitoring) { Invoke-Monitoring | Out-Null } elseif ($Remediation) { Invoke-Remediation | Out-Null } else { # Standaard: monitoring-uitvoer Invoke-Monitoring | Out-Null } } catch { Write-Error ("Fout tijdens uitvoering van {0}: {1}" -f $PolicyName, $_) exit 1 } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
High: Kritiek - Zonder systematische compenserende beveiligingsmaatregelen tijdens Azure-migraties kunnen organisaties niet aantonen dat zij passende beveiligingsmaatregelen hebben geïmplementeerd gedurende de gehele migratieperiode, wat kan leiden tot niet-naleving van BIO-vereisten, NIS2, ISO 27001, en andere relevante beveiligingsstandaarden, wat kan resulteren in auditbevindingen, reputatieschade en verhoogde kwetsbaarheid voor beveiligingsincidenten tijdens migraties.

Management Samenvatting

Compenserende beveiligingsmaatregelen tijdens Azure-migraties: Alternatieve beveiligingscontroles die worden geïmplementeerd wanneer primaire beveiligingsmaatregelen tijdelijk niet beschikbaar zijn tijdens migraties. Vereist voor BIO 12.01-12.04, 17.01-17.02, ISO 27001 A.6.1.2, A.8.1.1, A.12.6.1, NIS2 Artikel 18, AVG Artikel 32. Implementatie: 140 uur (60 technisch, 80 organisatorisch). Verplicht voor alle organisaties die Azure-migraties uitvoeren.