W Internecie istnieją tylko ofiary i potencjale ofiary. Każdy jest wystawiony na atak, nieważne, czy jest to osoba prywatna czy wielka firma. Z każdą chwilą przybywa urządzeń, stanowiących przestrzeń do ataku. W wyścigu poszerzania i polepszania systemów ochronnych zespoły zajmujące się bezpieczeństwem muszą radzić sobie z dodatkowym problemem zwiększającego się stopnia skomplikowania ataków. Więcej produktów, więcej wydarzeń i więcej monitorowania sprawia, że coraz trudniej znaleźć jest prawdziwe przesłanki świadczące o ataku, przez co środowisko bezpieczeństwa powoli pogrąża się w chaosie. Ta niekontrolowana spirala komplikacji zmniejsza poziom czujności i reakcji zespołu, co ostatecznie prowadzi do zapłacenia prawdziwego kosztu luk w bezpieczeństwie.

To nie strona broniąca do tego doprowadziła. Rozwój produktów, napędzany przez rosnące potrzeby sektora gospodarki zajmującego się bezpieczeństwem stworzyła cały wachlarz podejść do rozwiązywania konkretnych problemów związanych z ochroną. Jednak poprzez szukanie nowych, często skupiających się na danych, rozwiązań wiele z tych programów doprowadziło do stworzenia nowych wyzwań, a co za tym idzie, do zmniejszenia bezpieczeństwa.

Niektóre typy oprogramowania złośliwego pojawiają się w prawie każdym przypadku ataku (przyjmując, że działania wewnętrzne to 10,6% takich wypadków1). To oznacza, że skuteczna strategia ochrony punków końcowych to jedno z największych wyzwań, jakie stawiane są przed zespołami do spraw bezpieczeństwa. W tym dokumencie zajmiemy się aktualnymi strategiami wykrywania zagrożeń, które zyskują na popularności. Opiszemy negatywne rezultaty strategii skupiającej się na działaniu po wykonaniu pliku i ocenimy rdzeń problemów dotyczących detekcji, który dotyczy większości firm.

Twierdzimy, że skutecznie zapobieganie obniża poziom kosztów i skomplikowania bezpieczeństwa i jest najlepszą metodą w walce ze złośliwym oprogramowaniem.

Ewolucja strategii

Strategie detekcji ataków mogą zostać podzielona na trzy duże grupy w zależności od momentu ich interwencji: Przed wykonaniem złośliwego pliku (przedwykonawcze), w trakcie jego wykonywania (wykonawcze) lub tuż po wykonaniu (powykonawcze).

Wczesne technologie wykrywania złośliwego oprogramowania stosowały sygnatury ogólne i heurystyczne w celu wykrywania pliku złośliwego w momencie, gdy zapisywany był na dysku. Producenci oprogramowania antywirusowego mogli sobie pozwolić na ręczne tworzenie sygnatur, ponieważ grupy programów złośliwych nie zmieniały się za często.

Przez pewien czas koszty zarządzania rozwiązaniami antywirusowymi utrzymywały się na pewnym poziomie. Po instalacji taki program działał automatycznie, wykrywał i przeciwdziałał złośliwym procesom. Programy antywirusowe korzystające z heurystycznych i bazujących na emulatorach sygnaturach wygrywały wojnę. Teraz już tak nie jest.

W połowie pierwszej dekady XXI wieku pojawiła się fala zmieniających się programów złośliwych i rootkitów wykorzystujących wiele sztuczek, które pozwalały im obchodzić zabezpieczenia tradycyjnych programów antywirusowych. W celu utrzymywania poziomów detekcji producenci tworzyli rozwiązania zwalczające zagrożenia automatycznie, głównie przy użyciu technologii skrótowych. Poważnym problemem metody hashującej jest fakt, że każdy egzemplarz złośliwego pliku, nawet różniący się od innych tylko troszkę, jest dla programu zupełnie nowy i inny. Kolejna fala złośliwych programów wykorzystywała tę lukę. Koszty firm związane z niewykrytymi atakami rosły, więc producenci zaczęli oferować usługi naprawy i rekonstrukcji. W celu poradzenia sobie z problemami z detekcją sektor dodał nowe technologie analizy pamięci, reputacji oraz zachowania plików. Z czasem pojawiało się coraz więcej dodatkowych warstw ochronnych.

