Błędy typu 0day stanowią od zawsze zmorę oficerów bezpieczeństwa. Trudne do wykrycia, skuteczne wobec nie podejrzewających niczego użytkowników, są silna bronią w rękach przestępców. Jak długo są one w użyciu, zanim zostaną upublicznione?
W czwartek na konferencji CCS 2012 przedstawiciele Symanteca pokazali bardzo ciekawe wyniki badań błędów typu 0day. Przedstawiona przez nich praca naukowa jest tym ciekawsza, że opiera się na faktycznych, empirycznych badaniach, zamiast na teoretycznych rozważaniach.
Badanie błędów typu 0day nie jest prostym zadaniem. Z definicji w najciekawszym okresie ich cyklu życia naukowcy z reguły nie wiedzą o ich istnieniu. Błędy tego typu także rzadko wykrywane są w honeypotach lub laboratoriach, co utrudnia naukowce podejście do analizy ich rozwoju i wykorzystania. Badaczom Symanteca udało się ominąć ten problem dzięki wykorzystaniu historycznych danych zebranych przez ich pracodawcę.
Metodologia badania
Badacze zaczęli od bazy znanych błędów w systemach i aplikacjach, czyli bazy OSVDB. Następnie skorzystali z narzędzia Symanteca Threat Explorer, umożliwiającego zmapowanie CVE na konkretne sygnatury antywirusowe. W trzecim kroku badacze sięgnęli do bazy WINE (Worldwide Intelligence Network Environment), w której znaleźli historię wykrywania plików binarnych, zidentyfikowanych przez odpowiednie sygnatury. Baza WINE zawiera historyczne dane zebrane przez Symanteca z 11 milionów komputerów chronionych przez tę firmę na całym świecie. Porównanie otrzymanych danych pozwoliło na zidentyfikowanie 18 CVE, dla których odpowiednie exploity pojawiły się, zanim ogłoszono odkrycie błędu. Co ciekawe, okazało się, że 11 z nich nie było wcześniej uważanych za błędy typu 0day!
Najciekawsze wnioski
Badanie pozwoliło ustalić, że średnio błąd typu 0day wykorzystywany jest przez przestępców na co najmniej 10 miesięcy przed jego upublicznieniem. Jeden z błędów, CVE-2010-2568 (błąd przetwarzania plików .LNK, wykorzystany w Stuxnecie) był używany przynajmniej 30 miesięcy przed jego formalnym odkryciem. Z kolei CVE-2010-2883 (przetwarzanie czcionek w Adobe Readerze) został upubliczniony 21 miesięcy po jego pierwszym zarejestrowanym użyciu.
Z 18 prześledzonych błędów, aż 15 było wykorzystanych przed ich oficjalnym ogłoszeniem do zaatakowania mniej niż 100 komputerów z puli 11 milionów poddanych analizie. Oznacza to, że większość błędów typu 0day wykorzystywana jest w ukierunkowanych atakach, znacząco utrudniając ich wykrycie.
Zaskoczeniem na pewno nie jest znaczący wzrost wykorzystania danego błędu po jego upublicznieniu. Opublikowane opisy błędów sprawiają, że rośnie zarówno liczba przeprowadzanych ataków, jak i liczba wersji exploitów a w sieci pojawiają się setki lub tysiące naśladowców oryginalnych ataków.
Czy trzeba się bać?
Badanie pokazało, że przemysł antywirusowy ciągle nie posiada skutecznych narzędzi wykrywania błędów typu 0day. 11 z 18 błędów wykrytych przez naukowców nigdy nie było wcześniej zdefiniowanych jako wykorzystywane przed ogłoszeniem ich odkrycia. Na szczęści dla większości użytkowników, znaczna część błędów 0day wykorzystywana jest w atakach ukierunkowanych, których celem są pojedyncze firmy lub osoby. Dzięki temu przeciętny internauta, aktualizujący regularnie swoją przeglądarkę i jej wtyczki (oraz taki, który wyłączył Javę…) raczej nie stanie się ofiarą błędu typu 0day.