Il servizio DNS (Domain Name System) è un sistema essenziale di Internet che traduce i nomi di dominio umanamente leggibili, come "www.nicolaferrini.it", in indirizzi IP numerici, come "89.46.108.6”, che i computer usano per identificare ogni altro sulla rete. Funziona come una sorta di rubrica telefonica per Internet, consentendo agli utenti di inserire indirizzi web facili da ricordare invece di lunghi numeri IP.

Importanza del DNS

  • Facilitazione dell'accesso a Internet: Senza il DNS, gli utenti dovrebbero ricordare indirizzi IP numerici complessi per ogni sito web che vogliono visitare, il che sarebbe impraticabile. Il DNS rende l'uso di Internet molto più semplice e accessibile per tutti.
  • Gestione del traffico Internet: DNS consente il controllo efficace del traffico Internet tramite la gestione dei server di nome, che possono indirizzare il traffico in modo intelligente per bilanciare il carico e ridurre la congestione, migliorando così la velocità e l'affidabilità delle connessioni.
  • Sicurezza: Il DNS supporta varie misure di sicurezza come DNSSEC (DNS Security Extensions) che proteggono gli utenti da attacchi come l'impersonificazione e l'avvelenamento della cache DNS. Questi attacchi possono deviare gli utenti da siti legittimi a siti malevoli, che potrebbero tentare di rubare informazioni personali o distribuire malware.
  • Flessibilità e scalabilità di Internet: DNS è estremamente scalabile, il che permette di aggiungere nuovi domini e gestire cambiamenti nei domini esistenti con relativa facilità. Questa scalabilità è vitale per l'espansione continua di Internet.
  • Supporto per i servizi distribuiti: Attraverso il DNS, le aziende possono gestire diversi servizi distribuiti geograficamente (come server web, di posta e applicativi) in modo più efficiente, assegnando a ciascun servizio un record DNS specifico che aiuta a dirigere gli utenti verso la posizione più ottimale.

 

Cosa sono i record DNS?
I record DNS (Domain Name System) sono essenziali per la gestione della mappatura tra i nomi dei domini e i loro indirizzi IP, oltre a molte altre configurazioni di rete. Ecco alcuni dei tipi più comuni di record DNS:

  • A (Address Record): Mappa un nome a un indirizzo IPv4.
  • AAAA (IPv6 Address Record): Mappa un nome a un indirizzo IPv6.
  • CNAME (Canonical Name Record): Utilizzato per alias di domini, redirige un dominio verso un altro dominio.
  • MX (Mail Exchange Record): Specifica i server di posta elettronica per la ricezione di e-mail per un dominio.
  • PTR (Pointer Record): Utilizzato principalmente per le query di reverse DNS, mappa un indirizzo IP a un nome di dominio.
  • NS (Name Server Record): Indica quali server DNS sono autoritativi per un dominio.
  • TXT (Text Record): Consente agli amministratori di inserire testo arbitrario nel DNS, spesso usato per verificare la proprietà del dominio o per implementare politiche di sicurezza come SPF (Sender Policy Framework) e DKIM (DomainKeys Identified Mail).
  • SRV (Service Record): Specifica informazioni sulla disponibilità di servizi specifici in un dominio, come VoIP o messaggistica istantanea.
  • SOA (Start of Authority Record): Fornisce informazioni essenziali su un dominio, compreso il server DNS primario, l’e-mail dell'amministratore, il numero di serie del dominio e altri dettagli.
  • CAA (Certificate Authority Authorization): Specifica quali autorità di certificazione possono emettere certificati per un dominio.

