Bezpečnost DNS

Bezpečnost DNS

Účel a kontext: proč řešit bezpečnost DNS

Domain Name System (DNS) je kritická infrastruktura mapující doménová jména na IP adresy a další zdroje. Jeho původní návrh nepočítal s integritou ani ověřováním původu odpovědí, což umožňuje útoky typu spoofing a cache poisoning. DNSSEC přidává kryptografické podepisování dat a řetězec důvěry, čímž umožňuje ověřit autenticitu odpovědí. Správně navržená obrana kombinuje DNSSEC s dalšími protiopatřeními (randomizace, cookies, omezení fragmentace, RRL, DoT/DoH pro soukromí) a provozní disciplínou.

Hrozby: spoofing, cache poisoning a další útoky na DNS

  • DNS spoofing: podvržení odpovědí tak, aby resolver akceptoval falešná data (např. podvržené A/AAAA záznamy).
  • Cache poisoning: injekce škodlivých záznamů do cache rekurzivního resolveru, vedoucí k dlouhodobému přesměrování dotazů.
  • Off-path útoky: zneužití předvídatelného ID transakce, portu a fragmentace k injekci odpovědi bez viditelnosti provozu.
  • On-path útoky (MITM): modifikace odpovědí během přenosu, např. v nedůvěryhodných sítích.
  • Amplifikace a DoS: zneužití otevřených rekurzorů a velkých odpovědí (DNSSEC, ANY) k zahlcení obětí.
  • NXNS a relaying: zneužití přesměrování na mnoho delegovaných jmenných serverů pro vyčerpání zdrojů resolveru.
  • DNS rebinding: obcházení stejnopůvodnostních politik prohlížeče přes dynamicky měněné odpovědi.

Základy DNS a důvěryhodnost dat

DNS je hierarchický, distribuovaný systém. Autoritativní servery drží zóny, rekurzivní resolvery rekurzivně vyhledávají odpovědi a kešují je. Bez kryptografické validace spoléhá resolver na „důvěru v síť“, což je v dnešním prostředí nedostatečné. DNSSEC rozšiřuje DNS o digitální podpisy jednotlivých RRsetů a řetězec důvěry (root → TLD → doména).

DNSSEC: princip, záznamy a řetězec důvěry

  • Podpisy RRSIG: každý RRset (např. A záznamy) má kryptografický podpis RRSIG vytvořený soukromým klíčem zóny.
  • DNSKEY: veřejné klíče zóny publikované v DNS; typicky rozdělené na KSK (Key Signing Key) a ZSK (Zone Signing Key).
  • DS záznam: hash KSK publikovaný v nadřazené zóně (např. u registru TLD), který vytváří vazbu parent → child a buduje řetězec důvěry.
  • NSEC/NSEC3: kryptografické důkazy neexistence jména nebo typu. NSEC3 s opt-out a salt omezuje enumeraci zóny.
  • CDS/CDNSKEY: záznamy pro automatizaci publikace/rotace DS u registru (delegovaná správa důvěry).

Volba algoritmů a velikostí klíčů

  • RSA (alg. 8/RSASHA256): běžný, ale s většími podpisy; doporučena délka 2048 bitů (ZSK) a 2048–3072 bitů (KSK).
  • ECDSA P-256 (alg. 13) a Ed25519 (alg. 15): moderní, kratší podpisy, rychlejší validace, menší fragmentace odpovědí.
  • Preferujte ECDSA/Ed25519 pro minimalizaci velikosti paketů a nároků na přenos.

Provozní model: KSK/ZSK, podepisování a rotace klíčů

  • Oddělení rolí: ZSK podepisuje RRsety, KSK podepisuje DNSKEY RRset; DS drží rodičovská zóna.
  • Rotace klíčů: provádějte pravidelně (např. 6–12 měsíců pro ZSK, 1–2 roky pro KSK) s bezpečným přechodem (prepublish → sign → DS update → remove old).
  • Bezpečnost klíčů: ukládejte privátní klíče v HSM nebo s odděleným přístupem a auditní stopou.
  • Automatizace: využijte CDS/CDNSKEY a protokoly u registrátorů pro bezvýpadkovou rotaci DS.

Validující resolvery: jak ověřovat DNSSEC

  • Anchor: kořenový klíč (trust anchor) pravidelně aktualizujte; validátor (BIND, Unbound, Knot Resolver) musí udržovat aktuální root KSK.
  • Stavy validace: Secure, Insecure, Bogus, Indeterminate. Odmítejte Bogus odpovědi.
  • Aggressive use of NSEC: validátor může syntetizovat negativní odpovědi z NSEC/NSEC3 a snižovat zátěž autoritativních serverů.

Hardening proti spoofingu (mimo DNSSEC)

  • Randomizace ID a portu: vysoká entropie (16bit ID + 16bit port) snižuje úspěšnost off-path injekcí.
  • 0x20 case randomization: zachování/alternace velikosti písmen v dotazu pro dodatečnou entropii (tam, kde je to bezpečné).
  • DNS Cookies: transakční cookies (RFC 7873/9018) pro mitigaci spoofingu a odlišení legitimních klientů.
  • QNAME minimization: dotazování po hierarchii s minimem odhalených informací (zlepšení soukromí a snížení útokové plochy).
  • NXDOMAIN cut a serve-stale: lepší zacházení s negativní cache a dostupností při výpadcích.

EDNS(0), velikost odpovědí a fragmentace

