RDP Toegang Beperkt Vanaf Internet

💼 Management Samenvatting

RDP-toegang (TCP-poort 3389) vanaf internet moet worden geblokkeerd via Netwerkbeveiligingsgroepen om brute force-aanvallen, credential stuffing en geautomatiseerde exploitatie te voorkomen. Gebruik in plaats daarvan Azure Bastion of Just-in-Time (JIT) toegang voor veilige remote access.

Aanbeveling
IMPLEMENTEER ONMIDDELLIJK - KRITIEK
Risico zonder
Critical
Risk Score
10/10
Implementatie
4u (tech: 2u)
Van toepassing op:
Azure VMs
Netwerkbeveiligingsgroepen
Virtual Networks

RDP (Remote Desktop Protocol) poort 3389 die openstaat naar internet is een van de meest gescande en aangevallen services wereldwijd. Geautomatiseerde bots scannen continu het internet af naar open RDP-poorten, waarbij miljoenen scans per dag worden uitgevoerd. Brute force-aanvallen proberen systematisch veelgebruikte wachtwoorden zoals admin, Administrator of password123 te raden. Credential stuffing gebruikt gelekte inloggegevens van datalekken om toegang te verkrijgen. RDP-exploits maken gebruik van bekende kwetsbaarheden zoals BlueKeep (CVE-2019-0708) en DejaBlue. Een succesvolle RDP-toegang resulteert in volledige servercompromittering met administratorprivileges. Beveiligingstelemetrie toont aan dat virtuele machines met RDP open naar internet gemiddeld meer dan 200.000 brute force-pogingen per maand ontvangen. Voor zwakke wachtwoorden bedraagt de gemiddelde tijd tot compromittering slechts 4 tot 8 uur. RDP-gebaseerde compromitteringen leiden vaak tot ransomware-implementatie, cryptocurrency mining, laterale beweging naar andere virtuele machines en data-exfiltratie. CIS, Microsoft, CISA en NSA raden allemaal aan om RDP nooit direct bloot te stellen aan internet. Gebruik in plaats daarvan veilige alternatieven zoals Azure Bastion (browsergebaseerde RDP via Azure Portal, geen openbaar IP-adres nodig), Just-in-Time VM-toegang (tijdelijke poortopening met tijdslimiet), VPN of ExpressRoute (privéconnectiviteit), of SSH-tunneling met sterke authenticatie.

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

Implementatie

