WMF - to nie dziura, tak miało być?

Dziura w formacie WMF nie jest tak do końca rezultatem odkrycia błędu programistycznego a raczej odkryciem dawno zapomnianej funkcji Windows - twierdzą specjaliści z F-Secure. Czy czeka nas wysyp nowych dziur w Windows?

Odkryta niedawno dziura w formacie Windows Metafile pod względem stopnia zagrożenia dorównuje największym dziurom w historii Windows. Jej charakter klasyfikuje ją zapewne gdzieś pomiędzy możliwą do wykorzystania zdalnie dziurą w RPC DCOM a licznymi dziurami w MSIE i Outlooku, pozwalającymi na uruchomienie kodu bez wiedzy użytkownika.

Kod w obrazku?

Specjaliści z F-Secure zauważyli, że dziura w WMF wcale nie jest dziurą w dosłownym tego słowa znaczeniu - do wywołania złośliwego kodu wykorzystywana jest natywna funkcja przypisana do tego formutu w Windows. Konkretnie chodzi o funkcję Escape i jej podfunkcję SetAbortProc będące częścią standardowego Windows GDI (Graphics Device Interface).

Funkcja ta oferowała programiście możliwość zakończenia zadania drukarki. Technicznie odbywało się to tak, że sam obrazek w formacie WMF mógł zawierać wykonywalny kod, który był następnie wskazywany do wywołania przez funkcję SetAbortProc.

Z punktu widzenia bezpieczeństwa brzmi to przerażająco, lecz należy pamiętać że format WMF został stworzony latach 80-tych. Były to czasy, kiedy Windows - jeśli przy logowaniu podano błędne hasło - pytał "czy nie możesz przypomnieć sobie hasła?" i... usłużnie oferował jego zmianę.

Gorzej niż się wydawało

Niestety, fakt odkrycia tej funkcji w oficjalnym API Windows oznacza, że prawdopodobnie podatne są na nią wszystkie znane wersje Windows wypuszczone od lat 80-tych.

Co ciekawe, sam Microsoft na ten temat na razie milczy i brak jest oficjalnej poprawki. Prawdopodobnie jej wypuszczenie zajmie trochę czasu, biorąc pod uwagę, że musi ona dotyczyć wszystkich serwisowanych jeszcze przez Microsoft wersji. Wstępny termin to 9. stycznia.

Ale co mają do tej pory zrobić tysiące administratorów, których sieci są pełne podatnych na tę dziurę Windows? Sytuację pogarsza fakt, że 31. grudnia opublikowany został nowy generator plików WMF pozwalającym na przesyłanie exploita w zmutowanych wersjach, niewykrywanych przez antywirusy.

Nieoficjalna łatka

Do tego czasu można sobie poradzić za pomocą wyrejestrowania odpowiedniej biblioteki (opisane w poprzednim artykule), co jednak spowoduje sporą utratę funkcjonalności - nie będzie można podglądać ani drukować obrazków za pomocą wbudowanej w Windows przeglądarki.

Drugie rozwiązanie tonieoficjalna łatka opublikowana przez HexBlog. Została przetestowana tylko na głównych wersjach Windows, ale działa. W tej szczególnej sytuacji łatka ta doczekała się nawet apelu od zespołu SANS, którzy przekonują że warto ją zainstalować nawet w firmach, których polityka dopuszcza tylko poprawki oficjalne, od Microsoftu.

Ciekawostką jest fakt, że autorem nieoficjalnej łatki jest Ilfak Guilfanov, programista rosyjskiego pochodzenia, który w latach 90-tych stworzył legendarny disassembler IDA. Poprawka instaluje się jako biblioteka rezydentna i przechwytuje wszystkie odwołania do feralnej funkcji SetAbortProc, blokując je.

Historia ciągnie się za Windows

Wraz z dziurą w WMF po raz kolejny jak bumerang wraca stary wykręt kolejnych rzeczników Microsoftu, którzy na początku lat 90-tych większość dziur usprawiedliwiali słynnym stwierdzeniem "It's not a bug, it's a feature" ("to nie jest dziura, tylko funkcja systemu").

Czy fakt odkrycia tej funkcji przez podziemie zmieni coś w bezpieczeństwie Windows? Zapewne tak. Jak pokazuje historia, po takim pionierskim odkryciu nowej klasy ataków do pracy przystępują od razu rzesze bezimiennych włamywacze, którzy drążą temat i wyszukują nowe dziury tego rodzaju. W ciągu kolejnych miesięcy będziemy mieć zapewne kilka deja-vu związanych z dawno zapomnianymi funkcjami Windows API...

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200