Wybrane aspekty bezpieczeństwa DNS



Podobne dokumenty
Badania podatności usługi DNS na wybrane zagroŝenia

Ataki na serwery Domain Name System (DNS Cache Poisoning)

Konfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2

onfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2

Pharming zjawisko i metody ochrony

dostępu do okręslonej usługi odbywa się na podstawie tego adresu dostaniemu inie uprawniony dostep

Przegląd zagrożeń związanych z DNS. Tomasz Bukowski, Paweł Krześniak CERT Polska

Brakujące ogniwo w bezpieczeństwie Internetu

Wybrane metody obrony przed atakami Denial of Service Synflood. Przemysław Kukiełka

Krajowe Sympozjum Telekomunikacji i Teleinformatyki KSTiT Autorzy: Tomasz Piotrowski Szczepan Wójcik Mikołaj Wiśniewski Wojciech Mazurczyk

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Internet Explorer. Okres

Audytowane obszary IT

ZagroŜenia usługi DNS

Synchronizacja czasu - protokół NTP

Metody ataków sieciowych

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Plan wykładu. Domain Name System. Definicja DNS. Po co nazwy? Przestrzeń nazw domen Strefy i ich obsługa Zapytania Właściwości.

KONFIGURACJA SIECIOWA SYSTEMU WINDOWS

Windows Serwer 2008 R2. Moduł 3. DNS v.2

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

Laboratorium - Używanie programu Wireshark do obserwacji mechanizmu uzgodnienia trójetapowego TCP

Obsługa poczty elektronicznej w domenie emeritus.ue.poznan.pl

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat usługi DHCP.

4. Podstawowa konfiguracja

Poradnik korzystania z usługi FTP

Projektowanie bezpieczeństwa sieci i serwerów

Plan wykładu. Domain Name System. Hierarchiczna budowa nazw. Definicja DNS. Obszary i ich obsługa Zapytania Właściwości.

pasja-informatyki.pl

Wykład 6: Bezpieczeństwo w sieci. A. Kisiel, Bezpieczeństwo w sieci

OBSŁUGA I KONFIGURACJA SIECI W WINDOWS

Robaki sieciowe. + systemy IDS/IPS

Laboratorium Sieci Komputerowych - 2

7. zainstalowane oprogramowanie zarządzane stacje robocze

Architektura oraz testowanie systemu DIADEM Firewall Piotr Piotrowski

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Laboratorium podstaw telekomunikacji

MODEL WARSTWOWY PROTOKOŁY TCP/IP

SPRAWOZDANIE SIECI KOMPUTEROWE I BAZY DANYCH LABORATORIUM NR2 BADANIE SIECI KAMIL BOGDANOWSKI

Router programowy z firewallem oparty o iptables

Sprawozdanie nr 4. Ewa Wojtanowska

ODWZOROWYWANIE NAZW NA ADRESY:

OCHRONA PRZED RANSOMWARE. Konfiguracja ustawień

Jarosław Kuchta. Instrukcja do laboratorium. Administrowanie Systemami Komputerowymi. Usługi DNS i DHCP

Protokoły zdalnego logowania Telnet i SSH

Ping. ipconfig. getmac

Metody zabezpieczania transmisji w sieci Ethernet

Produkty. MKS Produkty

Client-side Hacking - wprowadzenie w tematykę ataków na klienta. Radosław Wal radoslaw.wal@clico.pl

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Rys. 1. Wynik działania programu ping: n = 5, adres cyfrowy. Rys. 1a. Wynik działania programu ping: l = 64 Bajty, adres mnemoniczny

DNS spoofing, czyli podszywanie się pod serwer DNS

Domain Name System. Kraków, 30 Marca 2012 r. mgr Piotr Rytko Wydział Matematyki i Informatyki UJ

OCHRONA PRZED RANSOMWARE

Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, . A. Kisiel,Protokoły DNS, SSH, HTTP,

Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA. Dlaczego DNS jest tak ważny?

Instrukcja konfiguracji funkcji skanowania

Sieci komputerowe. Domain Name System. WIMiIP, AGH w Krakowie. dr inż. Andrzej Opaliński.

SPIS TREŚCI Błąd! Nie zdefiniowano zakładki.

Instrukcja instalacji usługi Sygnity SmsService

OPIS PRZEDMIOTU ZAMÓWIENIA w odniesieniu do zadania antywirus - dostawa oprogramowania antywirusowego

Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->.

Projektowanie i implementacja infrastruktury serwerów

Problemy z bezpieczeństwem w sieci lokalnej

Tomasz Greszata - Koszalin

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Zagrożenia warstwy drugiej modelu OSI - metody zabezpieczania i przeciwdziałania Autor: Miłosz Tomaszewski Opiekun: Dr inż. Łukasz Sturgulewski

DKonfigurowanie serwera DNS

Sieci komputerowe i bazy danych

Wyciąg z ogólnej analizy ataków na witryny administracji państwowej RP w okresie stycznia 2012r.

