Od luki do eksploita

Opublikowano kolejny eksploit, umożliwiający skuteczne ataki na Windows Vista i Windows Server 2008. Na tym przykładzie opiszemy proces wykorzystania luk w bezpieczeństwie.

Systemy operacyjne Microsoftu posiadają bogatą historię luk w bezpieczeństwie. Chociaż producent wydaje łaty, najostrzejsza krytyka dotyka go jednak za czas od zgłoszenia luki do wydania aktualizacji, która usunie daną podatność. Ponieważ proces ten nie jest idealny, wiele komputerów nie posiada zainstalowanych wymaganych aktualizacji. Z tego faktu korzystają organizacje przestępcze, które masowo przejmują kontrolę nad komputerami z Windows, organizując przejęte maszyny w sieci botnet. Do przejęcia kontroli wymagana jest przynajmniej jedna możliwa do wykorzystania luka, która daje szansę uruchomienia obcego kodu na poziomie uprawnień systemowych. Luka, którą zgłoszono 7 września, jest taką właśnie podatnością i wynika z niewłaściwego przetwarzania pakietów sieciowych przez sterownik systemu SMB2, wykorzystywanego w systemach operacyjnych Windows Vista, Windows 2008 Server i Windows 7 RC. Starsze wersje jej nie posiadają, gdyż nie wykorzystują SMB2. Wspomniana podatność jest związana ze sterownikiem SRV2.SYS. Obecny w nim fragment kodu załamuje się, a ponieważ sterownik ten jest uprzywilejowany i niezbędny do pracy innych komponentów Windows, załamaniu ulega cały system, sygnalizując błąd STOP (PAGE_FAULT_IN_NONPAGED_AREA), popularnie zwany "niebieskim ekranem śmierci" (BSOD).

Załamanie i własny kod

Wiele błędów w usługach sieciowych Windows było na tyle poważnych, że umożliwiało zdalne przejęcie kontroli nad atakowanym systemem. Zazwyczaj w początkowym stadium opracowania eksploita wywołuje się załamanie systemu i może służyć do ataków odmowy obsługi, dopiero w następnym etapie hakerzy dopracowują kod, który ma przejąć kontrolę nad systemem. Kolejnym stadium wykorzystania luki jest opracowanie mechanizmów masowego zarażania systemów i roznoszenia malware. Masowe wykorzystywanie danej luki kończy się, gdy producent wyda aktualizację usuwającą daną podatność i łatka ta zostanie zaaplikowana w większości komputerów.

Ten etap, gdzie specjalnie przygotowane nagłówki powodują załamanie systemu, mamy już za sobą. Włamywacze opracowali niedawno zestaw danych, który powoduje uruchomienie dowolnego kodu. Do takich samych wniosków doszedł Stephen Fewer, specjalista w Harmony Security, który niezależnie od nich opracował własny kod, tzw. payload. Wiadomo zatem na pewno, że do przejęcia kontroli nad wystarczy dostęp do połączenia z protokołem SMB2, co może mieć miejsce przy wyłączonej zaporze sieciowej lub przy włączeniu zaufanego profilu sieciowego w obrębie sieci lokalnej. Na szczęście atak bezpośrednio przez Internet byłby dość trudny, ze względu na powszechne blokowanie połączeń na porty związane z usługami sieciowymi Windows. Mimo wszystko, błąd jest poważny i może zostać wykorzystany przy konstrukcji nowego robaka, który samodzielnie by się replikował w obrębie sieci firmowej, podobnie do znanego Confickera. Różnica dotyczyłaby jednak skali ataku - nie działałby on na systemy korzystające ze starszej wersji SMB, jak Windows 2000/XP/2003.

Sam błąd w obsłudze nagłówków SMB2 pojawił się po wydaniu aktualizacji, która usuwała inny problem w bezpieczeństwie SMB2 (KB942624 -MS07-063). Jest to jeden z przykładów, gdzie aktualizacja usuwa jedną lukę w bezpieczeństwie, wywołując inną. Nie wiadomo kiedy Microsoft opublikuje aktualizację do wspomnianego błędu.