Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Mikołajki z sekurakiem! od 2 do 8 grudnia!
Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Mikołajki z sekurakiem! od 2 do 8 grudnia!
Wstęp
SysAnalyzer jest aplikacją (a właściwie zestawem), która pozwala na szybką analizę złośliwego oprogramowania poprzez obserwację wykonywanych przez nią działań w różnych stadiach systemu.
Oprogramowanie przed startem „złośliwej próbki” tworzy snapshot obecnego stanu naszego środowiska, który po uruchomieniu malware stanowi podstawę do stwierdzenia zmian w systemie.
Autorem aplikacji jest David Zimmer, którego możecie znać z takich narzędzi jak PDF Stream Dumper czy COMRaider.
W niniejszym artykule omówię opcje aplikacji SysAnalyzer, dzięki czemu korzystanie z niej stanie się znacznie prostsze.
Zanim zaczniemy…
Pamiętaj, że każdą analizę złośliwego oprogramowania powinieneś przeprowadzać w kontrolowanym środowisku. Uruchomienie maszyny wirtualnej na prywatnym lub biurowym komputerze, na którym codziennie pracujemy, nie jest najlepszym pomysłem. Zawsze istnieje ryzyko podatności oprogramowania, które wykorzystujemy do wirtualizacji (znane są takie przypadki z przeszłości, np. CVE-2014-0983, CVE-2015-3456 i CVE-2008-0923). Postaraj się stworzyć oddzielne środowisko z odseparowanym dostępem do Internetu (i dedykowanym adresem IP).
Instalacja
Instalacja przebiega w dość prosty sposób i sprowadza się do kliknięcia kilka razy przycisku „Dalej”, oczywiście poza zdefiniowaniem miejsca instalacji. Aplikacja po zainstalowaniu zajmuje ok. 8 MB, więc jest stosunkowo nieduża.
Jeżeli wybieraliśmy standardowe opcje, to na pulpicie powinniśmy zobaczyć 5 głównych elementów programu SysAnalyzer (które zostaną omówione w kolejnym rozdziale):

Pakiet aplikacji SysAnalyzer
Dostępny jest również kod źródłowy tej aplikacji:

Kod źródłowy pakietu SysAnalyzer
Konfiguracja
W tej części przyjrzymy się opcjom dostępnym w narzędziu SysAnalyzer. Po uruchomieniu aplikacji powinniśmy zobaczyć poniższy ekran:

Główny interfejs aplikacji
Do wyboru mamy następujące opcje:
Wskazówka: Druga opcja jest szczególnie przydatna, gdy chcemy przeanalizować np. działanie potencjalnie złośliwych dokumentów. Przyjrzyjmy się poniższym prostym przykładom:
Dokumenty *.doc – zakładając, że w celu analizy wykorzystamy oprogramowanie Microsoft Office, to w polu Executable podajemy lokalizację do głównego pliku aplikacji Microsoft Word, tj. WINWORD.EXE, natomiast w polu Arguments – lokalizację do pliku *.doc.
Analogicznie do powyższej sytuacji w przypadku np. plików PDF prawdopodobnie podalibyśmy lokalizację do AcroRd32.exe (Acrobat Reader) – w zależności od wersji systemu itp.
Decyzję o tym, jakiej aplikacji trzeba prawdopodobnie użyć, należy podejmować na podstawie rozszerzenia danego pliku i własnych doświadczeń.
Oczywiście pozostały jeszcze opcje dodatkowe:
Natomiast opcję „Skip”(odpowiadającą za przejście do panelu manualnej analizy) omówię w części Alternatywne uruchomienie.
Analizujemy plik i przeglądamy wyniki z raportu
Jeżeli udało nam się już zapoznać z podstawowymi opcjami aplikacji, to przyszedł czas na analizę.
Wskazówka: Wykorzystując maszynę wirtualną, warto przed rozpoczęciem zrobić snapshot – aby w prosty sposób powrócić potem do stanu początkowego.
Przykładowa konfiguracja może wyglądać następująco:

