Analiza złośliwego oprogramowania to proces badania próbki wirusa, która trafiła w nasze posiadanie. Celem takiej operacji jest zrozumienie typu, funkcji, kodu, zachowania oraz potencjalnych skutków ataku malware. Najczęściej analizę przeprowadzają wykwalifikowane w tym kierunku zespoły specjalistów, jednak warto znać podstawy i samą metodykę badania. Na „niskim poziomie wtajemniczenia” wszystkie kroki analizy może przeprowadzać samodzielnie w swoim środowisku testowym każdy z nas.
Co otrzymujemy po przeprowadzeniu udanej analizy:
- Wiemy, jak działa złośliwe oprogramowanie – jeśli zbadamy kod i poznamy jego algorytm, będziemy w stanie powstrzymać go przed zainfekowaniem całego systemu.
- Znamy charakterystykę programu – dzięki temu możemy poprawić wykrywanie w oparciu o wersję, nazwy i rozszerzenia plików itp.
- Wiemy, jaki jest cel danego oprogramowania – po uruchomieniu malware w testowym środowisku odwzorowującym produkcję
- Mamy informacje o tym, kto stoi za atakiem – adresy IP, pochodzenie, używane TTP i inne artefakty ukrywane przez hakerów.
Rodzaje analizy malware
Możemy wyróżnić dwie główne kategorie przeprowadzania analizy malware – statyczną i dynamiczną. Poniżej podajemy szczegółowe czynności przeprowadzane podczas tych operacji oraz ich cechy.
Analiza statyczna:
- zrozumienie złośliwego kodu,
- czytanie i wykrycie sygnatur malware,
- pomaga tylko przy prostych atakach i znanych rodzinach oprogramowania,
- wymaga użycia narzędzi AV, „odcisków palców”, zrzutów pamięci, metadanych plików.
Analiza dynamiczna:
- obserwacja zachowania malware w środowisku wirtualnym,
- wykrywanie malware, bazując na jego zachowaniu,
- pomaga przy nowych i zaawansowanych atakach,
- uruchomienie malware i obserwowanie wykonywanych przez nie czynności: tworzenie procesów, wywołania API, zmiany w rejestrze.
Etapy analizy
W ramach opisanych poniżej pięciu kroków głównym celem dochodzenia jest uzyskanie jak największej ilości informacji o złośliwej próbce, algorytmie wykonania oraz sposobie działania szkodliwego oprogramowania w różnych scenariuszach.
Oczywiście najskuteczniejszą metodą analizy złośliwego oprogramowania jest łączenie metod statycznych i dynamicznych. Poniżej krótki przewodnik, jak przeprowadzić taką analizę:
Krok 1. Postaw maszynę wirtualną
Na początku niezbędne będzie czyste środowisko wirtualne z określonymi wymaganiami, takimi jak przeglądarka, pakiet Microsoft Office, bitowość systemu operacyjnego i ustawienia regionalne. Dodaj narzędzia do analizy i zainstaluj je w swojej maszynie wirtualnej: FakeNet, proxy MITM, Tor, WireShark, ProcessHacker itp.Krok 2. Sprawdź właściwości statyczne
Sprawdź plik wykonywalny bez uruchamiania go: sprawdź stringi, aby zrozumieć działanie złośliwego oprogramowania. Skróty, ciągi i zawartość nagłówków zapewnią przegląd intencji malware.Krok 3. Monitoruj zachowanie złośliwego oprogramowania
Uruchom próbkę malware w bezpiecznym środowisku wirtualnym. Wejdź w bezpośrednią interakcję ze złośliwym oprogramowaniem, aby program działał i by można było obserwować jego zachowanie. Sprawdź ruch sieciowy, modyfikacje plików i zmiany w rejestrze, a także wszelkie inne podejrzane zdarzenia.Krok 4. Rozgryź kod
Jeśli cyberprzestępcy zaciemnili lub spakowali kod, użyj technik odciemniania i inżynierii wstecznej, aby przeczytać jego zawartość. Zidentyfikuj możliwości, które nie zostały ujawnione podczas poprzednich kroków. Nawet szukając nazwy funkcji wykorzystywanej przez złośliwe oprogramowanie, można wiele powiedzieć o jej funkcjonalności. Na przykład funkcja „InternetOpenUrlA” informuje, że to złośliwe oprogramowanie nawiąże połączenie z jakimś zewnętrznym serwerem. Na tym etapie wymagane są dodatkowe narzędzia, takie jak debugery i deasemblery.Krok 5. Napisz raport
Połącz wszystkie ustalenia i dane, które znalazłeś. Podaj następujące informacje:- podsumowanie badań z nazwą, pochodzeniem i kluczowymi cechami szkodliwego programu,
- ogólne informacje o typie złośliwego oprogramowania, nazwie pliku, rozmiarze, wartościach skrótów i możliwościach wykrywania przez AV,
- opis złośliwego zachowania, algorytmu infekcji, technik rozprzestrzeniania się, gromadzenia danych i sposobów komunikacji С2,
- ustawienia systemu operacyjnego, oprogramowanie, pliki wykonywalne i pliki inicjujące, biblioteki DLL, adresy IP i skrypty,
- przegląd działań związanych z zachowaniem, takich jak miejsce, z którego kradnie poświadczenia, czy modyfikuje, usuwa lub instaluje pliki, odczytuje wartości i sprawdza język,
- wyniki analizy kodu, dane nagłówków,
- zrzuty ekranu, dzienniki, linie tekstowe, fragmenty itp.,
- IOC.
Podsumowanie
Z powyższej instrukcji możemy dowiedzieć się, że do przeprowadzenia podstawowej analizy złośliwego oprogramowania nie potrzebujemy zaawansowanej wiedzy ani narzędzi. Wystarczy znajomość technik używanych przez malware, dobra znajomość systemu operacyjnego oraz ciekawość i precyzyjność, aby samodzielnie przeprowadzić dochodzenie i wyłuskać najciekawsze informacje.