4. Pozyskiwanie i analiza informacji ulotnych

4.2. Analiza pozyskiwania pamięci

Istnieją pewne narzędzia do analizy zrzutu pamięci, które opierają się tylko na zawartości pamięci RAM. Zawartość ta może być niekompletna, ponieważ części pamięci są przechowywane na dysku, gdy nie wystarcza do przechowywania wszystkich danych. Aby przezwyciężyć ten problem, Nicholas Paul Maclean opublikował swoją pracę dyplomową "Acquisition and Analysis of Windows Memory", jak działa zarządzanie pamięcią w systemach Windows i udostępnił narzędzie open-source o nazwie vtop, aby w pełni zrekonstruować przestrzeń pamięci wirtualnej procesu.

Do analizy Memory Dump możemy wykorzystać program Volatility, w którym możliwe jest wykonanie takich zadań jak uzyskanie wysokopoziomowych informacji o obrazie, gdzie wydedukowano identyfikację systemu operacyjnego (Rysunek 35), service pack, sprzęt, architektura, adres pamięci oraz wydedukowany jest czas wykonania Dump'u.


Rysunek 35 - Uzyskiwanie informacji o zrzucie pamięci

Polecenia przydatne do wykonania zrzutu rekordów:

Eksport do tekstu:

C:Regdmp.exe > e:registryDump.txt

Znajdź wyrażenia w wyeksportowanym pliku:

C:\"URL\" registryDump.txt

Kopia plików rejestru w użyciu:

C:\NRawCopy.exe C:\NWINDOWS \NKonfiguracja E:\Noutput -AllAttr

Inne przydatne polecenia:

Uzyskaj zrzut ekranu pulpitu:

C:nircmd.exe savescreenshot screen1.png (Nirsoft.net)

Sprawdzenie, czy dysk jest chroniony za pomocą funkcji Encryption (Rysunek 36)

C:EDD.exe /accepteula /Batch > e:\NEncryptedDiskDetector.txt

C:-zarządzanie-bde -protektory c: -get

 

Rysunek 36 - Identyfikacja dysku zaszyfrowanego

4.2.1.  Sintax programu Volatility

 

Pierwsza wersja Volatility Framework została ujawniona na konferencji Black Hat. Oprogramowanie opiera się na latach badań akademickich w zakresie zaawansowanej analizy pamięci i kryminalistyki. Volatility pozwala teraz badaczom analizować, w jakim stanie znajdowała się maszyna w momencie dokonywania przejęcia, na podstawie danych zebranych z pamięci lotnej.

Volatility Framework bazuje na języku programowania Python, będąc rozwijanym w Pythonie 2 w jego najbardziej dojrzałej wersji, czyli tej, którą zajmiemy się w tym temacie. Wraz z pojawieniem się Pythona 3 zaistniała również potrzeba aktualizacji wersji Volatility, wykorzystując nową wersję Pythona i zapewniając mu większą automatyzację. W wersji 2 Volatility Framework pierwszym krokiem do wykonania analizy pamięci jest określenie rodzaju Systemu Operacyjnego. W tym celu możemy skorzystać z polecenia imageinfo programu Volatility (Rysunek 37). Polecenie to jest przydatne do uzyskania wysokopoziomowych informacji o obrazie, wskazuje prawdopodobną identyfikację systemu operacyjnego (profil), Service Pack, architekturę sprzętową, adres pamięci i czas zrzutu.

 

Rysunek 37 - Przykładowy rezultat polecenia imageinfo

Później musimy przekazać zawartość pamięci do plików tekstowych, aby możliwa była analiza jej zawartości. Volatility dostarcza do tego celu szeregu wtyczek.

Sintax: volatility -f <nome_da_imagem> -profile=< tipo_de_OS> <plugin> > <output>.

·       -f: Plik wynikający z przejęcia systemu

·       -profile: instrukcja użycia profilu systemu operacyjnego (wcześniej zidentyfikowanego)

·       plugin: plugin, który ma zostać wykonany

·       output: plik do eksportu wyników

 

4.2.2.  Pluginy Volatility - Ekstrakcja

Wtyczki, których używa volatility, są specyficzne dla identyfikacji odpowiednich informacji w zawartości RAM dump. Niektóre z tych pluginów omówimy tutaj.

Pslist           Lista uruchomionych procesów

 

Pstree         Wyświetl procesy, rozróżniając je pod względem pochodzenia (Rysunek 38)


Rysunek 38 - Wtyczka pstree

 

Psxview       Porównaj procesy (Rysunek 39)


Rysunek 39 - Plugin Volatility psxview

 

Netscan       Wyświetlanie połączeń sieciowych

 

Cmdline      Cmdline Porównaj procesy (Rysunek 40)


