Programy, które balansują na krawędzi

Nurkowanie wśród rekinów staje się popularną rozrywką: znudzeni monotonią wielkomiejskiego życia Kowalscy wchodzą tym celu do metalowej klatki zanurzonej w przybrzeżnych wodach RPA. Przywabione krwawymi kawałkami mięsa żarłacze rozpędzają się i z hukiem uderzają o stalowe pręty. A Kowalscy, bezpieczni w swoich akwalungach, wykonują spektakularne zdjęcia z wakacji.
Niebezpieczne wtyczki można wyłączyć w Rejestrze za pośrednictwem killbitów.
Niebezpieczne wtyczki można wyłączyć w Rejestrze za pośrednictwem killbitów.

Oczywiście nikt z uczestników takich wypraw nie odważyłby się wejść do wody bez ochrony, jaką zapewnia klatka. Jednak tak właśnie postępuje wielu internautów – ignorując ważne aktualizacje, nieomal zapraszają hakerów do zwiedzenia ich peceta. Firma Trusteer monitorująca bezpieczeństwo aplikacji użytkowych sprawdziła software zainstalowany na 2,5 miliona pecetów. Wynik: 80 proc. internautów korzysta z przestarzałej i niebezpiecznej wersji Flasha. W przypadku Adobe Reader jest jeszcze gorzej – liczba osób korzystających ze starszych wersji programu sięga 84 proc. W tej sytuacji wystarczy odwiedzenie zainfekowanej strony albo otworzenie spreparowanego dokumentu, aby złośliwe oprogramowanie na dobre zadomowiło się w systemie.

Dziurawe aplikacje to coraz częściej jedyna droga umożliwiająca hakerowi przejęcie kontroli nad systemem. Zabezpieczenia Windows z wersji na wersję stają się bowiem coraz trudniejsze do sforsowania. Bramą, dzięki której może dojść do inwazji, okazują się więc dziury w programach. A jest ich naprawdę mnóstwo. Finansowana przez rząd USA organizacja National Vulnerability Database (nvd.nist.gov) opublikowała w dniu zamykania artykułu informacje o 39 050 znalezionych lukach. Co więcej, ich liczba wzrasta średnio o 19 dziennie.

Co prawda, wiele dziur wykrywa się w oprogramowaniu, z którym przeciętny użytkownik raczej nie ma styczności, na przykład w systemie Solaris firmy Sun. Jednak na wysokich pozycjach w rankingu luk plasują się także aplikacje instalowane na każdym komputerze. Z tego powodu tak ważne jest korzystanie z narzędzi aktualizacyjnych, które dbają o to, by zainstalowane na naszym pececie oprogramowanie zawsze było w najświeższej wersji, bądź – jeszcze lepiej – rozejrzenie się za bezpiecznymi alternatywami dla popularnych aplikacji.

Zanim przedstawimy luki w często używanych programach oraz ich bezpieczne zamienniki, musimy przyjrzeć się jednemu z interfejsów systemu Windows będącemu już od lat źródłem kłopotów: ActiveX. Z raportu działu bezpieczeństwa X-Force firmy IBM wynika, że w 2009 roku umożliwił on aż 62 proc. skutecznych włamań internetowych. Co więcej, trzy na pięć najbardziej popularnych ataków przeprowadzanych za pomocą przeglądarek także odbywa się z wykorzystaniem modułów AcitveX.

ActiveX: Otwarta rana Windows

ActiveX został zaimplementowany w Windows w 1996 roku celem rozszerzenia funkcjonalności standardowych aplikacji typu Internet Explorer, Media Player czy Outlook, na przykład o kontrolkę obsługującą format QuickTime. Interfejs stworzono, gdy Internet nie był jeszcze tak niebezpiecznym miejscem, jakim jest obecnie. W efekcie wtyczkę ActiveX uznaje się za bezpieczną, tylko gdy zawiera cyfrową sygnaturę. Składniki ActiveX, które nie mają takich podpisów, mogą zostać wyłączone za pośrednictwem aktualizacji wpisu w Rejestrze. Robi się to przez dodanie tzw. killbitu, czyli bitu, który dezaktywuje wtyczkę. Jeśli chcemy, możemy sami sprawdzić, jakie killbity zostały ustawione w naszym systemie. W tym celu przechodzimy w edytorze Rejestru do klucza »HKEY_LOCAL_MACHINE SOFTWAREMicrosoftInternet ExplorerActiveX Compatibility«. Killbit łatwo rozpoznamy po wpisie »Compatibility-Flag« z wartością »0x00000400«.

