💼 Management Samenvatting
Azure Bastion biedt een beheerde, veilige manier om verbinding te maken met virtuele machines in Azure zonder dat deze virtuele machines een openbaar IP-adres of directe internettoegang nodig hebben. Deze beveiligingsmaatregel waarborgt de correcte configuratie van externe toegang en beschermt organisaties tegen aanzienlijke beveiligingsrisico's die gepaard gaan met traditionele RDP- en SSH-verbindingen.
Traditionele methoden voor externe toegang, waarbij virtuele machines rechtstreeks via het internet bereikbaar zijn via RDP (poort 3389) of SSH (poort 22), vormen een kritieke beveiligingskwetsbaarheid. Aanvallers scannen continu het internet af naar openstaande RDP- en SSH-poorten en voeren brute force-aanvallen uit om toegang te krijgen tot systemen. Azure Bastion elimineert deze risico's volledig door een beheerde springplank service te bieden die via de browser toegankelijk is, zonder dat virtuele machines zelf blootgesteld worden aan het internet. Deze instelling is essentieel voor het handhaven van een veilige cloudomgeving en voorkomt bekende aanvalsvectoren door het afdwingen van beveiligingsbeste praktijken die zijn vastgelegd in internationale standaarden.
Connection:
Connect-AzAccountRequired Modules: Az.Accounts, Az.Network
Implementatie
Deze beveiligingsmaatregel zorgt ervoor dat Azure Bastion correct is geïmplementeerd voor alle virtuele netwerken die virtuele machines bevatten die externe toegang vereisen. Azure Bastion wordt geïmplementeerd in een speciaal subnet binnen het virtuele netwerk en biedt een beveiligde tunnel voor RDP- en SSH-verbindingen via de Azure-portal of via een directe HTTPS-verbinding. De implementatie wordt gemonitord via Azure Policy en PowerShell-scripts om te verifiëren dat alle vereiste virtuele netwerken over een functionele Bastion-host beschikken. Deze maatregel beschermt systemen volgens actuele beveiligingsframeworks zoals CIS Benchmarks, BIO-normen en ISO 27001.
Vereisten
Voor de implementatie van Azure Bastion zijn specifieke infrastructuurvereisten noodzakelijk die zorgvuldig moeten worden gepland en geconfigureerd. De primaire vereiste is de aanwezigheid van een virtueel netwerk binnen de Azure-omgeving waarin de virtuele machines zich bevinden die externe toegang vereisen. Dit virtuele netwerk vormt de basis voor de Bastion-implementatie en moet voldoen aan de netwerkarchitectuurvereisten van de organisatie. Zonder een correct geconfigureerd virtueel netwerk kan Azure Bastion niet worden geïmplementeerd, waardoor organisaties gedwongen worden om onveilige alternatieven te gebruiken voor externe toegang tot hun systemen. Een kritieke vereiste is de aanwezigheid van een speciaal subnet met de exacte naam 'AzureBastionSubnet'. Deze naam is een harde vereiste van Azure en mag niet worden gewijzigd. Dit subnet heeft een minimale CIDR-grootte van /26 nodig, wat overeenkomt met minimaal 64 IP-adressen. Deze subnetgrootte is essentieel omdat Azure Bastion meerdere instanties kan hosten voor hoge beschikbaarheid en taakverdeling. Het subnet moet zich binnen hetzelfde virtuele netwerk bevinden als de virtuele machines die via Bastion toegankelijk moeten zijn. Wanneer het subnet te klein is geconfigureerd, kan dit leiden tot capaciteitsproblemen en prestatieverlies, vooral in omgevingen met veel gelijktijdige verbindingen. Het AzureBastionSubnet mag geen andere resources bevatten dan de Bastion-host zelf. Dit is een harde vereiste van Azure en voorkomt configuratiefouten die de beveiliging of functionaliteit kunnen compromitteren. Het subnet moet bovendien correct zijn geconfigureerd met de juiste routetabellen en netwerkbeveiligingsgroepen die de communicatie tussen Bastion en de doel-virtuele machines mogelijk maken. Onjuiste configuratie van deze netwerkcomponenten kan resulteren in verbindingsproblemen of beveiligingslekken die de effectiviteit van Bastion ondermijnen. Naast de netwerkvereisten moet de organisatie beschikken over de juiste Azure-roltoewijzingen voor de implementatie. De gebruiker of service principal die Bastion implementeert moet minimaal de rol 'Inzender' hebben op het virtuele netwerk en de resourcegroep, of specifiekere rollen zoals 'Netwerk Inzender' en 'Bastion Inzender'. Voor monitoring en auditing zijn bovendien leesrechten nodig op de Bastion-resource en gerelateerde netwerkcomponenten. Onvoldoende rechten kunnen de implementatie blokkeren of voorkomen dat organisaties de status van hun Bastion-implementaties kunnen controleren. De kostenoverwegingen vormen een belangrijke praktische vereiste. Azure Bastion is beschikbaar in verschillende SKU's, waaronder Basic en Standard. De Basic SKU biedt de kernfunctionaliteit tegen lagere kosten, terwijl de Standard SKU aanvullende functies biedt zoals ondersteuning voor meerdere sessies, verbeterde prestaties en geavanceerde monitoring. Organisaties moeten de kosten afwegen tegen de vereiste functionaliteit en de beschikbare budgetten. Voor kleine omgevingen met beperkte verbindingsvereisten kan de Basic SKU voldoende zijn, terwijl grotere organisaties met hoge beschikbaarheidsvereisten mogelijk de Standard SKU nodig hebben. Ten slotte vereist de implementatie een goed begrip van de netwerkarchitectuur en de beveiligingsvereisten. De Bastion-host moet kunnen communiceren met de doel-virtuele machines via het interne Azure-netwerk, wat betekent dat de netwerkbeveiligingsgroepen en routetabellen correct moeten zijn geconfigureerd. Bovendien moeten organisaties overwegen hoe Bastion past binnen hun algehele beveiligingsstrategie, inclusief integratie met andere beveiligingsservices zoals Azure Firewall, Network Watcher en Azure Monitor. Deze integratie zorgt voor een holistische beveiligingsaanpak waarbij verschillende beveiligingslagen samenwerken om optimale bescherming te bieden tegen bedreigingen.
Monitoring
Gebruik PowerShell-script bastion-host-exists.ps1 (functie Invoke-Monitoring) – Controleren.
Het monitoren van Azure Bastion-implementaties is essentieel om te verzekeren dat alle virtuele netwerken die virtuele machines bevatten, beschikken over een functionele en correct geconfigureerde Bastion-host. De monitoring moet systematisch worden uitgevoerd om te detecteren wanneer nieuwe virtuele netwerken worden aangemaakt zonder bijbehorende Bastion-implementatie, of wanneer bestaande Bastion-hosts worden verwijderd of onjuist worden geconfigureerd. Zonder adequate monitoring kunnen organisaties onbewust beveiligingsrisico's introduceren door virtuele machines bloot te stellen aan het internet via onveilige remote access methoden. De monitoringprocedure begint met het inventariseren van alle virtuele netwerken binnen de Azure-omgeving. Voor elk virtueel netwerk moet worden gecontroleerd of er een AzureBastionSubnet bestaat en of dit subnet een actieve Bastion-host bevat. Het PowerShell-script 'bastion-host-exists.ps1' met de functie 'Invoke-Monitoring' automatiseert deze controle door alle virtuele netwerken te doorlopen en de aanwezigheid en status van Bastion-hosts te verifiëren. Deze geautomatiseerde aanpak voorkomt menselijke fouten en zorgt voor consistente controle van alle netwerkresources binnen de organisatie. Tijdens de monitoring worden verschillende aspecten gecontroleerd. Allereerst wordt gecontroleerd of het AzureBastionSubnet daadwerkelijk bestaat en de juiste grootte heeft (minimaal /26). Vervolgens wordt gecontroleerd of er een Bastion-resource is geïmplementeerd in dit subnet en of deze resource in een operationele staat verkeert. De monitoring controleert ook of de Bastion-host correct is geconfigureerd met de juiste SKU, of er voldoende capaciteit is, en of de resource niet is gestopt of verwijderd. Deze uitgebreide controle zorgt ervoor dat niet alleen de aanwezigheid, maar ook de functionaliteit en configuratiekwaliteit van Bastion-hosts worden geverifieerd. Voor virtuele netwerken die virtuele machines bevatten maar geen Bastion-host hebben, wordt een niet-naleving status gerapporteerd. Dit is met name belangrijk voor netwerken die virtuele machines bevatten die externe toegang vereisen, omdat de afwezigheid van Bastion betekent dat organisaties mogelijk terugvallen op onveilige methoden zoals directe RDP- of SSH-toegang via openbare IP-adressen. Deze niet-naleving situaties moeten onmiddellijk worden geadresseerd om te voorkomen dat beveiligingsrisico's ontstaan die kunnen leiden tot compromittering van systemen en gegevens. De monitoring moet regelmatig worden uitgevoerd, bij voorkeur dagelijks of in ieder geval wekelijks, om ervoor te zorgen dat nieuwe virtuele netwerken direct worden gedetecteerd en dat bestaande implementaties intact blijven. De resultaten van de monitoring moeten worden vastgelegd in logbestanden en geïntegreerd worden met Azure Monitor of andere monitoringoplossingen voor centrale rapportage en waarschuwingen. Deze geautomatiseerde rapportage stelt beveiligingsteams in staat om snel te reageren op wijzigingen in de infrastructuur en compliance-problemen te identificeren voordat ze kritiek worden. Naast de technische controle moet de monitoring ook aandacht besteden aan de configuratiekwaliteit. Dit omvat het controleren van de netwerkbeveiligingsgroepen die zijn gekoppeld aan het AzureBastionSubnet, het verifiëren van de routetabellen, en het controleren of de Bastion-host is geconfigureerd met de juiste beveiligingsinstellingen zoals diagnostische logboeken en integratie met Azure Monitor. Deze aanvullende controles zorgen ervoor dat Bastion niet alleen aanwezig is, maar ook op een veilige en geoptimaliseerde manier is geconfigureerd. Configuratiefouten kunnen de effectiviteit van Bastion verminderen of zelfs beveiligingslekken introduceren die de beoogde bescherming ondermijnen. Voor organisaties met meerdere Azure-abonnementen of beheergroepen moet de monitoring worden uitgevoerd op alle relevante scopes. Dit vereist mogelijk het doorlopen van meerdere abonnementen en resourcegroepen om een volledig beeld te krijgen van de Bastion-implementaties binnen de gehele organisatie. Geautomatiseerde monitoringoplossingen kunnen deze taak vereenvoudigen door periodiek alle relevante Azure-resources te scannen en compliance-rapporten te genereren. Deze schaalbaarheid is essentieel voor grote organisaties met complexe Azure-omgevingen die honderden of duizenden virtuele netwerken kunnen bevatten.
Compliance en Auditing
De implementatie van Azure Bastion is een kritieke vereiste voor naleving van verschillende internationale beveiligingsstandaarden en frameworks die worden gebruikt door Nederlandse overheidsorganisaties en bedrijven in de publieke sector. Deze beveiligingsmaatregel adresseert specifieke controles binnen de CIS Benchmarks, BIO-normen en ISO 27001:2022 standaard, waardoor organisaties kunnen aantonen dat zij adequate maatregelen hebben genomen om externe toegang te beveiligen. De CIS Microsoft Azure Foundations Benchmark controle 6.5 specificeert expliciet dat organisaties Azure Bastion moeten gebruiken voor beveiligde toegang tot virtuele machines. Deze controle maakt deel uit van de netwerkbeveiligingssectie van het CIS-framework en richt zich op het elimineren van onveilige methoden voor externe toegang. Naleving van deze controle vereist dat alle virtuele machines die externe toegang vereisen, toegankelijk zijn via Azure Bastion in plaats van via directe RDP- of SSH-verbindingen via het internet. Organisaties die deze controle niet implementeren, voldoen niet aan de CIS Level 2-vereisten, wat kan leiden tot negatieve auditbevindingen en verhoogde beveiligingsrisico's. De BIO-norm 13.01, die deel uitmaakt van de Baseline Informatiebeveiliging Overheid, richt zich op veilige externe toegang voor overheidsorganisaties. Deze norm vereist dat organisaties adequate maatregelen treffen om externe toegang te beveiligen en te voorkomen dat systemen onnodig blootgesteld worden aan het internet. Azure Bastion voldoet aan deze vereiste door een beheerde, veilige tunnel te bieden voor externe toegang zonder dat virtuele machines zelf internettoegang nodig hebben. Naleving van BIO 13.01 is verplicht voor Nederlandse overheidsorganisaties en vormt een belangrijk onderdeel van de compliance-verificatie tijdens audits. De ISO 27001:2022 standaard bevat in controle A.8.20 specifieke vereisten voor netwerkbeveiliging en externe toegang. Deze controle vereist dat organisaties netwerkverbindingen beveiligen en adequate controles implementeren voor externe toegang tot informatiesystemen. Azure Bastion implementeert deze vereisten door middel van versleutelde verbindingen, authenticatie via Azure Active Directory, en het elimineren van directe internetblootstelling van virtuele machines. Organisaties die ISO 27001-certificering nastreven of behouden, moeten kunnen aantonen dat zij adequate maatregelen hebben genomen voor netwerkbeveiliging, waarbij Azure Bastion een belangrijke rol speelt. Voor auditing en compliance-verificatie moeten organisaties documentatie bijhouden die aantoont dat Azure Bastion correct is geïmplementeerd voor alle relevante virtuele netwerken. Deze documentatie moet de implementatiedatum, de configuratie-instellingen, en de resultaten van periodieke controles bevatten. Bovendien moeten organisaties kunnen aantonen dat zij een proces hebben voor het monitoren van Bastion-implementaties en het detecteren van niet-nalevingssituaties. Tijdens externe audits zullen auditors controleren of alle virtuele netwerken die virtuele machines bevatten, beschikken over een functionele Azure Bastion-implementatie. Zij zullen ook verifiëren dat de Bastion-host correct is geconfigureerd volgens best practices en dat er geen virtuele machines direct toegankelijk zijn via het internet via RDP of SSH. Niet-naleving kan leiden tot negatieve auditbevindingen, verhoogde beveiligingsrisico's, en mogelijke gevolgen voor certificeringen of contractuele verplichtingen. Organisaties moeten daarom een gestructureerde aanpak hanteren voor het implementeren en onderhouden van Azure Bastion-implementaties. Dit omvat het opstellen van beleid en procedures, het uitvoeren van regelmatige compliance-controles, het documenteren van configuraties en wijzigingen, en het trainen van personeel in het gebruik en beheer van Azure Bastion. Door deze maatregelen te nemen, kunnen organisaties niet alleen voldoen aan de compliance-vereisten, maar ook hun algehele beveiligingspostuur verbeteren en het risico op beveiligingsincidenten verminderen.
Remediatie
Gebruik PowerShell-script bastion-host-exists.ps1 (functie Invoke-Remediation) – Herstellen.
Wanneer monitoring detecteert dat een virtueel netwerk geen Azure Bastion-host heeft, moet onmiddellijk actie worden ondernomen om deze situatie te herstellen. De remediatieprocedure begint met het analyseren van de specifieke situatie: is het AzureBastionSubnet aanwezig maar ontbreekt de Bastion-host, of ontbreekt het subnet volledig? Deze analyse bepaalt de exacte stappen die moeten worden genomen om de niet-naleving te verhelpen. Het is belangrijk om snel te handelen omdat virtuele netwerken zonder Bastion mogelijk al onveilige externe toegang methoden gebruiken die een direct beveiligingsrisico vormen voor de organisatie. Het PowerShell-script 'bastion-host-exists.ps1' met de functie 'Invoke-Remediation' automatiseert het remediatieproces door eerst te controleren of het AzureBastionSubnet bestaat. Als het subnet ontbreekt, wordt het automatisch aangemaakt met de juiste naam en een minimale grootte van /26. Het subnet wordt geconfigureerd met de juiste routetabellen en netwerkbeveiligingsgroepen om communicatie met de doel-virtuele machines mogelijk te maken. Deze geautomatiseerde aanpak voorkomt configuratiefouten en zorgt ervoor dat het subnet correct wordt aangemaakt volgens de Azure-vereisten en beste praktijken. Zodra het subnet aanwezig is, wordt de Azure Bastion-host geïmplementeerd. De implementatie vereist verschillende configuratieparameters, waaronder de keuze van de SKU (Basic of Standard), de naam van de Bastion-host, en de koppeling aan het juiste virtuele netwerk en subnet. Het script configureert automatisch de standaardinstellingen die voldoen aan beveiligingsbeste praktijken, inclusief het inschakelen van diagnostische logboeken en integratie met Azure Monitor. Deze configuratie zorgt ervoor dat organisaties niet alleen een functionele Bastion-host krijgen, maar ook een die correct is geconfigureerd voor monitoring en auditing doeleinden. Tijdens de implementatie moet rekening worden gehouden met de kosten. Azure Bastion wordt gefactureerd op basis van het aantal uren dat de service actief is, ongeacht of er daadwerkelijk verbindingen worden gemaakt. Voor de Basic SKU bedragen de kosten ongeveer €140 per maand per Bastion-host, terwijl de Standard SKU hogere kosten met zich meebrengt maar ook aanvullende functionaliteit biedt. Organisaties moeten deze kosten afwegen tegen de beveiligingsvoordelen en compliance-vereisten. Voor organisaties met meerdere virtuele netwerken kunnen de kosten aanzienlijk oplopen, wat betekent dat een zorgvuldige planning en budgettering essentieel zijn voordat remediatie wordt uitgevoerd. Na de implementatie moet de Bastion-host worden geverifieerd om te controleren of deze correct functioneert. Dit omvat het testen van verbindingen naar virtuele machines binnen het virtuele netwerk, het controleren van de netwerkconfiguratie, en het verifiëren dat diagnostische logboeken correct worden gegenereerd. Het script voert automatisch basisverificaties uit, maar handmatige tests worden aanbevolen om volledige functionaliteit te garanderen. Deze verificatie is cruciaal omdat configuratiefouten of netwerkproblemen kunnen voorkomen dat gebruikers daadwerkelijk verbinding kunnen maken met virtuele machines via Bastion, waardoor organisaties mogelijk terugvallen op onveilige alternatieven. Voor organisaties met meerdere virtuele netwerken die allemaal Bastion vereisen, kan de remediatie worden uitgevoerd voor alle niet-nalevende netwerken tegelijk. Het script kan worden geconfigureerd om automatisch alle gedetecteerde niet-nalevingssituaties te herstellen, of om eerst een rapport te genereren zodat organisaties kunnen beslissen welke netwerken prioriteit hebben. Voor productieomgevingen wordt aanbevolen om eerst een testomgeving te gebruiken om de remediatieprocedure te valideren voordat deze op grote schaal wordt toegepast. Deze gefaseerde aanpak voorkomt onverwachte problemen in productieomgevingen en zorgt ervoor dat organisaties vertrouwen hebben in de remediatieprocedure voordat deze wordt toegepast op kritieke systemen. Na de remediatie moet de monitoring worden herhaald om te verifiëren dat de implementatie succesvol was en dat de Bastion-host correct functioneert. Bovendien moeten organisaties overwegen om Azure Policy te implementeren die automatisch nieuwe virtuele netwerken controleert en waarschuwt wanneer Bastion ontbreekt, of zelfs automatisch een Bastion-host implementeert wanneer een nieuw virtueel netwerk wordt aangemaakt met virtuele machines die externe toegang vereisen. Deze preventieve maatregelen helpen voorkomen dat niet-nalevingssituaties in de toekomst ontstaan en zorgen ervoor dat organisaties proactief werken aan het handhaven van beveiligingsstandaarden in plaats van reactief te reageren op compliance-problemen. Door deze preventieve aanpak te combineren met regelmatige monitoring en geautomatiseerde remediatie, kunnen organisaties een robuuste beveiligingsstrategie implementeren die voldoet aan compliance-vereisten en bescherming biedt tegen moderne cyberbedreigingen.
Compliance & Frameworks
- CIS M365: Control 6.5 (L2) - Azure Bastion implementatie voor beveiligde remote access
- BIO: 13.01 - Veilige remote access voor overheidsorganisaties
- ISO 27001:2022: A.8.20 - Netwerkbeveiliging en externe toegangscontroles
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
Azure Bastion is een beheerde springplank service die veilige RDP- en SSH-verbindingen mogelijk maakt via de browser zonder dat virtuele machines openbare IP-adressen nodig hebben. Netwerkbeveiligingsgroepen kunnen poorten 3389 en 22 volledig blokkeren omdat alle toegang via Bastion verloopt. Activatie vereist het implementeren van Bastion in een toegewijd subnet binnen het virtuele netwerk. De kosten bedragen ongeveer €140 per maand voor de Basic SKU. Implementatie is verplicht volgens CIS 6.5 en BIO 13.01. De implementatietijd bedraagt 3 tot 4 uur. Azure Bastion elimineert volledig de blootstelling van RDP- en SSH-verbindingen aan het internet.
- Implementatietijd: 4 uur
- FTE required: 0.05 FTE