Is het gevaarlijk om RDP open te houden op het internet?

Ik heb vaak de mening gelezen dat het openen van de RDP (Remote Desktop Protocol) poort naar het internet zeer onveilig is, en dat je dat niet zou moeten doen. Je zou RDP-toegang alleen via een VPN of alleen vanaf bepaalde "witte" IP-adressen moeten geven.

Ik beheer verschillende Windows Server voor kleine bedrijven, waar ik de taak heb gekregen om afstandstoegang tot de Windows Server voor accountants te bieden. Dit is de moderne trend: werken vanuit huis. Al snel realiseerde ik me dat het een moeilijke taak is om accountants met een VPN te werken, en het zou niet lukken om alle IP-adressen voor de whitelist samen te stellen, omdat de IP-adressen van mensen dynamisch zijn.

Daarom nam ik de eenvoudigste route — ik opende de RDP-poort naar buiten. Nu hoeven accountants alleen maar RDP te starten en de hostnaam (inclusief poort), gebruikersnaam en wachtwoord in te voeren om toegang te krijgen.

In dit artikel deel ik mijn ervaringen (zowel positieve als minder positieve) en aanbevelingen.

Risico's

Wat riskeer je door de RDP-poort te openen?

1) Onautoriseerde toegang tot gevoelige gegevens
Als iemand het wachtwoord voor RDP achterhaalt, kan hij toegang krijgen tot gegevens die je privƩ wilt houden: rekeningstatussen, saldi, klantgegevens, ...

2) Gegevensverlies
Bijvoorbeeld als gevolg van het werk van ransomware.
Of door weloverwogen acties van een aanvaller.

3) Verlies van de werkstation
Werknemers moeten kunnen werken, maar het systeem is gecompromitteerd, het moet opnieuw worden geĆÆnstalleerd / hersteld / geconfigureerd.

4) Compromittering van het lokale netwerk
Als een aanvaller toegang krijgt tot een Windows-pc, kan hij vanaf die computer toegang krijgen tot systemen die vanuit het internet niet toegankelijk zijn. Bijvoorbeeld netwerkshares, netwerkprinters, enzovoort.

Ik heb een geval gehad waarin een Windows Server ransomware te pakken kreeg

en deze ransomware versleutelde eerst de meeste bestanden op schijf C:, en begon toen bestanden op de NAS via het netwerk te versleutelen. Aangezien de NAS een Synology was, met ingestelde snapshots, kon ik de NAS in 5 minuten herstellen, terwijl ik de Windows Server vanaf nul opnieuw moest installeren.

Observaties en Aanbevelingen

Ik monitor Windows Servers met behulp van Winlogbeat, die logs naar ElasticSearch versturen. In Kibana zijn er verschillende visualisaties, en ik heb nog een aangepaste dashboard ingesteld.
De monitoring zelf beschermt niet, maar helpt bij het bepalen van de nodige maatregelen.

Hier zijn enkele observaties:
a) RDP zal worden gebruteforced.
Op een van mijn servers heb ik RDP niet op de standaardpoort 3389 gezet, maar op 443 - zodat het lijkt op HTTPS. Het is misschien de moeite waard om van de standaardpoort te veranderen, maar dat biedt niet veel voordelen. Dit is de statistiek van deze server:

Is het gevaarlijk om RDP open te houden op het internet?

Het is duidelijk dat er in een week tijd bijna 400.000 mislukte pogingen waren om via RDP toegang te krijgen.
Het is duidelijk dat de pogingen om in te loggen afkomstig waren van 55.001 IP-adressen (sommige IP-adressen waren al door mij geblokkeerd).

Hier ligt de conclusie voor de hand dat je fail2ban moet installeren, maar

er is geen dergelijke tool voor Windows.

Er zijn een paar verlaten projecten op GitHub die dit blijkbaar proberen, maar ik heb ze nog niet geprobeerd:
https://github.com/glasnt/wail2ban
https://github.com/EvanAnderson/ts_block

Er zijn ook betaalde tools, maar die heb ik niet overwogen.

Als je een open tool voor dit doel kent, deel deze dan in de reacties.

Bijwerken: In de reacties werd gesuggereerd dat poort 443 een ongunstige keuze is, en het beter is om hoge poorten (32000+) te kiezen, omdat 443 vaker gescand wordt, en het geen probleem is om RDP op deze poort te herkennen.

Update: In de reacties werd gesuggereerd dat er zo'n tool bestaat:
https://github.com/digitalruby/ipban