DNSSEC zvětšuje odpovědi kvůli RRSIG/DNSKEY, což zvyšuje riziko IP fragmentace (zranitelnost pro injection). Doporučení:

  • Omezte EDNS buffer (např. 1232 bajtů) a preferujte TCP fallback při velkých odpovědích.
  • Preferujte algoritmy s kratšími podpisy (ECDSA/Ed25519).
  • Zapněte minimal responses a vyhýbejte se tipu ANY.

Autoritativní zóny: správná konfigurace a publikace DNSSEC

  • Signování zóny: používejte kontinuální podepisování (inline signing) a hlídejte expiraci RRSIG (správné TTL a jitter).
  • DS publikace: po nasazení/rotaci KSK zajistěte včasné nahrání DS u registru.
  • NSEC vs. NSEC3: pro veřejné zóny obvykle NSEC3 se salt; u menších nebo necitlivých zón je NSEC jednodušší a efektivnější.
  • Anycast: distribuujte autoritativní servery pro odolnost vůči DoS a zkrácení latence.
  • TSIG pro zabezpečení AXFR/IXFR a dynamických aktualizací; aplikujte ACL a split-horizon, pokud je nutné.

Rekurzivní resolvery: bezpečné nasazení

  • Neotevírejte rekurzi veřejně; omezte na interní IP rozsahy.
  • Zapněte DNSSEC validaci, QNAME minimization, DNS Cookies, RRL (Response Rate Limiting) a vhodné limity současných dotazů.
  • Nastavte rozumné TTL limity a negativní cache dle RFC 2308; vyvarujte se příliš dlouhých TTL u kritických záznamů (usnadní rotace klíčů).
  • Monitorujte Bogus rate, velké odpovědi, časování, chybovost serverů a latence k TLD/kořeni.

Soukromí vs. integrita: DoT/DoH a jejich vztah k DNSSEC

  • DNS over TLS (DoT) a DNS over HTTPS (DoH) šifrují transport mezi klientem a resolverem, chrání soukromí a integritu přenosu, ale neověřují pravost autoritativních dat.
  • DNSSEC ověřuje autenticitu a integritu dat na aplikační vrstvě. Optimální je kombinace: DoT/DoH + DNSSEC validace.

Moderní RR typy a DNSSEC

  • CAA: omezení vydávání TLS certifikátů – podpis CAA zvyšuje odolnost proti podvržení.
  • DANE/TLSA: vazba TLS certifikátů na DNSSEC; vyžaduje širokou validaci u klientů.
  • SVCB/HTTPS: moderní směrování klientů na služby a parametry; s DNSSEC eliminujete riziko podvržení alternativních koncových bodů.

Bezpečnostní a provozní best practices

  • Nasazujte DNSSEC se separací KSK/ZSK, preferujte ECDSA/Ed25519, držte malý EDNS buffer a TCP fallback.
  • Zapněte QNAME minimization, DNS Cookies, 0x20 randomizaci a RRL.
  • Omezte rekurzi, udržujte aktuální software, sledujte CVE a aplikujte bezpečnostní záplaty.
  • Proveďte Anycast a geografickou diversifikaci autoritativních serverů; oddělte role (auth vs. recursor).
  • Pravidelně testujte validaci (např. domény s chybně publikovaným DS) a rotace klíčů.

Procesní a compliance aspekty

  • Správa klíčů: dokumentované postupy, více osob při klíčových operacích (SoD), auditní logy, HSM, pravidelné DR testy.
  • Incident response: scénáře pro chybně nasazený DS, expirované RRSIGy, kompromitovaný klíč; rollback plány.
  • Soulad: požadavky regulací (např. NIS2) na dostupnost a integritu; evidence změn a verze zón.

Časté chyby a jak se jim vyhnout

  • Publikace DS bez dostupného odpovídajícího DNSKEY → Bogus odpovědi a výpadky.
  • Příliš dlouhá expirace RRSIG a TTL znemožňující rychlou opravu/rotaci.
  • Velké odpovědi bez TCP fallback a s vysokým EDNS bufferem → fragmentace a injekce.
  • Otevřená rekurze dostupná z internetu → amplifikace a cache poisoning.

Referenční návrh nasazení

  1. Autoritativní vrstva: anycast uzly, inline signing, NSEC3 se salt, TSIG pro AXFR/IXFR, monitoring expirace RRSIG a latence.
  2. Registr/registrátor: automatizace DS přes CDS/CDNSKEY, pravidelné ověřování řetězce důvěry.
  3. Rekurze: validující resolver (Unbound/Knot Resolver/BIND) s QNAME minimization, cookies, RRL, EDNS 1232, TCP fallback, serve-stale.
  4. Klient: DoT/DoH k internímu validujícímu resolveru, případně lokální validace (stub s DNSSEC).
  5. Provoz: dashboard metrik (bogus rate, SERVFAIL, veľké odpovědi, RTT), alerting, pravidelný test selhání klíčů a obnovy.

Závěr

Bezpečnost DNS vyžaduje kombinaci kryptografické integrity (DNSSEC), transportních ochran (DoT/DoH), protispoofingových technik (randomizace, cookies), pečlivé práce s velikostí odpovědí a disciplinovaného provozu. DNSSEC je klíčový stavební kámen: ověřuje, že data skutečně pocházejí od autoritativního zdroje a nebyla po cestě změněna. Teprve v souhře s provozními a architektonickými opatřeními poskytuje DNS odolnou obranu proti spoofingu, poisoning útokům a celé třídě rizik, která by jinak mohla ohrozit dostupnost i důvěryhodnost vašich služeb.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *