Atak powodzenia DNS

Bezpieczeństwo i zagrożenia
Atak odmowy usługi przeciążający infrastrukturę DNS nadmierną liczbą zapytań.
← Wróć do słownika

Czym jest atak DNS flood?

DNS flood to rodzaj rozproszonego ataku odmowy usługi (DDoS), który przeciąża infrastrukturę DNS przez wysyłanie ogromnej liczby zapytań DNS do serwerów DNS, takich jak autorytatywne serwery nazw lub resolvery rekursywne. Celem jest wyczerpanie zasobów serwera, wyłączenie usługi DNS i uniemożliwienie legalnym użytkownikom rozwiązywania nazw domen.

Skutki ataków DNS flood

Gdy serwery DNS zostaną przeciążone:

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)

Skutki:

Typy ataków DNS flood

Bezpośredni zalew zapytań DNS

Atakujący wysyła prawidłowe zapytania DNS na dużą skalę:

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...

Cechy:

Atak amplifikacyjny DNS

Wykorzystuje resolvery rekursywne do wzmocnienia ruchu ataku:

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

Przykład:
Attacker sends: 60-byte query for TXT record (ANY query)

Resolver sends: 3000-byte response to victim

Amplification: 50x

Zalew NXDOMAIN

Zapytania dotyczą nieistniejących domen, aby ominąć 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

Atak na domenę widmo

Zapytania dotyczą prawidłowych domen, które nie odpowiadają:

Attacker: Queries resolver for slow/non-responsive domains

Resolver: Waits for timeout, consumes resources

Result: Resolver resource exhaustion

Atak losowych subdomen

Zapytania dotyczą losowych subdomen, aby uniknąć trafień w cache:

Query: abc123random.example.com

Query: xyz789random.example.com

Query: def456random.example.com

Each is unique → cache miss → authoritative query

Overwhelms authoritative nameservers

Wektory i techniki ataku

Ataki z użyciem botnetu

Compromised devices:
  • IoT devices (cameras, routers)
  • Infected computers
  • Hacked servers

Distributed attack:

10,000 bots × 100 queries/sec = 1 million queries/sec

Ataki odbiciowe

Attacker spoofs victim's IP

Sends queries to many open resolvers

Resolvers respond to victim with large answers

Victim receives amplified traffic

Zalewy w warstwie aplikacji

Legitimate-looking queries

Difficult to distinguish from real traffic

May target specific resource-intensive query types

Wykrywanie ataków DNS flood

Nietypowa liczba zapytań

Normal baseline: 10,000 queries/second

During attack: 500,000+ queries/second

Monitoruj:
# Check query rate (BIND)

rndc status | grep "queries resulted"

# Analyze query logs

tail -f /var/log/named/queries.log | wc -l

Wysoki odsetek NXDOMAIN

Normal: 5-10% NXDOMAIN responses

Attack: 50-90% NXDOMAIN responses (random subdomain flood)

Rozkład źródłowych adresów IP

Legitimate: Diverse source IPs, geographic spread

Attack: Concentrated sources, unusual geographic patterns

Wzorce zapytań

Legitimate: Repetitive queries (common domains cached)

Attack: Unique queries (random strings, no cache benefit)

Pogorszenie czasu odpowiedzi

Normal: < 50ms response time

Under attack: > 1000ms or timeouts

Ograniczanie ataków DNS flood

Obrona na poziomie infrastruktury

#### DNS Anycast

Rozkładaj ruch między wiele lokalizacji geograficznych:

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

Korzyści: Dostawcy: Cloudflare, AWS Route 53, NS1, Dyn

#### Rozbudowana infrastruktura DNS

Capacity: 10x normal peak traffic

Reserves: Handle sudden spikes

Auto-scaling: Add capacity during attacks

#### Ograniczanie tempa odpowiedzi

# BIND rate limiting (response-rate limiting)

rate-limit {

responses-per-second 10;

window 5;

slip 2;

};

Ogranicza liczbę odpowiedzi z tego samego źródła, aby zapobiegać atakom amplifikacyjnym.

#### Filtrowanie zapytań

# Block ANY queries (common in amplification)

# Block excessively long queries

# Block known-malicious patterns

Przykład BIND:
# Block ANY queries

match-query {

type ANY;

action drop;

};

Obrona na poziomie dostawcy DNS

#### DNSSEC

DNSSEC nie zapobiega bezpośrednio zalewom, ale:

#### Konfiguracja ukrytego mastera

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

