Zagrożenia w Internecie
Transkrypt
Zagrożenia w Internecie
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