- Riconoscere struttura, sintassi e campi dei principali Resource Record DNS (A, AAAA, CNAME, MX, TXT, NS, SOA, PTR, SRV, CAA)
- Comprendere la differenza tra risoluzione autoritativa, ricorsiva e interrogazione iterativa
- Eseguire query mirate e analizzare i flag di risposta con Google Admin Toolbox Dig e da riga di comando
- Condurre un audit completo di sicurezza e resilienza della zona DNS
- Validare i record di autenticazione email (SPF, DKIM, DMARC) e le policy crittografiche (CAA)
- Individuare misconfigurazioni, loop di delega, record orfani e rischi di Subdomain Takeover
Anatomia di un Resource Record DNS (RFC 1035)
Tag: Struttura RR | Tag: Standard RFC

Il Domain Name System (DNS) organizza le proprie informazioni all'interno di tabelle gerarchiche denominate file di zona. Ogni voce del file di zona è un Resource Record (RR). Prima di procedere a qualsiasi attività di audit o vulnerabilty assessment, è indispensabile comprendere la grammatica con cui ciascun record viene espresso sulla rete.
Nel formato testuale standard definito dalla RFC 1035, un generico Resource Record presenta la seguente struttura a cinque campi.
[NAME/OWNER] [TTL] [CLASS] [TYPE] [RDATA]
www.example.com. 3600 IN A 93.184.216.34
| Campo | Significato | Ruolo Tecnico nell'Audit |
|---|---|---|
| NAME / OWNER | Nome a dominio o FQDN | L'oggetto a cui si riferisce il record. Se termina con il punto finale (.) è un Fully Qualified Domain Name (FQDN) assoluto; se privo di punto, il name server appende il nome della zona corrente. |
| TTL | Time To Live (secondi) | Intervallo di validità in cui i resolver ricorsivi possono trattenere il record in cache prima di rieseguire la query autoritativa. Valori sproporzionati (troppo alti) bloccano le modifiche di emergenza; valori troppo bassi sovraccaricano i server autoritativi. |
| CLASS | Classe di rete | Quasi universalmente impostato su IN (Internet). Altre classi storiche (CH per Chaosnet, HS per Hesiod) sono in disuso, salvo l'uso di CH txt version.bind per verificare la versione del software DNS. |
| TYPE | Tipo di record | Identifica la funzione logica e il formato dei dati contenuti nel campo RDATA (es. A, AAAA, MX, NS, SOA, TXT). |
| RDATA | Resource Data | Il payload vero e proprio: un indirizzo IP per i record A/AAAA, un hostname prioritario per MX, parametri numerici per SOA, o stringhe arbitrarie per TXT. |
Guida Completa ai Resource Record: Ruolo e Diagnosi
Tag: Catalogazione Record | Tag: Analisi Dettagliata
Esaminiamo in modo analitico tutti i record che un amministratore o un security auditor incontra durante la valutazione di un dominio pubblico.
A che servono: Risolvono un nome simbolico (FQDN) nel corrispondente indirizzo IP numerico (record A a 32 bit per IPv4; record AAAA a 128 bit per IPv6).
Esempio di sintassi:
webserver.example.com. 3600 IN A 198.51.100.25
webserver.example.com. 3600 IN AAAA 2001:db8:85a3::8a2e:370:7334
Cosa verificare in audit:
- Verificare che nessun sottodominio punti a subnet private (RFC 1918 come
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16) o interfacce di loopback (127.0.0.1), a meno che non si tratti di reti interne isolate. - Controllare l'allineamento con i record AAAA per garantire piena compatibilità dual-stack IPv6.
A che serve: Crea un alias simbolico da un hostname verso il suo vero nome canonico (un altro FQDN). Consente di reindirizzare servizi senza dover duplicare o gestire più indirizzi IP statici.
Esempio di sintassi:
blog.example.com. 1800 IN CNAME example.github.io.
Cosa verificare in audit (Regola aurea RFC 1912 & Takeover):
- Violazione CNAME Apex: Se per un nome esiste un record CNAME, non può coesistere nessun altro record con lo stesso nome. Pertanto, è vietato inserire un CNAME sulla radice della zona (es. su
example.com.), poiché sulla radice devono obbligatoriamente coesistere i record SOA e NS. - Dangling CNAME: Se il servizio cloud di destinazione (es. AWS S3, Heroku, Azure, GitHub Pages) viene disattivato ma il record CNAME rimane attivo nel DNS, un attaccante può registrare quell'identificativo sul provider cloud e impersonare legittimamente il sottodominio aziendale (Subdomain Takeover).
A che serve: Indica quali server DNS sono autoritativi per la gestione della zona, ovvero quali macchine custodiscono il database originale dei record e rispondono con autorità ai client.
Esempio di sintassi:
example.com. 86400 IN NS ns1.dnsprovider.net.
example.com. 86400 IN NS ns2.dnsprovider.net.
Cosa verificare in audit:
- Ridondanza minima: Devono esistere almeno due server autoritativi indipendenti.
- Diversificazione di rete: Devono trovarsi su prefissi di routing (/24 IPv4) e Autonomous System (AS) differenti per resistere a incidenti infrastrutturali o blackout di connettività.
- Lame Delegation: Verificare che i server indicati nei record NS rispondano effettivamente come autoritativi per quella zona (flag
AAattivo), altrimenti le query andranno incontro a ritardi o fallimenti casuali.
A che serve: Rappresenta il primo record assoluto di qualsiasi file di zona autoritativo. Fornisce l'identificatore del server primario, l'indirizzo email del responsabile tecnico e i parametri temporali di replicazione tra Primary e Secondary DNS.
Esempio di sintassi:
example.com. 86400 IN SOA ns1.example.com. admin.example.com. (
2026091901 ; Serial (formato YYYYMMDDnn)
7200 ; Refresh (intervallo controllo modifiche)
3600 ; Retry (tentativo in caso di errore)
1209600 ; Expire (tempo limite di validità dati secondari)
300 ; Minimum TTL (Negative Caching TTL)
)
@) dell'indirizzo email dell'amministratore viene sostituita da un punto. Dunque admin.example.com. corrisponde alla casella admin@example.com.
Cosa verificare in audit:
- Serial Number: Deve seguire una convenzione coerente (consigliato
AAAAMMGGnn) e incrementarsi a ogni modifica; in caso contrario, i server secondari non sincronizzeranno mai gli aggiornamenti di zona. - Negative Cache TTL (Minimum): Stabilisce per quanti secondi i resolver intermedi memorizzano l'errore NXDOMAIN (dominio/host inesistente). Valori troppo elevati prolungano il disservizio durante la creazione di nuovi host.
A che serve: Definisce i mail server SMTP preposti alla ricezione dei messaggi indirizzati agli utenti del dominio (es. per recapitare posta a user@example.com).
Esempio di sintassi:
example.com. 3600 IN MX 10 aspmx.l.google.com.
example.com. 3600 IN MX 20 alt1.aspmx.l.google.com.
Cosa verificare in audit:
- Priorità metrica: Il numero intero che precede l'hostname indica la priorità (valore numerico più basso = priorità più alta). I mail server mittenti tenteranno sempre di contattare prima la priorità 10, passando a 20 solo in caso di irraggiungibilità.
- Target FQDN: Il record MX deve puntare esclusivamente a un record A o AAAA. Puntare un MX a un record CNAME viola esplicitamente la RFC 2181 e causa il rigetto o il loop delle email da parte dei Relay SMTP conformi.
A che serve: Inizialmente concepito per associare commenti leggibili dall'uomo, è divenuto il canale d'elezione per inserire metadati crittografici, token di proprietà del dominio e policy di sicurezza antispam per la posta elettronica.
Sottotipi fondamentali da esaminare in un audit:
- SPF (Sender Policy Framework): Pubblicato sul dominio radice, esprime quali host o indirizzi IP hanno facoltà di emettere posta.
example.com. 3600 IN TXT "v=spf1 ip4:198.51.100.10 include:_spf.google.com -all" - DKIM (DomainKeys Identified Mail): Pubblicato su un sottodominio selettore (
selettore._domainkey.dominio.tld), espone la chiave crittografica pubblica per validare le firme digitali apposte alle email.google._domainkey.example.com. 3600 IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQE..." - DMARC: Pubblicato su
_dmarc.dominio.tld, definisce la policy di enforcement (rigetto o quarantena) applicata dai server terzi se SPF o DKIM falliscono._dmarc.example.com. 3600 IN TXT "v=DMARC1; p=reject; rua=mailto:reports@example.com"
v=spf1 per lo stesso dominio. Se ne vengono rilevati due, i server mittenti interpretano la configurazione come errore permanente (PermError), disattivando di fatto la protezione.
A che serve: Esegue la risoluzione inversa, convertendo un indirizzo IP numerico nel rispettivo nome di dominio. Risiede nelle zone speciali in-addr.arpa (per IPv4) e ip6.arpa (per IPv6), dove l'indirizzo IP viene scritto a blocchi ottetto invertiti.
Esempio di sintassi:
# Per l'IP 198.51.100.25:
25.100.51.198.in-addr.arpa. 3600 IN PTR mail.example.com.
Cosa verificare in audit (FCrDNS - Forward-Confirmed reverse DNS):
- I server SMTP che inviano email nel mondo devono possedere un record PTR valido che corrisponda al nome con cui si presentano nel comando
EHLO/HELO. - L'host indicato nel record PTR deve a sua volta risolvere (tramite record A) verso lo stesso identico IP di partenza. In assenza di corrispondenza bidirezionale, i maggiori provider (Gmail, Outlook, Yahoo) bocciano la connessione SMTP.
A che serve: Definito nella RFC 6844, specifica quali Certification Authority (CA) sono autorizzate a emettere certificati TLS/SSL per conto del dominio.
Esempio di sintassi:
example.com. 3600 IN CAA 0 issue "letsencrypt.org"
example.com. 3600 IN CAA 0 iodef "mailto:security@example.com"
Cosa verificare in audit:
- In assenza di record CAA, qualsiasi CA riconosciuta a livello globale può rilasciare certificati validi per il dominio.
- La presenza del tag
issuedelimita espressamente le sole CA fidate, mentre il tagiodefnotifica gli amministratori in caso di richieste di certificazione fraudolente o anomale.
A che serve: Definisce porta di ascolto, protocollo di trasporto e peso relativo di uno specifico servizio applicativo di rete (es. VoIP SIP, XMPP, Microsoft Active Directory / LDAP).
Esempio di sintassi:
# _servizio._protocollo.dominio. TTL IN SRV [Priority] [Weight] [Port] [Target]
_sip._tcp.example.com. 3600 IN SRV 10 60 5060 sipserver.example.com.
Cosa verificare in audit:
- Garantire che le porte indicate corrispondano a servizi effettivamente attivi e sicuri.
- Verificare che il Target finale sia un FQDN canonico (Record A/AAAA) e mai un CNAME.
Come Eseguire l'Interrogazione: Confronto Dig Web vs CLI
Tag: Strumenti Operativi | Tag: Metodologia di Risoluzione
Per ispezionare questi record possiamo ricorrere a due ambienti complementari: la suite web Google Admin Toolbox Dig e l'utility shell standard dig (Domain Information Groper).
Disponibile all'indirizzo: https://toolbox.googleapps.com/apps/dig/
Vantaggi didattici e operativi:
- Assenza di bias locali: Interroga direttamente i resolver mondiali
8.8.8.8e8.8.4.4, neutralizzando server proxy scolastici, blocchi firewall o cache DNS dell'OS locale. - Filtri immediati con un clic: Dispone di pulsanti preconfigurati per ciascun tipo di record:
ANY,A,AAAA,CNAME,MX,NS,PTR,SOA,SRV,TXT,CAA. - Trasparenza del raw output: Restituisce il payload originario completo generato da BIND/Unbound, comprensivo di Header Flags, Question Section, Answer Section e Authority Section.
Di seguito una matrice rapida di corrispondenza tra l'uso dei filtri nell'interfaccia web e i comandi CLI equivalenti da shell:
| Obiettivo Audit | Interfaccia Google Dig Web | Comando da Terminale (Linux/macOS) |
|---|---|---|
| Mappare Name Server | Nome dominio + pulsante NS | dig @8.8.8.8 example.com NS +noall +answer |
| Audit Mail Server | Nome dominio + pulsante MX | dig @8.8.8.8 example.com MX +noall +answer |
| Ispezione SPF del dominio | Nome dominio + pulsante TXT | dig @8.8.8.8 example.com TXT +short |
| Ispezione Record DMARC | _dmarc.example.com + pulsante TXT |
dig @8.8.8.8 _dmarc.example.com TXT +short |
| Verifica Autorizzazioni CA | Nome dominio + pulsante CAA | dig @8.8.8.8 example.com CAA +noall +answer |
| Controllo Reverse DNS (PTR) | 25.100.51.198.in-addr.arpa + PTR |
dig @8.8.8.8 -x 198.51.100.25 +short |
| Ispezione Parametri SOA | Nome dominio + pulsante SOA | dig @8.8.8.8 example.com SOA +noall +answer |
Checklist Operativa per un Audit DNS Completo
Tag: Procedura Guidata | Tag: Laboratorio Audit
Durante il laboratorio pratico, ogni studente deve condurre l'audit sul dominio assegnato seguendo rigorosamente questa sequenza logica di 6 fasi:
-
Fase 1: Ispezione SOA e NS (Infrastruttura di base)
Verificare la presenza di almeno due NS ridondati. Controllare nel SOA che il serial sia aggiornato e che il timer di expire sia superiore a 7 giorni (604800s). -
Fase 2: Analisi Risoluzione Host (A e AAAA)
Verificare l'esistenza sia del record per la radice (apex/naked domain) che per il sottodominio comunewww. Verificare che l'IP non appartenga a classi RFC 1918. -
Fase 3: Ispezione MX (Flusso Posta)
Controllare i pesi di priorità. Assicurarsi che ogni record MX punti a un record A valido e mai a un CNAME. -
Fase 4: Bonifica CNAME (Prevenzione Subdomain Takeover)
Cercare sottodomini che puntano a servizi terzi dismessi. Se un CNAME versoazienda.s3.amazonaws.comrestituisce errore HTTP 404 (NoSuchBucket), il record è orfano e va eliminato immediatamente. -
Fase 5: Sicurezza Email (SPF, DKIM, DMARC)
Verificare che esista un unico record SPF terminante con~allo-all. Interrogare_dmarc.dominioper verificare la presenza di una policy di scarto (p=rejectop=quarantine). -
Fase 6: Policy di Certificazione (CAA)
Verificare se sono definiti record CAA che impediscono l'emissione non autorizzata di certificati digitali da parte di CA compromesse.
flags nell'header di risposta:
- qr: Query Response (la risposta è arrivata).
- aa: Authoritative Answer (il server interrogato è il detentore primario della zona).
- ra: Recursion Available (il server interrogato supporta ed esegue la ricorsione).
- I Resource Record (RR) sono le unità fondamentali di informazione del DNS, strutturate in 5 campi (Name, TTL, Class, Type, RDATA).
- I record A e AAAA associano i nomi agli IP; i CNAME creano alias, ma non possono mai trovarsi sull'apex del dominio né rimanere orfani.
- Il record SOA stabilisce l'autorità e i timer di sincronizzazione, mentre i record NS garantiscono la ridondanza autoritativa di zona.
- I record MX governano l'instradamento della posta mediante valori numerici di priorità e devono puntare solo a record A.
- I record TXT sono il fulcro della sicurezza email moderna: ospitano le dichiarazioni autorizzative di SPF, le chiavi pubbliche DKIM e le regole DMARC.
- I record PTR consentono la risoluzione inversa (indispensabile per il protocollo SMTP), mentre i record CAA restringono le Certification Authority autorizzate a emettere certificati TLS.
- Google Admin Toolbox Dig fornisce un banco di prova ideale, neutrale e indipendente dalla cache per verificare tutti i record di zona.
- A identificare il ruolo, i vincoli RFC e la sintassi di tutti i principali record DNS (A, AAAA, CNAME, NS, SOA, MX, TXT, PTR, CAA, SRV).
- A condurre un'indagine sistematica tramite interfaccia web su Google Admin Toolbox Dig e riga di comando shell.
- A riconoscere le vulnerabilità di sicurezza correlate a record DNS mal configurati (Subdomain Takeover, SPF PermError, assenza di FCrDNS).
- A redigere un report di conformità strutturato per l'infrastruttura DNS di un dominio internet.
Parole chiave
I termini principali introdotti in questa guida sono: