Jak wykryć złośliwe oprogramowanie

1

Dzisiejsze złośliwe oprogramowanie działa w sposób ukryty. Gdy już poznamy jego skutki, jest najczęściej za późno. W wielu jednak przypadkach malware da się wykryć na wczesnym etapie działania. Pojedyncza metoda detekcji rzadko jednak przynosi oczekiwane efekty. W więc sposób można to zrobić?

Ataki przeprowadzane z użyciem złośliwego oprogramowania są dziś wieloetapowe. Rozpoczynają się od rozpoznania celu. Następnie odbywa się dostarczenie pierwszego składnika, który po przejęciu kontroli łączy się z serwerem zarządzającym, ustanawia kanał komunikacji, pobiera potrzebne składniki malware, przejmuje kontrolę nad kolejnymi maszynami. Następnie zaś przystępuje do szkodliwych działań. Jeśli jest to kampania oprogramowania wymuszającego okup, narzędzia te po zakończeniu pracy wyświetlają komunikaty, które mają na celu wskazanie ofierze w jaki sposób może go zapłacić.

Początek cyberataku

Rozpoznanie zaczyna się od skanowania zewnętrznych maszyn, prób połączeń oraz przemycenia linków lub załączników zawierających pierwszy ze składników, popularnie nazywany dropperem. Zadaniem droppera będzie instalacja właściwych składników złośliwego oprogramowania, które przy bezpośrednim dostarczeniu byłyby wykryte przez narzędzia ochronne. Dobrą ochronę przed wykorzystaniem przez włamywacza informacji o firmie przyniosą zatem dobrze skonfigurowane zapory sieciowe i honeypoty. Na etapie rozpoznania można zebrać ewidencję i później ją przeanalizować, aby określić początkowy wektor ataku.

Dostarczenie i przejęcie kontroli/h4>

Aktywność włamywacza w obrębie firmowych komputerów zaczyna się w momencie dostarczenia złośliwego oprogramowania do stacji roboczych lub serwerów. Gdy taki wirus zostanie uruchomiony, zazwyczaj pozostawia ślad na dysku lub w logach serwera. Dzieje się tak szczególnie jeśli włączony jest audyt użycia przywilejów w systemie Windows. Automatyczne wykrycie ataku na tym etapie napotyka jednak na trudności ze względu na obecność bardzo wielu zdarzeń o podobnym poziomie ważności. Generowane są przez normalną aktywność systemu operacyjnego i pracujących w nim aplikacji. Pewną wskazówkę przynoszą metadane pliku wykonywalnego oraz historia ich zmian, ale czasami jedynym sposobem będzie ręczna analiza uruchamianych procesów za pomocą narzędzi typu Process Explorer lub dołączenie debuggera. Niektóre rozwiązania umożliwiają automatyczne skopiowanie podejrzanego pliku z atakowanego komputera, a nawet dokonanie zrzutu pamięci pracującej maszyny i analizę danych w odizolowanym środowisku.

Naturalną obroną przed początkową infekcją będą narzędzia ochrony poczty elektronicznej, skanery zawartości wbudowane w nowoczesne zapory, klasyfikacja i kontrola pobieranej zawartości ze stron WWW, narzędzia antywirusowe oraz dedykowane rozwiązania detekcji korzystające z agentów endpointowych. Niemałą rolę odgrywa aktualizacja oprogramowania oraz odpowiednia konfiguracja uprawnień użytkownika. Im trudniej będzie włamywaczowi dostać się do systemu operacyjnego w sieci lokalnej, a następnie uzyskać uprawnienia systemowe na choćby jednym z komputerów, tym mniej prawdopodobne będą dalsze etapy ataku. Poziom bezpieczeństwa stacji roboczych można znacząco podnieść, wprowadzając blokowanie za pomocą narzędzia AppLocker możliwości uruchomienia aplikacji z miejsca, do którego użytkownik ma prawo zapisu.

Komunikacja generowana przez złośliwe oprogramowanie/h4>

Złośliwe oprogramowanie silnie korzysta z komunikacji przez Internet, dzięki czemu może być niesłychanie elastyczne. Może pobierać nowe składniki i konfigurację zależnie od potrzeb, może interaktywnie wykonywać działania, które zaplanował jego konstruktor. Równocześnie komunikacja sieciowa jest największą słabością złośliwego oprogramowania, gdyż stosunkowo łatwo ją monitorować za pomocą dostępnych narzędzi. Początkowo serwer kontroli botnetu był wpisany statycznie, ale dość szybko przestępcy nauczyli się korzystać z technik szybkiej zmiany i wdrożyli technologię fast flux, korzystającą z częstozmiennych wpisów DNS. Taki kanał kontroli można było jednak zamknąć poprzez przejęcie domeny odpowiedzialnej za kontrolę botnetu. Dalszym krokiem było automatyczne generowanie domen za pomocą algorytmów klasy DGA.

Wiele narzędzi wykrywających złośliwe oprogramowanie monitoruje odwołania do DNS i posiada wbudowany detektor DGA, bazujący na zapytaniach kierowanych do serwera DNS. Nawet prosta statystyka zapytań – w których serwer DNS odpowiada „domena nie istnieje” – może przynosić pewne wskazówki odnośnie do zarażonych hostów. Włamywacze korzystają także z komunikacji w otwartych, ale trudniejszych do monitorowania kanałach, takich jak publiczne wpisy w sieciach społecznościowych lub komunikacja upodobniona do rzeczywistej aktywności użytkowników na forach dyskusyjnych. W takim przypadku nawet prosta statystyka wykaże większą niż zwykle liczbę podobnych zapytań do domeny o nieznanej reputacji. Przy podobnym ataku najwięcej pomocy przyniesie kontrola ruchu sieciowego, szczególnie wtedy, gdy analizowana jest reputacja stron, narzędzia posiadają detektor DGA, a także inspekcję ruchu SSL. W wielu przypadkach pomoże nawet zwykły serwer proxy, przy zablokowanym routingu do Internetu, gdy jedyna droga wiedzie przez serwer pośredniczący z uwierzytelnieniem, osiągalny z lokalnej sieci.

Przemieszczenia poziome/h4>

Włamywacz – gdy już przejmie kontrolę nad pojedynczym komputerem w środku firmowej sieci – zazwyczaj rozszerza strefę wpływów. Do tego celu może wykorzystać skradzione uwierzytelnienie lub podatność docelowego systemu. Atak ten jest szczególnie łatwy do przeprowadzenia, jeśli w organizacji wykorzystuje się uwierzytelnienie z użyciem skrótów NTLM. Jednak już wykrycie przemieszczeń poziomych – z użyciem skradzionego uwierzytelnienia – jest trudne, gdyż wymaga zarejestrowania połączeń sieciowych między obiema maszynami. Porównanie logów komunikacji i uwierzytelnienia umożliwia wychwycenie anomalii. Największą korzyść przyniesie zapisanie informacji o sesjach pozyskanej z przełączników sieciowych (sFlow), a następnie analiza tych informacji pod kątem połączeń i użytego przy tym uwierzytelnienia.

Obrona przed podobnymi atakami jest trudna, gdyż wykorzystują one natywne mechanizmy uwierzytelnienia działające w środowiskach Windows. Ryzyko można zmniejszyć przez zapewnienie unikatowości haseł administracyjnych na każdym z endpointów, wyłączając przechowywanie niezaszyfrowanych haseł w pamięci, wyłączyć przechowywanie skrótów kryptograficznych, wprowadzając zarządzanie kontami lokalnymi oraz kontem krbtgt. Przy tym hasła należy zmienić dwukrotnie. Nadal możliwy będzie jednak atak polegający na wykorzystaniu podatności w systemie operacyjnym lub aplikacji. Najskuteczniejszą obroną będzie separacja połączeń na poziomie sieci lokalnej, uniemożliwiająca bezpośrednie połączenia między maszynami. Segmentacja sieci może poważnie pokrzyżować szyki napastnikom, dlatego warto rozważać ograniczanie dostępu do krytycznych obszarów.