Te nowe strategie detekcji zostały stworzone w celu poprawienia błędów programów antywirusowych, które nie były w stanie powstrzymać ataków. Niestety, patrząc na ten problem z perspektywy całego sektora, należy stwierdzić, że odsunęło to w cień inwestowanie w rozwiązania zapobiegawcze i inne technologie, które utrzymywały zarządzanie bezpieczeństwem na niskim poziomie kosztowym.

W tym okresie powstały programy bazujące na rozwiązaniach dopuszczania do działania tylko znanych plików (białe listy). To podejście jednak działało tylko w konkretnych przypadkach systemów o ograniczonych funkcjach, takich jak punkty sprzedażowe.

W dzisiejszych czasach wiele „najnowocześniejszych” programów odpowiada na zwiększającą się ilość cyberataków przez analizę po wykonaniu, w skład której wchodzi niekończący się monitoring urządzeń końcowych i natychmiastowa odpowiedź na ataki. Choć wydaje się, że na chwilę obecną wydaje się to słuszne, musimy spojrzeć na prawdopodobne rezultaty takich działań i zastanowić się, jak najlepiej poprawić obronność systemów.

Przygotowywać się na najgorsze?

Wykonanie pliku złośliwego na urządzeniu końcowym niesie ze sobą ryzyko. Atak przechodzi do fazy powykonawczej dopiero wtedy, kiedy zawiodły wszystkie inne środki zaradcze. Takie podejście bazuje na nadziei, że działanie takie programu ujawni jego istnienie albo, że zaatakowana firma będzie mogła wykorzystać nową warstwę monitorującą do odbudowaniu się po ataku. Monitoring powykonawczy zapisuje i analizuje zachowanie aplikacji, a w wielu wypadkach zapisuje i analizuje większość ruchu sieciowego. Wszystko to, by wykryć i odbudować się po tym, jak doszło już do najgorszego.

Słowo „najgorsze” jest tutaj kluczowe. Wierzymy, że sektor bezpieczeństwa stać na lepsze rozwiązania, niż dopuszczanie do najgorszego scenariusza, zanim nastąpi reakcja.

Wracając do tematu wykonywania złośliwego oprogramowania oraz analizy w punkcie końcowym, musimy zadać sobie pytanie: Co powinny monitorować te programy? Cel monitorowania to kluczowa sprawa. Jeśli program monitoruje większość sieci, system operacyjny i dane aplikacji w oczekiwaniu na najgorsze, oznacza to, że zbiera ogromne ilości danych.

Programy przeprowadzające działania po wykonaniu robią bałagan. Przy ograniczonej samodzielności takich programów nie stać na ominięcie czegoś ważnego, więc próbują zbierać i analizować całą nawałnicę danych. W ich skład wchodzi zapisywanie na dysku (i procesy plików macierzystych), uruchamianie, niektóre podzestawy rejestru, zdalne wywoływanie procedur, aktywność użytkowników (w tym odwiedzone URL-e, zapisane ciasteczka), zapytania DNS i dane sieciowe takie jak pcap i NetFlow dla każdej operacji.

Te ilości danych szybko się rozmnażają. Powiedzmy, że system gromadzi 1 megabajt danych na godzinę na hosta (albo 1000 jednokilobajtowych rejestrów po kompresji). Jeśli pomnożymy to przez 24 godziny dla 1000 hostów, daje to nam 24 miliony wydarzeń lub też 24 gigabajty danych dziennie. Po 90 dniach dochodzimy do 2,1 miliarda rejestrów albo też 2,1 terabajtów danych. Zastanówcie się teraz, ile danych zebrane by zostało w przypadku firm z 50 000 lub 100 000 hostów.