Przykładowa konfiguracja aplikacji SysAnalyzer
Jeśli mamy już ustawione wszystkie niezbędne opcje, to pozostało nam jedynie kliknięcie przycisku „Start”.
Bezpośrednio po uruchomieniu zobaczymy kolejno włączające się narzędzia oraz informację o starcie naszej potencjalnie złośliwej aplikacji „malware.exe”, a po chwili powinien pojawić się raport:

Raport wygenerowany przez aplikację SysAnalyzer
Jak pewnie zauważyliście, po uruchomieniu na Pulpicie został stworzony nowy katalog o nazwie „analysis”, w którym zapisane są wszystkie wyniki raportu.
Uwaga! Pamiętaj, że część informacji o zaistniałych zmianach w naszym środowisku zebranych przez narzędzia automatyczne nie zawsze wynika z działalności malware – czasami jest to po prostu zwykłe działanie systemu operacyjnego.
Przyjrzyjmy się teraz informacjom, które udało się uzyskać aplikacji. Widzimy 4 główne gałęzie:
W sekcji „\analysis” możemy znaleźć:

api.log

capture.pcap

debug.log

dirWatch.log

ProcWatch.log

Report_GODZINA-ANALIZY.log

sample_NAZWA-ANALIZOWANEJ-APLIKACJI.exe_

servers.log
Przyjrzyjmy się teraz sekcji „DirWatch”. Znajdziemy w niej kopie plików, które zostały stworzone w trakcie działania testowanej aplikacji. Jak widzimy, nawet plik „1478967.bat_”, który był stworzony, a potem usunięty, został skopiowany – dzięki temu możemy przejrzeć jego zawartość. Znalazły się tam również dwa pliki, które zazwyczaj nas nie interesują, m.in. wbemcore.log – są to pliki wygenerowane przez usługę WMI.

Katalog DirWatch
W części „NAZWA_MALWARE” (w naszym przykładzie będzie to „malware”) znajdziemy m.in. zrzuty pamięci, ciągów znaków oraz kopię testowanej aplikacji.

Katalog “NAZWA_APLIKACJI”
Ostatnią sekcją, jaką widzimy, jest „RWE_Memory”. Wszystkie nazwy procesów, które umieściliśmy w rubryce „RWE Scan” podczas konfiguracji, zostały przeskanowane pod kątem iniekcji w pamięci. Zobaczymy więc zrzuty pamięci z ww. procesów oraz ich ciągi znaków.

Katalog “RWE_Memory”
Częstym przykładem jest „załadowanie” przez złośliwe oprogramowanie nowej biblioteki dla procesu Explorer.exe – o czym (jeżeli do tego dojdzie) zostaniemy powiadomieni przez SysAnalyzer w raporcie.
Pamiętaj: Powodów tego, że nasza próbka nie zadziałała, może być wiele. Do najpopularniejszych należą: błędne środowisko uruchomienia, wadliwa próbka (np. brak części kodu w próbce w wyniku działalności oprogramowania antywirusowego) czy też fakt, że próbka nie jest złośliwa.
Alternatywne uruchomienie
Wracamy do opcji „Skip”, czyli przechodzimy do trybu manualnej analizy.
Na początek przyjrzyjmy się interfejsowi:

Interfejs aplikacji SysAnalyzer w trybie manualnym
W górnym menu mamy do wyboru następujące opcje:
Przejdźmy teraz do zakładek… Zanim je omówimy, warto dodać, że w każdej z nich istnieje możliwość filtrowania wyświetlonych danych pod różnym kątem (standardowo filtr ustawiony jest na kolumnę „Path”, o czym informuje * przy nazwie kolumny – możemy to zmienić, m.in. wpisując w pole „Filter” polecenie „/TUTAJ_NUMER np. /1”, co spowoduje ustawienie filtrowania na kolumnę „PID”).
Ponadto w większości okien, jeżeli klikniemy prawym przyciskiem myszy dany wpis, zobaczymy dodatkowe menu, w którym możemy m.in. przeanalizować konkretny proces („Analyze”), wyświetlić powiązane biblioteki DLL („ShowDlls”) oraz Mapę Pamięci z listą modułów i wykonywalnych sekcji (oraz typami pamięci itp.), zamknąć proces („Kill”), a także wyświetlić właściwości danego pliku („File Properties”) czy zapisać zrzut procesu do folderu „analysis”.

