W drugi wtorek każdego miesiąca każdy użytkownik komputera PC bierze udział w denerwującym rytuale. Właśnie tego dnia Microsoft publikuje aktualizacje Windows, pakietu Office, Internet Explorera i swoich pozostałych programów. Zwykle podczas Patch Day łącza internetowe zwalniają, obciążone pobieraniem dziesięciu czy dwudziestu łatek, a później ich instalacja zmusza nas do ponownego uruchomienia systemu. Bez tego nie dałoby się jednak obejść – aktualizacje zamykają luki w zabezpieczeniach, często o kluczowym znaczeniu dla naszego bezpieczeństwa. Tak właśnie było w listopadzie: w wersjach pakietu Office od 2003 do 2010 odkryto błąd pojawiający się przy wyświetlaniu ilustracji w formacie TIFF, umożliwiający hakerom zdalne infekowanie komputerów złośliwym oprogramowaniem.
Zanim dojdzie do takich ataków, na cyfrowych targowiskach odbywa się zażarta walka o informacje na temat najświeższych odkrytych luk oraz exploitów – małych programów wykorzystujących te luki do rozprzestrzeniania wirusów. W licytacji biorąudział analitycy zabezpieczeń, hakerzy i wyspecjalizowani dilerzy exploitów, ale także producenci oprogramowania i rządowi urzędnicy. Każda z tych grup kieruje się innymi motywami: żądza zysku, poszukiwanie przyczółków do ataku na wypadek cyberwojny czy chęć uniknięcia strat wizerunkowych. Nie ma co się łudzić, że komukolwiek zależy na bezpieczeństwie użytkowników – na pewno nie w pierwszej kolejności.
Ten handel, finansowany przez wszystkich nabywców oprogramowania, przeżywa prawdziwy boom, bo programiści nie przykładają się zbytnio do swojej pracy. Były pracownik Microsoftu Steve McConnell zdradza w bestsellerowej książce “Code Complete”, że każde 1000 linii kodu źródłowego zawiera od 15 do 50 błędów (żeby zilustrować skalę problemu, dodajmy, że Windows 7 jest złożony z około 40 milionów linii kodu). Większość z nich nie powoduje żadnych problemów, gdyż nigdy nie zostają wykryte, zaś inne prowadzą jedynie do drobnych nieprawidłowości w działaniu aplikacji bądź ich zawieszania się. Niektóre stanowią jednak poważne zagrożenie – mowa o lukach, które mogą posłużyć do ataków hakerskich, prowadzonych bezpośrednio sprzed ekranu komputera (lokalnie) bądź przez Internet (zdalnie). Istnieje wiele metod ataku. Do najbardziej typowych należy Code Execution – metoda mająca na celu uruchomienie przez hakera własnego programu na komputerze ofiary. W przypadku Remote Code Execution atakujący doprowadza do tego przez Internet. To popularny sposób prowadzenia akcji mających na celu rozprzestrzenianie wirusów czy cyberwojennej dywersji.
Błędy w programach
Aby wzbogacić się na potężnym rynku luk w zabezpieczeniach, hakerzy szukają licznych błędów w kodzie popularnych programów.Co to są exploity, luki zero-day itd.?
Luka w zabezpieczeniach: błąd programistyczny w kodzie oprogramowania lub appu internetowego umożliwiający zakażenie komputera wirusem Luka zero-day: luka w zabezpieczeniach wykorzystywana przez hakerów, do której nie opublikowano jeszcze zamykającej ją aktualizacji Exploit: złośliwy program wykorzystujący luki w zabezpieczeniach, aby przemycić do systemu ofiary inne wirusy Łatka: aktualizacja oprogramowania poprawiająca znane błędy, instalowana automatycznie lub ręcznie Programy z największą liczbą luk
W ubiegłym roku (stan na 29.11.2013 r.) największą liczbę luk w zabezpieczeniach wykryto w następujących programach i systemach operacyjnych:
Igła w stogu siana
Zanim jednak zarobi się na błędach oprogramowania, trzeba je najpierw znaleźć. Na całym świecie organizuje się nawet związane z tym, w pełni legalne konkursy, takie jak zawody hakerskie Pwn2Own, których ostatnia edycja (skoncentrowana na systemach mobilnych) odbyła się w listopadzie podczas konferencji PacSec Applied Security w Tokio. Uczestnicy imprezy sponsorowanej przez HP odkryli nieznane wcześniej luki w iOS-ie 7, przeglądarkach Chrome do Androida oraz Internet Explorerze 11 do Windows 8.1. Błędy umożliwiały na przykład przeglądanie zdjęć zapisanych w pamięci iPhone’a czy przejmowanie kontroli nad smartfonami Google Nexus 4 czy Samsung Galaxy S 4 oraz tabletami Microsoft Surface RT.
Metody stosowane przez hakerów mogliśmy poznać dzięki wystąpieniu Donato Ferrantego z zajmującej się bezpieczeństwem w branży IT firmy ReVuln podczas konferencji ShmooCon 2013. Pierwsza z nich to fuzzing. Pod tą nazwą kryje się technika testowania oprogramowania z wykorzystaniem narzędzi, które wydają sprawdzanej aplikacji wszelkie możliwe polecenia i badają jej reakcje. Przykładowo sprawdza się, co zrobi przeglądarka, kiedy w polu adresu wprowadzimy zamiast adresu URL kod Java- Script. Ferrante ocenił, że stosowanie fuzzingu nie wymaga wiele wysiłku, a wykryte w ten sposób dziury zwykle zostają szybko załatane, więc przynoszą niewielkie zyski. Kolejna metoda: code review. Chodzi o skrupulatne sprawdzenie znanego kodu źródłowego, możliwe w przypadku oprogramowania Open Source lub wycieku kodu komercyjnej aplikacji. Zdaniem Ferrantego jest to praca o średnim poziomie trudności, za to zasadniczo opłacalna, jeśli już uda się znaleźć jakieś błędy. Na koniec pozostaje reverse engineering, czyli inżynieria wsteczna. Haker posługujący się tą metodą analizuje gotowy program, próbując niejako od końca odtworzyć proces programowania, by w ten sposób znaleźć słabe punkty. Wiąże się to z dużymi trudnościami i jest niezwykle czasochłonne, jednak odkryte w ten sposób luki często pozostają otwarte przez długi czas. Niektórzy hakerzy rozpracowują w ten sposób aktualizacje wypuszczane przez producentów oprogramowania. “Chodzi o to, żeby dowiedzieć się, jaka luka została zamknięta, a później wykorzystać ją do atakowania tych, którzy nie zainstalowali łatki” – wyjaśnia Sean Sullivan, analityk zabezpieczeń w F-Secure.
Na tych, którym udaje się odkrywać nowe luki w zabezpieczeniach, czekają duże pieniądze. Pytanie brzmi: komu sprzedać swoją wiedzę?
Znaleźne dla hakera
Najbardziej naturalnym wyborem jest sam producent oprogramowania, z oczywistych względów zainteresowany informacjami o błędach. Niektóre firmy otwarcie kuszą hakerów nagrodami pieniężnymi – tzw. bug bounty. W ramach takich projektów za pojedynczą lukę płaci się zwykle od 1000 do 20 000 dolarów (patrz: ramka po prawej). “Programy tego typu stanowią zachętę, by nie sprzedawać wiedzy o odkrytych lukach na czarnym rynku, ale przekazywać ją deweloperom” – mówi Christian Funk, analityk wirusów z firmy Kaspersky. “Nagrody nie zawsze są przy tym niższe od cen rynkowych”. W czerwcu 2013 r. swój portfel otworzył również Microsoft, płacąc za wiadomości o lukach w Windows 8.1 nawet 100 000 dolarów.
Już od dawna podobne programy prowadzą Google oraz Facebook. Od 2010 roku Google dowiedział się dzięki temu o ponad 2000 luk, a suma wypłat przekroczyła dwa miliony dolarów. Z kolei Facebook w ostatnich dwóch latach wydał przeszło milion dolarów na nagrody dla ponad 300 informatorów. Dwóch z nich znalazło nawet zatrudnienie w zespole Facebooka do spraw zabezpieczeń. “Programy bug bounty są istotnym elementem naszej polityki bezpieczeństwa” – przyznaje również Johnathan Nightingale, zastępca szefa działu rozwoju Firefoxa w Mozilli. Nie chodzi tylko o to, że odkrywcy luk otrzymują wynagrodzenie – jednocześnie gwarantuje się im, że nie poniosą oni konsekwencji prawnych. Nightingale zdaje sobie jednak sprawę, że “nagrody nie są lekiem na wszelkie bolączki” – producenci oprogramowania konkurują na wolnym rynku z innymi chętnymi kupcami, a tym również nie brakuje środków.
Inaczej niż firmy programistyczne, pozostali potencjalni klienci interesują się nie tylko samymi lukami, ale również exploitami. Te narzędzia pozwalają w praktyce wykorzystać znane błędy do infekowania komputerów, co czyni je atrakcyjnymi dla internetowych przestępców. Exploitów potrzebują jednak także tajne służby i wojsko, gdyż stanowią one amunicję w cyberwojnie. Wszystkie zainteresowane strony często łączą dilerzy exploitów – pośrednicy, którzy płacą hakerom i analitykom za informacje o lukach w zabezpieczeniach i exploitach typu zero- -day (wykorzystujących błędy, które nie zostały jeszcze poprawione), a następnie odsprzedają je w drodze licytacji.
“Ten rynek powstał pod koniec lat dziewięćdziesiątych” – opowiada Candid Wüest, analityk zabezpieczeń z firmy Symantec. “Ostatnio wzrosła jednak zarówno liczba oferowanych exploitów, jak i ceny”. Jednym z czynników, które do tego doprowadziły, jest wzmożona aktywność cyberwojenna niektórych krajów. Nie bez znaczenia są również zmiany na rynku wirusów. Jak wyjaśnia Christian Funk, “typowym sposobem ataku stało się sięgnięcie po metodę drive-by download”. By móc z niej skorzystać, trzeba dysponować exploitem, który, umieszczony w spreparowanej witrynie internetowej, znajdzie niezałatane dziury w oprogramowaniu komputerów jej gości i wprowadzi przez nie właściwego wirusa.
Sprzedaż exploitów
Wiedząc o lukach w zabezpieczeniach i dysponując programami, które je wykorzystują (exploitami), można zarobić na wolnym rynku grube pieniądze.
Tyle płacą producenci oprogramowania
W ramach programów bug bounty wynagradza się hakerów, którzy powiadamiają firmy programistyczne o nieznanych wcześniej błędach w ich aplikacjach.Tyle płacą tajne służby i wojsko
Agencje rządowe są w stanie zapłacić za exploity atakujące popularne programy znacznie więcej niż większość firm programistycznych. Programy bug bounty producentów
Niebezpieczeństwo związane z czarnym rynkiem polega na tym, że informacje o takich exploitach docierają do bardzo ograniczonego grona osób. “Z tego powodu luki przez długi czas pozostają otwarte i nie da się ich zamknąć” – wyjaśnia Candid Wüest. Właśnie ta ekskluzywność zapewnia dilerom exploitów wysokie zarobki. Anonimowy diler działający z Bangkoku, ukrywający się pod pseudonimem Grugq, zdradził magazynowi “Forbes”, że, przykładowo, exploit wykorzystujący lukę w iOS-ie jest wart nawet 250 000 dolarów. Twierdzi on, że jego głównym klientem jest amerykański rząd – ale tylko dlatego, że jest w stanie przelicytować Rosjan i Chińczyków. Rzekomo w Chinach ceny są niskie, bo wielu tamtejszych hakerów współpracuje wyłącznie z własnymi władzami. Obok wolnych strzelców takich jak Grugq działają liczni sprzedawcy exploitów wykorzystujący powiązania z amerykańską armią. Zalicza się do nich: firma Endgame, dla której pracuje były dyrektor NSA Kenneth A. Minihan, koncerny militarne Raytheon i Northrom Grumman oraz firma Netregard, której motto brzmi: “Chronimy cię przed ludźmi takimi jak my”. Netregard specjalizuje się w tzw. penetration testing, czyli włamywaniu się do korporacyjnych sieci celem odkrywania luk w zabezpieczeniach. Oprócz tego w 2000 roku firma rozpoczęła tzw. Exploit Aquisition Program (w skrócie EAP), czyli program pozyskiwania exploitów, w ramach którego skupuje exploity typu zero-day od analityków zabezpieczeń i hakerów, płacąc za nie po 20 000 dolarów. “Zanim dojdzie do jakiejkolwiek transakcji, sprzedawca musi zdradzić nam swoją tożsamość i zarejestrować się” – mówi założyciel Netregarda Adriel Desautels. Ograniczenia dotyczą również wyboru klientów. “Sprzedajemy exploity wyłącznie nabywcom z USA” – zapewnia Desautels. “Naszym zdaniem sprzedaż exploitów do innych krajów budzi wątpliwości prawne. Gdyby wykorzystano je do ataku na Amerykę, moglibyśmy zostać uznani za współodpowiedzialnych”.
Najbogatsi nabywcy: rządy
Adriel Desautels należy do nielicznych dilerów exploitów działających z otwartą przyłbicą. Tego rodzaju kontrolowany handel jest legalny, a nawet zapobiega trafianiu exploitów w niepowołane ręce, czyli do cyberprzestępców czy państw wspierających terroryzm. Tacy jak Desautels robią jednak wrażenie wołających na puszczy, gdyż na razie każdy diler exploitów może sam ustalać reguły gry. Na przykład francuska firma Vupen zastrzega, że prowadzi interesy wyłącznie z rządami państw NATO oraz “partnerów NATO”. Jakimi dokładnie? Tego już nie byliśmy w stanie się dowiedzieć.
Sposób działania takich firm sprawia, że można postrzegać je jako nowoczesnych handlarzy bronią, a nawet przypiąć im łatkę “handlarzy śmierci”, jak zrobił to analityk zabezpieczeń i aktywista Chris Soghoian. Exploity to broń umożliwiająca ataki na instalacje przemysłowe i infrastrukturę wybranego państwa, których skutki dla miejscowej ludności cywilnej mogą być przerażające. Na równie ostrą krytykę zasługują jednak agencje rządowe. “To rządy – jedne mniej, inne bardziej – przyłożyły rękę do masowego poszukiwania luk w zabezpieczeniach” – uważa Sean Sullivan. O USA wiadomo, że od czasu odkrycia wirusa Stuxnet aktywnie rozwijają broń informatyczną, aby atakować odległe cele – w tym przypadku instalacje nuklearne w irańskim Natanz. Myliłby się jednak ten, kto sądziłby, że Amerykanie są w swoich działaniach odosobnieni. Jednostki żołnierzy-informatyków od kilku lat powstają na całym świecie, a o wyczynach hakerów działających rzekomo na zlecenie Rosji czy Chin krążą legendy. Polska armia jeszcze w ubiegłym roku zamówiła wirusa, który będzie mógł infekować sieci teleinformatyczne wroga i atakować jego systemy, wykorzystując botnet złożony z zakażonych przez siebie komputerów – prace nad nim mają potrwać trzy lata. Do końca tego roku ma zostać utworzone Centrum Operacji Cybernetycznych, które zajmie się koordynacją walki z zagrożeniami z Sieci. Można przypuszczać, że dołączy ono do grona potencjalnych nabywców użytecznych militarnie exploitów, choć prawdopodobnie informacje o takich zakupach nigdy nie dotrą do opinii publicznej. Na przykład cyberjednostka niemieckiej Bundeswehry w kontaktach z tamtejszymi mediami zapewnia, że wykorzystuje jedynie publicznie dostępne narzędzia, jak służący do łamania haseł John the Ripper, a jednocześnie odmawia komentarzy na temat możliwej współpracy z dilerami exploitów, zasłaniając się tajemnicą państwową.
Wykorzystywanie luk
Cyberprzestępcy sięgają po exploity, aby rozprzestrzeniać wirusy. Udaje się im, gdyż wielu użytkowników rzadko aktualizuje oprogramowanie.Najpopularniejsze exploit-kity
Rynek zdominowało kilka exploit-kitów, przede wszystkim pochodzący z Rosji Blackhole.Najchętniej atakowane luki
Oto pięć luk z oznaczeniami w standardzie CVE, które w pierwszym półroczu 2013 roku były najczęściej wykorzystywane przez hakerów.Stare wersje programów wciąż w użyciu
Wielu użytkowników nie aktualizuje oprogramowania regularnie, narażając się na ataki wykorzystujące luki, które zostały już zamknięte.
Wielozadaniowe exploit-kity
Stworzony przez Amerykanów i Izraelczyków trojan Stuxnet, przenikający przez cztery wciąż nieznane luki w Windows, aby uszkadzać irańskie systemy sterowania, jest jednym ze sztandarowych przykładów militarnego wykorzystania exploitów. Zasadniczo nie różni się on zbytnio od wirusów infekujących prywatne komputery. Najpierw exploity sprawdzają, czy w wersjach systemu operacyjnego i innych programów, z których korzysta ofiara, istnieją znane luki w zabezpieczeniach. Jeśli tak, szkodnik wysyła do atakowanego komputera określoną sekwencję poleceń, prowadzących (w zależności od rodzaju luki) na przykład do przepełnienia bufora pamięci. W uproszczeniu: błąd tego typu polega na zapisaniu całego obszaru pamięci operacyjnej przypisanego danemu programowi, co powoduje załadowanie kodu do sąsiedniego obszaru oraz jego wykonanie. W ten sposób można zakażać zarówno instalacje przemysłowe, jak i komputery zwykłych Kowalskich, którzy po prostu wejdą na niewłaściwą stronę WWW.
Na takich spreparowanych stronach hakerzy umieszczają najczęściej nie pojedyncze exploity, ale tzw. exploit-kity, czyli zestawy exploitów umożliwiające wyszukiwanie wielu otwartych luk w różnych aplikacjach. Są one tworzone i często aktualizowane przez specjalistów, którzy tylko wystawiają je na sieciowym czarnym rynku – same ataki przeprowadza ktoś zupełnie inny. Niektórzy sprzedają pakiety exploitów, a inni tylko je wynajmują – przykładowo firma McAffee odkryła, że za jednodniową licencję na exploit-kit CritX trzeba zapłacić 150 dolarów. Już od dwóch lat numerem jeden jest jednak pakiet Blackhole. Rozpoznaje on wiele luk w Javie, odtwarzaczu Flash czy Adobe Readerze, przy czym pojedyncze exploity są regularnie modyfikowane, tak aby wymykały się skanerom antywirusowym. Aby sprawdzić, z jakich rozszerzeń przeglądarki korzysta ofiara, Blackhole używa ogólnodostępnej biblioteki JavaScript PluginDetect. Większość exploitów zawartych w pakietach wykorzystuje luki, które od dawna są znane i zostały już zamknięte. Mimo to ataki wciąż się udają, gdyż użytkownicy często nie zaprzątają sobie głowy regularnym aktualizowaniem oprogramowania. “Z tego powodu w zestawach takich jak Blackhole rzadko pojawiają się exploity typu zero-day, tym bardziej że ich twórcy rzadko dysponują wiedzą, jaka pozwoliłaby im szybko reagować na nowe luki” – wyjaśnia Candid Wüest. “Wyjątkiem był Cool Exploit Kit. Jego autor dyktował wysokie ceny, a za zarobione pieniądze kupował informacje o lukach typu zero-day, ale w końcu został aresztowany”.
Bezpieczny komputer
Zawsze korzystajmy z funkcji automatycznej aktualizacji, jeśli tylko jest dostępna. W zamykaniu luk pomagają również bezpłatne narzędzia Secunia PSI oraz Microsoft EMET.
Regularne aktualizacje najlepszą ochroną
Dopóki jednak internauci nie zrezygnują z korzystania z przestarzałego oprogramowania, hakerzy nie będą potrzebowali drogich exploitów typu zero-day. Przykładowo w pierwszej połowie 2013 roku najczęściej wykorzystywany przy ataku był błąd Windows związany z obsługą czcionek TrueType. Jest on znany już od 2011 roku i był nawet wykorzystywany przez następcę Stuxneta – Duqu – do szpiegowania systemów przemysłowych. Badania przeprowadzone przez firmę Symantec wykazują, że exploity są wykorzystywane średnio przez 312 dni. Dopiero po tym czasie liczba komputerów bez odpowiednich aktualizacji spada na tyle, że ataki bazujące na danej luce przestają się opłacać.
Skuteczność ochrony przed exploitami zależy więc zarówno od producentów oprogramowania, jak i od użytkowników. Przede wszystkim firmy programistyczne muszą jak najszybciej reagować na odkryte zagrożenia. “Po zidentyfikowaniu problemu i znalezieniu rozwiązania łatka musi przejść procedurę testową gwarantującą, że nie będzie powodowała nieprzewidzianych skutków ubocznych” – mówi Johnathan Nightingale. “Również w nagłych sytuacjach, na przykład kiedy musimy zamknąć lukę typu zero-day, każda aktualizacja musi spełniać wymagania jakościowe”. Testy muszą zajmować trochę czasu, jednak przemysł programistyczny reaguje coraz szybciej. Firma Secunia policzyła, że w 2011 roku tylko 72 proc. wszystkich luk zamykano w ciągu jednej doby od wykrycia. Rok później było to już 84 proc. By nie przerzucać na użytkownika odpowiedzialności za instalację łatek, coraz więcej programów jest wyposażonych w mechanizmy automatycznej aktualizacji – dotyczy to zwłaszcza przeglądarek internetowych Chrome i Firefox.
Usprawnienia procesu aktualizacji nie zahamują jednak handlu lukami w zabezpieczeniach. Pytanie brzmi: czy handel ten wymaga uregulowania – i czy to w ogóle możliwe? Exploity to przecież broń, którą można wycelować w osoby prywatne równie dobrze jak w państwa. “Nie da się jednak zablokować sprzedaży cyfrowych towarów takich jak exploity, bo nie da się śledzić ich tak jak fizycznych przedmiotów. Z tego względu próby regulacji tego rynku są z góry skazane na porażkę” – uważa Candid Wüest. “Ograniczenia mogłyby przynieść podobny skutek jak w przypadku handlu narkotykami, któremu delegalizacja przyniosła rozkwit”. Jedynym rozsądnym rozwiązaniem jest, aby producenci popularnych programów inwestowali większą część wielomilionowych zysków w testowanie nowych wersji i dbali o jakość kodu. Skoro pojedynczy haker jest w stanie znaleźć lukę w Windows, to 100 000 pracowników globalnego koncernu, jakim jest Microsoft, nie powinno to sprawić żadnego problemu.