Nawet przy wykorzystaniu takiego szczegółowego podejścia podczas przeszukiwania, obrońcy mogą nigdy nie znaleźć igły w stogu siana. To ciężkie podejście jest niepotrzebnie skomplikowane i marnuje prąd, przestrzeń na dysku i zasoby sieciowe. Spójrzmy na niektóre ukryte koszty dla firmy w przypadku użycia strategii „detekcji i reakcji” po wykonaniu pliku złośliwego.

Koszty zarządzania

Zbieranie i utrzymywanie wolumenu informacji potrzebnych do wykorzystania strategii „detekcji i reakcji” to zobowiązanie, które powiększa się z czasem. Podobnie jest z kosztem pozyskiwania wartości z informacji. Firmy powinny zdawać sobie sprawę z następujących ukrytych kosztów i problemów:

Analiza incydentów bezpieczeństwa

Więcej incydentów prowadzi do większej ilości analiz i zwiększających się kosztów.

Działanie urządzeń końcowych

Ciągłe monitorowanie prowadzi do przestojów w działaniu, a niepotrzebne zbieranie danych obciąża system.

Przeszukiwanie chmury/Szybkość sieci

Choć to producent oprogramowania płaci za przechowywanie na chmurze, to firma płaci za przesyłanie danych.

Analiza na miejscu

Przechowywanie i zarządzanie na miejscu rozwiązaniami do przechowywania wielkich ilości danych zwiększa poziom komplikacji, a także koszty działania.

Kwestia prywatności danych

Programy, które zbierają i przechowują większość działań systemowych w celu detekcji i reakcji mogą przy okazji zbierać informacji, które niekoniecznie są im do tego potrzebne. Kontrola dostępu, miejsce zapisywania, okresy przechowywania i reguły szyfrowania zbieranych danych różnią się w zależności od producenta.

Niektóre programy wykorzystują rozwiązania z otwartym kodem źródłowym w celu uzyskania informacji o podejrzanym pliku. Źródła te często nie przekazują żadnych przydatnych informacji ze względu na fakt, że dawno nie używa się już programów powstrzymujących złośliwe pliki przed działaniem, a producenci nie inwestują odpowiednio w możliwości wykrywania plików.

Na przykład, dwa przypadku złośliwego oprogramowania z rodziny Dyre zostały wykryte dzień po dniu w czerwcu. System analizujący po wykonaniu sprawdzający bazę danych producenta 4 czerwca nie oznaczyłby żadnej próbki jako złośliwej na podstawie stanu wiedzy sektora na tamten dzień. Wiele jest przykładów złośliwego oprogramowania, które na początku nie jest tak zakwalifikowane, a potem przez tygodnie, miesiące, a nawet lata działa bez problemu. Opóźnienia te jeszcze bardziej podkreślają potrzebę działania systemów, które przejmą funkcję wykrywania złośliwego oprogramowania bez polegania na reaktywnych skanerach plików.

WYSIWYG

Dopuszczenie do wykonania złośliwego pliku przekłada się na poważne wyzwania technologiczne, jako że poszerza pole działania takiego programu, zamiast je zawężać. Oto kilka przykładów słabości wykrytych w nowych technologiach, które bazują na strategii „detekcji i reakcji”.

Dobre zachowanie / złe zachowanie

Podczas analizy po wykonaniu programy muszą monitorować podejrzany plik w jego naturalnym środowisku, aby wykrywać, logować i blokować procesy w celu regeneracji po ataku. Jednak nawet w przypadku stałego monitoringu nie da się przewidzieć, kiedy coś takiego jak Rombertik ujawni swoje obrzydliwe oblicze2,3,4. Wykonanie kodu może zabrać dni. Albo włączenie pliku może zależeć od działania użytkownika (na przykład przełączenia dokumentu na następną stronę). Wielu badaczy próbowało rozwiązać te problemy tylko po to, aby znowu się pojawiły5,6. Alternatywne podejście zakładałoby obserwowanie wszystkich programów bez przerwy w oczekiwaniu na niebezpieczne zachowanie, co prowadzi nas znowu do dyskusji na temat zarządzania kosztami bezpieczeństwa.

