Contextul global in care ne aflam in prezent a generat o adoptie pe scara larga a lucrului de la distanta. Organizatiile trebuie sa ofere angajatilor sai dispozitivele necesare pentru ca acestia sa isi poata indeplini sarcinile de zi cu zi. Totodata, organizatiile trebuie sa puna la dispozitia angajatilor un mijloc prin care acestia sa se poata conecta la reteaua companiei pentru a accesa resursele necesare pentru indeplinirea atributiilor de serviciu.
O solutie care adreseaza aceste doua aspecte si care s-a dovedit a fi folositoare este reprezentata de tehnologiile de remote desktop. O astfel de tehnologie permite utilizatorului sa se conecteze de la distanta la un calculator si sa lucreze ca si cum ar fi in fata acestuia.
Tehnologia de remote desktop nu este una tocmai noua, existand o varietate de solutii, de la implementari agnostice de platforma sistemului de operare, precum VNC, pana la servicii foarte specializate care fac setarea unui mediu de remote desktop foarte simpla si foarte usor de folosit.
In mediul enterprise, o implementare de remote desktop care iese in evidenta este Windows Remote Desktop Services, care se bazeaza pentru comunicare pe protocolul RDP (Remote Desktop Protocol). Fiind un feature disponibil de-a gata in sistemele de operare Windows, este usor de activat si de utilizat.
RDP – o tina predilecta pentru atacatori
Chiar daca este o solutie convenabila de access de la distanta, solutiile de remote desktop si RDP in special prezinta vulnerabilitati care pot fi exploatate de catre actorii malitiosi. De-a lungul timpului, RDP a fost atacat in multe moduri de la atacuri de tip brute force si incercari de login folosind credentiale “furate” pana la exploit-uri ca man in the middle (MITM) sau remote code execution (RCE).
Detectarea incercarilor de a compromite un sistem prin RDP este destul de greu de identificat in mod corect pentru ca este greu de facut distinctia dintre o incercare de login malitioasa si una legitima atunci cand sunt folosite credentiale compromise sau incercari brute force.
Pentru a identifica acele hosturi care ruleaza RDP atacatorii pot folosi o unealta precum NMAP. NMAP este un utilitar care poate fi folosit pentru a identifica porturile deschise de pe un sistem. Conform NMAP, porturile care au cea mai mare probabilitate de a fi deschise sunt:
Pozitie | Port | Serviciu |
1 | 80 | HTTP |
2 | 23 | Telnet |
3 | 443 | HTTPS |
4 | 21 | FTP |
5 | 22 | SSH |
6 | 25 | SMTP |
7 | 3389 | RDP |
8 | 110 | POP3 |
9 | 445 | SMB |
10 | 139 | NetBIOS |
RDP ocupa locul 7 in acest clasament, si alaturi de SMB (Server Message Block, exploatat masiv in campania de ransomware WannaCry), reprezinta singurele protocoale proprietare din top 10.
Riscul de securitate pe care RDP il prezinta este determinat si de numarul extrem de mare de sisteme care au expus portul 3389 direct in Internet. Conform shodan.io, in prezent sunt peste patru milioane de dispozitive care sunt expuse direct in Internet prin portul 3389.
Un alt pericol este reprezentat de faptul ca exista tool-uri gratuite care contin payload-uri si scripturi ce pot fi folosite pentru a exploata anumite vulnerabilitati ale protocolului RDP. Metasploit este un exemplu de astfel de tool care integreaza exploit-uri gata sa fie executate, precum BlueKeep si DejaBlue.
Masuri de protectie
Cea mai eficienta metoda de protectie este ca RDP sa nu fie folosit 😊 Protocolul, in mod implicit, este dezactivat, insemnand ca daca nu este activat, sistemele nu pot fi susceptibile la atacuri prin RDP.
Daca organizatia trebuie sa se bazeze pe o solutie de RDP, exista alte variante de RDP, mai putin vizate de atacatori. Chiar si VNC poate reprezenta o solutie viabila, in cazul in care costul este un factor de decizie.
In general, solutiile de remote desktop ar trebui evitate, din cauza riscurilor de securitate pe care le prezinta, si, intr-o masura mai mica, din cauza volumului ridicat de trafic necesar pentru a oglindi un desktop. Organizatiile care trebuie sa ofere access remote la resurse trebuie sa se orienteze in solutii de VPN care pot securiza canalul de comunicare, pot asigura complianta dispozitivului cu politica de securitate a companiei inainte de conectare si pot oferi autentificare de tip MFA/2FA.
In cazul in care este musai ca organizatia sa foloseasca RDP, se pot face urmatorii pasi pentru a minimiza expunerea la atacurile care vizeaza acest protocol:
- evitarea expunerii portului 3389 direct in Internet
- folosirea unui client de VPN a unui proxy de RDG (remote desktop gateway) pentru conectarea la un sistem prin RDP
- folosirea de parole puternice si a autentificarii multifactor pentru a reduce probabilitatea ca un atac brute force sa aiba succes sau ca o parola compromisa sa ofere access la sistem
- activarea de semnaturi specifice unui atac RDP prin folosirea unui NGFW/NGIPS
- blocarea contului la un anumit numar de incercari esuate de logare
- refuzul conexiunii de la adrese IP care incearca in mod repetat sa stabileasca o sesiune prin RDP
- si poate cel mai la indemana, schimbarea numarului de port la o alta valoare decat cea implicata, 3389.
Masurile de securitate de mai sus nu ar trebui ignorate sau neglijate intrucat orice solutie de remote desktop, daca este compromisa prin exploatarea unei vulnerabilitati sau printr folosirea unor credentiale furate, ofera unui atacator un punct de intrare in reteaua organizatiei si un punct de pivotare prin care se pot ataca alte sisteme sau se poate lansa un alt atac precum ransomware sau escaladare de privilegii.
Mihai Dumitrascu, Sr Systems Engineer