盧小貝 李士文



使用內存取證框架Volatility對獲得的內存樣本進行分析之前,必須首先為目標操作系統創建一個配置文件。Volatility對所有Windows操作系統的主要版本都有內置的支持,使用時不需要進行額外的制作。然而Linux操作系統是不同的,由于其內核版本、子內核版本和定制內核的數量眾多,使得Volatility無法為所有可能的Linux內核版本提供配置文件,需要使用者自己進行制作。
制作工具
下面列出了創建Linux配置文件所需的軟件:
dwarfdump:從ELF文件中解析調試信息的工具,如Linux內核和內核模塊,輸出各種內存結構定義??梢酝ㄟ^使用libdwarf-tools內置的dwarfdump,或者從源代碼編譯來安裝這個工具。
編譯器工具:編譯c源代碼所需的工具,如gcc和make。
Volatility取證框架:創建配置文件所需的VTypes需要Volatility取證框架內置的tools/linux/module.c內核模塊,其聲明了Volatility需要的所有類型的成員。
配置文件的制作
創建配置文件包括為特定內核版本生成一組VTyoes(結構定義)以及一個內核符號表。Volatility利用這些信息來源對內存鏡像進行分析。
創建Vtypes
通過對想要分析的內核進行module.c內核模塊的編譯就可以實現Vtypes的創建。切換到volatility/tools/linux/目錄下并鍵入make進行編譯即可。如果成功,輸出如下圖所示。
在編譯接近結束時,dwarfdump對module.ko生成module.dwarf文件。
獲取符號表
內核符號表包含在System.map文件中,可以在許多地方找到這個文件,包括發行版內核的安裝包,安裝內核的計算器的/boot目錄下,或者編譯內核的源代碼目錄。
System.map文件包含來自內核的所有符號的地址,Volatility使用它來定位內存中的關鍵數據結構,即便是同一個內核的簡單重新編譯,也足以改變符號的地址。其/boot目錄下的文件如下圖所示。
制作配置文件
要創建配置文件,需要將VTypes及內核符號表放入一個壓縮文件中,然后將其移到到volatility/plugins/overlays/Linux/目錄下并進行一個合適的命名,可以通過如下圖所示的命令來完成這些步驟。
結果測試
要使用制作的配置文件,必須先找到volatility分配給它的名稱,其格式為“Linux+zip文件名+"x86,x64或ARM"”,可以通過如下的命令進行查看。
可以看到制作的配置文件名稱為LinuxCentos7x64。也可以在volatility下正常使用,測試結果如下圖。