IDF技術分科会第五回2010.3.11Windowsメモリイメージのフォレンジック調査

(野上注:Bibloの使い勝手の調査も兼ねてBibloを持ってきている。ここは無線LANで結構強い電界で使えるのがいくつも見える。しかし、なじみのある公衆LANなどのSSIDは見えない。もしかして、この出席者持参の機器なのかもしれない。)

IDF技術分科会第五回2010.3.11 上原先生がごあいさつ 実践的にやっておられる春山さん、とご紹介
 株Ji2 春山敬宏 Windowsメモリイメージのフォレンジック調査 大崎にて

(野上注:最近はこのような揮発性データについての興味が増えていると思われる。)

ノートPCとディスプレーの変換コネクタ忘れてきたのでデモできない、とのこと。その分ゆっくり説明するとのこと。
揮発性データ保全のモチベーション、従来のとどう違う、とり方、解析、と話したい。

モチベーション
・マルウェアの高度化、ふつうのpackerでなく、未知のpackerを使うので、ふつうのunpackerでは歯が立たない。たとえば、タイムスタンプをランダムに改ざんするなど、アンチフォレンジック手法を使うものもある。
・ユーザ活動の揮発化 ディスクに痕跡を残さない傾向。InPrivateブラウジング、SQLiteのDatabase Secure Deleteオプションで、痕跡を残さないものが使われてきている。

事例 タイムスタンプの改ざん事例
オフェンシブコンピューティング というサイト 色んな事例が紹介されている。そこからとってきた事例。

従来 メモリダンプはあまり使わず、
その次 メモリダンプで文字列など探す
最近 メモリを、OSの仮想アドレスとかと解釈しながら動かす

メモリから抽出した情報の例 プロセス情報(親プロセス、起動時間、コマンドラインなど)、プロセスのexeイメージ抽出(動的に変わるマルウェアに対抗)、マルウェアのふるまい検知、ユーザの入力データの検索(パスワードなども)

Live Response と Memory Forensics のフリーツールでの比較、いくつかMemory Forensicsが優れるが、なかなか面倒なところもあり、現実は併用するのかと思う。

メモリイメージの取得について
RAWイメージとクラッシュダンプ、解析ツールが圧倒的に不足しているがクラッシュダンプを推す、EnCaseでのツールを作っているのでつかってもらっていい。ただし、特定のメモリ部分をクラッシュダンプはとらないこともあるので注意。

解析に手法 大きく二つ、両方できるのが一番いい。

IA32仮想アドレス変換の説明 ハードディスクにスワップされている部分もある。
PAE Physical Address Extensionではx86で最大64GBまで扱うように物理アドレスを36ビットまで拡張
プロセス構造体、モジュール構造体の説明 自作ツールでは、一部にVistaと7で試行錯誤的に推定している部分もある。

Tree & list traversalとObject fingerprint searchの比較 

考慮すべきリスク ちゃんとダンプ出来てる? ちゃんと解析出来てる? それぞれを邪魔するマルウェアもある。ダンプ時のリスク 、解析時のリスク

まだツールが貧弱、今後フリーツールの充実と洗練が期待される。
自作ツールは http://cci.cocolog-nifty.com/ にEnCase(必須)のツールになっている。

聴講者によるクラッシュダンプの解析のデモ 
ディスクス情報残さないgmailを対象として、FirefoxのPID を文字検索して探すというデモ。
<-もしfirefoxの内容がもっと分かっていれば、それを探すのもあるか。アプリごとの構造を追いかけると、大変かな、多分バージョンごとに微妙に違うだろうし。その大変さを補う利点はどこになるかな

以下野上考察
・RAWイメージに比較してクラッシュダンプは上原先生ご指摘のように、OSのデバッグが本来の目的なので、それなりに素性がよろしいし、情報が多いのは分かる。
・しかしなぜメモリイメージなのか、細かな違いが一杯あるのを追いかけるのは大変だろう、という上原先生のご指摘も、よくわかる。
・一つ、開発手法としてのホワイトボックスでのテストと、ブラックボックスでのテストの比較とのアナロジーをしてみるとすれば、多分歴史的にはホワイトボックスでのテストから始まり、それの限界に行き当たった結果ブラックボックスのテストも行われるようになってきたのではなかろうか。それと同様のことが、フォレンジックでも言えないかな。
つまり、ファイルだけを見て調べるフォレンジックはブラックボックステストに相当し、ファイルが改ざんされる前を調べられるようにメモリイメージを調べるのがホワイトボックステストに相当する。
どのようなプログラムであれ、その処理結果は本来外部に最終的に残されるファイルに反映されるのだから、プログラムの内部処理は置いておいてファイルだけを調べても十分なはず、というのが従来のフォレンジックで、ブラックボックステストに類似する。
最近はファイルを調べられても例えば暗号化など分かりにくくする手法などがとられるため、少なくとも処理途上のメモリでは平文で処理されるところがあるはずで、それをつかまえるためにメモリイメージを調べ、よりプログラムの内部に近い部分に踏み込む必要がある、というのがメモリイメージ解析のフォレンジックで、ホワイトボックステストに類似する。
ただし、フォレンジックで言えばテストと逆に、ブラックボックスが先にあり、後からホワイトボックス的なメモリイメージ解析が出来てきたという歴史になる。もしかして、将来はメモリダンプで追っかける大変さによる限界に行き当たり、再びファイルのフォレンジックに戻る、ということがあるかどうか。でもね、従来はファイルだけがマルウェアの処理結果として見てきたかもしれないけど、マルウェアのアルゴリズムと記憶という分け方であれば、記憶にファイルだけでなくメモリが含まれるのは当然だしね。

さて、講師、上原先生、関係者諸氏には、ありがとうございました。

カテゴリー: セキュリティ, 安全安心, 情報メモ, 日記 パーマリンク

コメントを残す