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.