Miroslav Knotek – knotek@kpcs.cz – Microsoft MVP: Security, IT Senior konzultant KPCS CZ, s.r.o.
Službu DNS dnes používáme všichni s naprostou samozřejmostí ve všech možných internetových i intranetových službách. Málokdy si ale uvědomujeme, že vedle pohodlí, které nám to přináší, je DNS ve své současné podobě také hrozbou. Když se například připojujeme na firemní Intranet na adrese intranet.nejakadomena.cz, stačí, aby nám útočník podstrčil místo správné adresy 10.1.1.1 adresu s nepravým serverem 10.10.10.10. V tuto chvíli pak možná místo přihlášení k Intranetu útočníkovi posíláme naše přihlašovací údaje, aniž bychom měli šanci toto odhalit.
Současný systém DNS totiž nepoužívá žádné mechanismy, které by uměly ověřit, zda odpověď na náš DNS dotaz přišla z toho správného DNS serveru nebo zda nebyla modifikována po cestě.
Útoky jako je spoofing, man-in-the-middle a cache poisoning nejsou bohužel jen teoretické pojmy, ale útočníci je používají jako jednu z poměrně jednoduchých technik ke kompromitaci našich systémů. Díky implementaci standardu Domain Name System Security Extensions (DNSSec) ve Windows Serveru 2008 R2 máme však již možnost jak se těmto útokům bránit.
DNSSec je založen na aplikaci asymetrické kryptografie na data DNS serverů. Autoritativní DNS server si pro svou zónu vygeneruje klíčový pár:
Pokud se tedy nyní zeptám na adresu intranet.nejakadomena.cz, dostanu zpět nejen odpověď v podobě IP adresy, ale také digitální podpis této odpovědi. Abych ho mohl ověřit, musím požádat nadřazenou doménu .cz o zaslání veřejného klíče pro doménu nejakadomena.cz.
.png)
Obrázek 1 A záznam včetně digitálního podpisu RRSIG
Je ale evidentní, že jsme nyní problém jen přesunuli. Ověření jsem provedl na základě získání veřejného klíče od DNS domény .cz. Kde mám ale jistotu, že mi tuto odpověď opět nepodstrčil útočník. Jistotu mám pouze pokud i doména .cz bude posílat podepsaná data. Její veřejný klíč pak bude k dispozici v kořenové zóně. Pak ale i kořenová zóna musí být sama podepsaná. Protože ale zde už neexistuje vyšší instance, musím si zjistit veřejný klíč z důvěryhodného zdroje a ustanovit na DNS serveru v něj důvěru (tzv. trust anchor). Existuje zde pak podobný řetězec důvěry jako ve světě certifikačních autorit – i tam musím nejprve důvěřovat kořenovému certifikačnímu úřadu.
Jako každá technologie, i DNSSec má nutné podmínky pro fungování a zároveň má také svá omezení. Konkrétně pro implementaci na Windows Serveru 2008 R2 / Windows 7 se jedná se především o následující:
Podepsání DNS zóny na Windows Serveru 2008 R2 se provádí pomocí následujících kroků:
.png)
.png)
.png)
Obrázek 4 Konfigurace Name Resolution Policy
V tomto článku jsme se jen velmi zevrubně seznámili s problematikou zabezpečení služby DNS pomocí technologie DNSSec a úvodními implementačními kroky. Reálně je ale celý proces mnohem komplexnější, neboť je potřeba ustavit hierarchii důvěry, naplánovat proces obnovy klíčů po jejich expiraci, nastavit IPSec mezi DNS klientem a lokálním DNS serverem atp.
Je určitě velmi dobrou zprávou, že DNSSec je ve Windows Serveru 2008 R2 plně podporován a tam, kde cítíme riziko možného útoku prostřednictvím jmenné služby DNS, máme dnes elegantní a účinnou zbraň pro její zabezpečení.