DNS flood saldırısı nedir?
DNS flood, yetkili ad sunucularına veya recursive resolver'lara aşırı sayıda DNS sorgusu göndererek DNS altyapısını kaynak bakımından tüketen bir DDoS saldırısıdır. Amaç DNS hizmetini kullanılamaz hale getirmek, böylece meşru kullanıcıların alan adlarını çözememesini sağlamaktır.
DNS flood saldırılarının etkisi
Sunucular aşırı yük altında kaldığında web sunucusu çalışıyor olsa bile kullanıcılar alan adını çözemediği için siteye ulaşamaz:
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)
MX aramaları başarısız olabilir, e-posta teslimi durabilir, DNS'e bağımlı API'ler erişilemez hale gelebilir ve ortak DNS altyapısındaki diğer alan adları da etkilenebilir.
DNS flood saldırısı türleri
Doğrudan DNS sorgu flood'u
Botnet yüksek hacimde geçerli görünen sorgular gönderir:
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...
Geçerli sorguları filtrelemek zordur; rastgele alt alan adları önbelleği devre dışı bırakır.
DNS amplification saldırısı
Açık recursive resolver'lar, küçük istekleri büyük yanıtlarla kurbana yönlendirmek için kötüye kullanılır:
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
Örnek trafik oranı:
Attacker sends: 60-byte query for TXT record (ANY query)
Resolver sends: 3000-byte response to victim
Amplification: 50x
NXDOMAIN flood'u
Önbelleğe alınamayacak var olmayan adlar sorgulanır:
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 domain saldırısı
Yanıt vermeyen alan adları sorgulanır ve resolver zaman aşımı bekler:
Attacker: Queries resolver for slow/non-responsive domains
Resolver: Waits for timeout, consumes resources
Result: Resolver resource exhaustion
Rastgele alt alan adı saldırısı
Her sorgu farklı olduğu için önbellek isabeti engellenir:
Query: abc123random.example.com
Query: xyz789random.example.com
Query: def456random.example.com
Each is unique → cache miss → authoritative query
Overwhelms authoritative nameservers
Saldırı vektörleri ve teknikleri
Botnet kaynaklı saldırılar
Ele geçirilmiş IoT cihazları, bilgisayarlar ve sunucular dağıtılmış trafik üretir:
Compromised devices:
- IoT devices (cameras, routers)
- Infected computers
- Hacked servers
Distributed attack:
10,000 bots × 100 queries/sec = 1 million queries/sec
Yansıtma saldırıları
Kaynak IP'si kurbanınki gibi sahte gösterilir ve açık resolver'lar büyük yanıtları kurbana gönderir:
Attacker spoofs victim's IP
Sends queries to many open resolvers
Resolvers respond to victim with large answers
Victim receives amplified traffic
Uygulama katmanı flood'ları
Sorgular gerçek trafiğe benzediğinden ayrıştırılmaları zor olabilir:
Legitimate-looking queries
Difficult to distinguish from real traffic
May target specific resource-intensive query types
DNS flood saldırılarını saptama
Olağandışı sorgu hacmi
Normal taban çizgisiyle anlık sorgu hacmini karşılaştırın:
Normal baseline: 10,000 queries/second
During attack: 500,000+ queries/second
Ölçüm için BIND durumunu ve günlükleri inceleyin:
# Check query rate (BIND)
rndc status | grep "queries resulted"
# Analyze query logs
tail -f /var/log/named/queries.log | wc -l
Yüksek NXDOMAIN oranı
Normal: 5-10% NXDOMAIN responses
Attack: 50-90% NXDOMAIN responses (random subdomain flood)
Kaynak IP dağılımı
Legitimate: Diverse source IPs, geographic spread
Attack: Concentrated sources, unusual geographic patterns
Sorgu kalıpları
Legitimate: Repetitive queries (common domains cached)
Attack: Unique queries (random strings, no cache benefit)
Yanıt süresinin bozulması
Normal: < 50ms response time
Under attack: > 1000ms or timeouts
DNS flood saldırılarını azaltma
Altyapı düzeyinde savunmalar
#### Anycast DNS
Anycast, kapasite yedekleri ve otomatik ölçekleme saldırı trafiğini dağıtır:
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
#### Oversized DNS Infrastructure
Kapasiteyi normal tepe trafiğinin çok üzerinde planlayın:
Capacity: 10x normal peak traffic
Reserves: Handle sudden spikes
Auto-scaling: Add capacity during attacks
#### Rate Limiting
RRL, açık resolver'ların kötüye kullanımını azaltır:
# BIND rate limiting (response-rate limiting)
rate-limit {
responses-per-second 10;
window 5;
slip 2;
};
#### Query Filtering
Şüpheli ve kaynak tüketen sorgu türlerini sınırlandırın:
# Block ANY queries (common in amplification)
# Block excessively long queries
# Block known-malicious patterns
ANY sorgularına örnek kural:
# Block ANY queries
match-query {
type ANY;
action drop;
};
DNS sağlayıcısı düzeyinde savunmalar
#### DNSSEC
DNSSEC, DNS yanıtlarının bütünlüğünü ve kaynağını doğrulayarak saldırı sırasında güvenilir çözümleme sağlar.
#### Hidden Master Configuration
Gizli bir master ve kamuya açık slave sunucuları ayırmak, saldırı sırasında yönetimi sürdürmeye yardımcı olur:
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
Gerçek zamanlı sorgu analiziyle şüpheli kalıpları engelleyin ve güvenilir istemcileri beyaz listeye alın:
Analyze queries in real-time
Block suspicious patterns
Whitelist known-good clients
Blacklist attack sources
Uygulama düzeyinde korumalar
#### Response Rate Limiting (RRL)
Yanıt oranını istemci bazında sınırlandırın:
Limit identical responses to same client
Prevents amplification attacks
Slip mode: Occasionally allow queries through (to not break legitimate recursive resolvers)
Resolver için örnek RRL ayarları:
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;
};
};
#### Cache Optimization
Önbelleği büyütmek ve uygun TTL değerleri kullanmak tekrar eden sorguları azaltır:
Increase cache size to absorb repeated queries
Longer TTLs where appropriate (trade-off with agility)
Prefetch popular records
#### Query Filtering
Var olmayan bölgeleri, kötü kaynakları ve aşırı sorgu hızlarını engelleyin:
# Drop queries for non-existent zones
# Block queries from known-bad sources
# Rate-limit per-source queries
Ağ düzeyinde savunmalar
#### BGP Blackholing
Son çare olarak saldırı trafiğini null0'a yönlendirin:
Route attack traffic to null0
Sacrifice availability to preserve infrastructure
Last resort when attack overwhelms capacity
#### Upstream ISP Filtering
ISP ile filtreleme ve trafik temizleme merkezlerini koordine edin:
Coordinate with ISP to filter attack traffic
Source IP validation (prevent spoofing)
Traffic scrubbing centers
#### DDoS Mitigation Services
Özel DDoS koruma hizmetleri saldırıyı sunuculara ulaşmadan emebilir:
Cloudflare, Akamai, AWS Shield
Absorb attack traffic before reaching your servers
Global capacity to withstand large attacks
DNS dayanıklılığı için en iyi uygulamalar
Birden çok DNS sağlayıcısı kullanın
Farklı altyapılar tek hata noktasını azaltır:
Primary provider: Cloudflare
Secondary provider: AWS Route 53
If one is attacked/down, other continues serving
Different infrastructure reduces single point of failure
DNSSEC uygulayın
DNSSEC, saldırı sırasında yanıt bütünlüğünü ve kaynak doğrulamasını korur:
Protects against DNS spoofing/cache poisoning
Maintains integrity during attacks
Build trust even under attack conditions
DNS performansını izleyin
Sorgu oranı, gecikme, NXDOMAIN ve hata oranlarını düzenli ölçün:
Real-time query rates
Response times
NXDOMAIN percentages
Geographic distribution of queries
Error rates
Düzenli kapasite testi yapın
Kapasite, devre dışı kalma ve savunma senaryolarını kontrollü olarak test edin:
Load testing: Can infrastructure handle 10x traffic?
Failover testing: Do secondary providers activate correctly?
Attack simulation: Test mitigation strategies
Yetkili sunucularda recursion'ı kapatın
# BIND
recursion no;
Zone transferlerini kısıtlayın
# BIND
allow-transfer { 10.0.0.2; 10.0.0.3; }; # Only specific slaves
Yazılımı güncel tutun
DNS yazılımını düzenli güncelleyin, bilinen zafiyetleri yamalayın ve güvenlik duyurularını takip edin:
Regularly update DNS server software
Patch known vulnerabilities
Subscribe to security advisories
Etkin DNS flood saldırısına yanıt verme
Acil eylemler
Sorgu hızını, sistem yükünü ve RRL durumunu hemen kontrol edin:
# Check query rate
rndc status
# Check load
top
# BIND: Enable RRL if not already active
rndc addzone rate-limit
# 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
# 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
Orta vadeli eylemler
RRL'yi etkinleştirin ve en sık kullanılan sorgu türlerini inceleyin:
Kaynak IP'lerini belirleyip gerekirse güvenlik duvarında engelleyin:
Saldırı sonrası analiz
Paket yakalamalarını, günlükleri ve trafik grafiklerini olay kaydıyla birlikte saklayın:
Hukuki bildirim ve raporlama
Yetkililere bildirin
Saldırının zamanını, kaynaklarını ve etkisini belgeleyerek barındırma sağlayıcısına, ISP'ye veya ilgili yetkililere bildirin.
Kanıtları toplayın
Günlükleri, paket yakalamalarını, sorgu ölçümlerini ve yapılandırma değişikliklerini değiştirilmeden saklayın. Bu kayıtlar hem müdahale hem de sonraki kapasite planlaması için gereklidir.
# 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