Rysunek 40 - Plugin cmdline Volatility

 

Cmdscan     Porównaj procesy (Rysunek 41)


Rysunek 41 - Wtyczka cmdscan Volatility

 

Konsole. Porównaj procesy (Rysunek 42)


Rysunek 42 - Plugin konsoli Volatility

Zrzut rejestru Wyciągnij pliki dziennika

 

4.2.3.  Zmienność wtyczek - analiza

Mając wyodrębnione z pamięci pliki dziennika, można je analizować za pomocą tych samych narzędzi, co pliki dziennika wyodrębnione z systemu operacyjnego. Przykładem może być RegRipper, sama zmienność, czy RegistryReport, pokazany w. Rysunek 43.


Rysunek 43 - Analiza pliku RegistryReport

W analizie pamięci możliwe jest również uzyskanie plików, które zostały przetworzone. Istnieją programy z możliwością identyfikacji i wyodrębniania plików z pamięci, jak na poniższym rysunku z oprogramowaniem Belkasoft, gdzie można sprawdzić, że zidentyfikował on adresy przeglądania w przeglądarkach, dane rozmów na czacie, pliki poczty elektronicznej oraz pliki graficzne (Rysunek 44).


Rysunek 44 - Analiza plików za pomocą programu Belkasoft

 

SANS opublikował plakat (Rysunek 45) nawiązujący do analizy pamięci przy użyciu Volatility, który podsumowuje wiele wtyczek przydatnych w tego typu analizach.


Rysunek 45 - SANS Poster - Memory Forensics Cheat Sheet v2.0

 

Utwórz linię czasową zdarzeń w pamięci

Mając dane wydobyte z pamięci lotnej warto stworzyć Oś czasu, aby umożliwić datowanie i sortowanie wskazań w systemie. Jest to proces obejmujący opisane poniżej procedury:

Timeliner     utworzyć oś czasu

C:™> volatility_2.6_win64_standalone.exe -f IE8WIN7.dmp --profile=Win7SP1x86_23418 timeliner -- output=body > timeliner.body

Czytaj więcej: https://volatility-labs.blogspot.com/2013/05/movp-ii-23-creating-timelines-with.html

Mftparser    Obt (Master File Table).

C:™> volatility_2.6_win64_standalone.exe -f IE8WIN7.dmp --profile=Win7SP1x86_23418 mftparser -- output=body > mftparser.body

 

Połącz pliki dotyczące wtyczki timeliner i mftparser.

# cat timeliner.body mftparser.body >> timeline.log

Mactime[1]    Generowanie osi czasu z połączenia plików

# mactime -d -b timeline.log > timeline.csv

Końcowy wynik działania procedur TimeLine (Rysunek 46)


Rysunek 46 - Zawartość pliku timeline.csv

Dzięki tej tabeli można łatwo zidentyfikować akcje przekazywane w pamięci urządzenia, a te uzupełnią informacje uzyskane podczas analizy urządzenia w dead-box forensics.

 

Przykład identyfikacji dostępu do sieci TOR

Jako przykład analizy danych pamięciowych mamy wykorzystanie przeglądarki Tor, ponieważ nie przechowuje ona informacji nawigacyjnych na dysku twardym, choć możliwa jest ich identyfikacja i analiza poprzez pamięć.

Zaczynamy od potwierdzenia profilu systemu (Rysunek 47).


Rysunek 47 - Wtyczka Volatility imageinfo

Użyliśmy wtyczki pstree do sprawdzenia uruchomionych procesów, filtrując procesy według nazwy "firefox.exe" (Rysunek 48), ponieważ Tor Browser używa tego procesu, lub bezpośrednio po nazwie "tor.exe". Aby uzyskać więcej informacji o procesach w analizowanym urządzeniu, mamy jeszcze możliwość skorzystania z wtyczek pslist, psscan.

 

Rysunek 48 - Wykorzystanie zmienności w badaniach procesowych

 

Getsids        Informacja o rozpoczęciu procesu, odnosząca proces do użytkownika (Rysunek 49).


Rysunek 49 - Wykorzystanie zmienności w identyfikacji procesu

netscan       wyświetlanie połączeń sieciowych

W tym przypadku proces "tor.exe" wskazuje na zakończone połączenie z docelowym IP "54.37.17.235" na porcie 9001 (Rysunek 50).


Rysunek 50 - Użycie Volatility w identyfikacji sieci

Firefoxhistory   Lista zapytanych adresów (URL) (Rysunek 51).


Rysunek 51 - Wykorzystanie zmienności do pobierania adresów URL z pamięci

Źródło: https://blog.superponible.com/2014/08/31/volatility-plugin-firefox-history/