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