#87 Volatility
プログラムは、実行される際にはすべてメモリー上に展開されます。マルウェアなどの痕跡を調査する場合は、ライブメモリをダンプして解析することがあります。メモリは常に変化するので、ダンプをとるのも、解析も難しそうです!
Volatilityはメモリ解析のデファクトスタンダードと言われているフレームワークです。Python3で動作するVolatility3が最新版ですが、Python2で動作する古いバージョンの方が、安定しているらしいです。
メモリ解析までやりたいところですが、ひとまず、Volatilityをインストールします!
インストール
Python3 venv
Python3の仮想環境を用意します。
$ python3 -m venv .venv
$ source .venv/bin/activate
Volatility
GitHubからソースをクローンします。
$ git clone https://github.com/volatilityfoundation/volatility3.git
インストールスクリプトがあるので、セットアップします。
$ cd volatility3
$ python3 setup.py build
$ python3 setup.py install
これでOKです。ヘルプを表示させてみます。
$ python3 vol.py -h
Volatility 3 Framework 2.5.0
usage: volatility [-h] [-c CONFIG] [--parallelism [{processes,threads,off}]]
[-e EXTEND] [-p PLUGIN_DIRS] [-s SYMBOL_DIRS] [-v] [-l LOG]
[-o OUTPUT_DIR] [-q] [-r RENDERER] [-f FILE]
[--write-config] [--save-config SAVE_CONFIG] [--clear-cache]
[--cache-path CACHE_PATH] [--offline]
[--single-location SINGLE_LOCATION]
[--stackers [STACKERS ...]]
[--single-swap-locations [SINGLE_SWAP_LOCATIONS ...]]
plugin ...
...
ちゃんと動きました!いくつかのプラグインはうまくインストールされていないようですが….
まとめ
フォレンジック分野で、メモリ解析は基本的な技術ではないでしょうか?実際のメモリダンプを使って、もうちょっと研究してみます。
EOF