Oltre ai tipi di record DNS più comuni che ho elencato in precedenza, esistono vari altri tipi di record utilizzati per scopi specifici. Questi tipi di record rappresentano funzionalità avanzate del DNS che permettono una migliore gestione della sicurezza, dell'indirizzamento e della distribuzione delle risorse in rete. Ecco alcuni dei tipi di record meno comuni:

  • NAPTR (Naming Authority Pointer Record): Utilizzato in applicazioni come la telefonia su IP (VoIP) per la mappatura di servizi e protocolli esterni a un dominio.
  • DNAME (Delegation Name Record): Simile a CNAME, ma redirige l'intero sotto-dominio verso un altro dominio.
  • SSHFP (SSH Public Key Fingerprint Record): Contiene un'impronta digitale della chiave pubblica SSH per un host, utilizzato per validare l'autenticità di un host in connessioni SSH.
  • RP (Responsible Person Record): Specifica un indirizzo email per la persona responsabile di un dominio.
  • HINFO (Host Information Record): Fornisce informazioni hardware e software su un host, ma è raramente usato per motivi di sicurezza.
  • LOC (Location Record): Indica la posizione geografica fisica di un dispositivo o risorsa in Internet.
  • TLSA (Transport Layer Security Authentication): Utilizzato con DNS-based Authentication of Named Entities (DANE) per fornire informazioni TLS (SSL certificate) per il servizio in un dominio.
  • DNSKEY (DNS Key Record): Fa parte del sistema DNSSEC e contiene la chiave pubblica che un server DNS utilizza per firmare digitalmente i record per un dominio, al fine di garantire l'integrità e l'autenticità dei record DNS.
  • DS (Delegation Signer Record): Anch'esso parte di DNSSEC, è utilizzato per collegare una zona DNS autoritativa a una zona figlia, aiutando a garantire la catena di trust.
  • RRSIG (DNSSEC Signature Record): Contiene le firme digitali usate per validare i record in un contesto DNSSEC.
  • SVCB (Service Binding Record): Introdotti recentemente, i record SVCB sono progettati per migliorare il modo in cui i clienti interagiscono con i servizi ospitati. Offrono una configurazione flessibile che permette di specificare parametri di connessione per i servizi, come HTTPS. Questo tipo di record può essere usato per indicare supporto a particolari funzionalità del server o per fare load balancing intelligente tra più server.
  • SMIMEA (S/MIME Certificate Association Record): Simile ai record TLSA, i record SMIMEA sono utilizzati per associare un certificato specifico S/MIME a un indirizzo e-mail o a un dominio. Questo consente ai client di e-mail di verificare l'autenticità dei certificati S/MIME usati nei messaggi di posta elettronica, migliorando la sicurezza delle comunicazioni cifrate.
  • URI (Uniform Resource Identifier Record): I record URI possono essere usati per associare un URI a un nome DNS specifico. Sono utili per indirizzare le risorse web o i servizi in modi non coperti da altri record, come CNAME o A.
  • CERT (Certificate Record): Questo tipo di record è utilizzato per archiviare certificati pubblici o la loro impronta associata. I record CERT possono essere usati per certificati PGP, X.509 e altri. Forniscono un metodo per distribuire i certificati di sicurezza attraverso il DNS, che può essere utilizzato per la verifica dell'identità o la chiave pubblica di una entità.

 

Quali strumenti si usano per verificare i record DNS?

Per verificare i record DNS di un dominio, si possono utilizzare diversi strumenti, sia basati su interfaccia grafica (GUI) che su linea di comando (CLI). Questi strumenti forniscono vari livelli di informazione e possono essere utilizzati in base alle specifiche esigenze di diagnostica, manutenzione o semplice verifica dei record DNS. Ecco alcuni degli strumenti più comunemente usati:

  • nslookup: Uno strumento da linea di comando disponibile su sistemi Windows, Linux e macOS che permette di interrogare i server DNS per ottenere record DNS specifici come A, MX, TXT, ecc. È molto utile per il troubleshooting di problemi DNS.
  • dig (Domain Information Groper): Molto popolare tra gli utenti Linux e macOS, questo strumento da linea di comando è utilizzato per interrogare i server DNS. Fornisce informazioni dettagliate sui record DNS e include opzioni per specificare esattamente quale tipo di record recuperare, rendendolo estremamente versatile per il debugging.
  • Ping: Anche se non è specificamente uno strumento DNS, ping può essere usato per verificare se il DNS è in grado di risolvere un nome di dominio in un indirizzo IP, il che è un primo passo utile nella diagnostica DNS.
  • Whois: Questo strumento può essere utilizzato per ottenere informazioni di registrazione del dominio, inclusi i server DNS associati. Non fornisce direttamente record DNS, ma è utile per ottenere informazioni contestuali su un dominio.
  • DNSstuff: Un sito web che offre una varietà di strumenti per analizzare e risolvere problemi legati al DNS, includendo la verifica di record DNS, analisi di blacklist, ricerca whois e altro.
  • MXToolBox: Un sito web che fornisce una suite di strumenti DNS online, inclusi la verifica di record MX, verifica di blacklist, diagnostica DNS, e verifica di SMTP.
  • Google Admin Toolbox: Fornisce un set di strumenti di diagnostica DNS che possono essere utilizzati per eseguire vari test sui record DNS di un dominio.
  • DNSViz: Uno strumento grafico online per visualizzare e analizzare la catena di autorità dei record DNS di un dominio, particolarmente utile per verificare configurazioni DNSSEC.

 

Quali tipi di attacchi possono essere perpretati a danno del DNS?