Luki w ActiveX stanowią tak poważne zagrożenie, ponieważ wtyczki posiadają te same uprawnienia, co aplikacja, w której zostały uruchomione. Na przykład jeżeli użytkownik Windows XP korzysta z Internet Explorera, mając uprawnienia administratora, to ładowane przez tę przeglądarkę kontrolki ActiveX również uzyskują pełny dostęp do systemu. W przypadku Visty i Windows 7 podstawową ochronę przed tym zapewnia funkcja »Kontrola konta użytkownika« – o ile nie została wyłączona.

Luki w ActiveX może wykorzystać także każda zainfekowana strona internetowa – niebezpieczna wtyczka zostanie uruchomiona, jeżeli tylko strona zna jej identyfikator. Jeśli chcemy na dobre zablokować wykonywanie kodu kontrolek ActvieX w IE, odpowiednie ustawianie znajdziemy, wybierając »Narzędzia | Opcje internetowe| Zabezpieczenia | Poziom niestandardowy«.

Pod koniec 2009 roku kłopoty z ActiveX uległy zwielokrotnieniu. Dwie nowo wykryte luki w bibliotece ATL (Active Template Library), za pomocą której tworzone są wtyczki ActiveX, stawiają pod znakiem zapytania sens całej tej technologii. W chwili, gdy ujawniono istnienie dziur w ATL, stało się jasne, że należy sprawdzić wszystkie formanty ActiveX, jakie do tej pory stworzono, a następnie – w razie wykrycia luk – napisać je od początku.

Jedna z luk w ATL umożliwia wywołanie błędu przepełnienia bufora, w efekcie czego zainfekowana wtyczka zapisuje informacje poza wyznaczonym jej zakresem pamięci, na przykład w obszarze zarezerwowanym dla usług systemu Windows. Druga luka pozwalała na obejście killbitu umieszczonego w Rejestrze, przez co wtyczka ActiveX uruchamia się bez wiedzy użytkownika. Microsoft wypuścił już aktualizacje rozwiązujące problem przeznaczone do Outlooka oraz Media Playera.

Inne rozwiązanie polega na korzystaniu z alternatywnej przeglądarki internetowej, która sama z siebie nie uruchamia wtyczek ActiveX. Nie polecamy Internet Explorera – większość inwazji przy użyciu ActiveX odbywa się właśnie za jego pośrednictwem. Znacznie lepszy wybór to Firefox, ale też nie do końca, o czym piszemy niżej.

Przeglądarka: Dziurawy Firefox

“Ognisty lis” na początku był uważany za bezpieczną przeglądarkę. Ale z upływem lat to się zmieniło: w samym tylko 2009 roku opublikowano informacje o ponad 80 lukach w Firefoksie. W efekcie przeglądarka znalazła się na szczycie rankingu najbardziej ryzykownych programów, a do tego w jej przypadku obserwujemy negatywny trend – liczba dziur w Firefoksie wzrasta od dwóch lat, podczas gdy w IE z każdym rokiem minimalnie, ale jednak maleje. Jednak ciągle nie ma możliwości rzetelnego porównania, która z tych przeglądarek jest bezpieczniejsza. Powód? Dezinformacja: o ile  Mozilla otwarcie przedstawia wszystkie wykryte luki, o tyle Microsoft milczy jak kamień do czasu, gdy luka, o której on już wie, nie zostanie wykorzystana przez złośliwe oprogramowanie.

Dlatego przed dokonaniem wyboru warto zapoznać się ze szczegółami. Większość dzisiejszych ataków opiera się na metodzie Cross Site Scripting (XSS), polegającej na podmianie zawartości elementu HTML znajdującego się na zaufanej stronie internetowej. Błędy, jakie popełniają przeglądarki podczas XSS, mogą być stosunkowo trywialne. Najlepszym przykładem jest świeżo odkryta luka, za pomocą której można ominąć certyfikację SSL znanej witryny. Wystarczy drobna modyfikacja adresu: wiele przeglądarek po kliknięciu przez nas odnośnika typu paypal.com/0.malware.org zadowoli się ważnym certyfikatem strony Paypal, jako że »0« jest interpretowane jako znak końca adresu. Właściwa domena, na której już czeka na nas haker, została umieszczona dopiero za znakiem »0«.

Przeglądarki Firefox już w ten sposób nie oszukamy. Ale IE – owszem. Z drugiej strony hakerzy mogą dzięki sztuczce SSL wykorzystać funkcję aktualizacji Firefoksa do instalacji złośliwego oprogramowania. Takiego ryzyka nie ma natomiast w przypadku IE – Microsoft sprawdza ważność witryny nie tylko za pomocą certyfikacji SSL. W efekcie użytkownik jest zagrożony niezależnie od tego, na którą z obydwu wspomnianych przeglądarek się zdecydował.

