volatilityにプロファイルを追加する方法
メモリダンプ解析用ツールvolatility
はデフォルトではWindows
のメモリダンプのみが解析できる.Linux
やOSX
で作成されたメモリダンプを解析するためにはプロファイルを追加してやれば良い.公式から用意されているものを使うこともできるし,自作することもできる.
概要
プロファイルの追加は定義ファイルを追加すればよい.いくつかは公式から用意されており,基本的にはGithubからcloneするだけで使える.
$ git clone https://github.com/volatilityfoundation/profiles $ cd profiles $ find -type d -maxdepth 2 ... snip ... ./Mac ./Mac/10.10 ./Mac/10.5 ./Mac/10.8 ./Mac/10.9 ./Mac/10.6 ./Mac/10.12 ./Mac/10.7 ./Mac/10.11 ./Linux ./Linux/Fedora ./Linux/Ubuntu ./Linux/Debian ./Linux/CentOS ./Linux/RedHat ./Linux/OpenSUSE ... snip ...
以上のように複数のディストリのプロファイルが用意されている.各ファイルにはx86
とx64
がある.
使い方
使い方はvol.py
またはvolatilty
が参照しているplugins
というディレクトリにZIP
のままコピーする.
以下はUbuntu14043
のx64
版のプロファイルを使えるようにする場合.
$ pwd profiles # ローカルなvolatilityを使っている場合 $ cp Linux/Ubuntu/x64/Ubuntu14043.zip volatility/plugins/Linux # apt/pacmanなどでインストールしたvolatilityを使っている場合 $ cp Linux/Ubuntu/x64/Ubuntu14043.zip /usr/lib/python2.7/site-packages/volatility/plugins/linux/
確認
以下は,/usr/lib/python2.7/site-packages/volatility/plugins/linux/
にコピーした場合のコマンド.
$ volatility --info Profiles -------- LinuxUbuntu14043x64 - A Profile for Linux Ubuntu14043 x64 VistaSP0x64 - A Profile for Windows Vista SP0 x64 VistaSP0x86 - A Profile for Windows Vista SP0 x86 VistaSP1x64 - A Profile for Windows Vista SP1 x64 VistaSP1x86 - A Profile for Windows Vista SP1 x86 ... snip ...
後は通常通り
$ volatility -f <dump_file> --profile=LinuxUbuntu14043x64 linux_lsof
といった感じで解析できる.
プロファイルを自作する
IIJがいい感じでまとめていた.自作したい人はこちらを参照.ツールがvolatility
に用意されているから,作成したいディストリ上でmake
してzip
するだけのようだ.特定のバージョンを作りたいときはカーネルをrpm
で持ってくる必要あり.
Internet Infrastructure Review(IIR)Vol.32 | IIJの技術/セキュリティレポート | IIJ
おまけ
ZIP
ファイルはplugins
以下に置けば認識してくれるから,
$ cp profile.zip /usr/lib/python2.7/site-packages/volatility/plugins/self_made
といった目的別に分けることもできる.便利.