#### Zapora DNS / IDS

Analyze queries in real-time

Block suspicious patterns

Whitelist known-good clients

Blacklist attack sources

Ochrona na poziomie aplikacji

#### Ograniczanie liczby odpowiedzi (RRL)

Limit identical responses to same client

Prevents amplification attacks

Slip mode: Occasionally allow queries through (to not break legitimate recursive resolvers)

Konfiguracja 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;

};

};

#### Optymalizacja cache

Increase cache size to absorb repeated queries

Longer TTLs where appropriate (trade-off with agility)

Prefetch popular records

#### Filtrowanie zapytań

# Drop queries for non-existent zones

# Block queries from known-bad sources

# Rate-limit per-source queries

Obrona na poziomie sieci

#### Odcięcie trasą BGP (blackholing)

Route attack traffic to null0

Sacrifice availability to preserve infrastructure

Last resort when attack overwhelms capacity

#### Filtrowanie u operatora upstream

Coordinate with ISP to filter attack traffic

Source IP validation (prevent spoofing)

Traffic scrubbing centers

#### Usługi ochrony przed DDoS

Cloudflare, Akamai, AWS Shield

Absorb attack traffic before reaching your servers

Global capacity to withstand large attacks

Dobre praktyki odporności DNS

Korzystaj z wielu dostawców DNS

Primary provider: Cloudflare

Secondary provider: AWS Route 53

If one is attacked/down, other continues serving

Different infrastructure reduces single point of failure

Wdróż DNSSEC

Protects against DNS spoofing/cache poisoning

Maintains integrity during attacks

Build trust even under attack conditions

Monitoruj wydajność DNS

Real-time query rates

Response times

NXDOMAIN percentages

Geographic distribution of queries

Error rates

Narzędzia: Grafana + Prometheus, Datadog, AWS CloudWatch

Regularnie testuj przepustowość

Load testing: Can infrastructure handle 10x traffic?

Failover testing: Do secondary providers activate correctly?

Attack simulation: Test mitigation strategies

Wyłącz rekursję na serwerach autorytatywnych

# BIND

recursion no;

Autorytatywne serwery nazw nie powinny działać jako resolvery rekursywne.

Ogranicz transfery stref

# BIND

allow-transfer { 10.0.0.2; 10.0.0.3; }; # Only specific slaves

Uniemożliwia atakującym zrzut całej strefy.

Aktualizuj oprogramowanie

Regularly update DNS server software

Patch known vulnerabilities

Subscribe to security advisories

Reagowanie na aktywny atak DNS flood

Działania natychmiastowe

1. Potwierdź, że trwa atak

# Check query rate

rndc status

# Check load

top

2. Włącz ograniczanie tempa

# BIND: Enable RRL if not already active

rndc addzone rate-limit

3. Skontaktuj się z dostawcą ochrony DDoS

- Aktywuj usługi oczyszczania

- Przekieruj ruch przez sieć ograniczającą atak

4. Przeanalizuj wzorce ataku

# 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. Zablokuj oczywiste źródła ataku

# 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

Działania średnioterminowe

1. Skaluj infrastrukturę

- Dodaj przepustowość serwerów nazw

- Rozłóż ruch przez Anycast, jeśli nie jest jeszcze używany

2. Wdróż dodatkowe filtrowanie

- Blokuj wzorce zapytań charakterystyczne dla ataku

- Dodaj znane, zaufane źródła do białej listy

3. Skoordynuj działania z dostawcami

- Dostawca ISP/hostingu

- Dostawca DNS

- Usługa ochrony przed DDoS

4. Udokumentuj atak

- Przechwyty pakietów

- Logi

- Wykresy ruchu

- Do analizy po incydencie i celów prawnych

Analiza po ataku

1. Oceń skuteczność zastosowanych ograniczeń

2. Zidentyfikuj słabe punkty infrastruktury

3. Zaktualizuj procedury reagowania na incydenty

4. Rozważ długoterminowe usprawnienia (DNS u wielu dostawców, większa przepustowość)

Kwestie prawne i zgłaszanie

Zgłaszanie organom ścigania

Gromadzenie dowodów

# 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

Ataki DNS flood stanowią poważne zagrożenie dla usług internetowych, lecz odpowiednia infrastruktura, monitoring i strategie ograniczania mogą zminimalizować ich skutki.

Wykorzystaj tę wiedzę w praktyce

Użyj API DomScan, aby sprawdzić dostępność domen, ich kondycję i więcej.