17/08/2015

Co to są exploity i dlaczego są złe

Zagrożenia

Eksperci bezpieczeństwa często informują, że exploity to jeden z najpoważniejszych problemów związanych z bezpieczeństwem danych i systemów. Mimo to nie wszyscy potrafią wskazać, jaka jest różnica pomiędzy exploitami a szkodliwym oprogramowaniem. Dlatego w tym poście spróbuję to wyjaśnić.

exploits-problem-expanation-featured

Co to jest exploit?

Exploity to podgrupa szkodliwych programów. Zawierają one dane lub kod wykonywalny, który może wykorzystać jedną lub wiele luk w oprogramowaniu działającym na komputerze lokalnym lub zdalnym.

Spróbujmy omówić to na przykładzie. Załóżmy, że w Twojej przeglądarce jest luka, która umożliwia uruchomienie (tzn. zainstalowanie i uruchomienie) w systemie „dowolnego kodu” (jakiegoś szkodliwego programu) bez Twojej wiedzy. Najczęściej pierwszym krokiem atakujących jest zwiększenie uprawnień programu, aby mógł swobodnie działać na zaatakowanym systemie.

Przeglądarki, Flash, Java i Microsoft Office należą do kategorii najczęściej atakowanego oprogramowania. Ponieważ są szeroko rozpowszechnione, aktywnie badają je nie tylko eksperci bezpieczeństwa, ale także hakerzy. Z tego powodu ich twórcy muszą regularnie publikować łaty do wykrytych luk. Idealna sytuacja to taka, gdy łaty te są instalowane od razu, ale niestety nie zawsze tak się dzieje. Na przykład czasami aby przeprowadzić aktualizację, należy zamknąć wszystkie zakładki przeglądarki lub otwarte dokumenty.

Kolejny problem to exploity dla jeszcze nieznanych luk, które zostały już wykryte i użyte przez ludzi należących do grupy tzw. czarnych kapeluszy. Luki te noszą nazwę zero-day lub 0 day. Zanim dostawcy zorientują się, że istnieją, i je wyeliminują, może upłynąć nieco czasu.

Sposoby infekcji

Cyberprzestępcy często rozsyłają exploity, wykorzystując socjotechnikę – co może być skuteczne lub nie – wykorzystanie luk w zabezpieczeniach aplikacji ciągle przynosi im pożądane rezultaty.

Użytkownicy mogą otrzymać exploity na dwa sposoby – poprzez odwiedzenie strony zawierającej szkodliwy kod lub poprzez otwarcie pliku, który wygląda na oryginalny, a który zawiera ukryty szkodliwy kod. Jak nietrudno się domyśleć, najczęściej jest to wiadomość spamowa lub phishingowa, w której znajduje się exploit.

Jak napisaliśmy w serwisie Securelist, exploity mają za zadanie atakowanie określonych wersji oprogramowania zawierającego luki. Jeśli użytkownik ma określoną wersję szkodliwego oprogramowania do otwarcia szkodliwego obiektu lub jeśli strona używa tego oprogramowania do działania, uruchamiany jest exploit.

Gdy exploit uzyska dostęp do systemu poprzez lukę, pobiera z serwera przestępców kolejny złośliwy program, który wykonuje szkodliwą aktywność – może na przykład ukraść dane osobiste czy włączyć komputer do sieci botnetu rozsyłającego spam lub przeprowadzającego ataki DDoS.

Exploity stwarzają zagrożenie nawet dla świadomych i czujnych użytkowników, którzy aktualizują oprogramowanie. Chodzi o czas pomiędzy odkryciem luki a opublikowaniem dla niej łaty – exploity mogą wtedy działać i zagrażać bezpieczeństwu niemal wszystkich użytkowników internetu, chyba że mają oni zainstalowane narzędzia automatycznie zapobiegające atakom exploitów.

Nie można zapominać także o wspomnianym wyżej „syndromie otwartych kart” – w końcu za aktualizację trzeba zapłacić jakąś cenę, a nie każdy użytkownik jest w stanie zapłacić ją od razu po pojawieniu się łaty.

Exploity uruchamiane w paczkach

Exploity są często spakowane, aby atakowany system został prześwietlony pod kątem wielu luk. Po wykryciu chociaż jednej z nich wprowadzane są odpowiednie exploity. Zestawy exploitów używają zaciemniania kodu i szyfrowania adresów URL, aby uniknąć wykrycia przez badaczy.

Do najbardziej znanych należą:

Angler – jeden z najbardziej wyszukanych zestawów na czarnym rynku. Potrafił on wykryć program antywirusowy i maszyny wirtualne (często używane przez badaczy bezpieczeństwa i honeypoty) i zainstalować szyfrowane pliki droppera. To jeden z zestawów, które najszybciej zaczynają korzystać z nowo publikowanych luk zero-day, a szkodliwy kod jest uruchamiany bezpośrednio w pamięci, bez konieczności zapisywania go na dyskach twardych ofiary. Opis techniczny paczki jest dostępny tutaj.

Nuclear Pack – atakuje swoje ofiary przy użyciu exploitów do programów Java i Adobe PDF, jak również instaluje Caphawa – znanego trojana bankowego. Więcej informacji znajduje się tutaj.

Neutrino – zestaw stworzony przez Rosjan zawierający kilka exploitów Java, o którym pisały media w zeszłym roku ze względu na fakt, że jego właściciel wystawił go na sprzedaż za niewielką cenę – 34 000 dolarów. Najbardziej prawdopodobne jest to, że bodźcem było tu aresztowanie niejakiego Pauncha, twórcy kolejnego zestawu exploitów, o którym też wspomnimy.

Blackhole Kit – najbardziej rozpowszechnione w Sieci zagrożenie w 2012 r., bierze na celownik luki w starych wersjach przeglądarek takich jak Firefox, Chrome, Internet Explorer i Safari, a także wiele popularnych wtyczek typu Adobe Flash, Adobe Acrobat czy Java. Najpierw ofiara jest wabiona lub przekierowana na stronę docelową, następnie zestaw definiuje, co znajduje się na komputerze ofiary, i ładuje wszystkie exploity, na jakie komputer jest podatny.

Podsumowanie

Exploity nie zawsze są wykrywane przez oprogramowanie zabezpieczające. Aby wykryć exploity, program musi używać analizy behawioralnej. Jest to jedyny skuteczny sposób na zwalczanie ich. Szkodliwych programów może być mnóstwo i mogą być różne, ale większość z nich ma podobne wzorce zachowania.

Kaspersky Internet Security, podobnie jak inne flagowe rozwiązania Kaspersky Lab, stosuje technologię zwaną Automatyczne zapobieganie exploitom i wykorzystuje informacje o najbardziej typowym zachowaniu znanych exploitów. Charakterystyczne zachowanie takich szkodliwych programów pomaga uniknąć infekcji nawet w przypadku wcześniej nieznanych exploitów luk zero-day.

Więcej informacji na temat technologii Automatyczne zapobieganie exploitom znajduje się tutaj.