Spoofing DNS i zatruwanie cache: jak działają i co je powstrzymuje
Spoofing DNS nie wymaga przechwytywania prawdziwego ruchu. Wymaga trafnego zgadnięcia i dotarcia pierwszym — cache resolvera przyjmuje tę odpowiedź, która dotrze przed prawdziwą.
Czym jest spoofing DNS
Spoofing DNS fałszuje odpowiedź DNS tak, by resolver zapisał w cache i serwował adres IP wybrany przez atakującego zamiast prawdziwego. Gdy sfałszowana odpowiedź trafi już do cache, każdy klient korzystający z tego resolvera ją otrzymuje, dopóki TTL nie wygaśnie — bez potrzeby dalszych działań atakującego.
Problem bycia poza trasą
Atakujący, który nie siedzi na trasie sieciowej między resolverem a prawdziwym serwerem autorytatywnym, nie może po prostu odczytać ani zmodyfikować prawdziwego ruchu. Zamiast tego sfałszowaną odpowiedź trzeba odgadnąć i dostarczyć, zanim nadejdzie prawdziwa odpowiedź autorytatywna — to wyścig, nie przechwycenie.
Co trzeba odgadnąć
Resolver identyfikuje ważną odpowiedź po 16-bitowym identyfikatorze transakcji i porcie źródłowym UDP, z którego wysłano zapytanie. Atak Kaminsky'ego z 2008 roku pokazał, jak zmienić mało prawdopodobne pojedyncze zgadywanie w praktyczny atak: nakłonienie resolvera do odpytania o wiele różnych, nieistniejących subdomen tej samej domeny daje atakującemu wiele niezależnych wyścigów o ten sam slot w cache, bo każde udane sfałszowanie zatruwa rekordy domeny nadrzędnej.
Skutek udanego zatrucia
Po zatruciu resolver po cichu przekierowuje każdego klienta, który go odpytuje — na stronę phishingową, punkt wstrzykiwania reklam, cokolwiek wybrał atakujący — bez dotykania choćby jednego systemu ofiar, przez cały czas trwania TTL sfałszowanego rekordu.
Dlaczego DNSSEC to powstrzymuje
Weryfikujący resolver sprawdza kryptograficzny łańcuch podpisów aż do zaufanego korzenia, zanim zaakceptuje odpowiedź. Atakujący, który wygra wyścig o zgadnięcie, wciąż nie posiada prywatnego klucza podpisującego strefy, więc sfałszowana odpowiedź nie może wygenerować ważnego podpisu — poprawne odgadnięcie identyfikatora transakcji i portu przestaje mieć znaczenie, gdy to sama walidacja sprawdza autentyczność.
Sprawdź DNSSEC dla domeny
Zobacz teorię w praktyce — uruchom Sprawdzanie DNSSEC dla własnej domeny.