変更監視モジュールは、ディレクトリ、レジストリ値、レジストリキー、サービス、プロセス、インストールされたソフトウェア、ポート、グループ、ユーザ、ファイル、およびエージェント上のWQLクエリステートメントに対する予期しない変更をスキャンします。
変更監視を有効にして設定するには、変更監視の設定を参照してください。
プロセスのセットを表します。
タグ属性
次の表は、変更監視ルールによって監視されるエンティティの属性ではなく、タグ自体のXML属性のリストと説明を示しています。
属性
|
説明
|
必須
|
初期設定値
|
設定できる値
|
onChange
|
リアルタイムで監視するかどうかを示します。
|
いいえ
|
false
|
true、false
|
エンティティセットの属性
変更監視ルールで監視できるエンティティの属性は次のとおりです。
-
CommandLine:
ps -f
(Unix)、ps w
(Linux)、またはProcess Explorerで表示される完全なコマンドライン。Windowsでのみ利用可能です。 -
Group: プロセスが実行されているグループ。
-
UNIXでは、これはプロセスの実効グループIDであり、共有リソースへのアクセスや、場合によってはファイルへのアクセスを決定します。プロセスが権限を削除したり、有効なグループ資格情報を切り替えたりすると、グループIDが変更される可能性があります。たとえば、プログラムはグループIDを一時的に変更し、書き込み権限を取得して、ユーザが読み取り専用権限を持つディレクトリにインストールファイルをコピーすることができます。
-
Windowsでは、これは、ログイン時に作成されたユーザ固有のアクセストークンによって確立された、プロセスの現在のプライマリグループです。プライマリグループに加えて、Windowsプロセスには通常、1つ以上の追加のグループ認証情報が関連付けられています。これらの追加のグループ認証情報はエージェントによって監視されませんが、Process Explorerのプロセスプロパティの[セキュリティ]タブで表示できます。
-
-
Parent: このプロセスを作成したプロセスの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
です。 -
Threads: プロセスで現在実行中のスレッド数。
-
User: プロセスが実行されているユーザ。Unixでは、これはプロセスの有効なユーザIDであり、プロセスが権限を放棄したり、有効なユーザ認証情報を切り替えたりすると時間とともに変わる可能性があります。
簡略記法属性
- STANDARD: コマンドライン、グループ、親、パス (利用可能な場合)、プロセスユーザ
キーの意味
キーは、
Process
属性 (実行可能ファイルの短い名前) とPIDの組み合わせです。PIDは名前にパス区切り文字を挟んで追加されます。例えば、Windowsではnotepad.exe\1234
、Unixではhttpd/1234
です。パス区切り文字の使用は、key="abc//"
のようなインクルードまたはエクスクルードのマッチングが期待通りに機能するようにするためです。サブエレメント
- 含む
- Exclude
変更監視ルール言語の一般的な説明については、許可されている属性とサブ要素を含めて参照してください。ここには、このEntitySetクラスに関連するインクルードとエクスクルードに特有の情報のみが含まれています。
ProcessSetsのincludeおよびexcludeに固有の属性
次の例では、PIDに関係なく、notepad.exeの一連の実行プロセスを監視します。
<ProcessSet> <include key="notepad.exe\/" /> </ProcessSet>
プロセスのさまざまな属性を含めるテストおよび除外テストに使用できます。テストでは、UNIXのglob形式のワイルドカードである
*
および?
がサポートされ、パスのセパレータまたはその他の文字の正規化は実行されません。これは、属性の値に対する単純なglob形式のパターン照合です。CommandLine: プロセスのcommandLine属性に対してワイルドカード一致をチェックします。次の例では、コマンドラインが
"/httpd /"
に一致するプロセスをモニタします。<ProcessSet> <include commandLine="/httpd /" /> </ProcessSet>
Group: プロセスのグループ属性に対してワイルドカード一致をチェックします。数値形式ではなく、グループ名のテキスト形式が使用されます: Linuxでデーモングループをテストするには
daemon
を使用し、2
を使用しないでください。次の例では、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>