Le VPN e la nostra privacy online: siamo davvero anonimi?
Le reti private virtuali (VPN[1]) sono ottime per proteggere la propria privacy, ma non sono perfette. Alcune VPN non tutelano correttamente le informazioni “private” e molte nascondo dei bug che mettono a serio rischio la nostra privacy. Anche se stai usando la miglior VPN del mondo e pensi che il tuo indirizzo IP sia completamente protetto, devi sapere che affidarsi a una VPN non garantisce l’anonimato.
Dato che i sistemi e i server comunicano sempre tra loro, avanti e indietro, ci sono numerose occasioni in cui il tuo IP o il DNS possono essere visibili. Per essere sicuro che le tue informazioni e la tua identità siano ben nascoste, devi controllare che il tuo sistema non esponga l’IP e il DNS.
Funzionamento e tecnologie di crittografia
Utilizzano tecnologie di crittografia, come la sicurezza IP (IPSec), Layer 2 Tunneling Protocol (L2TP/IPSec) e Secure Sockets Layer (SSL) e Layer Security Layer Security (TLS), si crea un tunnel virtuale tra il proprio dispositivo e un server VPN. Tutto il traffico contenuto in questo tunnel è protetto dalla cifratura della VPN e chi è esterno alla connessione non può accedere ai dati in esso contenuti.
Siamo sicuri che tutto sia come descritto sopra?
Partendo da quest’articolo “An Analysis of the Privacy and Security Risks of Android VPN Permission-enabled Apps” mi sono chiesto se effettivamente i miei dati e la mia privacy fossero tutelati dai servizi VPN che utilizzo abitualmente. Da una serie di test ripetuti, come vedremo, su un campione ridotto (10 provider VPN) è emerso che la situazione, se monitorata, è accettabile per PC mentre lascia molto a desiderare sui dispositivi mobili.
Le VPN convenzionali non sono ancora ottimizzate per i problemi di comunicazione mobile, come i gap di copertura, il roaming inter-rete, la larghezza di banda, ma anche per la durata della batteria, la memoria limitata e la potenza di elaborazione. Quindi la vostra VPN potrebbe non essere attiva e la vostra privacy non tutelata.
Sapete cosa succede quando ci si trasferisce da una rete 4G a una Wi-Fi e viceversa, o anche solo da una rete 4G a un’altra (roaming[2])?
Nella stragrande maggioranza dei casi si perde la connessione VPN, ovviamente l’app cercherà subito di ripristinare la connessione sicura, ma in alcuni casi si cade in un ciclo infinito di tentativi (l’app si blocca) e non si riesce a stabilire una nuova connessione protetta.
In questi casi, l’unica soluzione che al momento posso indicarvi, è quella di riavviare il vostro dispositivo per essere sicuri di ripristinare il servizio correttamente.
Come testare la sicurezza
Ora che il problema è chiaro possiamo porre la domanda “le VPN possono tutelare la nostra privacy?”
Su un campione di 10 provider VPN che offrono client su diverse piattaforme OS e mobile sono stati effettuati una serie di test di seguito elencati:
- Connessione/Disconnessione Cilent/App con verifica dello stato della VPN
- Perdita di rete da parte del Device e monitoraggio del comportamento del client/app
- Analisi del Flusso di rete generato dal device
- Esposizione dei dati e delle informazioni di connessione (IP pubblico, Sistema operativo e browser utilizzati, cronologia di navigazione)
Per verificare se effettivamente si sta utilizzando una buona VPN dovremmo essere in grado di verificare:
- Lo stato della connessione
- La crittografata usata nella VPN
- La presenza di perdite
Vediamo nei dettagli ogni singolo punto.
Verifica dello stato della connessione VPN
Una verifica periodica dello stato della connessione è fondamentale per tutelare al meglio la vostra privacy. È consigliabile verificare lo stato della connessione VPN, soprattutto se si sta utilizzando un nuovo provider VPN o se il client è stato aggiornato di recente. Alcuni potrebbero indicare di essere connessi anche quando in realtà non lo sono.
Come fare questa verifica?
- Aprire dal browser uno dei servizi per l’identificazione dell’IP pubblico
Prendere nota del valore visualizzato.
- Avviare il client/app della VPN.
- Dopo la conferma del corretto instradamento, aggiornare la pagina web e ricontrolla i dati visualizzati.
Se vengono visualizzati IP e posizione diverse il client/app ha creato correttamente un tunnel VPN.
Possiamo elencare una infinità di tool che permettono di controllare se i nostri dati vengono criptati ma indubbiamente il migliore resta indiscutibilmente Wireshark.
Verifica della crittografia
Per verificare che i dati instradati nel tunnel VPN siano criptati basta:
- Avviare la VPN
- Avviare Wireshark
- Seleziona l’interfaccia di rete da monitorare
- Avviare la registrazione
- Individuate i pacchetti con il protocollo utilizzato dal vostro client VPN
- Seguire il flusso UDP o TCP
- Esaminare lo stream completo per assicurarsi che sia crittografato, se si riesce a leggerlo non lo è.
La presenza di pacchetti non crittografati è da ricercare nelle comunicazioni tra i dispositivi della rete.
Come prevenire le perdite IPv6
A parte la crittografia, che mette al sicuro i nostri dati, l’altro grande vantaggio di una VPN è che nasconde il nostro indirizzo IP pubblico[7].
Ma esistono diversi tipi di perdite di privacy VPN che possono esporre l’indirizzo IP reale o la cronologia di navigazione. Le più note sono le perdite di:
- IPv6
- WebRTC
- DNS
Perdite IPv6
Il nuovo protocollo IPv6, anche se non è ancora implementato, viene utilizzato da alcuni siti web. Cosa succede quando il provider della VPN decide di ignorare l’IPv6?
Il client VPN non riesce a instradare correttamente la richiesta che viene inviata normalmente in chiaro.
Per evitare perdite di IPv6 è meglio:
- Usare una VPN che supporta l’IPv6
- Disabilitare manualmente il protocollo IPv6 del proprio sistema operativo
Perdite WebRTC
Si tratta di uno degli scenari più comuni, quello in cui il WebRTC è colpevole dell’esposizione dell’indirizzo IP. Cos’è esattamente un WebRTC, è un API che permette alle applicazioni web come le chat, le webcam e i P2P di funzionare senza un’estensione o un plug-in. Questa funzionalità può essere sfruttata dai siti web per recuperare l’IP dei loro utenti.
I browser che supportano WebRTC, come Chrome e Firefox, usano un server STUN (Session Traversal Utilities for NAT) per ottenere un indirizzo di rete esterno.
Un sito web che vuole sapere il tuo vero indirizzo IP può facilmente impostare un codice nascosto per fare le richieste UDP a questo server STUN, il quale le reindirizza poi a tutte le interfacce di rete disponibili. Con poche righe di codice javascript sia l’IP pubblico che quello della VPN sono visibili.
Le richieste WebRTC non sono individuabili e i plugin non possono bloccarle efficacemente.
Per sopperire a questa falla non resta che:
- Impostare delle regole sul firewall in modo tale che solo il cliente VPN possa fare delle richieste.
- Disabilita il WebRTC nei browser che lo supportano.
Perdite DNS
Ogni computer utilizza richieste DNS (Domain Name System) per tradurre nomi di domini in indirizzi IP numerici. Se le richieste DNS vengono intercettate si può risalire alla cronologia della navigazione web.
A causa di una vulnerabilità nel protocollo DNS alcune richieste potrebbero essere instradate al di fuori del tunnel VPN esponendo i nostri dati di navigazione. La falla consente a un ISP di vedere quali siti internet un utente visita.
In parole povere con una perdita di DNS le richieste di risoluzione degli indirizzi IP vengono inoltrate anche al tuo ISP oltre che al provider della tua VPN.
Alcuni ISP adottano una tecnologia chiamata “Transparent DNS proxy” che di fatto forza i dispositivi di una rete a utilizzare i propri server DNS per tutte le ricerche anche quando l’utente imposta manualmente dei DNS personalizzati di terze parti (Google, OpenDNS, ecc…).
Conviene scegliere delle VPN con protezione da perdite DNS e preferire i server DNS indicati dal provider della VPN.
Conclusioni
I risultati da me ottenuti sono abbastanza soddisfacenti a esclusione di qualche bug su dispositivi mobili che richiedono il riavvio per un corretto funzionamento.
Seguendo la metodologia di test descritta ogni singolo utente potrà testare la propria VPN e monitorarne il corretto funzionamento.
La soluzione migliore per tutelare la propria privacy e i propri dati resta quella di configurare un proprio server VPN, utilizzando software come ad esempio OpenVPN[8] o programmi commerciali di accesso remoto come Check Point Endpoint, Cisco AnyConnect.
Note
I test sopra riportati sono stati eseguiti per ogni device e OS soltanto 10 volte. I Dati non sono statisticamente validi ma lo scopo dell’articolo è quello di sensibilizzare l’utente a utilizzare servizi VPN professionali che effettivamente tutelano la loro privacy e i loro dati.
L’articolo è stato scritto a scopo educativo ed è stato eseguito in ambiente di laboratorio, eventuali tentativi di replica su siti web o indirizzi IP pubblici costituiscono reato informatico.
Bibliografia
- https://it.wikipedia.org/wiki/Virtual_Private_Network
- https://research.csiro.au/ng/wp-content/uploads/sites/106/2016/08/paper-1.pdf
- https://www.cisco.com/web/IT/partnercisco/pdf/security/securitySAFEPMI.pdf
- https://it.wikipedia.org/wiki/WebRTC
NOTE
[1] In telecomunicazioni una VPN (virtual private network) è una rete di telecomunicazioni privata, instaurata tra soggetti che utilizzano, come tecnologia di trasporto, un protocollo di trasmissione pubblico e condiviso, come ad esempio la rete Internet.
[2] Il termine roaming (dall’inglese to roam: vagare, andare in giro) identifica, nel campo delle telecomunicazioni, l’insieme di procedure, normative e apparecchiature che permettono di rintracciare un terminale mobile desiderato che non si trova nella propria rete, e di metterlo in comunicazione con l’utente chiamante all’interno di una stessa rete, o tra reti di comunicazione distinte ma interoperanti.
[3] IPv6 è la versione dell’Internet Protocol designata come successore dell’IPv4. Tale protocollo introduce alcuni nuovi servizi e semplifica molto la configurazione e la gestione delle reti IP.
[4] WebRTC è una tecnologia open source nata il 1º giugno 2011 che consente ai browser di effettuare in tempo reale la videochat. È basata su HTML5 e JavaScript. La sua inclusione nel World Wide Web Consortium (W3C) standard è supportata da Google, Mozilla e Opera.
[5] Il sistema dei nomi di dominio (in inglese: Domain Name System, DNS) è un sistema utilizzato per la risoluzione di nomi dei nodi della rete (in inglese: host) in indirizzi IP. Il servizio è realizzato tramite un database distribuito, costituito dai server DNS.
[6] La crittografia (dall’unione di due parole greche: κρυπτóς [kryptós] che significa “nascosto”, e γραφία [graphía] che significa “scrittura”) è la branca della crittologia che tratta delle “scritture nascoste”, ovvero dei metodi per rendere un messaggio “offuscato” in modo da non essere comprensibile/intelligibile a persone non autorizzate a leggerlo.
[7] In informatica e telecomunicazioni un indirizzo IP pubblico è un indirizzo IP nello spazio di indirizzamento della rete internet che è allocato univocamente e potenzialmente accessibile da qualsiasi altro indirizzo IP pubblico cioè utilizzabile per l’indirizzamento e l’instradamento tramite protocollo IP.
[8] OpenVPN è un programma VPN open source scritto da James Yonan e rilasciato con licenza GPL. È usato per creare tunnel crittografati punto-punto sicuri fra due computer attraverso una rete non sicura, ad esempio internet. Permette agli host di autenticarsi l’uno con l’altro per mezzo di chiavi private condivise, certificati digitali o credenziali utente/password.
A cura di: Giuseppe Turano
Laurea in Fisica (V.O.) – Elettronica e Strumentazioni
Ho trascorso gli ultimi anni a perfezionare le migliori metodologie di intervento inerenti alla sicurezza delle informazioni.
Lavoro da oltre dieci anni come Digital Evidence Examiner nella Cyber Intelligence & Information Security
Mi occupo principalmente di sicurezza delle reti, Penetration Test, Digital Forensic e Cyber Intelligence.