Whitepaper - Architettura Ubiquity

Transcript

Whitepaper - Architettura Ubiquity
Nota Tecnica
Whitepaper - Architettura Ubiquity
TN0015
Whitepaper - Architettura
Ubiquity
Introduzione
Il documento contiene una descrizione generale dell’architettura della piattaforma
per la teleassistenza Ubiquity e una discussione puntuale di tutti gli aspetti che
coinvolgono la sicurezza.
Versione
Descrizione
Data
1
Prima emissione
02/12/2013
2
Aggiunti dettagli architettura
07/04/2014
3
Corretto valore porta custom
06/06/2014
4
Risk assesment
20/09/2014
Disclaimer
Le informazioni fornite nella documentazione sono soggette a cambiamenti senza preavviso e non
rappresentano nessun obbligo da parte di ASEM S.p.A.
ASEM S.p.A. non è responsabile per errori tecnici o altre omissioni e declina ogni responsabilità
risultante dal suo uso.
ASEM S.p.A. non sarà responsabile per perdite di profitti o danni, diretti o indiretti, di qualsiasi genere
(ivi comprese la perdita o il danneggiamento di dati), derivanti dall’uso delle informazioni contenute nella
documentazione.
Pagina 1 di 17
Nota Tecnica
Whitepaper - Architettura Ubiquity
TN0015
Indice
1
2
3
4
5
6
7
8
9
Cenni sull’architettura di Ubiquity ............................................................................................................... 3
Architettura dei componenti ........................................................................................................................ 3
Collegamento tra Control Center e Runtime .............................................................................................. 4
3.1
Discoverability .................................................................................................................................... 5
3.2
Raggiungibilità ................................................................................................................................... 6
3.3
Autenticazione ................................................................................................................................... 7
3.4
Controllo di accesso .......................................................................................................................... 8
Scalabilità, disponibilità, sicurezza ............................................................................................................. 8
Requisiti per la connessione ...................................................................................................................... 9
Sicurezza del livello di trasporto ................................................................................................................. 9
La tecnologia VPN di Ubiquity .................................................................................................................... 9
7.1
L’architettura di rete ........................................................................................................................... 9
7.2
Tecnologia di incapsulamento ......................................................................................................... 11
7.3
Assegnazione IP al PC con Control Center ..................................................................................... 13
7.4
Broadcast e supporto per comunicazione con dispositivi non inizializzati ...................................... 13
7.5
Risoluzione conflitto degli indirizzi IP ............................................................................................... 13
7.6
Connessioni multiple concorrenti ..................................................................................................... 13
7.7
Firewall............................................................................................................................................. 14
Esempio di collegamento tipico, con VPN alla sottorete LAN del PC remoto.......................................... 14
Risk assesment ........................................................................................................................................ 15
9.1
PC remoto infettato da virus ............................................................................................................ 15
9.1.1 Precondizioni per l’attacco ........................................................................................................... 15
9.1.2 Soluzione 1: firewall su PC locale di supervisione ...................................................................... 15
9.1.3 Soluzione 2: firewall integrato in Ubiquity .................................................................................... 16
9.2
Attacco man-in-the-middle ............................................................................................................... 16
9.3
Attacco di tipo brute force ................................................................................................................ 16
9.4
Furto password ................................................................................................................................ 17
Pagina 2 di 17
Nota Tecnica
Whitepaper - Architettura Ubiquity
TN0015
1 Cenni sull’architettura di Ubiquity
Ubiquity è una soluzione software che ha lo scopo di mettere in comunicazione un set di strumenti software
di controllo remoto (Control Center), con un componente software (Runtime) installato su un sistema inserito
in una rete privata remota. Il componente Runtime, tramite un tunnel di rete creato con Control Center,
riesce a pubblicare una serie di servizi, come il desktop remoto sulla macchina che ospita il Runtime o
l’accesso VPN alla macchina e a tutta la sottorete LAN collegata alla macchina stessa.
La creazione del tunnel sicuro tra “macchina remota” e “assistenza tecnica” è fatta automaticamente dai
client Ubiquity sfruttando una infrastruttura di server pubblici di appoggio.
Non è richiesta alcuna configurazione dell’infrastruttura di rete, né dal lato della macchina remota, né dal lato
del servizio di assistenza tecnica. Si da per scontato che entrambe le reti siano dotate di uno o più livelli di
firewall/NAT.
2 Architettura dei componenti
Le diverse funzionalità sono fornite da un insieme di componenti incorporati in Ubiquity Runtime e operanti
con relazioni di client-server. Per esempio Ubiquity Runtime esegue il server per il servizio di Remote
Desktop, mentre Control Center può connettersi come Remote Desktop client. Lo stesso vale per tutti gli altri
servizi inclusa la connessione VPN per la quale Runtime incorpora il server mentre Control Server agisce da
VPN client.
La figura seguente mostra i diversi componenti client-server.
Ubiquity remote
desktop client
Ubiquity remote
desktop server
VPN client
VPN server
Remote serial port
client
Remote serial port
server
Come mostrato dalla figura seguente, Ubiquity supporta scenari di connessioni multiple in cui lo stesso
Control Center si può connettere contemporaneamente a diversi Runtime, e analogamente uno stesso
Runtime può servire diversi Control Center.
Pagina 3 di 17
Nota Tecnica
Whitepaper - Architettura Ubiquity
TN0015
Control Center 1
Runtime 1
Control Center 2
Runtime 2
Control Center 3
Runtime 3
...
...
3 Collegamento tra Control Center e Runtime
L’architettura client-server per come è stata descritta sino ad ora è molto simile alla classica
implementazione degli strumenti di controllo remoto in uso nel passato nei quali un software con il ruolo di
supervisore si collega come client ad un servizio di controllo remoto operante come server.
Tale paradigma non si adatta comunque all’odierno scenario delle connettività attraverso Internet.
La topologia standard che deve oggi essere considerata è quella rappresentata dalla figura seguente.
Client component
Firewall/NAT
Firewall/NAT
Server component
Internet
Il problema fondamentale di questa configurazione è che il componente server nel sistema remoto non può
ricevere la connessione da parte del componente client, perché è di fatto installato all’interno di una rete
locale dietro un NAT. Solo le connessioni in uscita sono di solito permesse.
Aprire una connessione dall'esterno al dispositivo server richiederebbe una configurazione ad-hoc statica nel
firewall, che traduce una connessione all’IP pubblico con porta specifica ad uno specifico IP privato
all'interno della rete.
Questo non è solitamente fattibile perché:
- è complesso da implementare e richiede consulenti IT specializzati.
- ammesso che sia implementato, la connessione richiede la conoscenza da parte del client dell’IP pubblico
della rete del computer remoto. L'IP pubblico può cambiare nel tempo.
- se ci sono più macchine server all'interno della rete, sono necessarie più regole nel firewall per i diversi
indirizzi IP o porte.
La soluzione che si adotta è per entrambi, server e client, quella di effettuare connessioni dall’interno verso
l’esterno puntando quindi ad un nodo noto di una infrastruttura server pubblica che agisce come gateway.
Pagina 4 di 17
Nota Tecnica
Client component
Whitepaper - Architettura Ubiquity
TN0015
Firewall/NAT
Firewall/NAT
Server component
Remote access
infrastructure
L’infrastruttura server assolve i seguenti compiti:




Discoverability: grazie ai server, i Runtime possono “rendersi disponibili” e i Control Center
riescono a conoscere l’elenco dei sistemi Runtime online.
Raggiungibilità: nella fase di handshake Control Center riesce a comunicare con il Runtime
utilizzando i server come punto di rendez-vous.
Autenticazione: grazie all’utilizzo di password e certificati i server garantiscono l’identità sia dei
Control Center che dei Runtime.
Controllo di accesso: una volta che sono stati identificati sia l’utente che sta utilizzando Control
Center sia la macchina che esegue il Runtime, il collegamento tra i due avviene solo se
l’amministratore Ubiquity ha istituito una regola che permette a quel utente di operare su quella
macchina e stabilito quali operazioni può effettuare (es. solo desktop remoto oppure solo VPN ad un
IP particolare).
3.1 Discoverability
Control Center deve avere le informazioni di “disponibilità” del dei vari Runtime a prescindere dalla
configurazione della rete remota (che può anche cambiare nel tempo).
In Ubiquity la reperibilità è risolta utilizzando un server "coordinatore" usato come luogo di rendez-vous per
tutte le istanze di Control Center e Runtime. Questo server si chiama "Access Server" ed è il server che per
primo riceve una connessione sia da Control Center che da Runtime.
Control Center 1
Control Center 2
Runtime 1
Access Server
Runtime 2
Control Center 3
Runtime 3
...
...
Tutti i componenti Control Center e Runtime accedono all’Access Server passando le loro credenziali di
autenticazione.
Pagina 5 di 17
Nota Tecnica
Whitepaper - Architettura Ubiquity
TN0015
L’Access Server ospita i “domini” Ubiquity. Un dominio in Ubiquity è definito come una collezione gerarchica
di sistemi Runtime, di utenti, di gruppi di utenti, di permessi/regole di accesso, di regole di firewall. Attraverso
l’accesso al dominio gli utilizzatori Ubiquity usufruiscono del “servizio” sulla base dei diritti e permessi
concessi all’utente.
I sistemi Runtime comunicano al server la loro disponibilità "Io sono qui, io sono disponibile". Control Center
comunica con il server richiedendo la lista dei sistemi Runtime appartenenti al dominio a cui è connesso che
sono attivi in uno specifico momento. Dal momento che l’Access Server è il luogo di connessione comune,
esso può fornire la risposta alla domanda, insieme alle informazioni pertinenti per consentire a Control
Center di raggiungere un Runtime.
3.2 Raggiungibilità
Quando Control Center necessita ci connettersi a un Runtime specifico, esso comanda all’Access Server di
inoltrare una richiesta al Runtime per l’avvio della procedura di connessione end-to-end.
Viene avviato pertanto un semplice protocollo di handshake per fare in modo che Control Center possa
comunicare con il Runtime. Mentre in questa fase iniziale tutti i messaggi sono inoltrati dall’Access Server, lo
scopo della sessione di handshaking è di avviare una comunicazione diretta tra Control Center e Runtime,
senza avere l’Access Server come intermediario.
Il tutto può essere riassunto nei seguenti passi:
Valutazione topologia di rete
Le impostazioni di rete lato Control Center e lato Runtime, l’eventuale NAT e la configurazione del firewall
sono valutate utilizzando un algoritmo euristico.
Questa operazione è assistita da un server specifico chiamato “Network Discovery Server”.
Tentativo di connessione diretta
Se l’esisto dell’operazione precedente è positivo, ovvero ci sono possibilità per Control Center e Runtime di
realizzare un collegamento diretto, viene effettuato un tentativo per una connessione NAT traversal. Questa
è una tecnica che permette il collegamento diretto tra Control Center e Runtime, senza alcun server di
supporto intermedio.
Server di rimbalzo (Relay Server)
Se la connessione diretta non risulta possibile viene eletto un server di rimbalzo per essere usato come
gateway.
Il server di inoltro è un'applicazione molto semplice che agisce unicamente come un ponte e permette che le
due connessioni in uscita (Control center e Runtime) si “incontrino” in un end-point pubblico comune. Il
server di inoltro non può entrare nel merito del contenuto del traffico tra Control Center e Runtime perché la
comunicazione utilizza il protocollo SSL e dei certificati. Il server di rimbalzo semplicemente opera quindi un
inoltro di messaggi cifrati.
Esistono diversi server di rimbalzo dislocati geograficamente in posizioni diverse. Il protocollo di connessione
Ubiquity è in grado di eleggere il server che garantisce la latenza di connessione più bassa tra le due parti.
Client component
Firewall/NAT
Firewall/NAT
Server component
Remote access
infrastructure
In conclusione il protocollo di raggiungibilità di Ubiquity permette a Control Center e Runtime di istanziare
una connessione virtuale cifrata che astrae dalle diverse topologie di rete e dai meccanismi di collegamento
ad Internet.
Pagina 6 di 17
Nota Tecnica
Whitepaper - Architettura Ubiquity
TN0015
All’interno di questo canale virtuale i componenti client-server possono a loro volta parlarsi e per quanto visto
questo canale virtuale può essere implementato attraverso una connessione peer-to-peer oppure attraverso
una connessione accoppiata da un server di rimbalzo pubblico.
Direct peer-to-peer connection
VPN client
Firewall/NAT
VPN client
Firewall/NAT
VPN server
Public relay server
VPN server
3.3 Autenticazione
L’infrastruttura server di Ubiquity risolve il problema dell’identificazione, che è l’azione di confermare l’identità
di una persona, l’utente Control Center, o quella di un programma, Ubiquity Runtime sul sistema remoto.
Pagina 7 di 17
Nota Tecnica
Whitepaper - Architettura Ubiquity
TN0015
Il problema è risolto in modo diverso per Control Center e Runtime.
Control Center
Gli utenti Control Center sono autenticati attraverso la richiesta di inserire il nome del dominio, il nome utente
e la password. Le credenziali sono passate al server che le valida in base ai dati archiviati nel database.
Si noti che le password non sono di fatto memorizzate sul database del server. L’oggetto della
memorizzazione è l’hash della password che viene a sua volta confrontato con l’hash della password fornita
dall’utente.
Inoltre, la password non è mai salvata a livello di Control Center ed è quindi impossibile estrapolarla.
Runtime
Quando un Runtime è associato a un dominio, ovvero gli viene dato un nome ed una relazione di
appartenenza ad un determinato account, viene generato un certificato cifrato da parte dell’Access Server e
inviato al Runtime. Ogni volta che il Runtime si connette all’Access Server esso invia il certificato al server
come autenticazione. Il certificato può essere decifrato solo dal server e contiene le informazioni sull’identità
del Runtime e del sistema dove esso è in esecuzione.
Il certificato è generato in modo da essere univoco rispetto all’hardware su cui è in esecuzione il Runtime.
3.4 Controllo di accesso
Per ogni utente di Control Center il controllo di accesso permette la selezione e la restrizione di accesso a
un determinato servizio esposto da un certo Runtime.
Il controllo di accesso in Ubiquity è eseguito confrontando le credenziali fornite dall’utente Control Center e
l’identità del Runtime con un insieme di regole gerarchiche contenute nel dominio Ubiquity e gestite
dall’amministratore di dominio. Se l’azione richiesta da parte dell’utente corrisponde a una regola
dell’insieme, allora l’autorizzazione è concessa a Control Center di effettuare tale operazione su quel
Runtime.
L’interfaccia utente di Control Center provvede tutti gli strumenti necessari alla configurazione e applicazione
delle regole attraverso la creazione di gruppi, utenti e assegnazione gerarchica dei permessi, compresa la
gestione delle eccezioni (allow/deny).
La granularità dei permessi permette la completa e dettagliata profilazione di gruppi e utenti.
4 Scalabilità, disponibilità, sicurezza
Per scalabilità si intende la capacità di mantenere il desiderato livello di prestazioni e tempi di risposta al
crescere del numero degli utilizzatori.
Per disponibilità si intende la porzione di tempo in cui l’infrastruttura è in condizioni di funzionamento. La
disponibilità per Ubiquity è attestata essere maggiore del 99,99%.
Per sicurezza si intende lo stato di essere “sicuro”, ovvero la condizione di essere protetti contro le
conseguenze di un malfunzionamento, danneggiamento, errore, incidente, danno o qualsiasi altro evento
che si possa considerare non desiderato.
La scalabilità, la disponibilità e la sicurezza in Ubiquity sono ottenute replicando tutte le parti vitali
dell’infrastruttura.
Sono mantenute diverse repliche dei database in server geograficamente lontani allo scopo di rendere
statisticamente impossibile la perdita di dati rilevanti. In aggiunta sono eseguite copie di backup su base
giornaliera mantenute offline in postazioni sicure.
Sono attivi diversi Access Server allo scopo di mantenere attivo l’accesso al servizio anche in caso la
connettività Internet di uno di questi venga meno.
Sono mantenuti svariati server di rimbalzo in posizioni geograficamente distanti e distribuite su tutto il globo.
Nel caso in cui il server di rimbalzo sai richiesto per la realizzazione della connessione, è sempre garantita la
disponibilità di uno di essi e viene automaticamente scelto il migliore in grado di fornire le migliori prestazioni
misurabili in ridotti tempi di latenza e ridotto jitter.
Pagina 8 di 17
Nota Tecnica
Whitepaper - Architettura Ubiquity
TN0015
5 Requisiti per la connessione
Ubiquity Control Center e Ubiquity Runtime richiedono di potersi connettere all’infrastruttura server
attraverso l’utilizzo di almeno una delle seguenti porte TCP: 80, 443 oppure 5935.
Le porte UDP 80, 443 oppure 5935 eventualmente aperte sono automaticamente utilizzate per migliorare le
prestazioni. Control Center e Runtime rilevano automaticamente le porte uscenti disponibili per la
connessione Internet e utilizzano la prima porta che si connette con successo.
6 Sicurezza del livello di trasporto
La connessione con il server è resa sicura grazie all’utilizzo del protocollo SSL/TLS, indipendentemente dal
numero di porta effettivamente utilizzato.
L’identità del server è garantita dall’utilizzo di certificato SSL controfirmato da una certification authority
conosciuta. Se Control Center non riconosce l’identità del server, viene fornita indicazione all’utente, che può
scegliere se proseguire comunque o abortire la connessione.
Il protocollo SSL/TLS assicura inoltre la riservatezza dei dati scambiati.
Ubiquity Runtime si identifica con il server grazie all’utilizzo di un certificato digitale crittografato che è stato
generato al momento della prima associazione del dispositivo con il server stesso e che è univoco rispetto
all’hardware su cui è in esecuzione il Runtime. La validazione del certificato da parte del server assicura che
il software non è stato copiato su un altro dispositivo e che l’hardware è esattamente quello del momento
dell’associazione.
L’utente di Control Center infine si autentica utilizzando nome dominio, nome utente e password. La
password non è salvata localmente al PC, né salvata nel server, che registra solamente un hash univoco
ottenuto dalla password, e dal quale non è possibile risalire alla password in chiaro.
7 La tecnologia VPN di Ubiquity
7.1 L’architettura di rete
La VPN di Ubiquity è implementata come topologia di tipo client-server.
Il server VPN è un servizio esposto da Ubiquity Runtime e il client VPN è un servizio esposto da Ubiquity
Control Center.
Pagina 9 di 17
Nota Tecnica
VPN client
Whitepaper - Architettura Ubiquity
TN0015
Firewall/NAT
VPN server
Internet
VPN client
Firewall/NAT
VPN client
Firewall/NAT
La figura precedente mostra la topologia logica tra i client VPN e i server VPN.
Mentre la topologia della VPN rispetta il paradigma client-server, il livello di trasporto è ottenuto attraverso un
collegamento diretto punto-punto oppure attraverso un server pubblico di rimbalzo.
La figura seguente mostra una rappresentazione semplificata dei livelli.
VPN layer
(Client)
Level 2
encapsulation
VPN layer
(Server)
Peer-to-peer
connectivity layer
Ubiquity virtual
connectivity layer
Peer-to-peer
connectivity layer
Control Center
Server
Runtime
Il livello virtuale di connettività si preoccupa di connettere Control Center e Runtime a prescindere dalle loro
specifiche configurazioni di rete e firewall.
Il livello VPN può quindi lavorare in una modalità molto efficiente ed isolata in topologia client-server.
Questo approccio differisce rispetto ad altre soluzioni tipicamente basate su un server VPN pubblico.
Pagina 10 di 17
Nota Tecnica
Whitepaper - Architettura Ubiquity
TN0015
VPN server
VPN client
Firewall/NAT
VPN client
In una situazione come quella raffigurata nello schema precedente, la rappresentazione semplificata dello
stack di protocollo è la seguente:
VPN layer
(Client)
Level 3
encapsulation
VPN layer
(Server)
Supervisor software
Level 3
encapsulation
Server
VPN layer
(Client)
Remote software
In questo caso la connessione VPN è utilizzata per risolvere il problema di connettività: i clients devono
necessariamente connettersi a un server pubblico e così pure per la virtualizzazione degli indirizzi di rete. Il
server VPN deve essere installato in un server pubblico in modo da essere raggiungibile da entrambi i client
e questo comporta una modificazione fondamentale del paradigma di funzionamento della VPN.
La connessione VPN non è più virtuale end-to-end ma una combinazione di due connessioni VPN realizzate
tra i due client con il server centrale. Il server VPN centrale permette ai due client di comunicare tra di loro
attraverso l’applicazione di regole di routing.
Quali sono i vantaggi principali dell’implementazione client-server della VPN di Ubiquity?
Sicurezza. Ubiquity è una reale VPN end-to-end. Il server di rimbalzo, quando usato, non è un partecipante
attivo della connessione. Esso semplicemente esegue il rimbalzo di pacchetti cifrati che non è in grado di
decifrare.
Protocollo leggero e veloce. Permette connessione diretta se possibile.
Nessun collo di bottiglia. I server di rimbalzo sono installati su un gruppo distribuito di macchine in
configurazione load balance. Non esiste un singolo concentratore per la connessione VPN che gestisce tutte
le connessioni VPN, ma ogni sistema remoto utilizza il suo server VPN locale.
7.2 Tecnologia di incapsulamento
In telecomunicazioni e informatica l'Open Systems Interconnection (meglio conosciuto come modello
ISO/OSI) è uno standard de iure per reti di calcolatori stabilito nel 1978 dall'International Organization for
Standardization (ISO), il principale ente di standardizzazione internazionale, che stabilisce per l'architettura
logica di rete una struttura a strati composta da una pila di protocolli di comunicazione suddivisa in 7 livelli, i
quali insieme espletano in maniera logico-gerarchica tutte le funzionalità della rete.
Wikipedia
Pagina 11 di 17
Nota Tecnica
Whitepaper - Architettura Ubiquity
TN0015
OSI Model
Layer
7. Application
Host
layers
6. Presentation
Function
Network process to application
Data representation, encryption and decryption, convert machine dependent data to machine independent
data
5. Session
Interhost communication, managing sessions between applications
4. Transport
End-to-end connections, reliability and flow control
3. Network
Path determination and logical addressing
Media
2. Data link
layers
1. Physical
Physical addressing
Media, signal and binary transmission
La VPN di Ubiquity lavora incapsulando e virtualizzando il livello 2, il data link layer.
Control Center e Runtime installano e gestiscono entrambi un’interfaccia Ethernet virtuale. Il canale di
comunicazione virtuale end-to-end è utilizzato per connettere l’interfaccia virtuale Ubiquity VPN di Control
Center con l’interfaccia VPN del Runtime.
La VPN di Ubiquity, operante con topologia punto-punto e nella quale Control Center può connettersi solo al
dispositivo Runtime, lavora come se le due interfacce fossero collegate attraverso un cavo Ethernet
incrociato.
Ubiquity supporta inoltre lo scenario in cui l’interfaccia VPN del Runtime è configurata in modo bridge con
l’interfaccia fisica del sistema ospite. Il bridge implica che a livello 3 le interfacce fisica e virtuale diventano
un unico nodo.
3. Network (bridged)
(Runtime device IP address)
2. Data link
(Physical Adapter)
2. Data link
(VPN Adapter)
1. Physical
1. Physical
In questo scenario il sistema che ospita il Runtime mantiene il suo indirizzo IP originale ed entrambe le
interfacce, fisica e virtuale, condividono lo stesso livello 3 (IP).
Questo significa che quando la connessione VPN è attiva, tutto ciò che interessa il MAC dell’interfaccia fisica
è catturato dal MAC dell’interfaccia virtuale ed inviato attraverso il canale end-to-end all’interfaccia VPN
virtuale di Control Center.
Quanto è inviato da Control Center all’interfaccia virtuale VPN del Runtime viene anche scritto sull’interfaccia
fisica del sistema che ospita il Runtime realizzando per Control Center una comunicazione bidirezionale con
l’intera sottorete a cui è collegato il dispositivo con il Runtime.
Pagina 12 di 17
Nota Tecnica
Whitepaper - Architettura Ubiquity
TN0015
Il dispositivo con il Runtime e tutti i dispositivi connessi sulla sottorete vedono il PC su cui è in esecuzione
Control Center come se fosse fisicamente connesso ad uno switch locale.
7.3 Assegnazione IP al PC con Control Center
Si è visto come la VPN di Ubiquity è in grado di realizzare una connessione virtuale assimilabile a un cavo
tra il PC con Control Center e lo switch della LAN a cui è connesso il Runtime.
Il PC con Control Center, nello specifico l’adattatore virtuale Ubiquity VPN, ha comunque bisogno di
acquisire un indirizzo IP per utilizzare i protocolli TCP e UDP verso gli indirizzi IP della sottorete remota.
Ubiquity Runtime implementa un semplice meccanismo euristico che gli permette di individuare nella
sottorete cui esso è connesso un indirizzo IP libero, comunicarlo a Control Center e fare quindi in modo che
esso lo assegni all’adattatore virtuale. Questa operazione è svolta in modo trasparente all’utente ad ogni
attivazione della VPN.
Si noti che il PC con Control Center acquisirà un indirizzo IP appartenente alla stessa sottorete cui Ubiquity
Runtime è connesso. Non ci sono regole di IP routing.
Un vantaggio importante di questo approccio sta nel fatto che la configurazione di rete di tutti i sistemi
connessi alla sottorete remota non necessita di includere, come gateway, l’indirizzo IP del sistema con
Ubiquity Runtime.
7.4 Broadcast e supporto per comunicazione con dispositivi non
inizializzati
La tecnologia di incapsulamento utilizzata dalla VPN di Ubiquity permette di supportare i messaggi
broadcast.
I messaggi di tipo UDP broadcast sono tipicamente utilizzati per la comunicazione con dispositivi non ancora
configurati o comunque aventi indirizzo IP al di fuori della sottorete/maschera del PC con l’ambiente di
configurazione.
7.5 Risoluzione conflitto degli indirizzi IP
Una caratteristica peculiare di Ubiquity è quella di realizzare una connessione VPN con bridge anche nel
caso in cui la sottorete del sistema remoto è la medesima di quella del PC su cui è installato Control Center.
Questa situazione causa di norma potenziali ambiguità e conflitti.
Ubiquity è in grado di risolvere l’ambiguità assegnando automaticamente una priorità più elevata
all’interfaccia virtuale VPN.
Il caso pratico è quello per esempio in cui si voglia connettersi ad un PLC con indirizzo IP1 e lo stesso
indirizzo IP1 è assegnato ad un PC nella sottorete a cui appartiene Control Center.
Poiché l’interfaccia Ubiquity VPN ha priorità più alta rispetto all’interfaccia fisica sul PC, il sistema operativo
del PC con Control Center invierà i messaggi attraverso l’interfaccia Ubiquity VPN invece che attraverso
l’interfaccia fisica. Tutti gli indirizzi IP della sottorete remota in potenziale conflitto con uguali indirizzi sulla
sottorete di Control Center saranno accessibili a scapito di quelli locali.
Nel caso particolare il cui l’indirizzo IP del PLC da raggiungere sia lo stesso dell’indirizzo IP del gateway
della sottorete LAN in cui è inserito Control Center, il conflitto è risolto tenendo in considerazione che il
gateway deve ricevere messaggi destinati a sottoreti “esterne” mentre il messaggio da inviare al PLC
prevede come “destinazione” un IP della sottorete. A livello di sistema operativo, un messaggio destinato
alla rete esterna viene quindi inviato al gateway, un messaggio diretto all’IP del gateway viene istradato
sull’interfaccia Ubiquity VPN.
7.6 Connessioni multiple concorrenti
Ubiquity Runtime supporta connessioni multiple VPN con diversi sistemi Control Center.
Tutte le interfacce virtuali dei diversi Control Center ricevono in questo scenario un indirizzo IP compatibile
con la sottorete del Runtime e diventano a tutti gli effetti parte della sottorete remota. Ubiquity implementa i
necessari meccanismi di sicurezza in modo che i diversi Control Center non possono colloquiare tra di loro a
prescindere dal fatto che le loro interfacce virtuali hanno IP appartenenti alla medesima sottorete.
Pagina 13 di 17
Nota Tecnica
Whitepaper - Architettura Ubiquity
TN0015
Not allowed
Control Center 1 : 10.20.0.180
VPN connection
Ubiquity Runtime : 10.20.0.10
PLC : 10.20.0.11
Control Center 2 : 10.20.0.181
PLC : 10.20.0.12
Not allowed
Control Center 3 : 10.20.0.182
7.7 Firewall
La VPN di Ubiquity integra un firewall che opera direttamente sui datagram Ethernet al livello 2. Il firewall
permette di definire e applicare regole basate sull’intero contenuto del frame definito dal livello data-link ed è
quindi compatibile con tutti i diversi tipi di protocolli Ethernet e quindi anche con quelli diversi dai protocolli
basati su IP.
8 Esempio di collegamento tipico, con VPN alla sottorete LAN
del PC remoto
PC locale con Ubiquity
Control Center
IP su Ethernet
fisica:
172.18.0.130
PC remoto con Ubiquity Runtime
NAT/Gateway
172.18.0.1
Internet
IP su WAN fisica:
192.168.0.14
Rete WAN PC:
192.168.0.0/255.255.255.0
LAN del supervisore: 172.18.0.0/255.255.0.0
IP su LAN fisica:
10.20.0.1
(con bridge VPN)
LAN di Automazione
10.20.0.0/255.255.0.0
IP virtuale temporaneo su
Ethernet virtuale:
10.20.0.180
PLC
10.20.0.100
Connessione VPN
Pagina 14 di 17
Nota Tecnica
Whitepaper - Architettura Ubiquity
TN0015
Come si vede dalla figura, il PC di teleassistenza con Ubiquity Control Center è dotato di due interfacce di
rete: una scheda fisica (172.18.0.130) per collegarsi alla rete aziendale e una scheda virtuale (10.20.0.180)
per collegarsi alla VPN.
Questa scheda virtuale “riceve” in automatico, nel momento della connessione VPN, un IP (10.20.0.180)
appartenente alla stessa sottorete “LAN” remota (10.20.0.0). Questo permette agli applicativi in esecuzione
sul PC di supervisione di raggiungere tutti gli IP remoti.
La LAN remota è configurata in bridge con la scheda VPN di Ubiquity, che diventano una unica interfaccia
con un solo IP (10.20.0.1).
9 Risk assesment
9.1 PC remoto infettato da virus
Se ipotizziamo che il PC remoto sia infettato da virus, e con collegamento VPN attivo, è in teoria possibile
che un potenziale virus in esecuzione sul PC remoto possa contattare servizi server in esecuzione sulla
macchina di assistenza (172.18.0.130). Nell’ipotesi ad esempio che il PC di assistenza non sia aggiornato
alle ultime patch di sicurezza, il virus potrebbe utilizzare falle conosciute per effettuare attacchi di tipo buffer
overflow e prendere il controllo della macchina.
L’infezione del PC remoto può avere le origini e le motivazioni più disparate. Ubiquity Runtime mantiene
aperta una connessione puntuale SSL con l’infrastruttura server ma non espone alcun servizio attaccabile.
L’intromissione di un qualsiasi elemento esterno in un tunnel SSL non è uno scenario realistico. La presenza
invece di servizi in ascolto su una determinata porta e la contemporanea presenza di falle nel sistema
operativo possono invece rappresentare l’origine del punto di attacco del virus.
Alla luce di queste considerazioni il PC remoto sull’impianto può essere protetto attraverso l’adozione di
alcuni semplici accorgimenti:
 le porte 80 e 443 potrebbero essere mantenute chiuse; Ubiquity utilizzerà la porta custom 5935.