Narzędzia diagnostyczne protokołów TCP/IP

Zadanie1: Odszukaj w Wolnej Encyklopedii Wikipedii informacje na temat NAT (ang. Network Address Translation).

DESlock+ szybki start

Adres IP

Technologia Automatyczne zapobieganie exploitom

ZAKŁAD SYSTEMÓW ROZPROSZONYCH. Politechnika Rzeszowska BEZPIECZEŃSTWO I OCHRONA INFORAMCJI

Protokół DHCP. DHCP Dynamic Host Configuration Protocol

Programowanie sieciowe

Serwer nazw DNS. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Podstawy bezpieczeństwa

Instrukcja instalacji i obsługi programu Szpieg 3

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Wireshark analizator ruchu sieciowego

Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

Kod produktu: MP-W7100A-RS232

Projekt LAN. Temat: Skaner bezpieczeństwa LAN w warstwie 2. Prowadzący: dr inż. Krzysztof Szczypiorski Studenci: Kończyński Marcin Szaga Paweł

Serwer i klient DHCP w systemie Linux

UNIFON podręcznik użytkownika

Instalacja programu dreryk

Protokół sieciowy Protokół

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

SERWER AKTUALIZACJI UpServ

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer

1. Zakres modernizacji Active Directory

Podstawowe protokoły transportowe stosowane w sieciach IP cz.2

Serwer druku w Windows Server

Podstawowe protokoły transportowe stosowane w sieciach IP cz.1

Za dużo wpisów! Serwer nazw DNS. Marcin Bieńkowski

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Transkrypt:

Bi u l e t y n WAT Vo l. LX, Nr 4, 2011 Wybrane aspekty bezpieczeństwa DNS Zbigniew Suski Wojskowa Akademia Techniczna, Wydział Cybernetyki, Instytut Teleinformatyki i Automatyki, 00-908 Warszawa, ul. S. Kaliskiego 2, zsuski@ita.wat.edu.pl Streszczenie. W artykule opisano wybrane zagrożenia związane z funkcjonowaniem usługi DNS. Należy do nich zaliczyć zatruwanie pamięci podręcznej, ataki DoS oraz nadużywanie mechanizmu dynamicznej aktualizacji bazy serwera. Zostały również przedstawione wyniki eksperymentów, których celem było sprawdzenie podatności najbardziej popularnych serwerów DNS na przedstawione zagrożenia. Celem artykułu jest udowodnienie tezy, że przynajmniej niektóre właściwości usługi DNS są bardzo niebezpieczne, tzn. stanowią duże zagrożenie dla funkcjonowania sieci, gdyż mogą spowodować całkowitą dezorganizację jej pracy. Ponadto ataki wykorzystujące te właściwości są stosunkowo łatwe do przeprowadzenia, co potęguje zagrożenie. Słowa kluczowe: informatyka, bezpieczeństwo sieci komputerowych, zagrożenia DNS 1. Wstęp Podczas opracowywania specyfikacji systemu DNS bezpieczeństwo systemu nie było brane pod uwagę. Można się o tym przekonać, analizując dokumenty RFC specyfikujące ten protokół [11, 12]. Pierwszy problem z protokołem DNS wykryto w roku 1990. Z czasem odkrywano kolejne luki w systemie. Wreszcie informacje o zagrożeniach opublikowano w [5]. W dokumencie tym zwrócono również uwagę na zastosowanie DNSSEC 1 i TSIG 2 w celu przeciwdziałania zagrożeniom oraz na niedoskonałości tych rozszerzeń. Opublikowano kolejne dokumenty RFC, w których znaleźć można propozycje dotyczące utwardzenia DNS [2, 3, 4]. Zagadnienia dotyczące 1 2 DNSSEC (ang. DNS Security Extensions) to rozszerzenie systemu DNS mające na celu zwiększenie bezpieczeństwa DNS. DNSSEC zapewnia autoryzację źródeł danych (serwerów DNS) za pomocą kryptografii asymetrycznej oraz podpisów cyfrowych. TSIG mechanizm zabezpieczenia kryptograficznego transakcji transferu stref.

282 Z. Suski bezpieczeństwa DNS były również przedmiotem prac magisterskich prowadzonych w WAT [6] i PJWSTK [9] pod kierownictwem autora niniejszego artykułu. Celem artykułu jest udowodnienie tezy, że przynajmniej niektóre właściwości usługi DNS są bardzo groźne, tzn. stanowią duże zagrożenie dla funkcjonowania sieci, gdyż mogą spowodować całkowitą dezorganizację jej pracy. Ponadto ataki wykorzystujące te właściwości są stosunkowo łatwe do przeprowadzenia, co potęguje zagrożenie. Miejsca występowania zagrożeń w DNS przedstawiono na rysunku 1. Jednym z zagrożeń jest możliwość przechwytywania komunikatów DNS pomiędzy serwerem a klientem. Wykorzystywane są w tym przypadku techniki ataku niezwiązane bezpośrednio z samym protokołem DNS. Może to być np. atak typu man-in-the-middle polegający na nieuprawnionym pośredniczeniu komputera atakującego w wymianie informacji pomiędzy serwerem i klientem. Do przechwycenia danych wykorzystane mogą być ataki poprzez podszywanie się, np. IP Spoofing lub ARP Spoofing. Gdy napastnik pozyska zapytanie kierowane do serwera, może na tej podstawie w łatwy sposób wygenerować i wysłać sfałszowaną odpowiedź. Rys. 1. Zagrożone atakami przepływy danych w systemie DNS

