Che cos'è un attacco flood DNS?
Un flood DNS è un attacco Distributed Denial of Service (DDoS) che sovraccarica l'infrastruttura DNS inviando enormi volumi di query DNS ai server DNS, inclusi nameserver autorevoli e risolutori ricorsivi. L'obiettivo è esaurire le risorse dei server, rendere indisponibile il servizio DNS e impedire agli utenti legittimi di risolvere i nomi di dominio.
Impatto degli attacchi flood DNS
Quando i server DNS sono sovraccarichi:
Normal operation:
User → DNS query → DNS server → Response → Website loads
During DNS flood:
User → DNS query → DNS server (overwhelmed, no response)
→ Website doesn't load (even though web server is fine)
Effetti:
- I siti web diventano irraggiungibili, anche se i server web sono operativi.
- La consegna delle e-mail fallisce perché le ricerche dei record MX non riescono.
- API e servizi che dipendono dal DNS diventano indisponibili.
- Si producono danni collaterali all'infrastruttura DNS condivisa.
Tipi di attacco flood DNS
Flood diretto di query DNS
L'attaccante invia query DNS legittime a volume elevato:
Botnet → Millions of DNS queries → Target DNS server
Query examples:
example.com A
www.example.com A
random1.example.com A
random2.example.com A
...millions more...
Caratteristiche:
- Query DNS valide, quindi difficili da filtrare.
- Spesso riguardano sottodomini casuali per aggirare la cache.
- Usano botnet per distribuire l'attacco.
Attacco di amplificazione DNS
Sfrutta i risolutori ricorsivi per amplificare il traffico dell'attacco:
1. Attacker sends small query to open resolver
2. Spoofs source IP as victim's IP
3. Resolver sends large response to victim
4. Attacker amplifies bandwidth 28-54x
Esempio:
Attacker sends: 60-byte query for TXT record (ANY query)
Resolver sends: 3000-byte response to victim
Amplification: 50x
Flood NXDOMAIN
Invia query per domini inesistenti così da aggirare la cache:
Query: random-12345.example.com (doesn't exist)
Server must check authoritative zone every time
Cannot be cached (NXDOMAIN responses often have low TTL)
Consumes more server resources than cached responses
Attacco a domini fantasma
Interroga domini legittimi che non rispondono:
Attacker: Queries resolver for slow/non-responsive domains
Resolver: Waits for timeout, consumes resources
Result: Resolver resource exhaustion
Attacco a sottodomini casuali
Interroga sottodomini casuali per evitare i riscontri della cache:
Query: abc123random.example.com
Query: xyz789random.example.com
Query: def456random.example.com
Each is unique → cache miss → authoritative query
Overwhelms authoritative nameservers
Vettori e tecniche d'attacco
Attacchi guidati da botnet
Compromised devices:
- IoT devices (cameras, routers)
- Infected computers
- Hacked servers
Distributed attack:
10,000 bots × 100 queries/sec = 1 million queries/sec
Attacchi di riflessione
Attacker spoofs victim's IP
Sends queries to many open resolvers
Resolvers respond to victim with large answers
Victim receives amplified traffic
Flood a livello applicativo
Legitimate-looking queries
Difficult to distinguish from real traffic
May target specific resource-intensive query types
Rilevare gli attacchi flood DNS
Volume insolito di query
Normal baseline: 10,000 queries/second
During attack: 500,000+ queries/second
Monitoraggio:
# Check query rate (BIND)
rndc status | grep "queries resulted"
# Analyze query logs
tail -f /var/log/named/queries.log | wc -l
Tasso elevato di NXDOMAIN
Normal: 5-10% NXDOMAIN responses
Attack: 50-90% NXDOMAIN responses (random subdomain flood)
Distribuzione degli IP sorgente
Legitimate: Diverse source IPs, geographic spread
Attack: Concentrated sources, unusual geographic patterns
Pattern delle query
Legitimate: Repetitive queries (common domains cached)
Attack: Unique queries (random strings, no cache benefit)
Degrado dei tempi di risposta
Normal: < 50ms response time
Under attack: > 1000ms or timeouts
Mitigare gli attacchi flood DNS
Difese a livello di infrastruttura
#### DNS anycast
Distribuisce il traffico in più sedi geografiche:
Single IP address (e.g., 1.2.3.4) announced from multiple locations
Attack traffic automatically routed to nearest server
Load distributed across global network
Harder to overwhelm all locations simultaneously
Vantaggi:
- Distribuzione automatica del carico.
- Resilienza geografica.
- Assorbimento del traffico dell'attacco.
#### Infrastruttura DNS sovradimensionata
Capacity: 10x normal peak traffic
Reserves: Handle sudden spikes
Auto-scaling: Add capacity during attacks
#### Limitazione della frequenza
# BIND rate limiting (response-rate limiting)
rate-limit {
responses-per-second 10;
window 5;
slip 2;
};
Limita le risposte dalla stessa origine per prevenire gli attacchi di amplificazione.
#### Filtraggio delle query
# Block ANY queries (common in amplification)
# Block excessively long queries
# Block known-malicious patterns
Esempio BIND:
# Block ANY queries
match-query {
type ANY;
action drop;
};
Difese a livello di provider DNS
#### DNSSEC
DNSSEC non previene direttamente i flood, ma:
- Previene l'avvelenamento della cache durante gli attacchi.
- Mantiene l'integrità in condizioni di attacco.
#### Configurazione del master nascosto
Master server (hidden): 10.0.0.1 (not publicly known)
Slave servers (public): ns1.example.com, ns2.example.com
Attackers target slaves
Master remains operational
Can quickly update slaves if needed
#### DNS Firewall / IDS
Analyze queries in real-time
Block suspicious patterns
Whitelist known-good clients
Blacklist attack sources
Protezioni a livello applicativo
#### Limitazione della frequenza delle risposte (RRL)
Limit identical responses to same client
Prevents amplification attacks
Slip mode: Occasionally allow queries through (to not break legitimate recursive resolvers)
Configurazione BIND:
options {
rate-limit {
responses-per-second 5;
referrals-per-second 5;
nodata-per-second 5;
nxdomains-per-second 5;
errors-per-second 5;
window 5;
};
};
#### Ottimizzazione della cache
Increase cache size to absorb repeated queries
Longer TTLs where appropriate (trade-off with agility)
Prefetch popular records
#### Filtraggio delle query
# Drop queries for non-existent zones
# Block queries from known-bad sources
# Rate-limit per-source queries
Difese a livello di rete
#### BGP blackholing
Route attack traffic to null0
Sacrifice availability to preserve infrastructure
Last resort when attack overwhelms capacity
#### Filtraggio da parte dell'ISP upstream
Coordinate with ISP to filter attack traffic
Source IP validation (prevent spoofing)
Traffic scrubbing centers
#### Servizi di mitigazione DDoS
Cloudflare, Akamai, AWS Shield
Absorb attack traffic before reaching your servers
Global capacity to withstand large attacks
Buone pratiche per la resilienza DNS
Usa più provider DNS
Primary provider: Cloudflare
Secondary provider: AWS Route 53
If one is attacked/down, other continues serving
Different infrastructure reduces single point of failure
Implementa DNSSEC
Protects against DNS spoofing/cache poisoning
Maintains integrity during attacks
Build trust even under attack conditions
Monitora le prestazioni DNS
Real-time query rates
Response times
NXDOMAIN percentages
Geographic distribution of queries
Error rates
Strumenti: Grafana + Prometheus, Datadog, AWS CloudWatch
Testa regolarmente la capacità
Load testing: Can infrastructure handle 10x traffic?
Failover testing: Do secondary providers activate correctly?
Attack simulation: Test mitigation strategies
Disattiva la ricorsione sui server autorevoli
# BIND
recursion no;
I nameserver autorevoli non dovrebbero agire come risolutori ricorsivi.
Limita i trasferimenti di zona
# BIND
allow-transfer { 10.0.0.2; 10.0.0.3; }; # Only specific slaves
Impedisce agli aggressori di scaricare l'intera zona.
Mantieni aggiornato il software
Regularly update DNS server software
Patch known vulnerabilities
Subscribe to security advisories
Rispondi a un attacco flood DNS attivo
Azioni immediate
1. Verifica che l'attacco sia in corso
# Check query rate
rndc status
# Check load
top
2. Abilita la limitazione della frequenza
# BIND: Enable RRL if not already active
rndc addzone rate-limit
3. Contatta il provider di mitigazione DDoS
- Attiva i servizi di scrubbing.
- Reindirizza il traffico attraverso la rete di mitigazione.
4. Analizza i pattern dell'attacco
# Top query types
grep "query" /var/log/named/queries.log | awk '{print $6}' | sort | uniq -c | sort -rn | head -20
# Top queried domains
grep "query" /var/log/named/queries.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -20
5. Blocca le fonti evidenti dell'attacco
# Identify top source IPs
grep "query" /var/log/named/queries.log | awk '{print $5}' | cut -d# -f1 | sort | uniq -c | sort -rn | head -50
# Block at firewall
iptables -A INPUT -s ATTACKER_IP -j DROP
Azioni a medio termine
1. Scala l'infrastruttura
- Aggiungi capacità ai nameserver.
- Distribuisci il servizio tramite anycast se non lo fai già.
2. Implementa filtri aggiuntivi
- Blocca i pattern di query specifici dell'attacco.
- Inserisci in whitelist le fonti note e affidabili.
3. Coordina le attività con i provider
- ISP o provider di hosting.
- Provider DNS.
- Servizio di mitigazione DDoS.
4. Documenta l'attacco
- Catture dei pacchetti.
- Log.
- Grafici del traffico.
- Elementi utili per l'analisi post-incidente e per eventuali esigenze legali.
Analisi post-attacco
1. Esamina l'efficacia delle misure di mitigazione.
2. Individua le debolezze dell'infrastruttura.
3. Aggiorna le procedure di risposta agli incidenti.
4. Valuta miglioramenti a lungo termine (DNS multi-provider, maggiore capacità).
Aspetti legali e segnalazioni
Segnala alle autorità
- FBI IC3 (U.S.): ic3.gov
- Unità locali contro la criminalità informatica
- Reparti abuso degli ISP
Raccolta delle prove
# Packet captures
tcpdump -i eth0 -w dns-attack.pcap port 53
# Full query logs
tar -czf attack-logs-$(date +%Y%m%d).tar.gz /var/log/named/
# Traffic graphs/screenshots
# System resource usage
Gli attacchi flood DNS sono una minaccia seria per i servizi online, ma infrastruttura adeguata, monitoraggio e strategie di mitigazione possono ridurne al minimo l'impatto.