Kradzież lub niszczenie danych/h4>

Gdy włamywacz uzyska dostęp do poszukiwanych zasobów, przystępuje do zaplanowanych działań – kradzieży lub szyfrowania plików. Pobieranie lub nadpisywanie danych pozostawia ślady w logach. Niewiele firm monitoruje jednak na żywo to, co się dzieje na stacjach roboczych i serwerach.

Aktywność malware’u zależy od tego, z jakim naprawdę atakiem mamy do czynienia. Jednak kilka działań spotyka się dość często. Są nimi: wyłączenie mechanizmu Volume Shadow Copy i usunięcie istniejących kopii, pojawianie się nowych rozszerzeń plików, często wykonywane operacje zmiany nazwy pliku, znaczący wzrost liczby wykonywanych operacji sieciowych z pojedynczych stacji roboczych, daleko odbiegający od typowego zachowania, nadpisywanie plików, dostęp z zapisem do plików i katalogów o dość starej dacie ostatniej modyfikacji, tworzenie plików w katalogach, w których ktoś dawno nie wykonywał zmian, rekursywne przeszukiwanie katalogów w poszukiwaniu plików i podobne działania, które użytkownicy wykonują stosunkowo rzadko. Część z tych akcji można wykryć za pomocą monitoringu, dodając do funkcji File Screening znane rozszerzenia, często wykorzystywane przez ransomware. Pomocne będzie także utworzenie udziału sieciowego o pierwszej dostępnej literze (np. F:\) na którym będą znajdować się monitorowane pliki (ustawiona inspekcja sukcesu dostępu do tych plików). W przypadku próby odczytu lub nadpisania, system podniesie alarm.

Na tym etapie napastnika może powstrzymać odpowiednio szybka reakcja i niemal natychmiastowe wdrożenie odpowiedzi na powstałe zagrożenie. Zablokowanie komunikacji sieciowej uniemożliwi eksfiltrację danych, ale nie spowoduje przerwy w pracy oprogramowania ransomware, które już wygenerowało klucze szyfrujące i przystępuje do niszczenia danych. Naturalną odpowiedzią na infekcję może być automatyczne przełączenie konfiguracji sieci w taki sposób, by podatne maszyny przenieść do wydzielonego segmentu sieci (popularnie nazywanego kwarantanną), a następnie zlecenie usunięcia malware’u przez dział wsparcia technicznego. W przypadku ransomware’u, który już zaszyfrował dane, należy odtworzyć dane z kopii bezpieczeństwa.

Jak działają nowoczesne antywirusy

Jednym z pierwszych sposobów wykrywania wirusów było zweryfikowanie całego pliku lub poszukiwanie unikatowych jego fragmentów, czyli analiza sygnaturowa. W ten sposób działał mks_vir, który w był pierwszym programem antywirusowym w Polsce. Poszukiwanie miejsc w kodzie lub porównanie skrótów kryptograficznych znanych zagrożeń jest wykorzystywane do dziś. Sprawdzenie odbywa się bardzo szybko i przynosi efekty w stosunku do zagrożeń, które są już znane. Uzupełnieniem tej metody stały się słowniki i dynamiczne listy kontrolne utrzymywane przez producenta antywirusów. Dzięki efektowi skali, producent widzi symptomy masowych infekcji przy użyciu tych samych narzędzi i stosunkowo łatwo może zablokować nawet dość rozległe kampanie realizowane za pomocą tego samego złośliwego oprogramowania.

Omijanie zabezpieczeń sygnaturowych jest stosunkowo proste i powszechnie spotykane. Przy dużych kampaniach badacze spotykali serwery, który dostarczał unikatowe instancje malware’u w bardzo krótkich odcinkach czasu, aby uniknąć wykrycia przez antywirusy bazujące na sygnaturach. Dodatkowo włamywacze opracowali technikę ataku drive-by, w której docelowy kod malware’u jest składany z różnych, często zaszyfrowanych fragmentów.