Lista dostępnych opcji w trybie manualnym

Lista uruchomionych procesów

Lista dostępnych portów

Lista bibliotek DLL

Lista załadowanych sterowników

Monitorowanie rejestru

Monitorowanie systemu plików

Lista mutex’ów

Monitorowanie harmonogramu zadań

Lista pipe’ów
Jak przeprowadzić najprostszą przykładową analizę manualną?
Wystarczy, że stworzymy snapshot początkowy: „Snapshot” –> „Take Snapshot 1”, a po chwili uruchomimy nasze złośliwe oprogramowanie. Po kilkunastu sekundach powinniśmy stworzyć snapshot końcowy: „Snapshot” –> „Take Snapshot 2”. Teraz pozostało nam jedynie porównać wyniki naszej analizy z wykorzystaniem opcji „Snapshot” –> „Show Diff report”.
Podsumowanie
SysAnalyzer jest interesującym projektem, który dostarczy nam wiele przydatnych narzędzi do obserwacji potencjalnie złośliwej aplikacji pod różnym kątem. W trakcie analizy kilkudziesięciu próbek w ramach testów kilka z nich nie uruchomiło się z bliżej nieokreślonej przyczyny w trybie automatycznym – ale już tryb manualny dał pozytywne rezultaty. Jeżeli nie mamy czasu na analizę, a chcielibyśmy przeanalizować daną aplikację (nie tylko złośliwą), to warto wybrać SysAnalyzer.
Download:
Źródła pozyskiwania próbek do analizy (wybrane):
~ Artur Czyż, konsultant d/s bezpieczeństwa IT & pentester w Securitum.
Super tool i znakomicie opisany :)
Dobro robota Panie Arturze :-D
Szkoda, że nie ma wersji na systemy unixowe
“Zanim zaczniemy…
Pamiętaj, że każdą analizę złośliwego oprogramowania powinieneś przeprowadzać w kontrolowanym środowisku. Uruchomienie maszyny wirtualnej na prywatnym lub biurowym komputerze, na którym codziennie pracujemy, nie jest najlepszym pomysłem. Zawsze istnieje ryzyko podatności oprogramowania, które wykorzystujemy do wirtualizacji (znane są takie przypadki z przeszłości, np. CVE-2014-0983, CVE-2015-3456 i CVE-2008-0923). Postaraj się stworzyć oddzielne środowisko z odseparowanym dostępem do Internetu (i dedykowanym adresem IP).”
hm.. A jak sobie na oddzielnym dysku postawię system obok tych do codziennego użytku. Nie będę montował pozostałych dysków. I na nim postawię maszynę virtualną do takiej analizy, to będzie ok?
Zdecydowanie nie polecam Ci takiego rozwiązania ;-)
Warto przygotować całkowicie dedykowaną maszynę (w większości przypadków wystarczy “stary” laptop), która jest podłączona do oddzielnej sieci (np. modem z kartą prepaid), w żadnym wypadku nie połączonej z inną.
Musisz mieć zawsze na uwadze, możliwość zidentyfikowania błędów w oprogramowaniu, którego używasz do zarządzania swoimi maszynami wirtualnymi.
Rozwiązanie z dedykowaną maszyną, podłączoną do całkowicie odseparowanej sieci – to kierunek w którym powinieneś pomyśleć, jeżeli chciałbyś analizować złośliwe oprogramowanie ;-)
Warto przygotować sobie dobry “warsztat pracy” :-)
“Musisz mieć zawsze na uwadze, możliwość zidentyfikowania błędów w oprogramowaniu, którego używasz do zarządzania swoimi maszynami wirtualnymi.”
No rozumiem, że może być błąd w systemie do virtualizacji. Może sprobuję rozrysować mój pomysł w ASCII.. :-)
dysk1 | dysk2 | dysk3 (do analizy malware montowany tylko na sys3)
Sys1 | sys2 | sys3 (do analizy malware montujący tylko dysk3)
| | virtualna maszyna (do analizy malware)
W takim modelu systemy wspołdzielą tylko ram, procesor, itd. Dyski są odseparowane, sieć jest łatwo zmienić lub całkowicie odłączyć. Co złego w takiej konfiguracji?