Process Monitor

この記事をシェア

概要

Process Monitorは、Microsoft Sysinternalsで提供されているツールの1つです。
リアルタイムに、ファイルシステム・レジストリ、プロセス/スレッドのアクティビティを監視することができます。トラブルシューティングだけでなく、マルウェア解析でも活用されています。Process Monitor実行中にマルウェアを動かし、収集したログから実行された操作やファイル・レジストリの変更などの挙動を明らかにしていきます。

基本的な使い方と便利な機能

基本的な使い方

  • ProcessMonitorを起動する
  • 対象となる検体を実行する
  • 収集したログを分析する
image1.png

ProcessMonitorを起動した際の画面

①操作方法について

image2.png

ProcessMonitorでよく使用されているボタン

ProcessMonitor起動時に、ログ収集開始ボタンはクリックされた状態です。ログが膨大な量になると分析の作業量も増えるため、調べたい挙動が確認でき次第、ログ収集終了ボタンを押してください。また、ログ収集開始・終了ボタンの左側のボタンでログファイルを保存することができます。

②ProcessMonitorのログの見方

image3.png

ProcessMonitorで取得したログの一例

ログ項目と内容について

ログ項目 内容
Time of Day 操作した時刻
Process Name プロセスの名称
PID プロセスに対する一意な番号
Operation プロセスが実行した操作
Path 実行した操作の対象のパス
Result 実行した操作の結果
Detail 実行した操作の詳細

上記ログを見ると、NOTEPAD.EXEというプロセスが、11時43分にデスクトップ上にある「test.txt」というファイルに対して「WriteFile(ファイルへの書き込み動作)」を行ったことが読み取れます。
マルウェア解析では、ログの中からマルウェアに関連するプロセスを見つけ、操作内容と操作の対象を見ることで挙動を明らかにしていきます。
ProcessMonitorで明らかに出来る挙動は、実際に動作したものに限られます。

便利な機能

ProcessMonitorでは、以下のような便利な機能が備わっています。

  • フィルタリング機能
  • プロセスツリー機能
  • ハイライト機能
  • ブート時のログ収集機能

ここでは、これらの機能を説明します。

フィルタリング機能

Process Monitorは、大量のログを収集するため1つ1つのログを確認すると、長時間を要します。フィルタリング機能を使うことで、分析を効率化できます。
フィルタリング機能をクリックすると、下記のようにポップアップ画面が表示されます。
ここでは、フィルタリングしたい項目を細かく指定することができます。

image4.png

フィルタリングの設定画面

上記ポップアップ画面以外にも、表示されているログを右クリックし「Include」「Exclude」からフィルタリングへの追加も可能です。

今回は、マルウェア解析で活用できるフィルターカテゴリーを紹介します。

①フィルターカテゴリー:Operation
プロセス/スレッドの実行したOperationを指定することができます。
Operationは、プロセスが実行した操作ごとに分かれています。
例えば、ランサムウェアによるファイルの暗号化は、「WriteFile」というOperationに分けられています。

オペレーションの一例

  • RegCreateKey:レジストリキーの作成またはオープン
  • RegDeleteKey:レジストリキーの削除
  • RegSetValue:レジストリ値への書き込み
  • RegDeleteValue:レジストリ値の削除
  • WriteFile:ファイルへの書き込み
image5.png

設定可能なOperationのプルダウン

②PID(プロセスID)
プロセスIDを指定することで、分析したいプロセスのアクティビティのみを表示させることができます。
後述するプロセスツリー機能でもフィルタリング可能であり、より容易に利用できます。

③Path(ファイルパス)
指定したパスのファイルを操作したプロセスのアクティビティを表示させることができます。

④Category
アクティビティを操作カテゴリー別に分けることができます。

主な操作カテゴリー

  • Write:書き込み動作
  • Read:読み込み動作

プロセスツリー機能

プロセスを時系列ごとにツリーを表示する機能です。直近で実行されたプロセスは、下に追加されています。プロセスツリー内の「Life Time」は、プロセスが起動していた時間を緑色のバーで表示しています。プロセスが終了すると、緑色のバーも途切れます。
また、プロセスツリーでは、プロセスの親子関係も確認することができます。

image6.png

プロセスツリー機能

プロセスを選び、右クリックして「Add process to include filter」を実行すると、該当するPIDのアクティビティだけが表示されるようにフィルタリングに追加されます。子プロセスも含めてフィルタリングに追加したい場合は、右クリック後に「Add process and children to include filter」を選びます。

ハイライト機能

指定したログにハイライトを付ける機能です。

image7.png

OperationがWriteFileのログにハイライトつけた際の様子

ブート時のログ収集機能

端末起動時のアクティビティのログが収集できる機能です。
オプションタブの「Enable Boot Logging」をクリックすることで、設定完了します。

image8.png

ブート時のログ収集機能

端末起動後に、Process Monitorを実行すると収集を停止し、ログファイルを保存します。

この記事をシェア
サイバーセキュリティ
情報局の最新情報を
チェック!