DNS leak
Il Domain Name System, abbreviato in DNS, traduce i domini Internet in indirizzi IP. Questo sistema distribuito a livello globale emette quindi indirizzi IP per i singoli nomi di dominio e funge da “rubrica” di Internet. L’indirizzo IP è simile a un indirizzo postale a cui può essere inviata la posta. Di seguito due esempi di query DNS:
Nome di dominio interrogato | Indirizzo IP ottenuto in risposta |
‘example.com’ | ‘93.184.216.34’ |
‘ionos.it’ | ‘217.160.86.80’ |
Per permettere il funzionamento della risoluzione del nome, su ogni dispositivo deve essere inserito l’indirizzo IP di un server DNS. Il dispositivo indirizza le sue query DNS a questo server. I dati che ne risultano rivelano molto sul comportamento di navigazione degli utenti. Se si desidera proteggere la propria privacy, è possibile inviare le query DNS in uscita solo a server affidabili. Ma cosa succede se qualcosa va storto?
Cos’è una perdita DNS?
A differenza del DNS hijacking e del DNS spoofing, le perdite DNS mettono in pericolo solo gli utenti che cercano di mantenere privato il proprio comportamento durante la navigazione. In particolare, sono coinvolti concretamente gli utenti che si collegano a Internet tramite una rete privata virtuale (VPN) o un proxy. Entrambe le tecnologie servono a mascherare l’identità personale quando si usa Internet.
Il desiderio di mantenere segreti i propri dati di navigazione non indica attività illegali. Il diritto alla privacy e all’autodeterminazione informativa sono diritti umani fondamentali. Per questo, a sostegno di questi diritti, esistono servizi commerciali di VPN che offrono protezione in rete a pagamento. L’uso di proxy è oggi meno diffuso; pertanto, limiteremo la nostra analisi alle perdite DNS che si verificano quando si utilizza una VPN.
I servizi VPN mirano a instradare tutto il traffico di rete in uscita attraverso la VPN. In determinate circostanze, tuttavia, può accadere che il dispositivo dell’utente si colleghi direttamente ai partner di comunicazione su Internet. Una perdita DNS si verifica quando una query DNS che dovrebbe essere inviata attraverso la VPN raggiunge un server DNS senza protezione. Spesso si tratta del server DNS del provider Internet (ISP). Gli ISP sono noti per raccogliere, analizzare e vendere i dati di cui entrano in possesso.
Quali informazioni sono state trafugate?
Cosa succede se si verifica un DNS leak e quali informazioni sono quindi trapelate? Prima di tutto, bisogna distinguere tre casi:
- Informazioni che vanno all’ISP dell’utente
- Informazioni che vengono intercettate durante il percorso verso il server DNS
- Informazioni divulgate da un fornitore di servizi
Una query DNS in entrata verso il server DNS dell’ISP contiene l’indirizzo IP non oscurato dell’utente finale e il nome di dominio da risolvere. Questa è dotata di una marca temporale nei log del server dell’ISP e dà informazioni su quando l’utente ha avuto accesso o ha tentato di accedere a determinati domini. Si tratta quindi di un grave problema di protezione dei dati. Da un lato, i dati DNS sono spesso confezionati in profili e venduti; dall’altro, le agenzie governative possono accedere ai dati. Nel peggiore dei casi, questo può essere fatale per dissidenti e attivisti.
Le query DNS utilizzano lo User Datagram Protocol (UDP) come protocollo di connessione. I pacchetti UDP sono visibili lungo il percorso verso il server DNS per ogni soggetto che è in grado di monitorare la linea. Per mantenere segreto il comportamento di navigazione dell’utente, le richieste DNS devono essere inoltrate attraverso la VPN. Dalle rivelazioni di Snowden è noto che i servizi segreti controllano, dirigono, valutano e archiviano il traffico Internet su vasta scala. I pacchetti DNS identificabili personalmente risultanti da una perdita DNS rappresentano quindi una grave minaccia per la sicurezza e la privacy degli utenti di Internet.
Oltre ai pericoli già menzionati in relazione alle perdite DNS, esiste un ulteriore rischio. Una perdita DNS può essere sfruttata da terzi. Potrebbe trattarsi di un fornitore di servizi, ad esempio il gestore di un sito web. Con un trucco, il provider può determinare che un utente sta accedendo al servizio tramite una VPN. In determinate circostanze, il fornitore di servizi può essere informato sull’ISP dell’utente, che a sua volta rivela la posizione geografica approssimativa dell’utente. Lo stesso trucco viene utilizzato anche durante i test per perdite DNS, in questo caso a beneficio dell’utente.
Come funziona un test per le perdite DNS?
Ci sono molti servizi che cercano di rilevare le perdite DNS. Solitamente, questi test per le perdite DNS sono implementati in un normale sito web a cui l’utente accede dal browser. Per verificare la presenza di una perdita DNS, il test attiva una serie di tentativi di connessione speciali. L’obiettivo è quello di rintracciare da dove provengono le query DNS risultanti. Ma come funziona esattamente?
Per capire come funziona un test per le perdite DNS, è necessario comprendere come è strutturato il DNS. Il DNS è un sistema gerarchico composto da name server. Si distingue tra name server autorevoli e non autorevoli. Un name server autorevole serve come fonte dei dati DNS di una zona DNS. Concettualmente, si può pensare a una zona DNS come a un dominio comprensivo di altri sottodomini aggiuntivi.
Oltre ai name server autorevoli, esistono name server che memorizzano parti dei dati DNS in una cache. In questo modo è possibile rispondere rapidamente alle richieste già fatte senza dover chiedere ogni volta al name server autorevole. Il server DNS dell’ISP è un name server non autorevole per la maggior parte dei domini. Vediamo cosa succede quando il server DNS dell’ISP riceve una richiesta per i nomi di dominio:
- Un client vuole recuperare una risorsa ospitata da un nome di dominio.
- Il client effettua una richiesta di nome di dominio al server DNS dell’ISP.
- Se il server DNS conosce l’indirizzo IP associato al nome di dominio, lo comunica al client.
- In caso contrario, il server DNS dell’ISP interroga il server DNS autorevole della zona DNS alla quale appartiene il nome di dominio.
- Il server DNS autorevole restituisce l’indirizzo IP del nome di dominio.
- Il server DNS dell’ISP inoltra l’indirizzo IP al client e memorizza la richiesta nella sua cache.
- Il client può ora effettuare la richiesta per la risorsa desiderata al server collegato al nome di dominio.
Un test per perdite DNS si basa su questo principio fondamentale. Lo illustriamo di seguito utilizzando il sito web DNS leak test come esempio:
- Un utente naviga nel browser e visita il sito web dnsleaktest.com. Il sito web del test per i DNS leak genera query a risorse fittizie in un sottodominio unico, generato in modo casuale. Di seguito un esempio del nome di un dominio di questo tipo: c6fe4e11-d84d-4a32-86ef-ee60d9c543fa.test.dnsleaktest.com
- Per accedere a una delle risorse, il browser del visitatore del sito ha bisogno dell’indirizzo IP appartenente al nome di dominio. Trattandosi di un nome di dominio generato in modo casuale, nessun server DNS diverso da quello autorevole può conoscere l’indirizzo IP.
- Il server DNS che riceve la richiesta chiede quindi al server DNS autorevole per la zona DNS test.dnsleaktest.com. Il server DNS autorevole per questo nome di dominio è sotto il controllo del gestore del sito dnsleaktest.com.
- Il server DNS autorevole fa corrispondere la parte unica generata in modo casuale del nome di dominio con i record di un database interno. Questo permette a dnsleaktest.com di tenere traccia di quale richiesta DNS in entrata appartiene a un determinato visitatore del sito web.
- Sotto forma di indirizzo IP, il server DNS autorevole dispone delle informazioni da cui proviene la richiesta dell’indirizzo IP del nome di dominio generato in modo casuale. Se la fonte della query è il server DNS di un ISP, allora si è verificata una perdita DNS.
Quali sono i test disponibili per le perdite DNS?
In linea di principio, è possibile implementare un test per le perdite DNS come servizio web in modo relativamente facile. Per un approfondimento al riguardo vi consigliamo di leggere questo articolo. Se volete verificare se siete vittime di una perdita DNS, potete utilizzare uno dei test per perdite DNS già esistenti. Abbiamo raccolto per voi un elenco di queste offerte a titolo esemplificativo:
Come si possono evitare le perdite DNS?
La migliore strategia per prevenire le perdite DNS si basa sul concetto di sicurezza IT “Defense in depth” (in italiano: “Difesa in profondità”), che prevede la costruzione di diversi livelli di protezione contro una minaccia. Questo permette alla protezione di rimanere intatta, anche se viene rimosso un singolo livello. Per evitare perdite DNS, si consiglia di seguire i seguenti passaggi, nell’ordine proposto:
- Impostare i server DNS non sotto il controllo dell’ISP sul dispositivo locale e sul router di casa. Si tratta di una misura di protezione di base che previene anche altri rischi, come il dirottamento del DNS (DNS hijacking).In questo caso, si raccomanda l’uso di Quad9 o Cloudflares 1.1.1.1. Dopo aver cambiato i server DNS, ricordatevi di svuotare la cache DNS.
- Utilizzare un software che cripta le connessioni DNS, ad esempio tramite DNS over HTTPS (DoH) o DNS over TLS (DoT). Ciò protegge da intercettazioni e manipolazioni dei pacchetti DNS indirizzati verso il server DNS e quindi impedisce anche attacchi di DNS spoofing.L’uso della crittografia DNS dipende dal software utilizzato. Tra i browser più comuni, Firefox è all’avanguardia nel passaggio a connessioni DNS criptate. Tuttavia, le impostazioni del browser devono essere prima regolate, come descritto nel nostro articolo sul protocollo DoH.
- Utilizzare un client VPN che inoltra le richieste DNS attraverso la VPN e mette a disposizione i propri server DNS. Questo protegge da tutti i pericoli derivanti da perdite DNS.C’è una varietà quasi illimitata di fornitori di VPN. Alcuni forniscono i loro servizi gratuitamente, altri come servizi commerciali. In generale, si consiglia di essere prudenti nell’utilizzo dei servizi VPN gratuiti, in quanto, solitamente, non ci si può aspettare lo stesso livello di protezione offerto da un servizio a pagamento.
I punti citati offrono un livello di protezione di base contro le perdite DNS e dovrebbero essere sufficienti per la maggior parte degli utenti di Internet. I membri di gruppi particolarmente vulnerabili, come gli attivisti per i diritti umani, dovrebbero prendere ulteriori precauzioni:
- Risulta utile usare il browser Tor, che è noto per prevenire efficacemente le perdite DNS quando si accede ai siti web.
- Per garantire che tutte le connessioni di rete in uscita vengano instradate attraverso la rete Tor e quindi spersonalizzate, è possibile avviare Tails di Linux da una chiavetta USB. Questo approccio è considerato come il più sicuro in termini di mascheramento della propria identità quando si naviga in Internet.