概要
Process Monitorは、Microsoft Sysinternalsで提供されているツールの1つです。
リアルタイムに、ファイルシステム・レジストリ、プロセス/スレッドのアクティビティを監視することができます。トラブルシューティングだけでなく、マルウェア解析でも活用されています。Process Monitor実行中にマルウェアを動かし、収集したログから実行された操作やファイル・レジストリの変更などの挙動を明らかにしていきます。
基本的な使い方と便利な機能
基本的な使い方
- ProcessMonitorを起動する
- 対象となる検体を実行する
- 収集したログを分析する
①操作方法について
ProcessMonitor起動時に、ログ収集開始ボタンはクリックされた状態です。ログが膨大な量になると分析の作業量も増えるため、調べたい挙動が確認でき次第、ログ収集終了ボタンを押してください。また、ログ収集開始・終了ボタンの左側のボタンでログファイルを保存することができます。
②ProcessMonitorのログの見方
ログ項目と内容について
ログ項目 | 内容 |
---|---|
Time of Day | 操作した時刻 |
Process Name | プロセスの名称 |
PID | プロセスに対する一意な番号 |
Operation | プロセスが実行した操作 |
Path | 実行した操作の対象のパス |
Result | 実行した操作の結果 |
Detail | 実行した操作の詳細 |
上記ログを見ると、NOTEPAD.EXEというプロセスが、11時43分にデスクトップ上にある「test.txt」というファイルに対して「WriteFile(ファイルへの書き込み動作)」を行ったことが読み取れます。
マルウェア解析では、ログの中からマルウェアに関連するプロセスを見つけ、操作内容と操作の対象を見ることで挙動を明らかにしていきます。
ProcessMonitorで明らかに出来る挙動は、実際に動作したものに限られます。
便利な機能
ProcessMonitorでは、以下のような便利な機能が備わっています。
- フィルタリング機能
- プロセスツリー機能
- ハイライト機能
- ブート時のログ収集機能
ここでは、これらの機能を説明します。
フィルタリング機能
Process Monitorは、大量のログを収集するため1つ1つのログを確認すると、長時間を要します。フィルタリング機能を使うことで、分析を効率化できます。
フィルタリング機能をクリックすると、下記のようにポップアップ画面が表示されます。
ここでは、フィルタリングしたい項目を細かく指定することができます。
上記ポップアップ画面以外にも、表示されているログを右クリックし「Include」「Exclude」からフィルタリングへの追加も可能です。
今回は、マルウェア解析で活用できるフィルターカテゴリーを紹介します。
①フィルターカテゴリー:Operation
プロセス/スレッドの実行したOperationを指定することができます。
Operationは、プロセスが実行した操作ごとに分かれています。
例えば、ランサムウェアによるファイルの暗号化は、「WriteFile」というOperationに分けられています。
オペレーションの一例
- RegCreateKey:レジストリキーの作成またはオープン
- RegDeleteKey:レジストリキーの削除
- RegSetValue:レジストリ値への書き込み
- RegDeleteValue:レジストリ値の削除
- WriteFile:ファイルへの書き込み
②PID(プロセスID)
プロセスIDを指定することで、分析したいプロセスのアクティビティのみを表示させることができます。
後述するプロセスツリー機能でもフィルタリング可能であり、より容易に利用できます。
③Path(ファイルパス)
指定したパスのファイルを操作したプロセスのアクティビティを表示させることができます。
④Category
アクティビティを操作カテゴリー別に分けることができます。
主な操作カテゴリー
- Write:書き込み動作
- Read:読み込み動作
プロセスツリー機能
プロセスを時系列ごとにツリーを表示する機能です。直近で実行されたプロセスは、下に追加されています。プロセスツリー内の「Life Time」は、プロセスが起動していた時間を緑色のバーで表示しています。プロセスが終了すると、緑色のバーも途切れます。
また、プロセスツリーでは、プロセスの親子関係も確認することができます。
プロセスを選び、右クリックして「Add process to include filter」を実行すると、該当するPIDのアクティビティだけが表示されるようにフィルタリングに追加されます。子プロセスも含めてフィルタリングに追加したい場合は、右クリック後に「Add process and children to include filter」を選びます。
ハイライト機能
指定したログにハイライトを付ける機能です。
ブート時のログ収集機能
端末起動時のアクティビティのログが収集できる機能です。
オプションタブの「Enable Boot Logging」をクリックすることで、設定完了します。
端末起動後に、Process Monitorを実行すると収集を停止し、ログファイルを保存します。