vol.py (Volatility) を Macで使う最短経路
ある日、フォレンジックツールの Volatility をMacで使いたく試行錯誤しました。その結果、個人的な結論として 「導入済みVMを使おう」 に帰着したので、その概要をまとめます。
ちなみに私自身は、RAMのフォレンジック経験ゼロで、初ツールとして探したノウハウ共有となります。(本記事では Volatility 3 については触れておりません)
導入済みVMをVirtualBoxで使う
これだけやれば大丈夫といえるのが、SANS社が提供してる SIFT Workstation を利用する方法です。
vol.py を含む多くのツールがセットアップ済みで、OVA形式で配布ということで、ホストOSも仮想レイヤーも問いません。
OVAをダウンロード
SANS の無料アカウントを作成したら、次のサイトからダウンロード
僕がためした 10/17 には SIFT-Workstation.ova (3.7GB)
が降ってきました。
VirtualBox に インポート してオマジナイ
VirtualBox > ファイル > 仮想アプライアンスのインポート
と進めます。
しかし、このまま起動しても 真っ黒画面で先に進まず。すこしVMの設定をいれます
基本 > タイプとバージョンを指定
インポートした状態ですと Unknown になってるところを、 Linux と Ubuntu(64-bit) に変更。
ディスプレイ > グラフィックコントローラー変更
設定で「無効な設定が見つかりました」エラーとなる グラフィックコントローラーを VBoxVGA から VMSVGA に変更
これで事前の設定は完了!
VMが起動
前述の設定後VMを起動し、SIFT Workstation のデスクトップが表示されればOK。
黒い画面で悩んでましたが、設定さえしてしまえば 10秒ぐらいでさくっと起動します。
2022年10月にダウンロードしたOVAでは、Ubuntu20.04ベースとなっていました。
なお、僕の場合は、CPU4コア / メモリ4GB がインポート時に選定されましたが、CPU2コア / メモリ2GB でも、問題なく動作しています。
VirtualBox利用の準備
VirtualBoxGuestAddition を apt でインストールしておきます。
ホスト==VM間のコピペなどできると便利ですから。
$ sudo add-apt-repository multiverse
$ sudo apt update
$ sudo apt install virtualbox-guest-utils virtualbox-guest-x11
## VM再起動
$ sudo reboot
参考サイト
- Black screen and flashing cursor on boot when running SIFT Workstation in VirtualBox
- 【DFIR】VirtualBox上でSANSSIFT使ってみた。
- Virtualbox: install guest additions on Ubuntu 22.04 LTS Jammy Jellyfish
Volatility って何?
Volatilityは、揮発性メモリ(RAM)サンプルからデジタルアーチファクトを抽出するための、世界で最も広く使われているフレームワークです。 (GitHub README を DeepLして引用しました)
世代
Volatility Framework
2018年まで開発が進められていた初代 volatility (無印)。Python2.6+ で動作します (Python 3では動かない)
2022/10 現在の SANS SIFTworkstation には、こちらのバージョンが含まれています。
- https://github.com/volatilityfoundation/volatility
- https://github.com/volatilityfoundation/volatility/wiki
- --profile を指定するタイプはこちら (ネットによく情報があがってる)
一緒に利用する追加 profile (Linux と Mac OS X)は、こちら (pluginとして追加できる)
プラグイン追加に関する参考ポストや公式ドキュメント
- https://poppycompass.hatenablog.jp/entry/2017/04/21/183320
- https://poppycompass.hatenablog.jp/entry/2018/05/05/162035
- Specifying Additional Plugin Directories
Volatility 3
2019年に、完全に書き換えられた Volatility3 がリリース。こちらは Python3.6+ で動作します
- https://github.com/volatilityfoundation/volatility3
- https://volatility3.readthedocs.io/en/latest/
- --profile オプションがなくなってて、どのように使うかわからない。。。
その他
Tanium社が主催する Tanium CTF 2022 に出場して解けなかった Linux Memory Analysis 問題。ありがたいことに、オフィシャルWriteUpが参加者限定で公開いただけました。
それを読むのですが vol.py ... なんだこりゃ? で、読んでも解けない状態に。
vol.py から調べて Volatility にたどり着き、コマンドラインのユーザー名とかから SNASのVMにたどり着きという流れで、やっと動かして回答をえるところまでたどり着きましたとさ。
Discussion