69 procent serwerów DNS w Polsce podatnych na atak!
Trzy tygodnie temu w Internecie pojawiły się informacje o wykrytej słabości protokołu DNS, pojawiającej się w wielu powszechnie dostępnych implementacjach tego protokołu, która umożliwiała atak „zatrucia” pamięci serwera DNS (ang. cache poisoning). Odkrywcą tej luki jest Dan Kaminsky. Dział Domen NASK sprawdził, jak wygląda ten problem w Polsce, jaki jest wektor ataku i jak sytuacja przedstawia się po 3 tygodniach od publikacji newsa o dziurze.
Działanie systemu DNS
Jak powszechnie wiadomo, DNS odpowiada za translacje nazw domen na odpowiadające im adresy IP. W uproszczeniu, kiedy pytamy o adres „www.cache-poisoning.pl”, uzyskujemy informację, że odpowiadający tej nazwie adres IP to 193.59.201.40. W tym celu resolwer tworzy pakiet zwany zapytaniem i wysyła go do serwera DNS. Wymiana takich pakietów nazywa się transakcją.
W Sieci krąży wiele pakietów, dlatego w celu uporządkowania tego transakcyjnego chaosu wykorzystuje się identyfikator transakcji (transaction IDs). W przypadku zapytań DNS takim identyfikatorem jest QID (query ID). Jest to identyfikator składający się na pierwsze 16 bitów pakietu DNS.
Opis problemu
Gdzie leży słabość tego mechanizmu? Załóżmy, że użytkownik chce uzyskać od autorytatywnego serwera poprawną odpowiedź na zapytanie o adres IP dla domeny www.cache-poisoning.pl, czyli 193.59.201.40. Haker chce, aby użytkownik uwierzył, że www.cache-poisoning.pl to 1.2.3.4. W tym celu zasypuje użytkownika podstawionymi pakietami DNS zawierającymi fałszywy adres IP dla tego zapytania. Czym różnią się odpowiedzi wysyłane przez autorytatywny serwer, a czym te złe, wysyłane przez hakera? Różnicą jest właśnie nasz identyfikator QID.
W roku 1995 zwrócono uwagę na problem przewidywalności QID. Algorytmy zwiększały identyfikatory kolejno o 1, nie wprowadzając żadnej losowości. Haker musiał być tylko szybszy od autorytatywnego serwera w dostarczeniu pakietu do użytkownika, żeby zatruć jego cache.
Problem został rozwiązany przez wprowadzenie losowych QID-ów. Implementacja tego rozwiązania ma jednak pewne wady:
-
im więcej zapytań wyśle użytkownik do autorytatywnego serwera, tym większe jest prawdopodobieństwo, że haker trafi w poprawny QID,
-
w kiepskich generatorach liczb pseudolosowych losowość może być przewidywalna,
-
16 bitów to za mała liczba w dzisiejszych czasach, żeby zapewnić odpowiedni poziom bezpieczeństwa.
Istnieje jeszcze inny sposób na zatrucie pamięci serwera DNS. Nazywa się „RRset cache poisoning” i związany jest z samą budową pakietu DNS. Pakiet DNS nie ma bowiem stałej wielkości – składa się z nagłówka, kilku flag oraz RRset (Resource Records set). W pakiecie DNS znajduje się do trzech takich RR (Resource Records):
-
Resource Record zawierający odpowiedź na nasze zapytanie (Answer RR), np. rekord A 193.59.201.40 dla zapytania o adres IP dla domeny www.cache-poisoning.pl,
-
Resource Record zawierający informacje o serwerach autorytatywnych (Authority RR),
-
Resource Record zawierający wszelkie dodatkowe informacje (Additional RR), czasem zwany „glue recordem”.
Gdzie leży słabość takiej budowy pakietu? Wyobraźmy sobie następujący scenariusz. Haker tak modyfikuje swój serwer DNS, że za każdym razem w odpowiedzi oprócz poprawnych danych w sekcji Answer i Authority wysyła także spreparowane dane w sekcji Additional. Zakłada serwis www.zły-serwis.pl. Instaluje na nim wiele podstron, których adresy DNS znajdują się na kontrolowanym przez niego serwerze DNS (np. linki do obrazków). Nieświadomy użytkownik wchodzi na taką stronę, korzystając przy rozwiązywaniu nazw domenowych z resolwera swojego ISP, i otrzymuje informacje o adresach IP dla serwisu zły-serwis.pl, ale w sekcji dodatkowej dostaje informacje, że adres www.dobry-serwis.pl to 1.2.3.4, a resolwer jego ISP zapisuje tę informacje w swojej pamięci. Następnym razem, kiedy użytkownik wpisze w przeglądarkę adres www.dobry-serwis.pl, zostanie przekierowany na adres 1.2.3.4.
Tak wyglądała przeszłość. Opracowane mechanizmy zabezpieczające zostały już dawno wprowadzone. Odpowiednie algorytmy zapewniają losowość identyfikatorów QID. Jeżeli chodzi o problem dodatkowych informacji w pakiecie DNS, to rozwiązane zostało to w ten sposób, że pytając o rekordy ze strefy dobry-serwis.pl, zapamiętujemy tylko rekordy z tej strefy, pomijając informacje z pozostałych.
A jednak problem zaistniał i znalazł go Dan Kaminsky. Załóżmy, że haker udaje, iż użytkownik pyta o adres aaaaa.dobry-serwis.pl. Zapytanie skierowane zostaje do resolwera ISP naszego nic niepodejrzewającego użytkownika. Resolwer dostawcy Internetu wysyła zapytanie do autorytatywnego serwera obsługującego strefę dobry-serwis.pl i otrzymuje informacje od autorytatywnego serwera, że taka domena nie istnieje (NXDOMAIN). W tym czasie haker próbuje trafić ze swoją odpowiedzią w pakiet skierowany do resolwera ISP. Haker przegrywa i resolwer dostaje prawidłowy pakiet. Haker ponawia próbę, tym razem dla domeny aaaab.dobry-serwis.pl, i również mu się nie udaje. Jednak gdzieś w okolicy domeny cvbxa.dobry-serwis.pl wygrywa wyścig z serwerem autorytatywnym i resolwer ISP dostaje fałszywy pakiet zawierający adres IP dla domeny cvbxa.dobry-serwis.pl. Ale tym razem w pakiecie znalazło się coś więcej! W sekcji Additional tego pakietu znajduje się informacja, że domena www.dobry-serwis.pl ma adres IP 1.2.3.4! W ten sposób haker połączył dwie opisane wyżej techniki. Zatruł cache resolwera ISP i oszukał użytkownika.
Rozwiązaniem tego problemu było wprowadzenie dodatkowych 16 bitów losowości w postaci zmiennego portu źródłowego resolwera, z którego wysyłane są zapytania DNS. Tak naprawdę jest to tylko obejście problemu. Problem RRset cache poisoning istnieje nadal – zmieniła się tylko liczba losowych portów do zgadnięcia z wielkości określonej przez 16 bitów do 32 bitów.
Sytuacja obecna
Jak wygląda sytuacja w naszym kraju dzisiaj, trzy tygodnie po pojawianiu się informacji o luce i odpowiednich łatkach? Kiepsko, żeby nie powiedzieć bardzo kiepsko.
Po przeanalizowaniu ponad 150 milionów zapytań DNS do serwerów domeny .pl okazało się, że ponad 2/3 resolwerów (znajdujących się w polskich klasach adresowych, bo takie adresy IP zostały przeanalizowane) jest nadal podatna na ten atak. Dziwne, że tak poważny problem został w taki sposób zbagatelizowany, a tzw. administratorzy zarządzający DNS-em i użytkownicy końcowi ze swoimi systemami (Windows/Linux/Mac OS X) nie załatali swoich maszyn.
W Sieci bowiem od dawna dostępne są odpowiednie aktualizacje na każdą platformę i ich zainstalowanie nie stanowi większego problemu zarówno dla doświadczonych administratorów, jak i dla zwykłych użytkowników.
Kilka dni temu w Sieci pojawił się również ogólnie dostępny exploit wykorzystujący lukę w systemie DNS. O ile wcześniej należało wykazać się znaczną wiedzą na temat bezpieczeństwa protokołu DNS, żeby z sukcesem zatruć cache serwera, o tyle teraz wystarczy skorzystać z gotowego narzędzia.
Dane
-
Liczba przeanalizowanych zapytań: 157 287 682,
-
Liczba różnych resolwerów: 23 022,
-
Liczba resolverów podatnych na atak: 15 924 (69%).
| Zbigniew Jasiński jest specjalistą ds. DNS-u w Dziale Domen NASK, znanym ekspertem bezpieczeństwa, specjalizującym się w systemach operacyjnych i sieciach komputerowych. |
Polecamy
Reklama
Komentarze
Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka
(słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.
Popularne
Pobierałeś pirackie pliki? Uważaj! Kontrole antypirackie w domach użytkowników to codzienność
32
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Debata w sprawie ACTA: internauci spodziewali się chyba czegoś innego
14
Wynalazca WWW przed sądem: walczy tam o wolny dostęp do webowych technologii dla każdego
8
PHP 5.3.9 nie pozwoli hakerom zawiesić serwera. Pozwoli za to przejąć nad nim kontrolę
28
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
Internet w EU bez Facebooka i Google? Firmy nie mają wyboru: albo się dostosują, albo…
10
MSWiA zamówiło narzędzia do „złamania” Tora i podsłuchiwania internautów. Czy złamało przy tym prawo?
89
[Aktualizacja] Facebook zablokował Demotywatory.pl. W czym zawiniły?
36
FBI zamknęło Megaupload. Anonimowi dali się sprowokować. Teraz ich akcja uzasadni potrzebę SOPA?
17
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
„Donald matole, twój rząd dopadną kibole” – hakerska elita przyłącza się do walki z ACTA
23
Klamka jeszcze nie zapadła. Minister prosi Donalda Tuska, by wstrzymał się z podpisywaniem ACTA
24
Społeczność
WebDev @slawek22
Tak jak ze wszystkim tak i z prawem własności można przesadzić...
Nie dla ACTA. Nie dla INDECT. Nie dla europejskiego superpaństwa policyjnego. "rejestruje dane statyczne tj. wygląd podpisu, jak i dynamiczne: czas...
slawek22 @WebDev:
Te korporacje i "twórcy" starej daty których tak bronisz nie...
darekp @eimi, a co za różnica między zdobytym pieniędzmi a nie? Spróbuj zdobyć...
Jan "Tablet, na którym można uruchomić prawdziwe Microsoft Office, ładnie...
Maciekkkk Strona nie działa!
WebDev @eimi®
Zdobyte inaczej niż pieniędzmi, czyli jak? Czy mógłbyś to rozwinąć...
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
- Marek: problem z menu (2)
- Marek: Własne checkboxy w HTML,CSS (1)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |








