Remote Desktop Control
Per poter lanciare degli applicativi su un sistema remoto (per esempio durante un intervento di teleassistenza) è sufficiente disporre di una shell.
Però, per poter meglio controllare il sistema remoto, molti utenti e amministratori preferiscono disporre di una interfaccia di controllo grafica.
Per aprire una GUI si possono utilizzare numerose soluzioni software alternative.
Le componenti software che agiscono in tal senso sono normalmente definite soluzioni di Remote Desktop Control.
Disporre di un Remote Desktop è particolarmente utile per chi utilizza piattaforme e sistemi operativi (come nella maggior parte delle distribuzioni windows) che non prevedono server Telnet.
Per i sistemi Mac si utilizza comunemente il software Apple Remote Desktop (porta riservata 3283/udp).
Le prime release software di ARD prevedevano solo la codifica delle credenziali usate per l’autenticazione. Successivamente è stata inglobata la possibilità di ricorrere all’algoritmo AES a 128 bit per codificare anche le altre informazioni (fondamentalmente utilizzando le stesse librerie di SSH).
Per i sistemi UNIX la GUI storicamente più utilizzata è rappresentata dal servizio X11 che utilizza il protocollo di trasporto TCP e permette di fruire di più schermi contemporaneamente.
Ogni schermo sul server è gestito da un servizio in ascolto su una porta distinta.
Il primo server usa la porta 6000/tcp, il secondo la 6001/tcp, e così via per gli altri.
Il client può specificare quale server intende contattare attraverso la variabile di ambiente DISPLAY.
Il traffico X11 non è crittografato in maniera nativa pertanto se si intende proteggere i dati trasmessi da attacchi rivolti a comprometterne integrità e riservatezza è necessario adottare delle tecniche di tunneling sicuro su altri protocolli prima di inviare le informazioni sulla rete.
La soluzione maggiormente diffusa prevede l’incapsulamento di X11 su SSH.
Il controllo remoto in ambiente Windows è oggi realizzabile tramite numerosi pacchetti software alternativi.
Gli utenti dei sistemi della Microsoft possono utilizzare sia prodotti software di terze parti sia adottare la soluzione nativa Windows, basata su RDP (Remote Desktop Protocol).
I pacchetti software proposti da terze parti a maggiore diffusione sono PCAnywhere, VNC, Citrix Metframe.
Il protocollo di trasporto utilizzato da PCAnywhere è proprietario.
Le porte adottate sono: la 5632/udp per testare la raggiungibilità dei sistemi su cui è installato il programma server e la porta 5631/tcp per il controllo remoto vero e proprio della stazione.
Anche se nato in ambito Windows, esistono oggi versioni software di PCAnywhere per i principali sistemi operativi.
Il software VNC (Virtual Network Computing) è stato sviluppato fin dall’inizio come software cross-platform.
Il protocollo definito da VNC è oggi alla base di numerosi pacchetti software con funzionalità e soluzioni di sicurezza simili.
Il modello generale di VNC prevede l’utilizzo di più porte TCP, ciascuna delle quali corrispondenti a uno schermo separato.
Normalmente vengono messi a disposizione fino a 7 schermi e le porte riservate vanno da 5900/tcp a 5906/tcp.
Pur essendo prevista una fase di autenticazione in cui le password trasmesse non sono in chiaro, il protocollo VNC non è ritenuto molto sicuro.
Esistono svariati tool software che permettono a un attaccante, che è entrato in possesso della versione codificata della password trasmessa in rete, di decodificarla in un tempo relativamente contenuto (tramite brute force cracking).
La causa di questo è che in molte implementazioni di VNC ogni password di lunghezza superiore a 8 caratteri viene troncata al limite di 8 caratteri.
Di VNC esiste anche una versione server fruibile tramite interfaccia web.
In tal caso le porte riservate sono da 5800/tcp a 5806/tcp.
In entrambe le versioni è possibile ricorrere alla codifica dei dati prima della loro trasmissione sulla rete.
Il software di larga diffusione RealVNC prevede l’uso dell’algoritmo simmetrico AES a 128 bit per la codifica.
Citrix Metaframe è una soluzione proprietaria (basata su protocollo ICA, Independent Computing Architecture), che consente di accedere in maniera grafica al remote desktop di un server, in modo da poter lanciare su di esso applicazioni che richiedono elevate caratteristiche di CPU e memoria, e disporre dei risultati senza avere il carico computazionale collegato.
Obiettivo dei progettisti è stato oltre che la sicurezza nella fruizione del servizio, massimizzare le performance, riducendo il carico di rete per la visualizzazione della GUI sul client.
Le porte servizio dedicate a un server Citrix Metaframe sono: la 1494/tcp o la 2598/tcp.
Un server ICA può essere fruito anche tramite un browser.
Per la codifica del canale di comunicazione il protocollo ICA prevede l’instaurazione di un canale sicuro SSL.
La soluzione Remote Desktop nativa di Microsoft è rappresentata da RDP.
Tale servizio è stato introdotto dalla Microsoft a partire dal rilascio di Windows NT 4.0.
La versione oggi disponibile prevede:
- supporto per una GUI con colori a 32 bit;
- codifica simmetrica di tutti i pacchetti tramite uso di algoritmo RC4 a 128 bit;
- supporto per l’uso di SSL/TLS;
- clipboard condivisa tra sistema locale e remoto;
- possibilità di condividere l’utilizzo dei propri file, printer e porte tra i due sistemi.
La componente software che agisce da client è denominata Remote Desktop Connection, la componente server invece è nota come Terminal Server.
La porta riservata al Terminal Server è la 3389/tcp.
Nonostante la completa integrazione con tutte le procedure di autenticazione supportate da sistemi Microsoft e la possibilità di utilizzo di soluzioni crittografiche stato dell’arte, l’uso di RDP è da considerarsi fattore di rischio per la sicurezza delle piattaforme e dei dati, qualora vi sia presenza di un attaccante in grado di operare in condizione man-in-the-middle.
Un tale attaccante può infatti intromettersi attivamente nella negoziazione del canale sicuro fin dalle prime fasi, creando la condizione per la decodifica di tutti i messaggi trasmessi successivamente tra client e server.
Ciò è dovuto al fatto che la chiave privata che viene utilizzata per il processo di autenticazione del Terminal Server è di fatto nota a ciascun PC provvisto di sistema Windows (si trova memorizzata nel file di sistema mstlsapi.dll).
È consigliabile dunque utilizzare RDP relativamente a contesti in cui si hanno sistemi mutuamente trusted.
La porta 3389/tcp deve essere pertanto inclusa nella policy di sicurezza aziendale tra quelle che non dovrebbero essere pubblicate sui propri server esposti.