Kiedy jest naprawdę za późno?

Czy technologia monitorująca jest w stanie wykryć „zły proces”? Czy instalacja sterownika sama w sobie jest złośliwym procesem? Zazwyczaj odpowiedź na to pytanie brzmi „nie”, ale w momencie, kiedy odpali się instalator złośliwego sterownika kernela, jest już za późno, by uratować system. To tylko niektóre z wad monitorowania powykonawczego. Zazwyczaj to zestaw zachowań świadczy o złośliwym charakterze procesu. Może być jednak za późno na blokowanie, jeśli ta ocena nie została dokonana na czas lub, co ważniejsze, za każdym razem, gdy takie zachowanie miało miejsce. Wracamy w ten sposób do starego problemu „detekcji sygnatur”, gry w kotka i myszkę, w której obrońcy próbują wykryć atakującego jak najszybciej, a atakujący próbuje uniknąć złapania przez mieszanie prawidłowych, nieprawidłowych i „szarych” działań.

Oto przykłady nieodwracalnych szkód, które mogą zostać wyrządzone przez niezablokowany na czas złośliwy program:

Infekcja pasożytnicza

Jeśli doszło do włączenia programu pasożytniczego i zainfekowania plików krytycznych, koszt przywrócenia systemu do działania zwiększa się wielokrotnie. Pliki mogą zostać zniszczone permanentnie, wymagając ponownego postawienia systemu lub przywrócenia go z kopii zapasowej.

Zniszczenie danych

Ostatnio zaobserwowaliśmy dwa ataki, które nie zostałyby wykryte przy użyciu powykonawczej strategii „detekcji i reakcji”. Ataki na Saudi Aramco i Sony Pictures wykorzystywały podpisany komercyjny sterownik kernela w celu wyczyszczenia i zniszczenia docelowych maszyn7. Kolejnym prostym przykładem jest oprogramowanie CryptoWall/CryptoLocker, które szyfruje każdy plik w systemie, a następnie służy jako podstawa do wyłudzenia haraczu. Programy powykonawcze wykrywają takie ataki za późno, a systemy nie mogą być przywrócone do normalnego działania. Zademonstrowaliśmy to w materiale CylancePROTECT® vs. Ransomware8

 

Infekcja pasożytnicza

Jeśli doszło do włączenia programu pasożytniczego i zainfekowania plików krytycznych, koszt przywrócenia systemu do działania zwiększa się wielokrotnie. Pliki mogą zostać zniszczone permanentnie, wymagając ponownego postawienia systemu lub przywrócenia go z kopii zapasowej.

Zniszczenie danych

Ostatnio zaobserwowaliśmy dwa ataki, które nie zostałyby wykryte przy użyciu powykonawczej strategii „detekcji i reakcji”. Ataki na Saudi Aramco i Sony Pictures wykorzystywały podpisany komercyjny sterownik kernela w celu wyczyszczenia i zniszczenia docelowych maszyn7. Kolejnym prostym przykładem jest oprogramowanie CryptoWall/CryptoLocker, które szyfruje każdy plik w systemie, a następnie służy jako podstawa do wyłudzenia haraczu. Programy powykonawcze wykrywają takie ataki za późno, a systemy nie mogą być przywrócone do normalnego działania. Zademonstrowaliśmy to w materiale CylancePROTECT® vs. Ransomware8.

Detekcja narzędzi bezpieczeństwa i unikanie wrogich działań

Ostatnie badania złośliwego programu Rombertik pokazały, do jakiego chaosu może doprowadzić uruchomienie takiego oprogramowania. Rombertik próbuje przejść przez testy bezpieczeństwa, a następnie zniszczyć środowiska i maszyny, które próbują go analizować9.

