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. |
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
Nazwa padła ofiarą szantażystów, inni polscy hosterzy też zagrożeni?
22
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Premiera Diablo 3 wzbudziła dyskusję na temat gier, które zawsze chcą być online
19
Nowy problem z Windows 8: bootuje się za szybko
10
Amerykańscy rodzice straszeni „e-narkotykami” dostępnymi w Sieci
21
Anonymous upubliczniają 1,7 GB danych wykradzionych Departamentowi Sprawiedliwości USA
11
Blueseed: libertariańska sztuczna wyspa przyciągnęła już ponad sto startupów z całego świata
8
Rewolucja w Firefoksie, nowa łatka czterokrotnie ograniczyła zużycie pamięci
20
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
CVDazzle: makijaż jest w stanie pokonać automatyczne systemy ulicznego monitoringu
3
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Ubuntu 12.04 LTS już dostępny: stabilna dystrybucja na następne pięć lat?
28
Zostań webmasterem polskiego rządu, zarobisz na komfortowe życie dla siebie i swojej rodziny
33
Społeczność
bartez Niech zaczną jeszcze bardziej ograniczać programistów, to zdziwią się ilu...
Dave Smith Jestem Pastor Dave Smith prywatny pożyczkodawca pieniądze, z czego ponad...
marcusm Fajna reklama produktu za 500 zł
rza a to starsze aplikacje nie będą działać i kompilacja pod Windows SDK 7.1...
Krzaczor @Jakub Szymański: Możesz zalinkować do opisów jakichś polskich przypadków...
Krzaczor Ale oprogramowanie skompilowane dla Windows 7 ruszy przecież na ósemce...
ankaa Ja to czytam "plejsnow", a nie placek nał :) Nie wiem, co macie z tym...
- Najdmen.pl: Konta www z wyłączonym licznikiem transferu od IONIC.pl (1)
- 2BE.PL: [Oferta] Promocja jak złoto w 2BE.PL (1)
- 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)
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ł |








