ProcessSet

変更監視モジュールは、Deep Security Agent上のディレクトリレジストリ値レジストリキーサービスプロセスインストール済みのソフトウェアポートグループユーザファイル、および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>