第40号コラム:松本 隆 理事(ネットエージェント株式会社 フォレンジック調査部 部長)
題:「メモリダンプとフォレンジック」

コンピュータ・フォレンジックの手法を用いて調査を行う際に、揮発性情報、特にメモリに展開されたアプリケーションの解析をどのように行うかという点は、重要な課題と考えられます。

「証拠収集とアーカイビングのためのガイドライン(RFC 3227)」にも述べられていますが、証拠を収集する際には、揮発性の高いものから低いものの順に取得するという約束ごとがあり、その手法も明確になっています。

しかし、取得した揮発性情報のダンプファイルをどのように調査に結び付けるかといった点に関しての明確な取り決めは、私の知る限り殆ど存在していません。
その理由のひとつとして、これまではハードディスク上に存在する痕跡を確認することにより調査の目的を達成することが多く、現実的にメモリ解析まで行う案件が非常に限られていたことがあります。
また、通常メモリ解析は、アプリケーションのデバッグなどに用いることが一般的で、フォレンジック用途に適した解析ツール自体が不足していたことなどが挙げられるのではないでしょうか。

従来の調査としては、たとえばメモリのダンプイメージに対してバイナリ検索を行い、その結果を踏まえて、ヒットした文字列周辺に対して目視での確認を行ったり、ファイルのもつ特徴的なポイントをとらえて画像などを復元したりといった作業を行ってきました。
これらの作業は、たいへん手間も時間もかかる割には得られる情報も少なく、限られた時間内で結果を出さなければならないというビジネス上の制約の中では、調査を行う上での負担になっていました。

また、メモリ上に展開された悪意のあるアプリケーションの解析など更に精度を上げた調査を行う場合には、調査員に求められるスキルも負担も格段に高いものになります。
そのため、これまでメモリのダンプイメージに対する詳細な解析は、現実的にはきわめて限定的にしか行われていませんでした。

しかし、近年増加しているファイルシステムに証拠を残さないタイプの攻撃手法や、アプリケーションやシステム自体の暗号化の普及などに伴って、従来のようにハードディスクを調べても必要な情報が得られないケースが増加している、という現状があります。
現実問題として、メモリの解析を行わないと、もはや調査が立ち行かなくなりつつあるといっても過言ではありません。

そういう状況もあってか、ここ数年でフォレンジック用途としてのメモリ解析ツールは、実用的なレベルに近づいています。たとえばrootkitやマルウェアなどが、自らの存在を隠蔽するために行っているシステムの異常な動作をチェックしたり、メモリに展開されたバイナリ情報を抽出したりなどといった、従来のデバッガなどのメモリ解析ツールの発想と異なる、フォレンジックの目的に特化したツールなどもリリースされはじめています。

これらのツールは、これまで調査員が手作業で行っていたメモリのダンプイメージの解析を、ある程度まで自動化してくれますので、調査員の負荷や技術的なハードルを下げてくれる有効なツールとなり得る、と期待しています。

最後に、フォレンジック調査でメモリダンプを取得する際の注意点や課題をいくつか挙げてみます。

●メモリのダンプはあくまでスナップショット
メモリのダンプイメージは、あくまで取得したタイミングでのメモリの状況をファイル化したものであることを意識しなくてはなりません。
たとえば、ダンプを行う間にも、メモリ上の情報は常に書き換わっていますので、調査に必要な、調査員の期待する情報を取得するためには、ダンプのタイミングを強く意識する必要があります。

●調査に応じて必要なダンプ範囲や手法をあらかじめ確認しておく
メモリダンプと一口にいっても、目的に応じて取得する範囲も手法も異なります。たとえばフォレンジック用途としては、通常OS全体のダンプ(マシンに搭載しているメモリと同一内容のダンプ)を取りますが、目的やツールによっては、ユーザ領域やカーネル領域をターゲットとする場合もあります。
また、ツールによってはOSのセキュリティ保護に引っかかってしまい、システムが不安定になってしまう可能性があります。
調査の対象や目的に応じて、必要なメモリの範囲や手法をあらかじめ確認しておくことをお勧めします。

●ダンプイメージの取得と保存先
メモリダンプは、システムの稼働中に実施することになりますが、証拠価値を維持するために、原本となる調査対象マシンへの影響をできるだけ少なくする工夫が必要です。使用するコマンドの発行などシステムに影響のある行為については、最小限に収めるようにあらかじめ準備しておくのが望ましいと思います。
また、取得したダンプイメージをシステムのハードディスクに書き込んでしまうと、削除領域などを上書きしてしまい、後の調査に大きな影響を与えてしまう可能性があります。別途保存先のハードディスクを用意し、そちらに保存することをお勧めします。

●仮想メモリはダンプの対象外
現状の多くのメモリダンプツールでは物理メモリのみが対象となっており、ページファイルにページアウトされた情報はダンプの対象外*となっています。

* 商用ツールであるHBgary(HBGary, Inc.)のFastDumpでは メモリダンプ取得後に Pagefile.sys (Windowsの仮想メモリ)も保全する機能が追加される予定があるとのことです