はじめに
フォレンジック系を最近舐めはじめており、証跡の収集で困ったことをメモっていきます。
事の始まり
みんな大好きFTKImagerを使ってフルメモリダンプを取ろうとしました。
ですが、実行するとad_driver.sys
がSYSTEM_SERVICE_EXCEPTIONを吐くのでうまいこと取れませんでした。
ググりまくって解決
FTK Imager以外に、MagnetForensicsが出しているMagnet RAM Captureと言うフリーツールがあります。
これだとうまく取れました。
DFツール一覧(2020年版)によると、VSMが有効な環境において取得できるとの記載がありました。
では原因は何だったのかについてメモ程度を書き残しておこうと思います。
仮想セキュアモード(VSM)について
端的に言うと、「VSMが有効だとクラッシュする」と言う話のようです。
VSMが有効であるかどうかはtasklist |find "Secure System"
で実行されているプロセスがあれば有効という話のようで、自分の環境では有効でした。
Memory Acquisition and Virtual Secure Mode - Digital Forensics Streamによると
Physical memory is commonly acquired using a software-based memory acquisition tool such as winpmem, DumpIt, Magnet RAM Capturer, FTK Imager, or one of the several other options available.
These tools typically load a device driver into the kernel and subsequently read memory through mapping the DevicePhysicalMemory object, using a function such as MmMapIoSpace, or directly manipulating the page tables.
Many of these tools also share a similar trait: their use on a system with virtual secure mode enabled results in a system crash.
日本語訳(俺翻訳)
物理メモリは通常、winpmem、DumpIt、Magnet RAM Capturer、FTK Imager などのソフトウェア ベースのメモリ取得ツールや、利用可能なその他のオプションのいずれかを使用して取得されます。
これらのツールは通常、デバイス ドライバーをカーネルにロードし、その後、DevicePhysicalMemory オブジェクトをマッピングするか、MmMapIoSpace などの関数を使用するか、ページテーブルを直接操作してメモリを読み取ります。
このような操作をする場合、仮想セキュアモードが有効になっているシステムにおいては保護機構が働きシステムがクラッシュします。
なので、VSMを無効化するか、もうクラッシュしてもいいから完全メモリダンプを取るようにWindowsを構成しておくかを事前にしないといけないわけですが
インシデントが発生してから再起動して完全メモリダンプを取るように構成し直しましょうとは行かないわけです。
なのでライブマシンでサクッと証跡を取れるアプリとしてはまず、Magnet RAM Captureを実行すると良いかなと。
まとめ
- VSMが有効だとFTK Imagerでメモリダンプが取れないことが有る(BSODに陥りメモリが消し飛ぶ)
- Magnet RAM Captureを使えばVSMが有効化された環境であってもメモリダンプが取れるようになる