Statyczna analiza, która nie koncentruje się na skanowaniu sygnatur, ale na poszukiwaniu charakterystycznych instrukcji, właściwych dla złośliwego oprogramowania to analiza heurystyczna. Metoda ta w wielu przypadkach dobrze sobie radzi z nieznanym zagrożeniem, jeśli tylko wykorzystuje ono któryś ze znanych mechanizmów do replikacji, połączeń, złośliwych działań bądź komunikacji. Dzieje się tak także, gdy próbka wykazuje pewne szczególne cechy, które można wykryć. W ten sposób da się wykryć kolejne warianty znanych już zagrożeń, nadążając za powszechną tendencją do ponownego wykorzystywania tych samych metod, bibliotek lub fragmentów kodu wirusów. Tę analizę można ominąć za pomocą zaciemniania i szyfrowania kodu.

Obie metody razem wzięte umożliwiają wykrycie wielu zagrożeń, ale działają jeszcze lepiej po wzbogaceniu o analizę reputacji. Dzięki powszechności sprawdzania sum kryptograficznych znanych plików producenci narzędzi antywirusowych tworzą bazę informacji o znanych plikach (składnikach systemu operacyjnego, popularnych i bezpiecznych aplikacjach) oraz o nowych zagrożeniach, razem z informacjami o obecnych tam plikach oraz miejscach, skąd są one pobierane. Nawet jeśli złośliwe oprogramowanie zostało przygotowane w taki sposób, aby utrudnić rozpoznawanie używanego kodu i nie ma jeszcze znanych sygnatur zagrożenia, analiza reputacji może pomóc – włamywacze mogli skorzystać z istniejącego serwisu, w którym malware już kiedyś się znajdowało. Włamywacze omijają to zabezpieczenie poprzez umieszczanie malware’u na przejętych serwisach o dobrej lub obojętnej reputacji.

Jeśli analiza statyczna nie przyniosła rozstrzygnięcia, nowoczesne narzędzia dysponują dynamiczną metodą wykrywania złośliwego oprogramowania, polegającą na uruchomieniu kodu w kontrolowanym środowisku nazywanym piaskownicą (sandbox). Jeśli próbka kodu wykazuje zachowania właściwe dla wirusów, to uznaje się ją za złośliwe oprogramowanie. W odróżnieniu od poprzednich metod, przy analizie dynamicznej nie poszukuje się sygnatur, ale analizuje działanie prawdziwej próbki kodu. Przykładowe działania mogą obejmować otwieranie i nadpisywanie różnych plików, konkretne odwołania do obiektów jądra systemu, próby instalacji rezydentnej, pobieranie i uruchamianie plików lub otwieranie różnych kanałów komunikacji.

Metoda ta powoduje sporo fałszywych alarmów, ale daje szansę wykrycia przynajmniej części zagrożeń, dla których nie ma jeszcze sygnatur, ani wskazówek reputacji. Wiele dzisiejszych zapór sieciowych umożliwia wysłanie podejrzanego pliku do sprawdzenia za pomocą kontrolowanego uruchomienia w piaskownicy. Włamywacze opracowali jednak metody omijania także tej metody. Wykrywają używane sterowniki środowisk wirtualizacji, sprawdzają używane klucze licencyjne Windows, konfigurację środowisk oraz inne cechy, które wskazują na pracę w „piaskownicy”.

Artykuł ukazał się na łamach Magazynu ITwiz nr. 4/2018.

1 KOMENTARZ

  1. Bardzo fachowy artykuł. Dzisiaj złośliwe oprogramowanie jest prawdziwą plagą. Bardzo trudno ustrzec się przed nimi na domowych komputerach z których korzystają inni, mniej obeznani w internecie członkowie rodziny.

ZOSTAW ODPOWIEDŹ