sobota, 13 czerwca 2015

Malware timeline

Historia aktywności (ang. timeline lub jak ktoś woli oś czasu) jest techniką wykorzystywaną w informatyce śledczej. Chodzi o odtworzenie w czasie sekwencji aktywności wykonywanych przez użytkownika.

Tę technikę możemy zastosować gdy nie mamy 100% pewności czy i ewentualnie który plik/pliki są złośliwym oprogramowaniem na komputerze. Oczywiście cele analizy mogą być różne – od identyfikacji złośliwego oprogramowania po określenie do których informacji intruz uzyskał dostęp.

Odtworzenie zdarzeń w czasie jest tym dokładniejsze im większą ilość danych posiadamy. Można to porównać do dedykowanych systemów używanych w instytucjach do zbierania i korelacji zdarzeń z wielu systemów i aplikacji. Przenosząc analogiczną funkcjonalność na poziom jednego serwera lub stacji roboczej również mamy na myśli zdarzenia generowane przez aplikacje ale nie tylko. Są to również zdarzenia zapisywane w metadanych systemu plików (w tym informacje o usuniętych obiektach), dane z rejestrów czy dzienników zdarzeń systemu operacyjnego.

Przed rozpoczęciem analizy chcemy zwrócić uwagę na dwie istotne kwestie.

Timeline to historia zdarzeń w czasie gdzie głównym parametrem są daty zapisane w systemie. W przypadku danych z systemu plików jest to informacja o ostatnim dostępie do pliku czy ostatniej zmianie zawartości pliku. Dla przykładu, jeśli użytkownik pięć razy odczytywał zwartość pliku – to w systemie plików mamy informację o ostatniej dacie. Oczywiście jest wiele wyjątków od tej zasady (miejsc gdzie możemy odczytać inne daty).

Podczas analizy istotna jest również wiedza na temat jak konkretny system się „zachowuje” (np. kiedy uaktualniana jest zawartość parametru Date Accessed atrybutu STANDARD_INFORMATION dla pliku - rekordu typu FILE w tablicy MFT dla systemu Windows 7).

Podsumowując – trzeba być bardzo ostrożnym w formułowaniu wniosków w raporcie z analizy.

Zacznijmy jednak od prostego przykładu. Chcemy sprawdzić, czy użytkownik otworzył otrzymaną „fakturę/informację o przesyłce, paczce, działce itp” oraz czy i ewentualnie jaka była aktywność złośliwego oprogramowania na zainfekowanym komputerze.

Pierwszy krok to wykonanie kopii dysku twardego komputera.

Drugi krok to zamontowanie partycji w trybie do odczytu na systemie używanym do analizy. Polecamy SIFT Workstation [1].

#mount.ntfs-3g –o ro,nodev,noexec,show_sys_files,loop malware_ntfs01.dd /cases/training/analiza

Krok trzeci – korzystając z narzędzia log2timeline generujemy plik w formacie csv o “wszystkich” zdarzeniach w analizowanym systemie [2]:

#log2timeline –z CET –w /cases/wynik_timeline.csv –f win7 –r –p /cases/training/analiza


Istotna jest wartość parametru -f. Lista win7 zawiera następujące moduły (parser-y do analizy danych): chrome, evtx, exif, ff_bookmark, firefox3, iehistory, iis, mcafee, opera, oxml, pdf, prefetch, recycler, restore, sol, win_link, xpfirewall, wmiprov, ntuser, software, system, sam, mft, ff_cache, mcafeefireup, mcafeehel, mcafeehs, openvpn, skype_sql, security, Symantec, firefox2 oraz safari.

Mamy też inną możliwość - zapisanie wyników w formacie mactime [3] (przełącznik –o) i za pomocą komendy mactime wykonania filtrowania w przedziale czasu (#mactime –b /cases/wynik_timeline.txt  2015-06-01..2015-06-11 > wynik_timeline_filtered.txt)

My zapisujemy dane w formacie csv gdyż do analizy aktywności użyjemy narzędzia graficznego 4n6time [2].

Po uruchomieniu 4n6time tworzymy nową bazę i wczytujemy plik csv. Dodatkowo wprowadzamy filtr dotyczący przedziału czasu.

4n6time pozwala wyszukiwać po każdym z pół. Jeżeli nie mamy pomysłu od czego zacząć – sprawdźmy czy zmodyfikowany został np. rejestr RUN (częste zachowane malware). Użyjemy do tego funkcji String Search.


8 czerwca o godzinie 13:19:37 zmodyfikowany został klucz RUN (MACB to kolejno: File Modified, Accessed, MFT Modified, Changed).

Sprawdźmy inne zdarzenia w tym samym czasie zapisane w analizowanym systemie:


Oprócz informacji z rejestrów (NTUSER.dat – profil zainfekowanego użytkownika) jest jeszcze zdarzenie dotyczące utworzenia pliku exe w podkatalogu c:/Users/<username>/AppData/Local użytkownika.

Sekundę wcześniej został zmodyfikowany plik w katalogu Prefetch. Informacja z prefetch (modyfikacja czasów AB) oznacza, że plik aaa.exe („faktura” – plik wykonywalny ze złośliwym kodem) był uruchamiany przez użytkownika więcej niż 1 raz.

Potwierdza to informacja o pliku z funkcji systemu Windows User Assist (zapisuje dane w NTUSER.DAT):


W niniejszym przykładzie korelacja danych pochodzi tylko z 3 modułów (prefetch, mft, ntuser) a mimo to pozwoliła na odtworzenie fragmentu zdarzeń z przeszłości.

Kontynuując analizę możemy zauważyć, że niecałe 3 minuty później tworzone i modyfikowane są pliki (exe i tmp) w katalogu temp zainfekowanego użytkownika.


Z poziomu narzędzia 4n6time będzie możliwe  sprawdzenie podejrzanych plików w VirusTotal lub wyświetlić ich zawartość.

Pliki exe to programy rozsyłające wiadomości email z „informacją o przesyłce” na kolejne adresy email. W plikach .tmp znajdują się treści email oraz stron w różnych językach – w tym ten dotyczący przesyłek DHL.




Należy pamiętać, że timeline nie umożliwi odtworzenia wszystkich zdarzeń / aktywności programów – w szczególności wszystkich aktywności złośliwego kodu (zazwyczaj malware nie korzysta z przeglądarki internetowej tylko bezpośrednio z API bibliotek). Niemniej technika ta pozwala na odtworzenie działań użytkowników w tym zidentyfikowania źródła infekcji.

Odnośniki:

[1] http://digital-forensics.sans.org/community/downloads
[2] http://plaso.kiddaland.net/
[3] http://www.sleuthkit.org/