Wybrane aspekty bezpieczeństwa DNS 283 Do znaczących luk w protokole DNS należy zaliczyć łatwość generowania przez atakującego spreparowanych komunikatów odpowiedzi serwera, w taki sposób, że klient interpretuje odpowiedź jako prawdziwą i zaczyna korzystać ze sfałszowanych danych, tzn. niezgodnych z rzeczywistością, podstawionych przez atakującego. Zabezpieczenie polegające na stosowaniu 16-bitowego numeru transakcji, który musi być taki sam w komunikacie zapytania i odpowiedzi, nie jest wystarczające. Można je łatwo obejść. Ta technika ataku jest trudniejsza niż przechwytywanie komunikatów, ale może być skuteczna w sieciach rozległych, a nie tylko lokalnych. Wymienione zagrożenia dotyczą możliwości wysyłania komunikatów odpowiedzi, które ofiara będzie traktowała jako autentyczne. Innym zagrożeniem jest możliwość zatruwania pamięci tymczasowej (podręcznej) w celu zdezorganizowania funkcjonowania usługi DNS. Zagrożenie tego typu niejako utrwala skutki przeprowadzonych ataków. Kolejną luką jest możliwość podszywania się pod serwer wybranej domeny. Klient systemu DNS otrzymuje adres serwera DNS np. od swojego dostawcy Internetu lub poprzez mechanizm DHCP w sieci lokalnej. Napastnik może umieścić w sieci własny serwer DNS, bez wiedzy klienta. Atakujący może uzyskać kontrolę częściową, jeśli tylko podszywa się pod serwer wybranej strefy, lub całkowitą, jeśli podszył się pod serwer przekierowujący (forwarding server) lub serwer pamięci tymczasowej (caching server). Zagrożenie wynika z braku mechanizmów pozwalających określić, czy serwer można potraktować jako zaufany. Jak można zauważyć na rysunku 1, każdy element systemu jest potencjalnie zagrożony. Nie wynika to jedynie ze słabości samego protokołu. Zagrożone elementy można podzielić na dwie grupy. W skład pierwszej wchodzą autorytatywne 3 serwery stref (podstawowe i zapasowe), czyli system przechowywania i publikowania informacji. Ewentualny napastnik może bezpośrednio na danym serwerze zmodyfikować pliki konfiguracji. Jak już poprzednio napisano, może również podszyć się pod serwer podstawowy lub zapasowy, zmodyfikować dane przekazywane serwerom zapasowym. Drugą grupą są wszystkie inne serwery pośredniczące w pozyskiwaniu informacji z systemu. Na końcu tego łańcucha jest kliencka stacja robocza lub serwer dowolnej usługi, np. poczty elektronicznej. W tym przypadku na każdym etapie przekazywania informacji może ona zostać zmieniona przez atakującego. Aby uporządkować zagadnienia związane z zagrożeniami wynikającymi z funkcjonowania DNS, celowe jest dokonanie klasyfikacji tych zagrożeń. Jako kryterium klasyfikacji przyjęto źródło zagrożeń. Wówczas podział zagrożeń może wyglądać następująco: zagrożenia wynikające z luk w specyfikacji protokołu (np. zatruwanie pamięci podręcznej); 3 Serwerem autorytatywnym nazywamy serwer, który sprawuje bezpośredni zarząd nad daną strefą jego odpowiedzi są formułowane bezpośrednio na podstawie zawartości bazy danych serwera.

284 Z. Suski zagrożenia wynikające z niewłaściwej konfiguracji serwerów DNS (np. transfer strefy, sprawdzanie wersji, dynamiczna aktualizacja); zagrożenia wynikające z niewłaściwej implementacji (np. przepełnienie bufora); zagrożenia wynikające z luk w platformie systemowej, na której posadowiono serwer DNS (np. ataki typu odmowa usługi). W niniejszym artykule przedstawiono niektóre, przeprowadzone w Instytucie Teleinformatyki i Automatyki badania, których celem była eksperymentalna weryfikacja podatności najbardziej popularnych serwerów DNS [1, 8, 10] na wybrane zagrożenia. Szczegółowe wyniki wybranych badań zostały opublikowane w Biuletynie IAiR [7, 13]. W trakcie badań wykorzystywano elementy sieci przedstawione na rysunku 2. Ich szczegółowa specyfikacja została przedstawiona w tabeli 1. Są to głównie serwery DNS posadowione na różnych platformach systemowych obsługujące domeny wymienione na rysunku 2 i w tabeli 1. Rys. 2. Struktura sieci służącej do przeprowadzenia badań

