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