Vad är en DNS-översvämningsattack?
En DNS-översvämning är en typ av distribuerad överbelastningsattack (DDoS) som överbelastar DNS-infrastruktur genom att skicka enorma mängder DNS-frågor till DNS-servrar, exempelvis auktoritativa namnservrar eller rekursiva resolvrar. Målet är att tömma serverresurserna, göra DNS-tjänsten otillgänglig och hindra legitima användare från att slå upp domännamn.
Konsekvenser av DNS-översvämningar
När DNS-servrar överbelastas:
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)
Effekter:
- Webbplatser blir oåtkomliga, även om webbservrarna fungerar
- E-postleveransen misslyckas när MX-poster inte kan slås upp
- API:er och tjänster som är beroende av DNS blir otillgängliga
- Delad DNS-infrastruktur kan drabbas indirekt
Typer av DNS-översvämningsattacker
Direkt översvämning av DNS-frågor
Angriparen skickar giltiga DNS-frågor i mycket hög takt:
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...
Kännetecken:
- Giltiga DNS-frågor som är svåra att filtrera
- Ofta frågor om slumpmässiga underdomäner för att kringgå cache
- Botnät används för den distribuerade attacken
DNS-förstärkningsattack
Utnyttjar rekursiva resolvrar för att förstärka attacktrafiken:
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
Exempel:
Attacker sends: 60-byte query for TXT record (ANY query)
Resolver sends: 3000-byte response to victim
Amplification: 50x
NXDOMAIN-översvämning
Frågar efter domäner som inte finns för att kringgå 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
Attack mot fantomdomäner
Frågar efter legitima domäner som inte svarar:
Attacker: Queries resolver for slow/non-responsive domains
Resolver: Waits for timeout, consumes resources
Result: Resolver resource exhaustion
Attack mot slumpmässiga underdomäner
Frågar efter slumpmässiga underdomäner för att undvika cacheträffar:
Query: abc123random.example.com
Query: xyz789random.example.com
Query: def456random.example.com
Each is unique → cache miss → authoritative query
Overwhelms authoritative nameservers
Angreppsvektorer och metoder
Botnätsdrivna attacker
Compromised devices:
- IoT devices (cameras, routers)
- Infected computers
- Hacked servers
Distributed attack:
10,000 bots × 100 queries/sec = 1 million queries/sec
Reflektionsattacker
Attacker spoofs victim's IP
Sends queries to many open resolvers
Resolvers respond to victim with large answers
Victim receives amplified traffic
Översvämningar på applikationslagret
Legitimate-looking queries
Difficult to distinguish from real traffic
May target specific resource-intensive query types
Upptäcka DNS-översvämningar
Ovanligt stor frågevolym
Normal baseline: 10,000 queries/second
During attack: 500,000+ queries/second
Övervaka:
# Check query rate (BIND)
rndc status | grep "queries resulted"
# Analyze query logs
tail -f /var/log/named/queries.log | wc -l
Hög andel NXDOMAIN
Normal: 5-10% NXDOMAIN responses
Attack: 50-90% NXDOMAIN responses (random subdomain flood)
Fördelning av käll-IP
Legitimate: Diverse source IPs, geographic spread
Attack: Concentrated sources, unusual geographic patterns
Frågemönster
Legitimate: Repetitive queries (common domains cached)
Attack: Unique queries (random strings, no cache benefit)
Försämrad svarstid
Normal: < 50ms response time
Under attack: > 1000ms or timeouts
Begränsa DNS-översvämningar
Försvar på infrastrukturnivå
#### Anycast-DNS
Distribuera trafiken mellan flera geografiska platser:
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
Fördelar:
- Automatisk lastfördelning
- Geografisk motståndskraft
- Angreppstrafik kan absorberas
#### Överdimensionerad DNS-infrastruktur
Capacity: 10x normal peak traffic
Reserves: Handle sudden spikes
Auto-scaling: Add capacity during attacks
#### Hastighetsbegränsning
# BIND rate limiting (response-rate limiting)
rate-limit {
responses-per-second 10;
window 5;
slip 2;
};
Begränsar svar från samma källa för att förhindra förstärkningsattacker.
#### Filtrering av DNS-frågor
# Block ANY queries (common in amplification)
# Block excessively long queries
# Block known-malicious patterns
BIND-exempel:
# Block ANY queries
match-query {
type ANY;
action drop;
};
Försvar på DNS-leverantörsnivå
#### DNSSEC
DNSSEC förhindrar inte översvämningar direkt, men:
- Förhindrar cacheförgiftning under attacker
- Bevarar integriteten när infrastrukturen angrips
#### Konfiguration med dold master
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-brandvägg eller IDS
Analyze queries in real-time
Block suspicious patterns
Whitelist known-good clients
Blacklist attack sources
Skydd på applikationsnivå
#### Begränsning av svarsfrekvens (RRL)
Limit identical responses to same client
Prevents amplification attacks
Slip mode: Occasionally allow queries through (to not break legitimate recursive resolvers)
BIND-konfiguration:
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;
};
};
#### Cacheoptimering
Increase cache size to absorb repeated queries
Longer TTLs where appropriate (trade-off with agility)
Prefetch popular records
#### Filtrering av DNS-frågor
# Drop queries for non-existent zones
# Block queries from known-bad sources
# Rate-limit per-source queries
Försvar på nätverksnivå
#### BGP-blackholing
Route attack traffic to null0
Sacrifice availability to preserve infrastructure
Last resort when attack overwhelms capacity
#### Filtrering hos internetleverantören
Coordinate with ISP to filter attack traffic
Source IP validation (prevent spoofing)
Traffic scrubbing centers
#### Tjänster för DDoS-skydd
Cloudflare, Akamai, AWS Shield
Absorb attack traffic before reaching your servers
Global capacity to withstand large attacks
Bästa praxis för motståndskraftig DNS
Använd flera DNS-leverantörer
Primary provider: Cloudflare
Secondary provider: AWS Route 53
If one is attacked/down, other continues serving
Different infrastructure reduces single point of failure
Implementera DNSSEC
Protects against DNS spoofing/cache poisoning
Maintains integrity during attacks
Build trust even under attack conditions
Övervaka DNS-prestanda
Real-time query rates
Response times
NXDOMAIN percentages
Geographic distribution of queries
Error rates
Verktyg: Grafana + Prometheus, Datadog, AWS CloudWatch
Testa kapaciteten regelbundet
Load testing: Can infrastructure handle 10x traffic?
Failover testing: Do secondary providers activate correctly?
Attack simulation: Test mitigation strategies
Stäng av rekursion på auktoritativa servrar
# BIND
recursion no;
Auktoritativa namnservrar bör inte fungera som rekursiva resolvrar.
Begränsa zonöverföringar
# BIND
allow-transfer { 10.0.0.2; 10.0.0.3; }; # Only specific slaves
Förhindra att angripare dumpar hela zonen.
Håll programvaran uppdaterad
Regularly update DNS server software
Patch known vulnerabilities
Subscribe to security advisories
Hantera en pågående DNS-översvämning
Omedelbara åtgärder
1. Bekräfta att en attack pågår
# Check query rate
rndc status
# Check load
top
2. Aktivera hastighetsbegränsning
# BIND: Enable RRL if not already active
rndc addzone rate-limit
3. Kontakta leverantören av DDoS-skydd
- Aktivera tjänster för trafikfiltrering
- Omdirigera trafiken genom skyddsnätet
4. Analysera angreppsmönstren
# 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. Blockera uppenbara angriparkällor
# 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
Åtgärder på medellång sikt
1. Skala infrastrukturen
- Lägg till mer namnserverkapacitet
- Distribuera med anycast om det inte redan används
2. Inför ytterligare filtrering
- Blockera frågemönster som är specifika för attacken
- Tillåt kända och betrodda källor
3. Samordna med leverantörer
- Internetleverantör eller webbhotell
- DNS-leverantör
- Tjänst för DDoS-skydd
4. Dokumentera attacken
- Paketfångster
- Loggar
- Trafikdiagram
- För analys efter incidenten och juridiska ändamål
Analys efter attacken
1. Granska hur effektiva motåtgärderna var
2. Identifiera svagheter i infrastrukturen
3. Uppdatera rutinerna för incidenthantering
4. Överväg långsiktiga förbättringar, exempelvis DNS från flera leverantörer och större kapacitet
Juridik och rapportering
Rapportera till myndigheter
- FBI IC3 i USA: ic3.gov
- Lokala enheter för cyberbrott
- Internetleverantörers abuse-avdelningar
Samla in bevis
# 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
DNS-översvämningar är ett allvarligt hot mot onlinetjänster, men med rätt infrastruktur, övervakning och motåtgärder kan deras påverkan minimeras.