Wybrane aspekty bezpieczeństwa DNS 285 Charakterystyka systemów wykorzystywanych podczas eksperymentów Tabela 1 Maszyna wirtualna 1 FQDN domena odwr. glowny.tst 1.10.in-addr.arpa. System operacyjny Adres IP Serwer DNS Inne Windows 2003 10.1.1.1 MS DNS A_srv atak.intruz.tst Windows 2003 10.2.2.2 MS DNS WWW A_lin lin.intruz.tst Debian 4.0 10.2.2.33 brak R_dns rdns.robocza.tst 3.10.in-addr.arpa. Windows 2003 10.3.3.3 MS DNS podstawowy R_lbind lbind.robocza.tst Debian 4.0 10.3.3.4 BIND 9.4.1 zapasowy R_wbind wbind.robocza.tst Windows 2003 10.3.3.5 BIND 9.4.1 zapasowy R_msdns msdns.robocza.tst 3.10.in-addr.arpa. R_kl klient.robocza.tst Windows 2003 10.3.9.1 Z_www zwww.zasoby.tst Windows 2003 10.7.7.77 Windows 2003 10.3.3.6 MS DNS zapasowy Z_dns zdns.zasoby.tst Windows 2003 10.7.7.7 MS DNS podstawowy Lin linbind.lin.tst Windows 2003 10.4.4.4 BIND 9.4.1 podstawowy 2. Zatruwanie pamięci podręcznej Zatruwanie pamięci podręcznej (cache poisoning) polega na wprowadzeniu do pamięci podręcznej serwera lub klienta DNS fałszywego tzw. rekordu zasobu, który będzie wiązał nazwę z fałszywym adresem IP [14]. Zawartość takiego rekordu będzie pamiętana przez czas określony przez parametr TTL (Time To Live). Gdy jakikolwiek klient zapyta o nazwę występującą w takim rekordzie, zostanie mu zwrócony fałszywy adres IP. Największa trudność po stronie agresora polega na konieczności odgadnięcia identyfikatorów transakcji, które powinien on umieścić w wysyłanej, spreparowanej odpowiedzi. Obecnie można rozróżnić następujące typy ataku zatruwania bufora: atak klasyczny, zmodyfikowany atak klasyczny, atak dnia narodzin. Atak klasyczny polega na wysłaniu przez atakującego zapytania o nazwę do serwera DNS i zmuszeniu go w ten sposób do poszukiwania odpowiedzi u innych serwerów DNS. Następnie agresor powinien wysłać odpowiedź z poprawnym numerem transakcji (ID). Ponieważ pole ID składa się z 16 bitów, więc wartość numeru transakcji może przyjmować wartości z przedziału od 1 do 65535. Aby atak się powiódł, atakujący musi przesłać od 1 do 65535 fałszywych odpowiedzi w czasie krótszym niż czas odpowiedzi właściwego serwera DNS.

286 Z. Suski Zmodyfikowany atak klasyczny polega na wysyłaniu na każde zadane zapytanie do serwera DNS pewnej sekwencji odpowiedzi. Odpowiedzi są generowane w pętli z losowo generowanymi numerami ID. Ważne przy tym jest, aby przy każdym przejściu pętli były to zawsze te same numery ID. Liczba fałszywych odpowiedzi w tym przypadku jest dużo mniejsza niż 65535. Atak dnia narodzin (birthday attack) oparty jest na paradoksie dnia narodzin. Jest on związany z odpowiedzią na pytanie: ile osób należy wybrać, żeby prawdopodobieństwo tego, że co najmniej dwie osoby mają urodziny tego samego dnia, było większe od ½. W naszym przypadku chodzi o odpowiedź na pytanie: ile należy wysłać fałszywych odpowiedzi, aby przynajmniej jedno zapytanie i jedna odpowiedź miały ten sam numer identyfikacyjny. Prawdopodobieństwo powodzenia takiego ataku można wyrazić wzorem: nn ( 1) 2 1 P = 1 1, t gdzie t oznacza ilość wszystkich pakietów mogących być odpowiedzią, a n ilość wysłanych pakietów DNS. Z powyższego wzoru wynika, że przy n = 700 wysłanych pakietach zawierających fałszywą odpowiedź t = 65535 = 2 16 1, prawdopodobieństwo powodzenia ataku wynosi 0,97608. Jak widać, znacznie ułatwia to intruzowi przeprowadzenie ataku. Na rysunku 3 przedstawiono ilustrację ataku poprzez zatruwanie pamięci podręcznej. Rys. 3. Zatruwanie pamięci podręcznej: 1) agresor wysyła zapytanie o nazwę; 2) agresor wysyła fałszywe odpowiedzi do serwera; 3) klient zadaje pytanie o adres; 4) serwer odpowiada fałszywym adresem IP Ofiarą ataku w trakcie eksperymentu polegającego na zatruwaniu pamięci podręcznej (cache poisoning) był serwer podstawowy (rdns) domeny robocza.tst, zbudowany w oparciu o oprogramowanie MSDNS w systemie Windows 2003 Server. Eksperyment rozpoczął się od sprawdzenia poprawności współdziałania komputera klient.robocza.tst z serwerem DNS rdns.robocza.tst. Sprawdzenie to polegało na weryfikacji konfiguracji interfejsu sieciowego klienta za pomocą programu ipconfig (rys. 4) oraz badaniu poprawności rozwiązywania nazwy i osiągalności komputera www.zasoby.tst (rys. 5). Na podstawie zamieszczonych obrazów można

