@port139 Blog

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

初期対応とフォレンジック調査への影響

インシデント・レスポンスの初期対応で誤った操作があると、その後のフォレンジック調査に影響を及ぼすことがありますが、どこまでが許容範囲か?という難しい質問があったので、Windows 系サーバでの対応についてなんとなく考えてみたメモ。Linux とかではスナップショットを作れるのかファイルシステムに依存するんですかね?、基本的な考え方は同じだと思いますが、以下 Windows が前提。
■(1)スナップショットを作成してから調査する
VSSでスナップショットを作成してから、一次調査を実施することで、調査過程における操作で上書きされたMACタイムなどを、VSS のスナップショット内のデータから調べることが可能になると思います。
VSS の作成自体はコマンドラインからでも、GUI からでも簡単に実施できるので、操作する人向けには難しくない作業と思われます。例えば F-Response との組み合わせであれば、スナップショットにリモートからアクセスすることも可能になるので、スナップショットを上手に使うのは今後の初期対応については必須項目と言えるかもしれません。

ただし、VSS のスナップショット作成に伴う書き込みにより、削除ファイルの領域が上書きされることになるのと、空き容量が少ないケースでは古いスナップショットがパージされる可能性があるので、逆に古い情報が消えてしまうという危険性があり注意が必要です。今のところ削除状態にあるスナップショットを再利用する方法は、少なくとも私の技術レベルでは困難です。
VSS でスナップショットを作成した場合でも、極力書き込みが発生する操作は控える方がよいと思います。(スナップショットが完璧ということではないので)

お奨め?としては、スナップショットを作成し、スナップショットを F-Response でマウントしてネットワーク経由でイメージ取得*1を平行して実施しつつ、その他の調査を平行して行なうと、時間を無駄にしないで済むかもしれません。

■(2)揮発性情報の取得をしてから調査する
VSS のスナップショットはファイルシステムに関連するもので、いわゆる揮発性情報はカバーされません。この為、何かの操作を開始する前に、まずは揮発性情報の取得を優先する必要があります。最近であれば、MoonSols Windows Memory Toolkit(旧win32dd)などの専用ツールを使えば、簡単かつ比較的安全にメモリイメージの取得が可能です。ただし、書き出し先は決してローカルディスクに保存するのではなく、別の領域に保存する必要があります。
ローカルに書き出すと削除ファイルの領域を上書きしてしまうので、後からのディスクのフォレンジック調査に悪影響がありますので駄目です。
なお、会社のセキュリティポリシーでコマンド実行が一律に制限されている場合には、まずそのポリシーがおかしいので、インシデント発生時の対応手順に反映しておく必要があると思います。

なお、メモリイメージを取得するまえに、様々なコマンドを闇雲に実行すると、メモリがそれらのプログラム実行により汚染されてしまいますので、意味もなくプログラムの実行を行なうのは止めましょう。例えば、マルウェアのプロセスは、Rootkit などで隠蔽されていることもあるので、タスクマネージャを起動して確認したところで、気休め程度にしかならないと思います。タスクマネージャで確認すればインシデント発生を見抜けるぜ!というのであればそれはそれでよいと思います。

メモリイメージを取得できると、そのシステム上で解析しなくても、別の調査用PCなどで解析できますので、運用中システムに対する悪影響を最小化できる利点もあるかと思います。

もし、何らかのプログラム実行を行なうのであれば、メモリイメージではカバーできていない、システムが稼働中の状態でなければ取得できない情報を取得しておくのは後々役に立つと思います。具体的に何か?というと実はあまり思いつかないのですが、arpnetstat などの基本情報とかでしょうか。
むろん、稼働中システムがメモリフォレンジックツールで対応していないエディションなどの場合には、基本的なコマンド実行による結果をなるべく広く取得する必要があると思います。ツールが対応してないメモリイメージはあまり役に立たないと思います。*2
スナップショット取る前にコマンド実行すると、プログラム実行痕跡が上書きされたり、MACタイムが影響を受ける可能性があるので、1.メモリイメージ取得→2.スナップショット作成→3.各種コマンド実行という流れになりますかね。

通信状態も後からは再現できませんので、パケットを“別システム上で”取得できるのであれば、パケットも取得しておくといいと思います。調査対象システム上(ローカル)でキャプチャしたり保存するのは駄目なので、あくまで別システム上での作業という前提になります。
パケットキャプチャしたデータを解析する手法であれば、調査対象システム(揮発性情報やディスク)に対する影響はないはずですので、それでインシデント発生が特定できるのであれば結構便利な気がします。

*1:ツールがなければ、古典的なddとnetcatによる組み合わせによるイメージ取得でもいいと思います

*2:将来技術が進歩したら解析できるようになるかもしれませんけども、すぐには役立たない可能性が高いです