Idealne rozwiązanie to sięgnięcie po przeglądarki, w przypadku których błędna certyfikacja SSL nam nie zagraża – np. Safari czy Google Chrome. Niestety, obydwa wymienione programy również zajmują wysokie pozycje w rankingu dziurawych aplikacji. Winny jest Webkit – silnik przetwarzający kod JavaScript, w którym w 2009 roku wykryto ponad 30 luk. Jeśli chcemy surfować naprawdę bezpiecznie, wybierzmy Operę – ma niewiele dziur, a ich poziom zagrożenia uznaje się za niekrytyczny.

Multimedia: Niepewne wtyczki

Na niewiele zda się bezpieczna przeglądarka, jeżeli wtyczki odpowiedzialne za obsługę treści internetowych są podatne na ataki. Multimedialne plug-iny, na przykład QuickTime czy Flash Player, często znajdują się na celowniku hakerów, ponieważ są do dyspozycji w niemal każdym pececie. Według Adobe wtyczka Flash Player jest zainstalowana w 99 proc. komputerów. W tym wypadku prawdopodobieństwo skutecznego ataku jest wyższe niż podczas bezpośredniego szturmu na przeglądarkę, ponieważ lider rynku, czyli Firefox, jest wykorzystywany przez niespełna 50 proc. użytkowników.

Ten odtwarzacz powinien domyślnie obsługiwać jedynie format MOV.

Ten odtwarzacz powinien domyślnie obsługiwać jedynie format MOV.

Multimedialne wtyczki są szczególnie podatne na ataki, wskutek których dochodzi do przepełnienia bufora. Scenariusz zawsze wygląda tak samo: internauta zostaje namówiony do odtworzenia zainfekowanego strumienia wideo bądź audio, który sprawia, że QuickTime bądź Flash zapisuje dane poza zarezerwowanym dla siebie obszarem pamięci. W ten sposób można przemycić do systemu złośliwy kod wykonywalny. Właśnie dlatego wszystkie luki w bezpieczeństwie związane z błędem buffer overflow są uznawane za krytyczne.

Ponieważ słabe punkty multimedialnej wtyczki związane są z obsługą różnych formatów plików, problemu nie można, niestety, prosto rozwiązać – jeszcze w 2009 roku okazało się, że obok zwykłych plików MOV przepełnienie bufora zaczęło dotyczyć również filmów AVI oraz grafiki w formacie PSD. Ponieważ nie da się zupełnie zastąpić QuickTime’a, użytkownikom pozostają jedynie dwie możliwości. Odinstalowanie QuickTime’a bądź zmienienie ustawień tak, aby wtyczka odtwarzała jedynie strumienie MOV, gdyż w przypadku obsługi pozostałych formatów istnieją alternatywy.

W przypadku Adobe sprawa jest nieco bardziej skomplikowana, ponieważ Flash Player jest domyślną wtyczką umożliwiającą oglądanie filmów w Sieci. Jeżeli przeglądamy ogólnie znane serwisy, np. YouTube, nie mamy powodów do zmartwień. Jeśli chodzi o strony mniej zaufane w praktyce pozostaje nam możliwość wyłączenia obsługi technologii Flash w przeglądarce bądź blokowanie w razie potrzeby treści Flash za pośrednictwem filtra. Czynność tę umożliwia w przypadku Internet Explorera rozszerzenie IE7pro, zaś w przypadku FirefoksaFlashBlock.

Biuro: Niebezpieczne skrypty PDF

Według firmy IBM najczęstszy cel ataków poza przeglądarkami stanowią aplikacje biurowe – niemal 30 proc. ogólnej liczby włamań – a liderem wśród nich jest Adobe Reader. Program ten również korzysta z podatnej na ataki biblioteki Flash. To mniejszy problem. Większy polega na tym, że animacje Flash są sterowane za pomocą języka ActionScript. A ten zawiera sporo błędów i otwiera drogę do ataku na wszystkie produkty firmy Adobe, włącznie z AIR – platformą dla aplikacji internetowych. Najświeższy przykład to kod ataku typu Heap Spraying zapisany w skrypcie języka ActionScript.