Wyprowadzanie danych

Przez lata widzieliśmy wiele programów atakujących punkty sprzedaży, takich jak Framework POS, który wykorzystał mechanizm DNS do wyprowadzenia danych o kartach kredytowych10, czy okryty złą sławą BlackPOS, który zaatakował sieć Target w 2013 roku. Detekcja powykonawcza nie zmniejsza ryzyka takich ataków. Po tym, jak dane opuszczą system, zniszczeń nie da się cofnąć. Kiedy już złośliwy kod jest wykonywany, ma on wiele sposobów na wyprowadzenie danych, a programy obronne raz jeszcze muszą zastosować dziesiątki środków zaradczych.

Ataki na programy ochronne

Pozwolenie na wykonanie procesu dało wielu złośliwym programom możliwość bezpośredniego ataku na programy ochronne i agentów urządzeń końcowych. Na przykład w zeszłym roku program Vawtrak próbował wyłączać oprogramowanie antywirusowe przez wykorzystanie reguł ograniczania użycia oprogramowania11.

Powrót do przeszłości

Czego nauczyły się firmy produkujące oprogramowanie antywirusowe i eksperci przez prawie dekadę obserwacji rosnących kosztów i tworzenia nowych rozwiązań? Gdybyśmy mogli zrobić jedną rzecz inaczej, to co by to było?

Jest jasne, że wykorzystywanie rozwiązań, które wykrywają złośliwe oprogramowanie dopiero PO tym, jak zostało uruchomione, nie jest prawidłowe. Kiedy sektor bezpieczeństwa informatycznego zaczął odchodzić od technologii powstrzymywania przedwykonawczego programy stały się za bardzo reakcyjne i uzależnione od ręcznej analizy próbek i tworzenia sygnatur. Producenci mieli nadzieję, że analiza i rozwiązania powykonawcze dadzą oddech od problemu złośliwego oprogramowania, ale okazało się, że przez to systemy stały się za skomplikowane, drogie i jeszcze bardziej otwarte na ataki.

Cylance® radzi sobie z tymi problemami przez stworzenie pierwszego i jedynego środowiska detekcji zagrożeń bazującego na sztucznej inteligencji i nauce maszynowej. Głównym wyzwaniem stojącym przed środowiskiem przedwykonawczym jest analiza programu i określenie, czy plik jest prawidłowy czy nieprawidłowy na podstawie informacji zawartych w samym pliku. Musi to być przeprowadzane na ogromną skalę, która nie jest jednak kosztowna. Możliwość przeprowadzania takiej analizy na ogromnej próbie danych jest ważna, ponieważ tworzenie współczesnego oprogramowania złośliwego to proces automatyczny. W dzisiejszych czasach strona atakująca nie musi się za bardzo starać, aby zmutować jakiś program. Ręczne sygnatury (bazujące na emulacji lub heurystyczne) sprawdzały się wczasach, gdy tworzenie złośliwych programów odbywało się ręcznie, ale te czasy już się skończyły.

Aby wrócić do korzeni i powstrzymać oprogramowanie przed wykonaniem, Cylance wykorzystuje uczenie maszynowe do generowania modeli, które przewidują, czy dany program jest złośliwy. Takie podejście do wykrywania plików okazało się radykalnie efektywne. Firma Cylance udowodniła, że jest w stanie wykrywać programy złośliwe z niesamowitą dokładnością, nawet, jeśli wcześniej nie wiedziała o ich istnieniu. Wracając do przykładu z Dyre, firma Cylance skutecznie wykryła przy użyciu modelu matematycznego próbkę, która została udostępniona w sierpniu 2014 roku, na 10 miesięcy przed udostępnieniem pełnego wariantu. Oprogramowanie firmy Cylance było w stanie wykryć Dyre przed wykonaniem na długo przed uznaniem tego programu za złośliwy przez tradycyjne programy antywirusowe.

