目次

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>