Deze controle scant alle Netwerkbeveiligingsgroepen (NSG's) op inkomende regels die RDP-poort 3389 toestaan vanaf internet. Specifiek detecteert het: bron is * of 0.0.0.0/0 of Internet (elke bron), bestemmingspoort is 3389 (RDP-poort), richting is Inkomend, actie is Toestaan. Elke NSG met een dergelijke regel is niet-compliant en hoog risico. Het script inventariseert alle NSG's in het abonnement, analyseert beveiligingsregels en rapporteert NSG's met onbeperkte RDP-toegang. Aanbevolen remediatie: verwijder regels die RDP van overal toestaan, implementeer Azure Bastion (aanbevolen, circa €100 per maand maar elimineert het aanvalsoppervlak volledig), of gebruik Just-in-Time VM-toegang (Defender voor servers Plan 2), of beperk het bron-IP-adres tot alleen bedrijfs-IP-bereiken (minst voorkeur, beheeroverhead).

Vereisten

Voordat u RDP-toegang vanaf internet blokkeert, moet u ervoor zorgen dat uw organisatie beschikt over de juiste infrastructuur, licenties en processen. Deze vereisten zijn essentieel voor een succesvolle implementatie zonder verstoring van legitieme remote access-behoeften en om te voldoen aan beveiligingsbest practices en compliance-standaarden.

De primaire technische vereiste is de aanwezigheid van Azure virtuele machines met gekoppelde Netwerkbeveiligingsgroepen. Netwerkbeveiligingsgroepen zijn de primaire mechanismen voor het beheren van netwerkverkeer naar en van Azure-resources. Zonder NSG's kunnen beveiligingsregels niet worden geconfigureerd om RDP-toegang te beperken. Organisaties moeten ervoor zorgen dat alle virtuele machines die RDP-toegang vereisen, zijn gekoppeld aan een Netwerkbeveiligingsgroep. Voor bestaande virtuele machines zonder NSG moet eerst een NSG worden aangemaakt en gekoppeld aan de netwerkinterface of het subnet waar de VM zich bevindt.

Voor het wijzigen van Netwerkbeveiligingsgroepen is de Network Contributor-rol vereist op het abonnement of de resourcegroep. Deze rol verleent de benodigde machtigingen om beveiligingsregels toe te voegen, te wijzigen of te verwijderen. Organisaties moeten het principe van least privilege toepassen en alleen geautoriseerd personeel deze rol verlenen. Voor grotere organisaties kan het raadzaam zijn om een specifieke aangepaste rol te creëren die alleen NSG-wijzigingen toestaat zonder volledige Network Contributor-machtigingen, wat de beveiligingspostuur verbetert.

Een kritieke vereiste is de beschikbaarheid van een alternatieve remote access-oplossing voordat RDP-toegang vanaf internet wordt geblokkeerd. Zonder een alternatief zouden beheerders geen toegang meer hebben tot virtuele machines, wat kan leiden tot operationele verstoringen. De aanbevolen oplossing is Azure Bastion, een volledig beheerde PaaS-service die veilige en naadloze RDP- en SSH-connectiviteit biedt via de Azure Portal zonder dat virtuele machines een openbaar IP-adres nodig hebben. Azure Bastion kost ongeveer €100 per maand voor de Basic SKU, wat een redelijke investering is gezien de beveiligingsvoordelen. Alternatieven zijn VPN-verbindingen (site-to-site of point-to-site), ExpressRoute voor privéconnectiviteit, of Just-in-Time VM-toegang via Microsoft Defender voor Cloud. Elke organisatie moet de meest geschikte oplossing selecteren op basis van hun specifieke behoeften, budget en beveiligingsvereisten.

Voor organisaties die Just-in-Time VM-toegang willen gebruiken, is Microsoft Defender voor servers Plan 2 vereist. Deze licentie biedt geavanceerde beveiligingsfuncties inclusief Just-in-Time-toegang, die tijdelijk RDP- of SSH-poorten opent op basis van goedgekeurde verzoeken. Plan 2 biedt ook aanvullende beveiligingsfuncties zoals adaptieve toepassingscontroles, bestandsintegriteitsmonitoring en netwerkkaartanalyse. Organisaties moeten de kosten van Defender voor servers Plan 2 afwegen tegen de beveiligingsvoordelen en operationele flexibiliteit die het biedt. Voor kleinere omgevingen kan Azure Bastion een kosteneffectievere oplossing zijn, terwijl grotere organisaties met honderden virtuele machines mogelijk meer waarde halen uit Just-in-Time-toegang.

Een uitgebreide inventarisatie van gebruikers die RDP-toegang nodig hebben, is essentieel om te voorkomen dat legitieme toegang wordt geblokkeerd. Deze inventarisatie moet identificeren welke gebruikers of groepen toegang nodig hebben, welke virtuele machines zij moeten kunnen benaderen, en wat de frequentie en het tijdstip van toegang is. Deze informatie helpt bij het configureren van alternatieve toegangsmethoden en bij het communiceren van wijzigingen aan betrokkenen. De inventarisatie moet ook worden gebruikt om te verifiëren dat alle gebruikers na de implementatie van alternatieve toegangsmethoden nog steeds de benodigde toegang hebben. Zonder een complete inventarisatie bestaat het risico dat kritieke gebruikers worden uitgesloten, wat kan leiden tot operationele problemen en vertragingen in de implementatie.

Implementatie

Gebruik PowerShell-script rdp-access-restricted.ps1 (functie Invoke-Monitoring) – PowerShell script voor scanning van NSG's voor onbeperkte RDP-regels.

**FASE 1: Identificeer Blootgestelde RDP-toegang (URGENT)**

De eerste fase van de implementatie richt zich op het identificeren van alle virtuele machines met RDP-toegang die is blootgesteld aan internet. Dit is een urgente activiteit omdat elke minuut dat RDP openstaat naar internet het risico op compromittering verhoogt. Voer het monitoring script uit om alle Netwerkbeveiligingsgroepen te scannen op regels die RDP-poort 3389 toestaan vanaf internet. Het script identificeert NSG's met inkomende regels waarbij de bron is ingesteld op 0.0.0.0/0 of Internet en de bestemmingspoort 3389 is met de actie Toestaan.

Voor elke blootgestelde virtuele machine moet een beoordeling worden uitgevoerd van de kritiekheid en de gevoeligheid van de data. Productie-VM's met gevoelige gegevens hebben de hoogste prioriteit voor onmiddellijke remediatie. Voor productie-VM's met actieve bedreigingen moet de RDP-regel onmiddellijk worden uitgeschakeld, zelfs als dit tijdelijk de toegang kan onderbreken. Deze actie voorkomt actieve aanvallen en vermindert het risico op compromittering aanzienlijk. Het is belangrijk om VM-eigenaren proactief te communiceren dat RDP-internettoegang wordt uitgeschakeld vanwege beveiligingsrisico's. Leg uit dat alternatieve toegangsmethoden worden geïmplementeerd en dat de verstoring tijdelijk is. Voor kritieke of productie-VM's moet de remediatie dezelfde dag plaatsvinden om het risico te minimaliseren. Documenteer alle geïdentificeerde blootgestelde VM's en hun remediatiestatus in een tracking-systeem om ervoor te zorgen dat geen enkele VM wordt vergeten.

**FASE 2: Implementeer Azure Bastion (AANBEVOLEN)**

Azure Bastion is de aanbevolen oplossing voor veilige RDP-toegang omdat het het aanvalsoppervlak volledig elimineert door virtuele machines niet bloot te stellen aan internet. Begin met het navigeren naar de Azure Portal en selecteer 'Een resource maken' gevolgd door 'Bastion'. Selecteer het virtuele netwerk waar de virtuele machines zich bevinden. Het is belangrijk dat alle VM's die via Bastion toegankelijk moeten zijn, zich in hetzelfde virtuele netwerk bevinden of via VNet-peering zijn verbonden.

Maak een dedicated subnet aan genaamd 'AzureBastionSubnet' met een minimale grootte van /27 (32 IP-adressen). Dit subnet is vereist voor Azure Bastion en kan niet worden gebruikt voor andere resources. De subnetgrootte moet voldoende zijn voor de Bastion-service en eventuele toekomstige schaalvergroting. Voor grotere omgevingen met veel gelijktijdige verbindingen kan een groter subnet zoals /26 of /25 nodig zijn. Maak een nieuw openbaar IP-adres aan voor Bastion, wat vereist is voor de service. Het openbare IP-adres wordt alleen gebruikt voor de Bastion-service zelf en niet voor de virtuele machines, wat de beveiliging verbetert.

Selecteer de SKU: Basic voor €100 per maand of Standard voor €150 per maand met geavanceerde functies zoals IP-based connectiviteit en snellere prestaties. Voor de meeste organisaties is de Basic SKU voldoende. De Standard SKU biedt extra functies zoals ondersteuning voor meerdere virtuele netwerken en verbeterde prestaties, wat waardevol kan zijn voor grotere omgevingen. Na configuratie duurt de implementatie van Bastion ongeveer 15 tot 20 minuten. Zodra Bastion is geïmplementeerd, kunnen de NSG-regels die RDP vanaf internet toestaan worden verwijderd, omdat Bastion een veilig alternatief biedt.

Gebruikers kunnen toegang krijgen tot virtuele machines via Azure Portal door te navigeren naar de VM, op 'Verbinding maken' te klikken en 'Bastion' te selecteren. De voordelen van Azure Bastion zijn aanzienlijk: virtuele machines hebben geen openbaar IP-adres nodig, wat het aanvalsoppervlak elimineert. De toegang is browsergebaseerd, wat betekent dat gebruikers geen speciale RDP-clients nodig hebben. Multi-factor authenticatie is geïntegreerd via Azure AD, wat de beveiliging verbetert. Alle verbindingen worden volledig gelogd voor auditdoeleinden, wat helpt bij compliance en forensisch onderzoek. Deze combinatie van beveiliging, gebruiksgemak en compliance maakt Azure Bastion de aanbevolen oplossing voor de meeste organisaties.

**FASE 3: Alternatief - Just-in-Time VM-toegang**

Just-in-Time VM-toegang is een alternatieve oplossing die tijdelijk RDP- of SSH-poorten opent op basis van goedgekeurde verzoeken. Deze oplossing vereist Microsoft Defender voor servers Plan 2, wat extra licentie kosten met zich meebrengt. Navigeer naar Microsoft Defender voor Cloud in de Azure Portal en selecteer 'Just-in-time VM-toegang' onder 'Cloudbeveiliging'. Configureer Just-in-Time-toegang door de virtuele machines te selecteren waarvoor JIT moet worden ingeschakeld.

Configureer de JIT-instellingen voor RDP-poort 3389 met een maximale verzoektijd van 3 uur. Dit betekent dat wanneer een gebruiker toegang aanvraagt, de poort maximaal 3 uur open blijft voordat deze automatisch wordt gesloten. Stel toegestane bron-IP-adressen in op 'Mijn IP' om ervoor te zorgen dat alleen het IP-adres van de aanvrager toegang krijgt. Voor organisaties met dynamische IP-adressen kan het nodig zijn om IP-bereiken te configureren in plaats van specifieke IP-adressen.

Wanneer een gebruiker RDP-toegang nodig heeft, moet hij of zij een verzoek indienen via Microsoft Defender voor Cloud. Het verzoek gaat door een goedkeuringsworkflow waarbij een geautoriseerde beheerder het verzoek moet goedkeuren voordat de poort wordt geopend. Zodra het verzoek is goedgekeurd, wordt automatisch een NSG-regel aangemaakt die RDP-toegang toestaat vanaf het goedgekeurde IP-adres. Na de geconfigureerde tijd (bijvoorbeeld 3 uur) wordt de regel automatisch verwijderd, waardoor de poort weer wordt gesloten. De voordelen van Just-in-Time-toegang zijn: tijdbeperkte toegang die automatisch wordt gesloten, een goedkeuringsworkflow die onbevoegde toegang voorkomt, volledige audit trails van alle toegangsverzoeken en goedkeuringen, en geen permanente toegang die kan worden misbruikt. Deze aanpak is bijzonder geschikt voor organisaties die strikte toegangscontrole vereisen en die bereid zijn te investeren in Defender voor servers Plan 2.

Monitoring

Gebruik PowerShell-script rdp-access-restricted.ps1 (functie Invoke-Monitoring) – Continue monitoring voor NSG-wijzigingen die RDP openen.

Effectieve monitoring van RDP-toegangsbeperkingen is essentieel om te waarborgen dat nieuwe of gewijzigde Netwerkbeveiligingsgroepen niet per ongeluk RDP-toegang vanaf internet toestaan. Monitoring omvat het continu volgen van NSG-wijzigingen, het detecteren van nieuwe regels die RDP openen, het verifiëren dat bestaande beperkingen intact blijven, en het waarborgen dat alle toegangsactiviteiten worden gelogd voor auditdoeleinden. Zonder uitgebreide monitoring kunnen organisaties niet garanderen dat hun beveiligingspostuur behouden blijft en dat compliance-vereisten worden nageleefd.

Implementeer een Azure Policy met de naam 'RDP-toegang vanaf internet moet worden geblokkeerd' om ervoor te zorgen dat nieuwe of gewijzigde NSG's automatisch worden gecontroleerd. Deze policy detecteert NSG-regels die RDP-poort 3389 toestaan vanaf internet en markeert deze als niet-compliant. Configureer de policy om automatisch te herstellen door niet-compliant regels te verwijderen of te wijzigen, of om alleen te waarschuwen zodat beheerders handmatig kunnen ingrijpen. De policy moet worden toegepast op alle abonnementen en resourcegroepen om consistentie te waarborgen. Regelmatige reviews van policy-compliance zijn essentieel om ervoor te zorgen dat de policy correct functioneert en dat alle resources compliant zijn.

Configureer Azure Monitor-waarschuwingen die onmiddellijk een melding sturen wanneer nieuwe NSG-regels worden aangemaakt die RDP vanaf internet toestaan. Deze waarschuwingen moeten worden geconfigureerd om te detecteren wanneer een NSG-regel wordt aangemaakt met een bron van 0.0.0.0/0 of Internet, een bestemmingspoort van 3389, en een actie van Toestaan. De waarschuwingen moeten onmiddellijk worden verzonden naar het security operations center en naar netwerkbeheerders zodat snelle actie kan worden ondernomen. Configureer ook waarschuwingen voor wijzigingen aan bestaande NSG-regels die kunnen leiden tot RDP-blootstelling, zoals het wijzigen van een bron-IP-adres naar 0.0.0.0/0 of het wijzigen van een actie van Weigeren naar Toestaan.

NSG-flow logs moeten worden ingeschakeld en gemonitord voor RDP-verbindingspogingen. In een goed beveiligde omgeving zouden er geen RDP-verbindingspogingen vanaf internet moeten zijn, wat betekent dat flow logs voor poort 3389 met een internetbron idealiter nul verbindingspogingen zouden moeten tonen. Elke RDP-verbindingspoging vanaf internet moet worden onderzocht als een potentiële beveiligingsbedreiging, omdat dit kan wijzen op een misconfiguratie of een actieve aanval. Configureer waarschuwingen die worden geactiveerd wanneer RDP-verbindingspogingen worden gedetecteerd in flow logs, zelfs als deze worden geblokkeerd door NSG-regels. Deze waarschuwingen helpen bij het identificeren van scan-activiteiten en brute force-aanvallen die kunnen wijzen op gerichte aanvallen tegen uw omgeving.

Voor organisaties die Azure Bastion gebruiken, moeten Bastion-gebruikslogboeken worden gemonitord om te volgen wie RDP-toegang gebruikt via Bastion. Deze logboeken bevatten informatie over welke gebruikers verbinding maken, welke virtuele machines zij benaderen, en wanneer de verbindingen plaatsvinden. Deze informatie is essentieel voor security audits, compliance-rapportage en forensisch onderzoek. Configureer regelmatige reviews van Bastion-logboeken om afwijkende toegangspatronen te identificeren, zoals verbindingen buiten normale werkuren of toegang tot ongebruikelijke virtuele machines. Deze reviews moeten maandelijks plaatsvinden en moeten worden gedocumenteerd voor auditdoeleinden.

Voor organisaties die Just-in-Time VM-toegang gebruiken, moeten JIT-toegangsverzoeken worden gereviewd om goedkeurings- en weigeringspatronen te identificeren. Analyseer welke gebruikers regelmatig toegang aanvragen, welke virtuele machines het meest worden benaderd, en of er patronen zijn die kunnen wijzen op misbruik of inefficiëntie. Reviews van JIT-toegangsverzoeken moeten kwartaal plaatsvinden en moeten worden gebruikt om toegangsbeleid te optimaliseren. Identificeer gebruikers die zeer frequent toegang aanvragen en overweeg of permanente toegang via Azure Bastion of VPN een betere oplossing zou zijn. Documenteer alle bevindingen en verbeter de processen op basis van de geleerde lessen.

Voer kwartaal handmatige reviews uit om te valideren dat geen enkele NSG RDP-blootstelling aan internet heeft. Deze reviews moeten alle NSG's in alle abonnementen omvatten en moeten worden uitgevoerd door een onafhankelijke partij (zoals een security team of externe auditor) om objectiviteit te waarborgen. Documenteer alle bevindingen en zorg ervoor dat eventuele niet-compliant configuraties onmiddellijk worden gecorrigeerd. Deze reviews zijn essentieel voor compliance-audits en helpen bij het waarborgen van continue beveiliging. De resultaten van deze reviews moeten worden gedeeld met management en moeten worden gebruikt om beveiligingsprocessen en -training te verbeteren.

Compliance en Auditing

RDP-toegangsbeperking is een fundamentele baselinevereiste voor netwerkbeveiliging en is opgenomen in alle belangrijke beveiligingsframeworks en compliance-standaarden. Het beperken van RDP-toegang vanaf internet is niet alleen een best practice, maar vaak een verplichte vereiste voor organisaties die moeten voldoen aan beveiligings- en compliance-standaarden. Open RDP-toegang is vaak het eerste kritieke bevinding bij beveiligingsaudits en penetratietests, wat aangeeft hoe belangrijk deze maatregel is voor de algehele beveiligingspostuur van een organisatie.

De CIS Azure Foundations Benchmark v3.0.0 controle 6.23 vereist expliciet dat organisaties ervoor zorgen dat RDP-toegang vanaf internet is beperkt. Deze controle is geclassificeerd als Level 1, wat betekent dat deze wordt beschouwd als een fundamentele beveiligingsmaatregel die door alle organisaties moet worden geïmplementeerd, ongeacht hun grootte of industrie. Het niet implementeren van deze controle resulteert in een failed audit finding, wat kan leiden tot compliance-problemen bij klanten of partners die CIS Azure-compliance vereisen. De controle specificeert dat Netwerkbeveiligingsgroepen geen regels mogen bevatten die RDP-poort 3389 toestaan vanaf bron 0.0.0.0/0 of Internet. Organisaties moeten kunnen aantonen dat alle NSG's zijn geconfigureerd om RDP-toegang vanaf internet te blokkeren en dat alternatieve toegangsmethoden zoals Azure Bastion of Just-in-Time-toegang zijn geïmplementeerd.

De Baseline Informatiebeveiliging Overheid (BIO) specificeert in Thema 13.01 dat organisaties netwerkbeveiligingsmaatregelen moeten implementeren, inclusief toegangscontrole en authenticatie. Voor Nederlandse overheidsorganisaties is de BIO-baseline verplicht, en het niet voldoen aan deze vereisten kan leiden tot beveiligingsincidenten en compliance-problemen. Thema 13.01 vereist dat organisaties netwerktoegang beperken tot alleen geautoriseerde gebruikers en systemen, wat betekent dat RDP-toegang vanaf internet moet worden geblokkeerd tenzij er specifieke, gedocumenteerde en goedgekeurde uitzonderingen zijn. Organisaties moeten kunnen aantonen dat ze netwerkbeveiligingsmaatregelen hebben geïmplementeerd die onbevoegde toegang voorkomen, wat RDP-toegangsbeperkingen omvat. Het niet implementeren van RDP-toegangsbeperkingen kan resulteren in niet-naleving van BIO-vereisten, wat kan leiden tot beveiligingsincidenten en mogelijke sancties.

ISO 27001:2022 controle A.8.20 richt zich op netwerkbeveiliging en vereist dat organisaties netwerktoegangscontrole en authenticatie implementeren. Deze controle vereist dat organisaties netwerktoegang beperken tot alleen geautoriseerde gebruikers en systemen en dat ze passende authenticatiemechanismen implementeren. RDP-toegang vanaf internet zonder beperkingen voldoet niet aan deze vereisten omdat het onbevoegde toegang mogelijk maakt. Organisaties die ISO 27001-certificering willen behalen of behouden, moeten kunnen aantonen dat ze netwerktoegangsbeperkingen hebben geïmplementeerd, inclusief RDP-toegangsbeperkingen. Het niet implementeren van deze maatregelen kan resulteren in een failed audit finding tijdens ISO 27001-certificeringsaudits, wat kan leiden tot het verlies van certificering of het niet behalen van certificering.

De NIS2-richtlijn, die in Nederland is geïmplementeerd via de Wet beveiliging netwerk- en informatiesystemen, vereist in Artikel 21 dat essentiële en belangrijke entiteiten passende beveiligingsmaatregelen implementeren, inclusief veilige remote access-mechanismen. Deze vereiste is met name relevant voor organisaties in kritieke sectoren zoals energie, transport, gezondheidszorg en financiële dienstverlening. Artikel 21 specificeert dat organisaties moeten kunnen aantonen dat ze veilige remote access-mechanismen hebben geïmplementeerd die onbevoegde toegang voorkomen. RDP-toegang vanaf internet zonder beperkingen voldoet niet aan deze vereisten omdat het onbevoegde toegang mogelijk maakt en een aanzienlijk beveiligingsrisico vormt. Het niet implementeren van RDP-toegangsbeperkingen kan resulteren in niet-naleving van NIS2-vereisten, wat kan leiden tot boetes en andere handhavingsmaatregelen door de Autoriteit Consument en Markt (ACM) of andere toezichthouders.

Voor auditdoeleinden moeten organisaties kunnen aantonen dat RDP-toegang vanaf internet is beperkt en dat alternatieve toegangsmethoden zijn geïmplementeerd. Dit omvat het documenteren van NSG-configuraties die RDP-toegang blokkeren, het bijhouden van Azure Policy-compliance, het loggen van alle toegangsactiviteiten via Azure Bastion of Just-in-Time-toegang, en het regelmatig reviewen van beveiligingsconfiguraties. Organisaties moeten ook kunnen aantonen dat ze processen hebben geïmplementeerd om te voorkomen dat nieuwe NSG-regels per ongeluk RDP-toegang vanaf internet toestaan, zoals Azure Policy en regelmatige compliance-reviews. Deze documentatie is essentieel voor het succesvol doorstaan van compliance-audits en voor het aantonen van due diligence bij beveiligingsincidenten.

Remediatie

Gebruik PowerShell-script rdp-access-restricted.ps1 (functie Invoke-Remediation) – Automatiseert het verwijderen van NSG-regels die RDP vanaf internet toestaan.

Remediatie van RDP-toegang vanaf internet omvat het verwijderen of wijzigen van Netwerkbeveiligingsgroep-regels die RDP-poort 3389 toestaan vanaf internet, en het implementeren van alternatieve toegangsmethoden zoals Azure Bastion of Just-in-Time VM-toegang. Het is belangrijk om remediatie zorgvuldig te plannen om te voorkomen dat legitieme gebruikers worden uitgesloten en om operationele verstoringen te minimaliseren. Voor productie-omgevingen met actieve bedreigingen kan onmiddellijke remediatie nodig zijn, zelfs als dit tijdelijk de toegang onderbreekt.

De eerste stap in het remediatieproces is het identificeren van alle Netwerkbeveiligingsgroepen met regels die RDP vanaf internet toestaan. Gebruik het monitoring script om alle NSG's te scannen en een lijst te genereren van niet-compliant configuraties. Voor elke geïdentificeerde NSG moet worden beoordeeld welke virtuele machines worden beïnvloed en wat de kritiekheid en gevoeligheid van de data is. Productie-VM's met gevoelige gegevens hebben de hoogste prioriteit voor onmiddellijke remediatie. Documenteer alle geïdentificeerde configuraties en hun remediatiestatus in een tracking-systeem.

Voor productie-VM's met actieve bedreigingen of hoge beveiligingsrisico's moet de RDP-regel onmiddellijk worden verwijderd of gewijzigd, zelfs als dit tijdelijk de toegang kan onderbreken. Deze actie voorkomt actieve aanvallen en vermindert het risico op compromittering aanzienlijk. Communiceer proactief met VM-eigenaren dat RDP-internettoegang wordt uitgeschakeld vanwege beveiligingsrisico's en dat alternatieve toegangsmethoden worden geïmplementeerd. Leg uit dat de verstoring tijdelijk is en dat toegang zal worden hersteld zodra alternatieve methoden zijn geconfigureerd.

Voor nieuwe of niet-kritieke VM's kan remediatie worden uitgevoerd door de NSG-regel te verwijderen die RDP vanaf internet toestaat. Zorg ervoor dat alternatieve toegangsmethoden zoals Azure Bastion of Just-in-Time-toegang zijn geconfigureerd voordat de regel wordt verwijderd. Test de alternatieve toegangsmethoden grondig om ervoor te zorgen dat gebruikers nog steeds toegang hebben voordat de oude RDP-regel wordt verwijderd. Voor bestaande productie-VM's kan een gefaseerde aanpak nodig zijn waarbij eerst alternatieve toegangsmethoden worden geïmplementeerd en getest voordat de oude RDP-regel wordt verwijderd.

Na remediatie moet worden geverifieerd dat alle NSG's compliant zijn en dat geen enkele regel RDP vanaf internet toestaat. Voer het monitoring script opnieuw uit om te verifiëren dat alle geïdentificeerde problemen zijn opgelost. Test ook dat alternatieve toegangsmethoden correct functioneren en dat gebruikers nog steeds toegang hebben tot de virtuele machines. Documenteer alle uitgevoerde remediatie-activiteiten voor auditdoeleinden en zorg ervoor dat alle wijzigingen worden gereviewd en goedgekeurd door de juiste stakeholders.

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 RDP Access Restricted .DESCRIPTION CIS Azure Foundations Benchmark - Control 6.23 Controleert dat RDP toegang (3389) restrictief is geconfigureerd. .NOTES Filename: rdp-access-restricted.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 6.23 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Network [CmdletBinding()] param([Parameter()][switch]$Monitoring) $ErrorActionPreference = 'Stop' $PolicyName = "RDP Access Restricted" function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } function Test-Compliance { $nsgs = Get-AzNetworkSecurityGroup -ErrorAction SilentlyContinue $result = @{ TotalNSGs = $nsgs.Count; WithUnrestrictedRDP = 0 } foreach ($nsg in $nsgs) { $rdpRules = $nsg.SecurityRules | Where-Object { ($_.DestinationPortRange -eq '3389' -or $_.DestinationPortRange -contains '3389') -and ($_.SourceAddressPrefix -eq '*' -or $_.SourceAddressPrefix -eq '0.0.0.0/0' -or $_.SourceAddressPrefix -eq 'Internet') -and $_.Direction -eq 'Inbound' -and $_.Access -eq 'Allow' } if ($rdpRules) { $result.WithUnrestrictedRDP++ } } return $result } try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Total NSGs: $($r.TotalNSGs)" -ForegroundColor White Write-Host "With Unrestricted RDP: $($r.WithUnrestrictedRDP)" -ForegroundColor $(if ($r.WithUnrestrictedRDP -eq 0) { 'Green' } else { 'Red' }) if ($r.WithUnrestrictedRDP -gt 0) { Write-Host "`n⚠️ KRITIEK: Onbeperkte RDP toegang vanaf internet!" -ForegroundColor Red Write-Host "Gebruik Azure Bastion of beperk tot specifieke IPs" -ForegroundColor Yellow } } else { $r = Test-Compliance Write-Host "`nUnrestricted RDP: $($r.WithUnrestrictedRDP)/$($r.TotalNSGs) NSGs" } } catch { Write-Error $_; exit 1 } # ================================================================================ # Standaard Invoke-* Functions (Auto-generated) # ================================================================================ function Invoke-Implementation { <# .SYNOPSIS Implementeert de configuratie #> [CmdletBinding()] param() Invoke-Remediation } function Invoke-Monitoring { <# .SYNOPSIS Controleert de huidige configuratie status #> [CmdletBinding()] param() $Monitoring = $true try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Total NSGs: $($r.TotalNSGs)" -ForegroundColor White Write-Host "With Unrestricted RDP: $($r.WithUnrestrictedRDP)" -ForegroundColor $(if ($r.WithUnrestrictedRDP -eq 0) { 'Green' } else { 'Red' }) if ($r.WithUnrestrictedRDP -gt 0) { Write-Host "`n⚠️ KRITIEK: Onbeperkte RDP toegang vanaf internet!" -ForegroundColor Red Write-Host "Gebruik Azure Bastion of beperk tot specifieke IPs" -ForegroundColor Yellow } } else { $r = Test-Compliance Write-Host "`nUnrestricted RDP: $($r.WithUnrestrictedRDP)/$($r.TotalNSGs) NSGs" } } catch { Write-Error $_; exit 1 } } function Invoke-Remediation { <# .SYNOPSIS Herstelt de configuratie naar de gewenste staat .DESCRIPTION Dit is een monitoring-only control, remediation delegeert naar monitoring #> [CmdletBinding()] param() Write-Host "[INFO] Dit is een monitoring-only control" -ForegroundColor Yellow Write-Host "[INFO] Running monitoring check..." -ForegroundColor Cyan Invoke-Monitoring }

Risico zonder implementatie

Risico zonder implementatie
Critical: Wanneer RDP-toegang vanaf internet niet wordt beperkt, ontstaan aanzienlijke beveiligingsrisico's. Virtuele machines met open RDP naar internet ontvangen gemiddeld meer dan 200.000 brute force-pogingen per maand. Voor zwakke wachtwoorden bedraagt de gemiddelde tijd tot compromittering slechts 4 tot 8 uur. Succesvolle RDP-compromitteringen leiden vaak tot volledige VM-overname, ransomware-implementatie en laterale beweging naar andere virtuele machines. Open RDP is een laaghangend fruit voor aanvallers - geautomatiseerde scans vinden blootgestelde RDP-poorten binnen minuten. Compliance-vereisten: CIS 6.23, BIO 13.01, ISO 27001 A.8.20, NIS2 Artikel 21. Het risico is kritiek - RDP is de nummer één ransomware-vector. Het niet implementeren van deze maatregel resulteert in een failed audit finding bij beveiligingsaudits en kan leiden tot compliance-problemen en beveiligingsincidenten.

Management Samenvatting

RDP-toegangsbeperking: BLOKKEER RDP (poort 3389) vanaf internet voor alle NSG's. Gebruik Azure Bastion (circa €100 per maand) of Just-in-Time VM-toegang (Defender voor servers Plan 2). Open RDP betekent 4 tot 8 uur tot compromittering. Activering: NSG weigeren 3389 vanaf 0.0.0.0/0, implementeer Bastion. Kosten: Azure Bastion Basic circa €100 per maand, Standard circa €150 per maand. Verplicht voor CIS 6.23, BIO 13.01, ISO 27001 A.8.20, NIS2 Artikel 21. Implementatie: 1 tot 2 uur voor nieuwe omgevingen, 4 tot 8 uur voor bestaande omgevingen met migratie. Urgent: same-day remediatie voor kritieke en productie-VM's.