Detekcja przedwykonawcza nie jest jednak srebrnym nabojem, który powstrzyma każdy złośliwy program. Żadne pojedyncze rozwiązanie nie jest wystarczające. Jak wiedzą praktycy sektora bezpieczeństwa, chodzi w nim o minimalizowanie ryzyka, niestosowanie rozwiązań absolutnych.

Strategia przedwykonawcza to pierwszy krok w budowaniu efektywnego portfolio bezpieczeństwa. Identyfikacja złośliwych procesów przed ich wykonaniem ogranicza koszty zarządzania bezpieczeństwem i wpływ na działanie systemów. Ułatwia również wyzwania, które stają przed środowiskami analizy powykonawczej, zmniejszając ilość próbek do monitorowania i prawdopodobieństwo przejścia złośliwej próbki przez ostatnią linię obrony. Umożliwia zmniejszenie ilości warstw bezpieczeństwa, potrzebnych do walki z hakerami.

Podsumowanie

Sektor bezpieczeństwa przeszedł długą drogę w wykrywaniu złośliwych ataków. Jednak pędząc w stronę szybkich, łatwych, pudełkowych produktów sektor wpadł w pętlę sygnaturową. Producenci tworzą programy, autorzy złośliwych programów wymyślają sposoby na och obejście. Następnie producenci wynajdują nowe rozwiązania, które prowadzą do kolejnych technik ataku.

Wiele programów próbuje poradzić sobie z tym problemem przez podejście powykonawcze, polegające na „detekcji i reakcji”. Programy złośliwe znają wiele technik atakowania i obchodzenia takich mechanizmów.

Są one nie tylko nieefektywne, ale generują tyle dodatkowych danych, że wytwarzają sztuczną, rosnącą potrzebę wykształcania analityków danych, z którą sektor może sobie nigdy nie poradzić.

Nowe warstwy ochrony powinny wiedzieć co i kiedy monitorować. Jeśli rozwiązaniem jest ślepe logowanie wszystkiego, to jest to przygotowywanie się na ewentualny atak, nie aktywna próba niedopuszczenia do niego. To bardzo ryzykowne podejście. Jeśli obrońcy porzucają wszelką nadzieję ochrony przed atakiem, to zawsze będą działać za późno. Zawsze będą skupiać się na ograniczeniu strat firm, a to jest rozwiązaniem niedopuszczalnym.

Nowe warstwy ochrony powinny wiedzieć co i kiedy monitorować. Jeśli rozwiązaniem jest ślepe logowanie wszystkiego, to jest to przygotowywanie się na ewentualny atak, nie aktywna próba niedopuszczenia do niego. To bardzo ryzykowne podejście. Jeśli obrońcy porzucają wszelką nadzieję ochrony przed atakiem, to zawsze będą działać za późno. Zawsze będą skupiać się na ograniczeniu strat firm, a to jest rozwiązaniem niedopuszczalnym.

Bibliografia
1 http://www.verizonenterprise.com/DBIR/2015/
2 http://blogs.cisco.com/security/talos/rombertik
3 http://joe4security.blogspot.com/2012/10/defeating-sleeping-malware.html
4 http://www.networkworld.com/article/2163341/byod/-sleeper–malware-like-nap-trojan-nothing-new.html
5 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.361.9423
6 http://www.lastline.com/papers/acm_ccs11_hasten.pdf
7 http://arstechnica.com/security/2014/12/sony-pictures-malware-tied-to-seoul-shamoon-cyber-attacks/
8 http://www.youtube.com/watch?v=RkbB8pV09E8
9 http://blogs.cisco.com/security/talos/rombertik
10 http://blog.gdatasoftware.com/blog/article/new-frameworkpos-variant-exfiltrates-data-via-dns-requests
11 http://blog.trendmicro.com/trendlabs-security-intelligence/windows-security-feature-abused-blocks-security-software/