Wat is een DNS-floodaanval?
Een DNS overstroming is een soort Distributed Denial of Service (DDoS) aanval die DNS infrastructuur overweldigt door het verzenden van enorme volumes DNS queries naar DNS servers (authoritatieve nameservers of recursieve resolvers). Het doel is om serverbronnen uit te putten, waardoor de DNS-service niet beschikbaar is en legitieme gebruikers ervan worden weerhouden domeinnamen op te lossen.
Effecten van DNS-floodaanvallen
Wanneer DNS-servers overweldigd zijn:
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)
Effecten:
- Websites worden onbereikbaar (zelfs als webservers operationeel zijn)
- E-mail levering mislukt (MX record opzoeken mislukt)
- API's en diensten die vertrouwen op DNS worden niet beschikbaar
- Bijkomende schade aan gedeelde DNS-infrastructuur
Soorten DNS-aanvallen
Directe DNS-zoekopdracht
Aanvaller stuurt legitieme DNS-queries op hoog volume:
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...
Kenmerken:
- Geldige DNS-queries (moeilijk te filteren)
- Vaak voor willekeurige subdomeinen (bypass caching)
- Gebruikt botnets voor gedistribueerde aanval
DNS-versterkeraanval
Exploiteert recursieve resolvers om aanvalsverkeer te versterken:
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
Voorbeeld:
Attacker sends: 60-byte query for TXT record (ANY query)
Resolver sends: 3000-byte response to victim
Amplification: 50x
NXDOMAIN-flood
Vragen voor niet bestaande domeinen om caching te omzeilen:
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
Phantom-domeinaanval
Vragen legitieme domeinen die niet reageren:
Attacker: Queries resolver for slow/non-responsive domains
Resolver: Waits for timeout, consumes resources
Result: Resolver resource exhaustion
Willekeurige subdomeinaanval
Zoekt willekeurige subdomeinen om cache hits te voorkomen:
Query: abc123random.example.com
Query: xyz789random.example.com
Query: def456random.example.com
Each is unique → cache miss → authoritative query
Overwhelms authoritative nameservers
Aanvalsvectoren en technieken
Door botnets aangestuurde aanvallen
Compromised devices:
- IoT devices (cameras, routers)
- Infected computers
- Hacked servers
Distributed attack:
10,000 bots × 100 queries/sec = 1 million queries/sec
Reflectieaanvallen
Attacker spoofs victim's IP
Sends queries to many open resolvers
Resolvers respond to victim with large answers
Victim receives amplified traffic
Overstromingen op de applicatielaag
Legitimate-looking queries
Difficult to distinguish from real traffic
May target specific resource-intensive query types
DNS-floodaanvallen detecteren
Ongebruikelijk queryvolume
Normal baseline: 10,000 queries/second
During attack: 500,000+ queries/second
Monitor:
# Check query rate (BIND)
rndc status | grep "queries resulted"
# Analyze query logs
tail -f /var/log/named/queries.log | wc -l
Hoog NXDOMAIN-percentage
Normal: 5-10% NXDOMAIN responses
Attack: 50-90% NXDOMAIN responses (random subdomain flood)
Verdeling van bron-IP's
Legitimate: Diverse source IPs, geographic spread
Attack: Concentrated sources, unusual geographic patterns
Querypatronen
Legitimate: Repetitive queries (common domains cached)
Attack: Unique queries (random strings, no cache benefit)
Verslechtering van responstijd
Normal: < 50ms response time
Under attack: > 1000ms or timeouts
DNS-floodaanvallen beperken
Bescherming van de infrastructuur
#### Anycast DNS
Verdeel het verkeer over meerdere geografische locaties:
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
Voordelen:
- Automatische belastingsverdeling
- Geografische veerkracht
- Aanval verkeer absorptie
#### Omvangrijke DNS-infrastructuur
Capacity: 10x normal peak traffic
Reserves: Handle sudden spikes
Auto-scaling: Add capacity during attacks
#### Snelheidsbeperking
# BIND rate limiting (response-rate limiting)
rate-limit {
responses-per-second 10;
window 5;
slip 2;
};
Beperkt de reacties van dezelfde bron om versterkingsaanvallen te voorkomen.
#### Queryfiltering
# Block ANY queries (common in amplification)
# Block excessively long queries
# Block known-malicious patterns
BIND Voorbeeld:
# Block ANY queries
match-query {
type ANY;
action drop;
};
Verdediging op DNS-providerniveau
#### DNSSEC
DNSSEC:
- Voorkomt cache vergiftiging tijdens aanvallen
- Behoud integriteit onder aanvalsomstandigheden
#### Verborgen masterconfiguratie
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
Bescherming op aanvraagniveau
#### Response Rate Limiting (RRL)
Limit identical responses to same client
Prevents amplification attacks
Slip mode: Occasionally allow queries through (to not break legitimate recursive resolvers)
BIND-configuratie:
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;
};
};
#### Cacheoptimalisatie
Increase cache size to absorb repeated queries
Longer TTLs where appropriate (trade-off with agility)
Prefetch popular records
#### Queryfiltering
# Drop queries for non-existent zones
# Block queries from known-bad sources
# Rate-limit per-source queries
Netwerkbescherming
#### BGP-blackholing
Route attack traffic to null0
Sacrifice availability to preserve infrastructure
Last resort when attack overwhelms capacity
#### Filtering door upstream-ISP
Coordinate with ISP to filter attack traffic
Source IP validation (prevent spoofing)
Traffic scrubbing centers
#### DDoS-beperkingsdiensten
Cloudflare, Akamai, AWS Shield
Absorb attack traffic before reaching your servers
Global capacity to withstand large attacks
Beste praktijken voor DNS-veerkracht
Meerdere DNS-providers gebruiken
Primary provider: Cloudflare
Secondary provider: AWS Route 53
If one is attacked/down, other continues serving
Different infrastructure reduces single point of failure
DNSSEC implementeren
Protects against DNS spoofing/cache poisoning
Maintains integrity during attacks
Build trust even under attack conditions
DNS-prestaties monitoren
Real-time query rates
Response times
NXDOMAIN percentages
Geographic distribution of queries
Error rates
Tools: Grafana + Prometheus, Datadog, AWS CloudWatch
Capaciteit regelmatig testen
Load testing: Can infrastructure handle 10x traffic?
Failover testing: Do secondary providers activate correctly?
Attack simulation: Test mitigation strategies
Recursie op autoritatieve servers uitschakelen
# BIND
recursion no;
Auteurlijke nameservers moeten niet fungeren als recursieve resolvers.
Zoneoverdrachten beperken
# BIND
allow-transfer { 10.0.0.2; 10.0.0.3; }; # Only specific slaves
Voorkom dat aanvallers de hele zone dumpen.
Software up-to-date houden
Regularly update DNS server software
Patch known vulnerabilities
Subscribe to security advisories
Reageren op een actieve DNS-floodaanval
Onmiddellijke acties
1. Verify aanval treedt op
# Check query rate
rndc status
# Check load
top
2. Beperking van de snelheid inschakelen
# BIND: Enable RRL if not already active
rndc addzone rate-limit
3. Contact DDoS mitigatieprovider
- Schrobben activeren
- Redirect verkeer door mitigatienetwerk
4. * * Analyseer aanvalspatronen * *
# 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. Block voor de hand liggende aanvalsbronnen
# 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
Acties op middellange termijn
1. Schaalinfrastructuur
- Voeg meer naamservercapaciteit toe
- Verdeel via anycast indien niet reeds
2. Extra filtering implementeren
- Blokkeer query patronen specifiek voor aanval
- Whitelist known-good bronnen
3. Coördineren met aanbieders
- ISP/hostingprovider
- DNS provider
- DDoS mitigatiedienst
4. Document aanval
- Pakketvangsten
- Logs
- Verkeersgrafieken
- Voor analyse achteraf en juridische doeleinden
Post-aanvalsanalyse
1. Review doeltreffendheid van mitigatiemaatregelen
2. Identificeer zwakke infrastructuur
3. Bijgewerkte procedures voor incidentrespons
4. Beschouw verbeteringen op lange termijn (multi-provider DNS, grotere capaciteit)
Juridische zaken en rapportage
Rapporteren aan autoriteiten
- FBI IC3 (V.S.): ic3.gov
- Lokale cybercriminaliteit eenheden
- ISP misbruik afdelingen
Bewijs verzamelen
# 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 overstromingsaanvallen zijn een ernstige bedreiging voor online diensten, maar met de juiste infrastructuur, monitoring en mitigatie strategieën, hun impact kan worden geminimaliseerd.