Questo impedisce eventuale navigazione web con browser potenziamente non sicuri.
 se il PC è in rete con altri dispositivi considerabili “meno sicuri” o potenzialmente pericolosi, oltre al
firewall esterno, utilizzare un firewall software sul PC per impedire qualsiasi comunicazione entrante
e uscente (che non provenga dal software Ubiquity)
 chiudere qualsiasi servizio server di sistema non necessario: condivisione di file, remote desktop,
FTP server, VNC server, ecc. Ubiquity include già tutte le più comuni funzioni per operare da remoto
 rimuovere anche qualsiasi applicazione client non necessaria
 eseguire eventuali software HMI/SCADA come utenti Windows limitati; questo impedisce a priori alla
maggior parte dei malware e virus di funzionare. Il supervisore Ubiquity può comunque intervenire
come Administrator di Windows all’occorrenza
 mantenere se possibile il sistema operativo aggiornato alle ultime patch relative alla sicurezza
9.1.1 Precondizioni per l’attacco
Riassumiamo quindi i requisiti perché il virus possa propagarsi:
1.
Sistema remoto infettato
2.
PC locale con exploit conosciuti o sconosciuti e servizi server aperti (es. condivisione file di
Windows)
3.
VPN tra PC remoto e PC locale
9.1.2 Soluzione 1: firewall su PC locale di supervisione
E’ possibile configurare un firewall software sul PC di supervisione, in particolare sulla scheda virtuale
installata da Ubiquity.
Il firewall va configurato per lasciare passare solo i protocolli necessari al lavoro remoto (es. software di
programmazione di PLC) e impedendo tutto il resto (es. protocollo Netbios, condivisione file di Windows
ecc).
In questo modo cade la precondizione 3, poiché il canale VPN non diventa più sfruttabile dal virus.
Pagina 15 di 17
Nota Tecnica
Whitepaper - Architettura Ubiquity
TN0015
9.1.3 Soluzione 2: firewall integrato in Ubiquity
Ubiquity permette la configurazione di quali protocolli e/o indirizzi IP sono raggiungibili tramite VPN. Questa
configurazione può essere creata solo da un amministratore della sicurezza del dominio Ubiquity e può
essere anche associata in modo specifico ad alcuni utenti e/o macchine remote.
La configurazione può procedere su due fronti alternativi:
Configurazione tramite indirizzi IP
Configurazione tramite porte e protocolli
9.1.3.1 Soluzione 2.1 - Configurazione tramite indirizzi IP
Si configurano gli indirizzi IP remoti interessati alla VPN.
La parte interessante per lo scenario specifico è che pur utilizzando il sistema remoto come gateway della
VPN verso la LAN di automazione, si può configurare la VPN stessa in modo che interessi solo il PLC
(10.20.0.100) e non interessi affatto il sistema dove Ubiquity Runtime è in esecuzione (10.20.0.1).
Nell’esempio, la VPN potrebbe essere quindi solamente tra il PC locale (10.20.0.180) e il PLC remoto
(10.20.0.100).
Del PC remoto (10.20.0.1) viene sfruttato il canale fisico (collegamento Ethernet allo switch LAN), ma esso
non viene interessato all’instradamento IP nella VPN. In tal modo non può esistere comunicazione tra virus
in esecuzione su quel PC e il PC locale di supervisione.
9.1.3.2 Soluzione 2.2 - Configurazione tramite porte e protocolli
Si istruisce la VPN di Ubiquity affinché effettui la “remotazione” solo di alcuni numeri di porta o di alcuni
protocolli, ad esempio solo il numero di porta interessato alla comunicazione del software di
programmazione del PLC.
Questa configurazione ha lo stesso effetto della soluzione 1, ma elimina il problema a monte (i pacchetti
“pericolosi” non partono nemmeno dal sistema remoto) invece che a valle (i pacchetti transitano nel tunnel
VPN, ma poi non escono grazie al firewall).
Di fatto il canale VPN non diventa più una remotazione generica e trasparente della rete, ma diventa un
canale specifico dedicato solo alle applicazioni interessate alla teleassistenza.
L’approccio 2.1 è il più semplice, ma può non essere configurabile in modo uguale per tutte le installazioni,
salvo che non si utilizzino sempre PLC con gli stessi IP statici.
L’approccio 2.2 è il più generale e può essere configurato una tantum indipendentemente dalle installazioni
remote, poiché si basa sulla selezione dei protocolli invece che sugli indirizzi IP.
L’approccio 2.2 richiede di conoscere in anticipo le porte/protocolli usati dai software interessati alla
teleassistenza. Se questi non sono conosciuti, è necessaria una breve analisi con software quali Wireshark
per risalire a queste informazioni.
9.2 Attacco man-in-the-middle
I client Ubiquity comunicano con i server tramite protocollo SSL/TLS. L’identità del server è garantita da un
certificato firmato da una certification authority conosciuta dai client.
Nel caso i client non riconoscano correttamente il certificato del server (ad esempio un attaccante si è
frapposto tra client e server e si sta spacciando per il server), è segnalata l’informazione all’utente che può
decidere se collegarsi lo stesso o verificare il collegamento con il suo responsabile IT.
Nel caso che l’attaccante non stia cercando di sostituirsi al server, ma stia monitorando passivamente il
traffico, non avrebbe alcuna possibilità di decodificarne il contenuto, poiché le informazioni sono crittografate
in modo sicuro end-to-end.
9.3 Attacco di tipo brute force
Un attaccante potrebbe utilizzare Control Center o una versione “manomessa” al fine di tentare in modo
manuale o automatico di indovinare la password di accesso.
Questo attacco non è attuabile in pratica poiché l’infrastruttura server blocca tentativi di accesso con
password dopo un numero molto limitato di tentativi errati, dopo i quali occorre attendere un tempo
predeterminato di “sblocco”.
Pagina 16 di 17
Nota Tecnica
Whitepaper - Architettura Ubiquity
TN0015
9.4 Furto password
L’autenticazione tramite utente e password è utilizzata per verificare l’identità dell’utente di Control Center.
Per limitare il rischio di furto delle credenziali di accesso, sono adottate le seguenti contromisure:
 L’infrastruttura server obbliga all’utilizzo di una password con lunghezza minima.
 La password non è salvata localmente sul PC con Control Center. Da un lato è più scomodo dovere
reinserire la password ad ogni accesso, ma dall’altro non si corre il rischio di fare conoscere la
password a chi possa ottenere l’accesso fisico del PC.
 La password in chiaro non è salvata nemmeno sui server: è conservata una versione trasformata
della password con un algoritmo di hashing. La metodologia di gestione di questi hash è dotata
anche di protezione contro gli attacchi di tipo rainbow table.
Pagina 17 di 17