BIND: luka remote DoS powszechnie wykorzystywana
W dniu 28 lipca 2009 Micha Krause zgłosił błąd dotyczący popularnego serwera DNS — BIND9, który okazał się być podatny na zdalny atak typu DoS (Denial-of-Service).
Wykorzystanie luki umożliwia wyłączenie serwera BIND9 za pomocą pojedynczego pakietu UDP, o ile atakowany serwer DNS jest serwerem typu master przynajmniej dla jednej ze stref. Należy przy tym pamiętać, że zgodnie z RFC 1912 Common DNS Operational and Configuration Errors każdy serwer DNS powinien być podstawowym serwerem dla stref specjalnych, typu localhost, 0.0.127.in-addr.arpa, 255.in-addr.arpa, 0.in-addr.arpa.
Atak polega na wykorzystaniu mechanizmu aktualizacji DNS opisanego w RFC 2136 Dynamic Updates in the Domain Name System (DNS UPDATE). Atakujący wysyła spreparowane zapytanie do serwera DNS z ustawioną wartością opcode na 5 (UPDATE) oraz rekordem ANY w sekcji Prerequisite. Przetworzenie takiego pakietu skutkuje niespełnioną asercją w funkcji dns_db_findrdataset(), i w efekcie kończy się wyjściem serwera BIND.
Warto w tym miejscu dodać, że w sieci pojawiły się rady, jak zablokować tego typu ataki przy pomocy prostej reguły w iptables. Niestety, są one nieskuteczne ponieważ RFC 2136 2.1 stanowi, że tego typu złośliwe zapytanie może zostać wysłane również przy użyciu protokołu TCP. Zalecanym rozwiązaniem jest aktualizacja serwera BIND do najnowszej wersji. Ostatecznie można zdecydować się również na blokowanie komunikacji do serwera master, zostawiając dostępne jedynie serwery slave. Warto tutaj nadmienić, że wyłączenie funkcji dynamicznej aktualizacji (np. poprzez opcję allow-update) – nie chroni przed opisywanym atakiem.
Z uwagi na trywialność kodu powszechnie dostępnego exploita nie dziwią informacje podawane przez Internet Systems Consortium o tym, że luka ta jest już powszechnie wykorzystywana w Internecie. Mogą o tym świadczyć również nasze obserwacje dokonane przy użyciu systemu wczesnego ostrzegania o zagrożeniach w sieci ARAKIS.
ARAKIS zaobserwował rozproszone skanowania w poszukiwaniu serwerów BIND. Pierwsze połączenia zaczęły być rejestrowane przez jeden sensor przed południem 28 lipca. W dniu dzisiejszym poszukiwania “przeszły” na dwa inne sensory. Skanowanie odbywa się dwuetapowo. Najpierw nawiązywane jest połączenie TCP na porcie 53 (po handshake’u połączenie było natychmiast kończone). Następnie do adresów, z którymi udało się nawiązać połączenie TCP, z użyciem UDP przesyłane było spreparowane zapytanie DNS z tekstem VERSION.BIND dla klasy CHAOS. W odpowiedzi na takie zapytanie serwery BIND mogą zwracać (jeżeli są tak skonfigurowane) numer swojej wersji.

Były w ten sposób skanowane kolejne adresy IP należące do honeynetu danej sondy. Spodziewamy się widzieć jego kontynuację na kolejnych sensorach.
Tego typu rekonesans służy do stworzenia listy adresów, pod którymi znajdują się podatne serwery DNS. Prawdopodobnie następnym krokiem może być atak na nie z użyciem wspomnianego wcześniej exploita.
Chociaż obserwowane w systemie ARAKIS skanowania nie mają charakteru masowego, to ich liczba może się zwiększać z czasem wzrostu zainteresowania tą luką. Warto jeszcze dodać, że obserwowany przez nas rekonesans pochodzi z adresów IP z terytorium Polski.
Informacje zewnętrzne:
Tags: ARAKIS, BIND9, DDNS, Debian, DNS, DoS, exploit, podatność