Wybrane aspekty bezpieczeństwa DNS 287 stwierdzić, że klient poprawnie współpracuje ze swoim serwerem DNS. Po tych czynnościach wstępnych zrealizowano czyszczenie pamięci podręcznej resolvera systemu klient.robocza.tst. Rys. 4. Konfiguracja interfejsu sieciowego komputera klient.robocza.tst Rys. 5. Wynik badania poprawności rozwiązywania nazwy i osiągalności komputera www.zasoby.tst Ostatnim etapem weryfikacji wstępnej była próba pobrania strony www z serwera www.zasoby.tst. Próba taka zakończy się powodzeniem. Na rysunku 6 zamieszczono obraz ruchu sieciowego realizowanego podczas pobierania strony z serwisu www.zasoby.tst. Jego prześledzenie jest istotne ze względu na wychwycenie różnic, które będzie można zaobserwować po udanym ataku. Na przedstawionym obrazie można zauważyć, że najpierw klient (10.3.9.1) zwraca się do swojego serwera DNS (10.3.3.3) z żądaniem rozwiązania nazwy www. zasoby.tst. Ponieważ nie jest to serwer autorytatywny domeny zasoby.tst, więc zwraca się on z takim żądaniem do serwera głównego (10.1.1.1). Otrzymuje od niego informację, że z takim żądaniem powinien się zwrócić do serwera 10.7.7.7, co też czyni. Uzyskuje informację, że system www.zasoby.tst ulokowany jest pod adresem 10.7.7.77 i taką informację przekazuje swojemu klientowi (10.3.9.1). Po otrzymaniu

288 Z. Suski adresu systemu www.zasoby.tst, klient inicjuje z nim połączenie TCP na porcie 80 i realizowana jest sekwencja związana z przesłaniem żądania klienta i przesłaniem strony przez serwer www. Wreszcie następuje zamknięcie połączenia TCP. Dla porządku przedstawiono jeszcze zawartość pamięci podręcznej resolvera systemu klient.robocza.tst (rys. 7) i serwera rdns.robocza.tst (rys. 8). Rys. 6. Obraz ruchu sieciowego realizowanego podczas pobierania strony z serwera www.zasoby.tst Rys. 7. Zawartość pamięci podręcznej resolvera systemu klient.robocza.tst po operacji pobrania strony www.zasoby.tst

Wybrane aspekty bezpieczeństwa DNS 289 Rys. 8. Zawartość pamięci podręcznej serwera rdns.robocza.tst po operacji pobrania przez klienta strony www.zasoby.tst Teraz przeprowadzany jest sam atak. Wykorzystano do tego skrypt opracowany i zamieszczony w [9]. Skrypt ten generuje zapytanie o określoną nazwę, a następnie wysyła do pytanego serwera DNS sfałszowane odpowiedzi. Obraz ruchu sieciowego generowanego przez ten skrypt przedstawiono na rysunku 9. Należy zwrócić uwagę, że sfałszowane, wygenerowane przez skrypt odpowiedzi informują, że system www. zasoby.tst jest ulokowany pod adresem 10.2.2.2. Pod tym adresem intruz ulokował serwis www, który zamierza podstawić klientowi w miejsce serwisu www.zasoby.tst. Pole adresu źródłowego (10.7.7.7) wskazuje na komputer, który pełni rolę serwera DNS w domenie zasoby.tst. Ten komputer poprzednio udzielał odpowiedzi. W czasie przeprowadzonego ataku nie powinien być aktywny. W trakcie prawdziwego ataku zatruwania bufora oznacza to zwykle przeprowadzenie dowolnego ataku DoS skierowanego na ten komputer. W trakcie eksperymentu atak DoS zasymulowano, wyłączając system 10.7.7.7. Rys. 9. Obraz ruchu sieciowego podczas ataku zatruwania bufora serwera DNS

