Po rozpoczęciu analizy zrzutu pamięci systemu Linux przy użyciu zmienności, pierwszym problemem, z którym można się spotkać, jest wybór odpowiedniego profilu pamięci.
Moim zdaniem najlepszą praktyką jest wygenerowanie własnego profilu, przy użyciu maszyny o tej samej konfiguracji co cel (jeśli jest dostępna) lub (jeśli to możliwe) bezpośrednio na maszynie docelowej (oczywiście po przejęciu kryminalistycznym).
Profil Linuksa jest zasadniczo plikiem zip zawierającym informacje o strukturach danych jądra i symbolach debugowania, używanym przez Volatility do lokalizowania krytycznych informacji i sposobu ich analizowania po znalezieniu.
Tworzenie profilu jest prostym procesem i składa się z kilku kroków:
Pobierz zaktualizowaną kopię Volatility:
git clone https://github.com/volatilityfoundation/volatility.git Utwórz module.dwarf (struktury danych jądra), używając specjalnego narzędzia dostarczonego przez volatility framework:
$ cd volatility/tools/linux
$ make Utwórz plik zip zawierający moduł.dwarf i symbole debugowania w System.map uruchomionego jądra:
zip $(lsb_release -i -s)_$(uname -r)_profile.zip ./volatility/tools/linux/module.dwarf /boot/System.map-$(uname -r) Na koniec skopiuj plik zip do ścieżki wtyczki volatility na stacji roboczej forensic, zwykle w volatility/volatility/plugins/overlays/linux
andrea@Lucille:~/tmp/volatility$ ./vol.py --info | grep Debian
Volatility Foundation Volatility Framework 2.6.1
LinuxDebian_4_9_0-8-amd64_profilex64 - A Profile for Linux Debian_4.9.0-8-amd64_profile x64 Oczywiście cały proces można opakować w prosty skrypt bash:
#!/bin/bash
git clone https://github.com/volatilityfoundation/volatility.git
cd volatility/tools/linux/ && make
cd ../../../
zip $(lsb_release -i -s)_$(uname -r)_profile.zip ./volatility/tools/linux/module.dwarf /boot/System.map-$(uname -r)
rm -rf ./volatility