Il sistema DNS è fondamentale per il funzionamento di Internet, ma può anche essere un punto debole per la sicurezza. Ecco alcuni dei tipi più comuni di attacchi mirati al DNS:

  • DNS spoofing (o Cache Poisoning): In questo tipo di attacco, un malintenzionato inserisce dati falsi nella cache DNS di un server. Questo può indirizzare gli utenti a siti web malevoli anziché a quelli legittimi. Gli utenti potrebbero non accorgersi di essere stati reindirizzati a un sito falso che può rubare informazioni sensibili.
  • DNS hijacking: In questo caso, l'attaccante prende il controllo del traffico DNS di una vittima, reindirizzandolo attraverso un server DNS compromesso. Questo può essere fatto modificando le impostazioni DNS sul router della vittima o sul suo dispositivo, o compromettendo un server DNS a un livello più alto.
  • DNS Amplification Attacks: Si tratta di un tipo di attacco DDoS (Distributed Denial of Service) in cui l'attaccante sfrutta la natura stateless del protocollo DNS per inviare piccole query con l'indirizzo spoofato della vittima, che poi riceve risposte molto più grandi, saturando la banda passante.
  • Distributed Reflection Denial of Service (DRDoS): Simile all'amplification, questo attacco utilizza server DNS legittimi per sovraccaricare una rete o un server con risposte DNS. L'attaccante fa richieste a diversi server DNS con l'indirizzo IP della vittima, causando un afflusso di traffico verso la vittima.
  • Pharming: Questo attacco reindirizza uno o più utenti a un sito fraudolento mascherato da sito legittimo, modificando il file hosts di un computer o compromettendo un server DNS. Questo può essere fatto a livello locale o più ampio, influenzando più utenti.
  • Subdomain takeover: Questo si verifica quando un attaccante prende il controllo di un sottodominio di un sito web che non è più in uso, ma che è ancora gestito nei record DNS. Questo può permettere all'attaccante di ospitare contenuti malevoli sotto un dominio altrimenti affidabile.
  • NXDOMAIN attack: L'attaccante invia una grande quantità di richieste per risolvere nomi di dominio inesistenti, sovraccaricando il server DNS e potenzialmente causando un servizio degradato o negato agli utenti legittimi.
  • Random Subdomain attack: Simile all'attacco NXDOMAIN, in questo caso l'attaccante fa molte richieste a sottodomini casuali di un dominio legittimo, tentando di sovraccaricare i server DNS.

Per difendersi da questi e altri attacchi al DNS, è essenziale implementare misure di sicurezza come DNSSEC (DNS Security Extensions), configurazioni di firewall robuste, e monitoraggio continuo del traffico per rilevare e mitigare attività sospette.

 

Cos’è il tunnelling DNS?

Il tunnelling DNS è una tecnica che sfrutta il protocollo DNS per incapsulare dati non-DNS in query e risposte DNS. Questo metodo viene utilizzato per vari scopi, sia legittimi che malevoli.

Usi legittimi del tunnelling DNS

  • Bypass di Firewall o Censura: In alcuni ambienti, dove l'accesso a Internet è severamente filtrato o censurato, il tunnelling DNS può essere utilizzato per bypassare queste restrizioni, dato che il traffico DNS è spesso meno rigorosamente controllato.
  • Connessioni in Ambienti Restrittivi: In contesti aziendali o in reti con connettività Internet limitata (come in alcuni ambienti operativi o aeroporti), il tunnelling DNS può fornire una via per stabilire connessioni quando altre porte e protocolli sono bloccati.

Usi malevoli del tunnelling DNS

  • Evasione della Sicurezza: Gli attaccanti possono usare il tunnelling DNS per comunicare con un server di comando e controllo (C&C) bypassando i dispositivi di sicurezza tradizionali, poiché il traffico DNS non viene sempre ispezionato con la stessa rigorosità di altri protocolli.
  • Data Exfiltration: Dati sensibili possono essere esfiltrati da un'organizzazione incapsulandoli in richieste e risposte DNS. Questo è difficile da rilevare e bloccare poiché i dati esfiltrati si mescolano con il traffico DNS legittimo.
  • Malware Delivery: Il malware può essere distribuito attraverso il tunnelling DNS, inviando pezzi di codice dannoso in varie query DNS, che vengono poi assemblate nel sistema di destinazione.

Rilevamento e mitigazione

La rilevazione del tunnelling DNS può essere sfidante, ma ci sono alcuni indicatori e tecniche che possono essere utilizzati:

  • Analisi del traffico anomalo: Una frequenza insolitamente alta di richieste DNS o richieste a domini rari può essere un segnale.
  • Ispezione del contenuto delle query: Analizzare il contenuto delle richieste DNS alla ricerca di dati che non sembrano appartenere a query DNS standard.
  • Monitoraggio del volume di traffico: Un volume elevato di dati trasmessi tramite il DNS può indicare l'uso di tunnelling.

Per mitigare il rischio di tunnelling DNS le aziende possono:

  • Applicare il Controllo e la Filtrazione del Traffico DNS: Usare firewall e sistemi di prevenzione delle intrusioni (IPS) che possono analizzare e filtrare il traffico DNS basandosi su regole specifiche.
  • Limitare la Funzionalità DNS: Restringere la risoluzione DNS ai soli server DNS noti e affidabili e bloccare query DNS non necessarie o sospette.
  • DNSSEC: Implementare DNSSEC per garantire l'autenticità e l'integrità delle risposte DNS.

Il tunnelling DNS rappresenta una sfida per la sicurezza delle reti ma, con adeguate misure di sicurezza e monitoraggio, può essere gestito efficacemente.