Heap Spraying polega na zapełnianiu pamięci RAM bezsensownym kodem, co ma doprowadzić do przepełnienia bufora. Szkodniki tego typu pisane w języku JavaScript są powszechnie znane. W przypadku Adobe Readera obrona jest prosta: wybieramy z menu »Edycja | Preferencje| JavaScript« i odznaczamy przełącznik »Włącz Acrobat JavaScript«. Niestety, nie ma takiej możliwości w przypadku języka ActionScript, ponieważ firma Adobe nie przewidziała opcji wyłączenia funkcjonalności Flash w aplikacji Reader. Jeżeli chcemy czuć się bezpiecznie, możemy sięgnąć po zastępczą aplikację, np. program PDF Quick Reader. Alternatywne czytniki PDF nie potrafią wyświetlić Flasha, zatem zagrożenie związane z luką ich nie dotyczy.

Luki w aplikacjach biurowych spędzają sen z powiek nie tylko przedstawicielom firmy Adobe. Co prawda, Microsoft Office nie jest już tak częstym celem ataków szkodliwego oprogramowania jak kiedyś, ale wszystkie luki, które ujawniono w roku 2009, zostały uznane za krytyczne. Powód? Spreparowane dokumenty, które przetwarzał ten pakiet, zawsze powodowały błąd przepełnienia bufora, co umożliwiało przejęcie kontroli nad systemem. Dotyczyło to w szczególności dwóch składników Office’a: Excela i PowerPointa. Jednak stosunkowo łatwo uniknąć tego zagrożenia – wystarczy nie otwierać pobranych z Sieci dokumentów w tych formatach.

Ekspertom i użytkownikom, którzy chcą poznać bardziej szczegółowe informacje, Microsoft udostępnia narzędzie OffVis. Otwiera ono dokumenty pakietu Office, wyświetla je w kodzie szesnastkowym i przedstawia wewnętrzną strukturę powiązań zawartych elementów. Ponadto OffVis potrafi rozpoznać szkodniki, które wykorzystują znane luki w zabezpieczeniach.

Oczywiście wszystkie środki zapobiegawcze na nic się nie zdadzą, jeżeli użytkownik nie instaluje ważnych aktualizacji. Pierwszy z brzegu przykład – w ostatnim czasie pojawia się coraz większa liczba zainfekowanych dokumentów aplikacji PowerPoint, przemycających do systemu konia trojańskiego. Ale uwaga – dziura ta jest już od ponad dwóch lat załatana. OffVis zna tego szkodnika. A twój Office?

Ochrona systemu
DEP (Data Execution Prevention)

Zabezpieczenie niepozwalające na uruchomienie kodu, jeśli znajduje się on w pamięci, którą system rezerwuje na dane. Mechanizm ten zapobiega atakom typu buffer overflow. Większość współczesnych programów obsługuje DEP. Istnieje jednak wyjątek – jeśli w Windows XP aplikacja obsługuje DEP, lecz korzysta z wtyczki, która tego nie robi, mechanizm ochrony zostaje po prostu wyłączony.

ASLR (Adress Space Load Randomization)

W Windows, do wersji XP włącznie, każda usługa systemowa była ładowana w z góry określony obszar pamięci. Ułatwiało to hakerom pisanie szkodników wykorzystujących błąd przepełnienia bufora. Dzięki wprowadzonej wraz z Vistą funkcji ASLR system losowo rozmieszcza w pamięci obszary przeznaczone dla usług systemowych, co znacznym stopniu przeciwdziała atakom typu buffer overflow.

Uwaga na dziury

Luki w przeglądarkach mają dwie cechy wspólne. Są podatne na ataki przy użyciu znanych w kręgach hakerskich narzędzi i… dają się załatać za pomocą prostych aktualizacji.

1. MICROSOFT MDAC ACTIVEX

Identyfikator: CVE-2006-0003
Luka w Microsoft Data Access Components wykorzystywana podczas uzyskiwania dostępu do baz i źródeł danych. Hakerzy potrafią dzięki niej obejść zabezpieczenia przeglądarki IE.

2. MS SNAPSHOT VIEWER ACTIVEX

Identyfikator: CVE-2008-2463
Wtyczka ActiveX w SnapshotViewer z pakietu MS Office umożliwia zdalny dostęp do komputera, np. w celu pozostawienia szkodliwego skryptu.

3. ADOBE READER

Identyfikator: CVE-2007-5659
Spreparowany dokument PDF powoduje błąd przepełnienia bufora aplikacji Adobe Reader i przemyca złośliwe oprogramowanie na komputer.

4. MICROSOFT INTERNET EXPLORER 7

Identyfikator: CVE-2009-0075
Odwiedzając spreparowaną stronę internetową, umożliwiamy wykonanie złośliwego kodu za pośrednictwem Internet Explorera 7.

5. REALPLAYER ACTIVEX

Identyfikator: CVE-2007-5601
Niebezpieczna luka w module bazy danych Real Playera powoduje błąd przepełnienia bufora.