290 Z. Suski Po ataku, w buforze serwera DNS 10.3.3.3 znalazła się informacja, że system www.zasoby.tst jest ulokowany pod adresem 10.2.2.2 (rys. 10). Klient żądający rozwiązania nazwy www.zasoby.tst otrzyma nieprawdziwą odpowiedź, co zobrazowano na rysunku 11. Zawartość bufora klienta przedstawiono na rysunku 12. Rys. 10. Zatruta zawartość bufora zaatakowanego serwera DNS Rys. 11. Nieprawdziwa odpowiedź udzielona klientowi przez zaatakowany serwer DNS W wyniku całego opisanego procesu, klient żądający dostępu do strony www. zasoby.tst otrzyma stronę podstawioną przez intruza pod adresem 10.2.2.2.

Wybrane aspekty bezpieczeństwa DNS 291 Rys. 12. Zatruta zawartość bufora klienta zaatakowanego serwera DNS 3. Atak DoS DNSflood Celem ataków typu odmowa usługi (DoS Denial of Service) jest całkowite lub częściowe zablokowanie możliwości korzystania z danej usługi. Podstawowe ataki DoS przeprowadzane są z jednego komputera. Uchronienie się przed nimi jest możliwe poprzez zablokowanie adresu IP, z którego prowadzony jest atak. Udoskonaloną wersją ataku DoS jest atak typu rozproszonego (DDoS Distributed Denial of Service). W przypadku ataku DDoS atak jest przeprowadzany z wielu komputerów jednocześnie. Komputery te znajdują się w różnych miejscach sieci, a ich użytkownicy najczęściej nie są świadomi tego, że biorą udział w przeprowadzanym ataku. Aby możliwe było wykorzystanie takiego komputera w czasie rozproszonego ataku DDoS, musi zostać na nim umieszczony odpowiedni złośliwy program. Może to być np. koń trojański, który aktywowany zostanie przez sygnał wysłany przez agresora. Ataki typu DDoS są trudniejsze do opanowania i często nawet firmy dysponujące niemal nieograniczonymi środkami na ochronę informacji nie są w stanie obronić się przed nimi. Serwery DNS mogą być podatne na ataki typu odmowa dostępu (DoS). Napastnik może wykorzystać w tym celu mechanizm odpytywania rekursywnego. Wysyła pojedyncze zapytania do serwera. Jeżeli odpytywany serwer nie jest w stanie udzielić odpowiedzi na podstawie posiadanych przez siebie danych, to jego reakcja polegać będzie na wysyłaniu zapytań do kolejnych serwerów autorytatywnych stref szukanej nazwy domeny. Jeśli atakujący prześle dużą ilość zapytań dotyczących domeny,

292 Z. Suski o których atakowany serwer nazw nie posiada informacji w swojej pamięci podręcznej, to wykona on dużą ilość zapytań iteracyjnych. Atak typu SYNflood polega na wysyłaniu pakietów SYN na określony port. W przypadku serwera DNS będzie to port 53. W czasie tego ataku inicjowane są połączenia TCP, ale pozostają one w stanie półotwarcia. Powoduje to przede wszystkim zużycie zasobów pamięciowych, czasu procesora i pasma medium transmisyjnego. Serwer DNS może zostać również wykorzystany jako źródło ataku DoS. Ponieważ komunikat odpowiedzi może być wielokrotnie dłuższy od zapytania, więc wysłanie przez napastnika pojedynczego, krótkiego żądania może spowodować wysyłanie przez serwer długich odpowiedzi, które będą obciążały ofiarę. Udane ataki są możliwe, gdyż często serwery nazw podłączone są do szybkich łączy sieciowych, szybszych niż łącza ofiary. Atak tego typu polega na wysyłaniu dużej liczby poprawnie sformatowanych zapytań DNS. W niniejszym artykule przedstawiono wyniki eksperymentu polegającego na przeprowadzeniu ataku DNSflood na serwer DNS. Dla potrzeb tego eksperymentu opracowano program (eksploit) o nazwie DNSFLOOD. Przed rozpoczęciem ataku zbadano czas odpowiedzi serwera rdns.robocza.tst w normalnych warunkach eksploatacji sieci testowej. Uzyskane wyniki przedstawiono na rysunku 13. Rys. 13. Wyniki badania czasu odpowiedzi serwera rdns.robocza.tst w normalnych warunkach eksploatacji sieci testowej Następnie zainicjowano atak DNSflood. Na rysunku 14 zaprezentowano obraz ruchu sieciowego podczas ataku. Pakiety zawierające poprawne zapytania DNS kierowane są do atakowanego komputera o adresie 10.3.3.3 na port 53 TCP(DNS). Zwrotnie przekazywane są odpowiedzi serwera. Po stronie serwera DNS daje się zauważyć wydłużenie czasu odpowiedzi udzielanej przez serwer podczas ataku. W obserwowanym przypadku wyniósł on

Wybrane aspekty bezpieczeństwa DNS 293 Rys. 14. Obraz ruchu sieciowego podczas ataku DNSflood na serwer DNS 625 ms patrz ramka na rysunku 15. Jednocześnie mierzono obciążenie procesora i karty sieciowej atakowanego komputera. Na rysunku 16 można zauważyć, że przed atakiem obciążenie tych zasobów było znikome, wręcz niezauważalne. Podczas ataku obciążenie procesora oscylowało w przedziale 70-100%. Obciążenie to przedstawia górna krzywa. Znacznie wzrosło też obciążenie karty sieciowej krzywa dolna. Rys. 15. Wyniki badania czasu odpowiedzi serwera rdns.robocza.tst podczas ataku DNSflood

294 Z. Suski Rys. 16. Obciążenie procesora i karty sieciowej przed atakiem i podczas ataku DNSflood 4. Dynamiczna aktualizacja Jednym z ułatwień, jakie może oferować serwer DNS, jest możliwość dynamicznego wprowadzania danych do bazy serwera przez jego klientów. Funkcja ta jest np. wykorzystywana przez komputery w sieci lokalnej, które nie mają przypisanego stałego adresu IP. Podczas uruchamiania, system operacyjny stara się uaktualnić właściwy rekord w lokalnym serwerze DNS. Brak autoryzacji klienta może spowodować wprowadzenie do bazy serwera dowolnych sfałszowanych danych. Funkcja dynamicznej aktualizacji może być wykorzystywana przez komputery w sieci lokalnej, które nie mają przypisanego stałego adresu IP. Podczas uruchamiania, system operacyjny stara się uaktualnić właściwy rekord w zasobach serwera DNS. To rozszerzenie dotyczące funkcjonowania DNS zostało zdefiniowane w RFC 2136 [15]. Podczas badań przeprowadzono eksperyment, którego celem było wprowadzenie do bazy serwera DNS rekordu przygotowanego przez potencjalnego intruza. Eksperyment przeprowadzono dla serwera msdns (rdns.robocza.tst) i bind 4.9.1 (linbind.lin.tst). Na rysunkach 17 i 18 przedstawiono wyniki pobierania informacji o strefie z obu serwerów przed rozpoczęciem eksperymentu. Na rysunkach 19 i 20 pokazano zawartość plików strefowych rezydujących na obu serwerach (przed rozpoczęciem eksperymentu). Dodatkowo na rysunku 21 przedstawiono obraz konsoli graficznej służącej do zarządzania serwerem msdns (przed rozpoczęciem eksperymentu). Po opisanych czynnościach wstępnych uruchomiono opracowany program (exploit). Jego zadaniem było zrealizowanie procedury dynamicznej aktualizacji ze

Wybrane aspekty bezpieczeństwa DNS 295 Rys. 17. Wyniki pobrania informacji o strefie utrzymywanej przez serwer rdns.robocza.tst za pomocą programu nslookup Rys. 18. Wyniki pobrania informacji o strefie utrzymywanej przez serwer bind (linbind.lin.tst) za pomocą programu nslookup strony klienta. Można wykorzystać również program nsupdate dostępny w dystrybucji pakietu bind. Obraz ruchu sieciowego spowodowanego uruchomieniem tego programu przedstawiono na rysunkach 22 i 23. Ramkami zaznaczono najważniejsze pakiety zawierające dane aktualizacyjne. Jak się można było spodziewać, ruch sieciowy w obu przypadkach jest podobny, ale nie identyczny. Skutki ataków można obejrzeć na rysunkach 24-28. Na wszystkich tych rysunkach ramkami zaznaczono elementy, które są skutkiem przeprowadzonych ataków. Na rysunkach 24 i 25 przedstawiono wyniki pobierania informacji o strefie z obu serwerów po przeprowadzonym ataku. Na rysunkach 26 i 27 pokazano zawartość plików strefowych rezydujących na obu serwerach. Dodatkowo na rysunku 28 przedstawiono obraz konsoli graficznej służącej do zarządzania serwerem rdns. robocza.tst (po ataku).

296 Z. Suski Rys. 19. Zawartość pliku robocza.tst.dns zawierającego informacje o strefie utrzymywanej przez serwer rdns.robocza.tst przed rozpoczęciem eksperymentu Rys. 20. Zawartość pliku lin.tst.dns zawierającego informacje o strefie utrzymywanej przez serwer bind (linbind.lin.tst) przed rozpoczęciem eksperymentu

Wybrane aspekty bezpieczeństwa DNS 297 Rys. 21. Obraz konsoli służącej do zarządzania serwerem rdns.robocza.tst przed rozpoczęciem eksperymentu Rys. 22. Obraz ruchu sieciowego podczas ataku dynamicznej aktualizacji serwera rdns.robocza.tst

298 Z. Suski Rys. 23. Obraz ruchu sieciowego podczas ataku dynamicznej aktualizacji serwera bind (linbind.lin.tst) Rys. 24. Wyniki pobrania informacji o strefie utrzymywanej przez serwer rdns.robocza.tst za pomocą programu nslookup po ataku

Wybrane aspekty bezpieczeństwa DNS 299 Rys. 25. Wyniki pobrania informacji o strefie utrzymywanej przez serwer bind (linbind.lin.tst) za pomocą programu nslookup po ataku Rys. 26. Zawartość pliku robocza.tst.dns zawierającego informacje o strefie utrzymywanej przez serwer rdns.robocza.tst po ataku

300 Z. Suski Rys. 27. Zawartość pliku lin.tst.dns zawierającego informacje o strefie utrzymywanej przez serwer bind (linbind.lin.tst) po ataku Rys. 28. Obraz konsoli służącej do zarządzania serwerem rdns.robocza.tst po ataku 5. Podsumowanie W artykule zostały przedstawione wybrane zagrożenia związane z funkcjonowaniem usługi DNS oraz wyniki eksperymentów, których celem było sprawdzenie podatności wybranych serwerów DNS na ataki. Można się zorientować, że przeprowadzenie wielu ataków jest bardzo proste i możliwe do wykonania nawet przez niezbyt zaawansowanego napastnika. Przykłady zamieszczone w niniejszym artykule być może spowodują wzrost świadomości wśród administratorów systemów i przyczynią się do wzrostu bezpieczeństwa systemów, którymi się opiekują.

Wybrane aspekty bezpieczeństwa DNS 301 Dla części opisanych luk występujących w najbardziej popularnych implementacjach serwerów DNS opracowano już łaty programowe. Należy jednak zdawać sobie sprawę, że opracowanie łaty nie rozwiązuje problemu. Jest dopiero pierwszym krokiem na drodze do zbudowania bezpiecznego serwera. Taką łatę należy jeszcze zainstalować. Wydaje się to truizmem. Niestety należy o tym przypominać, gdyż większość użytkowników nie realizuje żadnych zabiegów pielęgnacyjnych w stosunku do używanego przez siebie oprogramowania. Można zaryzykować stwierdzenie, że teza postawiona we wstępie do niniejszego artykułu została udowodniona. Artykuł wpłynął do redakcji 25.03.2011 r. Zweryfikowaną wersję po recenzji otrzymano w czerwcu 2011 r. LITERATURA [1] P. Albitz, C. Liu, DNS and BIND. Edition 5, O Reilly Media Inc., Sebastopol, 2006. [2] R. Arends, R. Austein, M. Larson, D. Massey, S. Rose, DNS Security Introduction and Requirements, RFC 4033. IETF, 2005. [3] R. Arends, R. Austein, M. Larson, D. Massey, S. Rose, Resource Records for the DNS Security Extensions, RFC 4034. IETF, 2005. [4] R. Arends, R. Austein, M. Larson, D. Massey, S. Rose, Protocol Modifications for the DNS Security Extensions, RFC 4035. IETF, 2005. [5] D. Atkins, R. Austein, Threat Analysis of the Domain Name System (DNS), RFC 3833. IETF, 2004. [6] M. Borzym, Weryfikacja bezpieczeństwa serwerów DNS, praca magisterska, WAT, Warszawa, 2006. [7] M. Borzym, Z. Suski, Zagrożenia usługi DNS, Biul. IAiR, 25, 2008, WAT, Warszawa, 2008. [8] A. Daniels, H. Knief, J. Graham, R. Abell, Windows 2000 DNS, Helion, Gliwice, 2001. [9] G. Hałajko, Bezpieczeństwo serwerów DNS, praca magisterska, PJWSTK, Warszawa, 2007. [10] C. Liu, M. Larson, R. Allen, DNS on Windows Server 2003, Edition 3 O Reilly Media Inc., Sebastopol, 2003. [11] P. Mockapetris, Domain Names Concepts And Facilities, RFC 1034. IETF, 1987. [12] P. Mockapetris, Domain Names Implementation And Specification, RFC 1035. IETF, 1987. [13] Z. Suski, Badania podatności usługi DNS na wybrane zagrożenia, Biul. IAiR 28, WAT, Warszawa, 2010. [14] M. Tomaszewski, Pharming-Ataki DNS cache poisoning, Hakin9, 4, 2005, 14-22. [15] P. Vixie, S. Thomson, Y. Rekhter, J. Bound, Dynamic Updates in the Domain Name System (DNS UPDATE), RFC 2136. IETF, 1997.

302 Z. Suski Z. SUSKI Selected aspects of DNS security Abstract. The paper presents the threats connected with DNS. To those threats, we can count cache poisoning, DoS attacks, and dynamic updating of server database abusing. The paper presents the results of penetrative tests. The goal of those tests was verification of DNS servers susceptibility to some threats. The goal of the presented work is to prove a thesis that at least some properties of DNS are dangerous. They can provoke total disruption of the network. Moreover, attacks that utilize presented susceptibility are relatively easy to perform them. Keywords: informatics, computer networks security, DNS threats