ProcessSet
変更監視モジュールは、ディレクトリ、レジストリ値、レジストリ キー、サービス、プロセス、インストールされたソフトウェア、ポート、グループ、ユーザー、ファイル、エージェント上の WQL クエリ ステートメント。
変更監視を有効にして設定する方法については、変更監視の設定 を参照してください。
プロセスのセットを表します。
タグ属性
次の表は、変更監視ルールによって監視されるエンティティの属性ではなく、タグ自体のXML属性のリストと説明を示しています。
属性 | 説明 | 必須 | 初期設定値 | 設定できる値 |
onChange | リアルタイムで監視するかどうかを示します。 | いいえ | false | true、false |
エンティティセットの属性
変更監視ルールで監視できるエンティティの属性は次のとおりです。
- CommandLine:
ps -f
(Unix)、ps w
(Linux)、またはProcess Explorerで表示される完全なコマンドラインです。 Windowsでのみ使用できます。 -
グループ:プロセスが実行されているグループ。
- UNIXでは、これはプロセスの実効グループIDであり、共有リソースへのアクセスや、場合によってはファイルへのアクセスを決定します。プロセスが権限を削除したり、有効なグループ資格情報を切り替えたりすると、グループIDが変更される可能性があります。たとえば、プログラムはグループIDを一時的に変更し、書き込み権限を取得して、ユーザが読み取り専用権限を持つディレクトリにインストールファイルをコピーすることができます。
-
Windowsでは、これは、ログイン時に作成されたユーザ固有のアクセストークンによって確立された、プロセスの現在のプライマリグループです。
通常、Windowsプロセスには、プライマリグループに加えて、1つ以上の追加のグループ資格情報が関連付けられています。これらの追加のグループ認証情報は、エージェントによって監視されません。プロセスエクスプローラ のプロセスプロパティの [ Security ] タブで表示できます。
-
親:このプロセスを作成したプロセスのPID。
- Path: プロセスのバイナリへのフルパス。 Windowsでは、これは
GetModuleFileNameEx()
APIから取得されます。 LinuxおよびSolaris 10では、シンボリックリンク/proc/{pid}/exe
または/proc/{pid}/path/a.out
をそれぞれ読み取ることによって取得されます。 Solaris 9およびAIXでは使用できません。 - Process: プロセスバイナリの短縮名 (パスなし)。たとえば、
c:\windows\notepad.exe
の場合はnotepad.exe
、そして/usr/local/bin/httpd
の場合はhttpd
になります。 - スレッド:プロセスで現在実行中のスレッドの数。
- User: プロセスを実行しているユーザ。 Unixでは、これはプロセスの実効ユーザIDであり、プロセスが権限を削除したり、有効なユーザ資格情報を切り替えたりした場合に変化します。
簡略記法属性
- STANDARD: CommandLine、Group、Parent、Path(使用可能な場合は)、 プロセスユーザ
キーの意味
キーは、 Process
属性 (実行可能ファイルの短縮名) とPIDの組み合わせです。 PIDは、パス区切り文字で区切られた名前に追加されます。たとえば、Windowsの場合は notepad.exe\1234
、UNIXの場合は httpd/1234
です。パス区切り文字を使用すると、 key="abc//"
の包含一致または除外一致が想定どおりに機能するようになります。
サブエレメント
- Include
- Exclude
これらのエレメントに指定できる属性とサブエレメントのincludeの概要は、「変更監視ルールの言語」を参照してください。ここでは、このエンティティセットクラスに関連するincludeおよびexcludeに固有の情報のみを記載します。
ProcessSetsのincludeおよびexcludeに固有の属性
次の例では、PIDに関係なく、notepad.exeの一連の実行プロセスを監視します。
<ProcessSet>
<include key="notepad.exe\/" />
</ProcessSet>
プロセスのその他のさまざまな属性を、包含テストと除外テストで使用できます。このテストでは、Unixのグロブスタイルのワイルドカードを *
および ?
でサポートします。パス区切り文字やその他の文字は、属性の値に対する単純なグロブスタイルの一致であるため、正規化されません。
CommandLine: プロセスのcommandLine属性に対してワイルドカードが一致するかどうかを確認します。次の例では、コマンドラインが "/httpd /"
に一致するプロセスを監視します。
<ProcessSet>
<include commandLine="/httpd /" />
</ProcessSet>
Group: プロセスのグループ属性に対してワイルドカードが一致するかどうかを確認します。数値形式ではなく、テキスト形式のグループ名が使用されます。Linuxでデーモングループをテストするには、 2
ではなく daemon
を使用します。次の例では、root、daemon、またはlpのいずれかのグループとして実行されているプロセスを監視します。
<ProcessSet>
<include group="root" />
<include group="daemon" />
<include group="lp" />
</ProcessSet>
パス:プロセスのパス属性に対するワイルドカード照合をチェックします。path属性は、一部のプラットフォームでは使用できません。次の例では、System32の下にバイナリがあるプロセスを監視します。
<ProcessSet>
<include path="/\System32\/" />
</ProcessSet>
User: プロセスのユーザ属性に対してワイルドカードが一致するかどうかを確認します。数値形式ではなくテキスト形式のユーザ名が使用されます。Unixでスーパーユーザをテストするには、 0
(ゼロ) ではなく root
を使用します。次の例では、組み込みシステムユーザのいずれかとして実行されているプロセス (たとえば、NT AUTHORITY\SYSTEM、NT AUTHORITY\LOCAL SERVICE、NT AUTHORITY\NETWORK SERVICE) を監視します。
<ProcessSet>
<include user="NT AUTHORITY\/" />
</ProcessSet>