b) Er zijn bepaalde gebruikersnamen die aanvallers liever gebruiken.
Het is duidelijk dat de brute-force aanvallen gebaseerd zijn op een woordenlijst met verschillende namen.
Maar wat ik opmerkte: een aanzienlijk aantal pogingen gebruikt de naam van de server als login. Aanbeveling: gebruik niet dezelfde naam voor de computer en de gebruiker. Bovendien proberen ze soms de naam van de server op de een of andere manier te parseren: bijvoorbeeld voor een systeem met de naam DESKTOP-DFTHD7C zijn de meeste pogingen om in te loggen met de naam DFTHD7C:

Is het gevaarlijk om RDP open te houden op het internet?

Dus als je een computer DESKTOP-MARIA hebt, is de kans groot dat er pogingen komen om in te loggen als gebruiker MARIA.

Daarnaast viel het me op uit de logs: op de meeste systemen zijn de meeste inlogpogingen met de naam "administrator". En dat is geen toeval, omdat deze gebruiker in veel versies van Windows bestaat. Sterker nog - je kunt hem niet verwijderen. Dit vergemakkelijkt de taak voor aanvallers: in plaats van te raden naar naam en wachtwoord, hoeven ze alleen maar het wachtwoord te raden.
Overigens had het systeem dat slachtoffer werd van de ransomware de gebruiker Administrator en het wachtwoord Murmansk#9. Ik ben er nog steeds niet zeker van hoe dat systeem werd gehackt, omdat ik pas begon te monitoren na dat voorval, maar ik denk dat brute-forcing waarschijnlijk is.
Dus als de gebruiker Administrator niet verwijderd kan worden, wat te doen? Je kunt hem hernoemen!

Aanbevelingen uit dit punt:

  • gebruik geen gebruikersnaam in de computernamen
  • Zorg ervoor dat er geen gebruiker met de naam Administrator op het systeem is.
  • Gebruik betrouwbare wachtwoorden.

Op deze manier zie ik al een paar jaar hoe verschillende Windows-servers onder mijn controle gebruteforced worden, en zonder succes.

Hoe weet ik dat het zonder succes is?
Omdat op de screenshots hierboven te zien is dat er logs zijn van succesvolle RDP-toegang, waarin informatie staat:

  • van welk IP
  • van welke computer (hostname)
  • gebruikersnaam
  • GeoIP-informatie

En ik kijk daar regelmatig naar — geen anomalieĆ«n gevonden.

Overigens, als er vanaf een bepaald IP hard gebruteforced wordt, kun je specifieke IP's (of subnetten) zo blokkeren in PowerShell:

New-NetFirewallRule -Direction Inbound -DisplayName "fail2ban" -Name "fail2ban" -RemoteAddress ("185.143.0.0\/16", "185.153.0.0\/16", "193.188.0.0\/16") -Action Block

Trouwens, behalve Winlogbeat heeft Elastic ook nog Auditbeat, dat kunnen volgen naar bestanden en processen op het systeem. Er is ook een SIEM (Security Information & Event Management) applicatie in Kibana. Ik heb beide geprobeerd, maar zag er niet veel nut in - het lijkt erop dat Auditbeat nuttiger zal zijn voor Linux-systemen, terwijl SIEM me nog niets betekenisvols heeft laten zien.

En een paar laatste aanbevelingen:

  • maak regelmatig automatische back-ups.
  • installeer beveiligingsupdates tijdig.

Bonus: een lijst van 50 gebruikers die vaker zijn gebruikt bij RDP-inlogpogingen.

"user.name: Descending"
Aantal

dfthd7c (hostname)
842941

winsrv1 (hostname)
266525

ADMINISTRATOR
180678

administrator
163842

Administrator
53541

michael
23101

server
21983

steve
21936

john
21927

paul
21913

reception
21909

mike
21899

office
21888

scanner
21887

scan
21867

david
21865

chris
21860

owner
21855

manager
21852

beheerder
21841

brian
21839

administrador
21837

mark
21824

staff
21806

ADMIN
12748

ROOT
7772

ADMINISTRADOR
7325

SUPPORT
5577

SOPORTE
5418

USER
4558

admin
2832

TEST
1928

MySql
1664

Admin
1652

GUEST
1322

USER1
1179

SCANNER
1121

SCAN
1032

ADMINISTRATEUR
842

ADMIN1
525

BACKUP
518

MySqlAdmin
518

RECEPTION
490

USER2
466

TEMP
452

SQLADMIN
450

USER3
441

1
422

MANAGER
418

OWNER
410

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster