Przegląd zagrożeń związanych z DNS Tomasz Bukowski, Paweł Krześniak CERT Polska Warszawa, styczeń 2011
Agenda Agenda Zagrożenia w Internecie Komunikacja w DNS Zagrożenia w DNS Metody i skutki ataków
Zagrożenia w Internecie
Zagrożenia w Internecie Atak na zdalny serwer Atak na łącze Atak na stacje roboczą
Ataki na zdalny serwer wykorzystanie niezałatanej luki kradzież hasła dostępowego modyfikacja lub usunięcie danych dostęp do wrażliwych informacji umieszczenie fałszywych/szkodliwych informacji podmiana treści
Ataki na łącze sniffing spoofing dostęp do wrażliwych danych modyfikacja przesyłanych informacji
Ataki na stację roboczą wykorzystanie niezałatanej luki malware dostęp do wrażliwych informacji przejęcie kontroli nad komputerem
Usługa DNS i ataki na nią
Struktura DNS
Rozwiązywanie nazwy
Komunikacja TCP lub UDP port 53 Brak szyfrowania TCP Protokół połączeniowy (3-way handshake) Mało wydajny dla potrzeb DNS (RTT) Rzadko wykorzystywany Parametry połączenia: IP źródłowe, port źródłowy IP docelowe, port docelowy Numery sekwencyjne połączenia
UDP Ponad 99,9% ruchu DNS Protokół bezpołączeniowy Protokół bezstanowy Parametry połączenia: IP źródłowe, port źródłowy IP docelowe, port docelowy Rozszerzenie EDNS0 pozwala na obsługę wiadomości dłuższych niż 512 bajtów (domyślnie 4kB)
Struktura pakietu DNS
Parametry charakteryzujące komunikacje DNS Warstwa 3 i 4 (IP+UDP) Adres IP Numer portu źródłowego 16 bitów DNS QNAME ID 16 bitów
Co zawiera pytanie DNS losowa wartość QUERY-ID flaga QUERY=0 jeden rekord ANSWER - pytanie brak innych danych
Co zawiera odpowiedź DNS ta sama wartość QUERY-ID flaga QUERY=1 sekcja ANSWER identyczna jak w zapytaniu DNS informacje dotyczące domeny w pozostałych sekcjach (TTL - czas ważności informacji)
Rodzaje informacji zawartych w DNS rekordy A oraz AAAA - translacja nazwy domenowej do adresu IP rekord MX - nazwy serwerów pocztowy obsługujący pocztę dla danej domeny rekordy NS - nazwy serwerów DNS obsługujący daną domenę rekord SRV - informacje o serwisach/usługach dostępnych dla danej domeny rekord CNAME - nazwa kanoniczna - alias do nazwy (innej) domenowej
Miejsca ataku NA KOMUNIKACJE DNS
Na serwer DNS Włamanie do systemu Zatruwanie cache tzw cache-poisoning
Na komunikacje Man-in-the-middle Cache poisoning
Na stację roboczą Rożnego rodzaju malware
Skutki ataków Dostarczenie fałszywych informacji podmiana stron WWW ( web site impersonation ) przejmowanie poczty email obchodzenie zabezpieczeń na stronach WWW dzięki funkcji zapomniałem hasła
Skutki ataków
Skutki ataków
Skutki ataków przykład 08-01-2011 atak na Google Bangladesz google.com.bd
Cache poisoning Łatwy dzięki niezmiennym parametrom komunikacji: Adresy IP Porty (źródłowy i docelowy to 53/udp) Zmienne parametry komunikacji: ID zapytania DNS (16 bitów)
Cache poisoning sposób ataku W 1999 Daniel Bernstein zauważył że 16 bitowowe ID transakcji może zostać odgadnięte poprzez atak brute force Odpowiedź społeczności DNS: TTL rekordów ogranicza atakującego do jeden próby sfałszowania odpowiedzi na okres ważności rekordu (typowo 1 dzień), co uniemożliwi skuteczny atak W lipcu 2008 Dan Kaminsky zweryfikował te twierdzenia i pokazał jak ominąć TTL
Cache poisoning sposób ataku (c.d.) TTL jest atrybutem każdego rekordu, więc aby wymusić zapytanie z jednego serwera do drugiego należy generować zapytania o losowe nazwy w tej domenie: abc1.domena.pl abc2.domena.pl abc3.domena.pl...
Cache poisoning sposób ataku (c.d.) W strumieniu oszukanych odpowiedzi od serwera należy spreparować sekcje AUTHORITATIVE i/lub ADDITIONAL i podać tam inne serwery NS dla atakowanej domeny lub ich inne adresy IP. Serwer DNS otrzymując nowe adresy IP zapamięta je i przy rozwiązywaniu kolejnych nazw użyje serwerów DNS atakującego
Obrona przed cache-poisoningiem Filtrowanie pakietów z oszukanym adresem źródłowym u samego źródła ([BCP38, RFC3704] urpf, czyli Unicast Reverse Path Forwarding) Użycie TCP Randomizacja portu źródłowego (dodatkowe max 16 bitów) Przy losowym ID i porcie źródłowym atak nadal jest możliwy, ale do jego przeprowadzenia potrzeba dużego pasma kilkanaście kilkdziesiąt Mbit i kilku dni (1-10) http://labs.nic.cz/files/labs/dns-cache-poisoning-attackanalysis-summary.pdf
Obrona przed cache-poisoningiem (c.d.) Zwiększenie liczby bitów dla ID transakcji DNS poprzez zmianę wielkości liter w zapytaniu DNS Trick opisany w draft-vixie-dnsext-dns0x20 Otrzymujemy N dodatkowych bitów dla ID transakcji, gdzie N równe jest sumie długości etykiet pytanej nazwy: www.nask.pl 111 1111 11 WwW.NaSk.Pl 010 0101 01 WWW.nask.PL 000 1111 00 Brak pewności, że będzie to zaimplementowane we wszystkich popularnych serwerach DNS, gdyż nie jest to RFC. DNSSEC
Podsumowanie
Pytania