DNS spoofing

Atak polegający na podmianie odpowiedzi serwera DNS, tak aby przekierować ofiarę na fałszywą stronę zamiast prawdziwej. Nazywany też zatruwaniem pamięci DNS.

DNS spoofing to atak, w którym ktoś podsuwa Ci sfałszowaną odpowiedź serwera DNS, żeby na zapytanie o adres (np. twojbank.pl) zwrócić błędny adres IP. W efekcie wpisujesz prawidłową nazwę w przeglądarce, a ląduje Cię na serwerze atakującego — wizualnie identycznym, ale podstawionym. Bliźniaczy termin to DNS cache poisoning (zatruwanie pamięci podręcznej), czyli wariant, w którym fałszywy wpis trafia do cache’a resolvera i obsługuje potem wszystkich, którzy o tę domenę pytają.

Jak to działa

DNS w klasycznej postaci działa po UDP i — bez dodatkowych zabezpieczeń — nie weryfikuje, kto naprawdę przysłał odpowiedź. Klient wysyła zapytanie i czeka na odpowiedź z pasującym portem źródłowym oraz 16-bitowym polem transaction ID. Jeśli atakujący zdąży podrzucić sfałszowaną odpowiedź z poprawnym ID, zanim dotrze prawdziwa — wygrywa. Stąd dwa główne scenariusze: podsłuch w tej samej sieci (atakujący widzi zapytanie i odpowiada szybciej) albo zdalne zgadywanie/zalewanie odpowiedziami, by trafić w transaction ID i zatruć cache resolvera.

Słynny Kaminsky attack z 2008 roku pokazał, że przy słabej losowości tych pól zatrucie cache’a jest realne na masową skalę. Dlatego dziś standardem jest randomizacja portu źródłowego, a docelowo DNSSEC, który podpisuje rekordy kryptograficznie.

Przykład z praktyki

Na warsztatach z bezpieczeństwa klasykiem jest ettercap albo dnsspoof (z pakietu dsniff) w lokalnej sieci. Schemat: najpierw ARP spoofing, żeby ruch ofiary szedł przez Twoją maszynę, potem przekierowanie domen na własne IP. W ettercapie wpisujesz reguły do pliku etter.dns, np.:

*.przyklad.pl A 192.168.1.66

Od tego momentu każde zapytanie o tę domenę z zaatakowanej maszyny dostaje Twój adres. To laboratorium — robisz to tylko we własnej sieci testowej, nie w cudzej.

Częste błędy i mity

Mit pierwszy: „mam HTTPS, więc jestem bezpieczny”. Spoofing DNS i tak Cię przekieruje, a jeśli klikniesz przez ostrzeżenie o certyfikacie albo atakujący ma podstawiony cert — po Tobie. Certyfikat chroni tylko wtedy, gdy faktycznie sprawdzasz, czemu przeglądarka krzyczy. Mit drugi: mylenie DNS spoofingu z DNS hijacking — to drugie polega na przejęciu ustawień DNS (na routerze, w koncie domeny), a nie na podrobieniu pojedynczej odpowiedzi. Na co uważać po stronie obrony: włącz DNSSEC tam gdzie się da, używaj resolverów z randomizacją portów, rozważ DNS over HTTPS/TLS i nie ignoruj alertów certyfikatów.

Pojęcia powiązane

DNS cache poisoning, DNSSEC, ARP spoofing, man-in-the-middle, DNS hijacking, pharming, DNS over HTTPS (DoH), Kaminsky attack.