@port139 Blog

基本的にはデジタル・フォレンジックの技術について取り扱っていますが、記載内容には高確率で誤りが含まれる可能性があります。

仮想的にマウントされているボリュームの識別

Windows 7 から VHD ディスクのマウントに対応していますが、VHD に限らず TrueCrypt の暗号化ファイルコンテナや、RAMディスクや ISO イメージなど、物理的には存在しないが、論理ボリュームとしては存在するドライブというのがあります。これらの仮想的にマウントされているボリュームは電源を落とすとその内容にアクセスすることができなくなるので、インシデント・レスポンスやライブ・フォレンジックといった段階で存在の有無や内容のイメージを取得する必要がありえますが、これが中々一筋縄でいかずちょっと悩んでいたります。

例えばWindows 7でのお話になりますが、VHDディスクをマウントしている場合、コンピュータの管理から“ディスクの管理”を確認すると、VHDディスクではディスクの色が水色?で表示されるので、通常のディスクと違うことがわかります。しかし、画面上には特にVHDなどの表示はないので、右クリックして“VHDの切断”を確認すると、これがVHDディスクであることが確認できます。「仮想ハードディスクの切断」画面を表示すると、仮想ハードディスクファイルの場所という項目で、VHDディスクのファイルが何処に置いてあるかも確認が可能です。しかし、これはVHDディスクひとつずつに対して操作を行なう必要がありとても面倒です。

また、TrueCryptでマウントしている暗号化ファイルコンテナは、ディスクの管理には表示されません。TrueCryptが使われていることがわかっている場合には、TrueCryptを実行すれば、GUIのVolumeカラムを確認することでどのパスのコンテナファイルがどの論理ドライブに割り当てられているかを確認することができます。
少し懸念されるのは、「ディスクの管理」に表示されないので、リモートからドライブイメージを取得するようなライブフォレンジック系のツールで、その論理ボリュームの存在を識別できない状況が発生しないのか?という点です。とはいえこれはツール依存なので事前にテストしておけば済むのでまぁ置いておくとして...

ファイルを仮想的に論理ドライブとしてマウントすることができるツールも多数存在していますので、システム上でどのようなドライブが存在しているのかを簡単に確認することができると便利です。不正アクセス調査ガイドを書いた時にも同じ点で悩んで色々と試行した気がしますが、エクスプローラで確認するといった方法も含めていくつか方法があるかと思います。
例えば、fautil fsinfo drives コマンドを実行すると、現在存在している論理ドライブを表示してくれます。

C:\>fsutil fsinfo drives
ドライブ: C:\ D:\ X:\ Y:\ Z:\

しかし、この結果からは固定ディスクなのかネットワークドライブなのか確認するには、drivetypeコマンドを個別に実行する必要があります。

C:\>fsutil fsinfo drivetype x:\
x:\ - リモート ドライブまたはネットワーク ドライブ

これはこれで面倒です。また、仮想的にマウントされているTrueCryptの暗号化ファイルコンテナの論理ボリュームを指定しても「固定ドライブ」と表示されるだけで、それが物理的に存在するドライブなのかは識別できません。
個人的には個別に情報収集するのが面倒なので、その他の情報も一括して保存できるシステム情報(msinfo32)を利用する方が好みだったりします。
システム情報では、記憶域→ドライブを選択することで、現在のドライブリストと説明やサイズといった情報を確認することが可能です。この中にはTrueCryptがマウントしている論理ボリュームも含まれていますが、やはりそれが仮想的なものかどうかは判断することができません。
ディスクの項目ではパーティンなどの情報も確認できます、VHD ディスクであればモデル名(Msft Virtual Diks SCSI Disk Device)などから判断できるかもしれませんが、TrueCrypt はこちらに項目が表示されないので、システム情報からの判断は無理筋な気がしています。

レジストリにこれらを関連付ける情報があるのか、試しに VHD ディスクをマウント後、レジストリエディタから VHD ディスクのファイル名を検索してみたりもしたのですが、関連付けを示すような情報はいまのところ発見できていません。
おそらくメモリダンプした情報などには、デバイスドライバなどでそういった関連付けが行なわれている情報があるのかもしれませんが、これを探し出すのはファイル名が不明な状態では厄介そうです。また、メモリダンプの解析は、現場ですぐに可能ということではないでしょうから、後からそういった情報を発見することができるかもしれないということでしょうか。
ファイルをオープンしているのだから、そっちから辿れないかなぁと思い、openfiles でローカルを有効にして確認してみましたが、デバイスドライバとかで扱っているファイルの情報は取れないようですね。TrueCryptの開いているファイルの一覧にも該当するファイル名は見当たらず、残念。
確認したい情報としては?仮想的にマウントされているボリュームはどれか?、?仮想的にマウントしている実体ファイルはどれか?、ということなのですが、何かよい方法やツールってないものでしょうかね?もしナイス(死語)なツールや手段をご存じのかたは助言いただければです。