ルールの構造

ルールの最も基本的な部分は、イベント選択、グループ化キー、ステートフル・ルールの時間枠、ルール応答、アクティブ化間隔、およびライフ・サイクル・アクションです。ルールには、式および変数も含まれます。式とは、ルールに追加できるカスタム・ロジックを含むコードです。

イベント選択

イベント選択基準は、ルールで処理するために受け入れるイベントを判別します。<eventSelector> エレメントは、ルールのイベント選択基準を定義します。イベント選択は、タイマー・パターンで定義されるルールを除くすべてのルールに適用されます。タイマー・ルールではイベントを処理しないため、イベント選択基準が組み込まれていません。

グループ化キー

通常、各アクティブ・ルールには、Active Correlation Technology エンジン内で 実行中の 1 つのルール・インスタンス (またはコピー) が存在します。ただし、 多くの場合異なるリソースのグループに関連している異なるイベントのグループに、 同じルールが必要な場合があります。グループ化キーは、ルールに対して、共通の特性を共有する各イベント・グループに別個のルール・インスタンス (またはルール自体のコピー) を作成させるメソッドです。

グループ化キーは、イベント選択の付加的な形式として機能します。ルールがグループ化キーを使用して定義され、そのルールがグループ化キーによって定義される特性を持つイベントを受信した場合、そのイベントはその特性を共有するイベントを処理しているルール・インスタンスに送信されます。例えば、Audit Failure タイプのすべてのセキュリティー・イベントを収集するルールを定義し、イベントのホスト名属性をグループ化キーとして定義できます。これにより、ホスト名属性の固有値ごとにルールの個別のコピーを実行させることで、ルールを複数回使用できるようになります。また、Audit Failure イベントを受信するすべてのシステムをモニターして、各ホスト名について、2 分という期間内にそのイベントが 10 個より多く発生するかどうか判別することができます。

<groupingKey> エレメントは、ルールのグループ化キーを定義します。また、コレクション、計算、重複、シーケンス、およびしきい値の各パターンによって定義されるルールに対して有効です。

ステートフル・ルールの時間枠

ステートフル・ルールは特定の期間に発生する複数のイベントを相関させるため、ステートフル・ルールの基本的な部分は <timeWindow> エレメントで定義される時間枠です。時間枠は、ステートフル・ルールがそのパターンと突き合わせる処理を行う期間を指定します。

ルール応答

ルール応答アクションは、ルールがその処理を完了したときに実行されるアクションを定義します。以下の各言語エレメントは、それぞれ異なるタイプのルール応答アクションを定義します。
  • <onDetection> 内の <action>
  • <onNextEvent> 内の <action>
  • <onTimeOut> 内の <action>
  • <onTimeWindowComplete> 内の <action>
ルールで使用可能なルール応答アクションのタイプは、ルール・パターンによって異なります。

アクティブ化間隔

アクティブ化間隔は、ルールがアクティブ化および非アクティブ化されるタイミングを定義します。<activationInterval> エレメントはルールのアクティブ化間隔を定義します。

ルールは、離散的な時点で、または特定のイベントによってアクティブ化または非アクティブ化できます。

ルールが離散的な時点および 特定のイベントでアクティブ化または非アクティブ化されるよう指定した場合、離散的な時点またはイベントを受信した時点のいずれか早い時点でルールがアクティブ化または非アクティブ化されます。ただしこの場合、ルールはそのライフ・サイクルをとおして、多くのイベントによってアクティブ化または非アクティブ化される可能性があります。例えば、ルールがイベントによってアクティブ化され、非アクティブ化され、定義された時点でアクティブ化され、再度非アクティブ化され、別のイベントによってアクティブ化されることもあります。

<activationByGroupingKey> エレメントは、<activationInterval> エレメントに含まれるエレメントの 1 つです。<activationByGroupingKey> エレメントには、<groupingKey> エレメントで定義されているルール・インスタンスをアクティブ化および非アクティブ化できるイベントを指定するエレメントが含まれます。

ライフ・サイクル・アクション

ライフ・サイクル・アクションは、ルールのライフ・サイクルの 4 つの基本ステージ (ロード、アクティブ化、非アクティブ化、およびアンロード) で実行するアクションを定義します。

<lifeCycleActions> エレメントには、これらのアクションを定義する以下のエレメントが含まれます。
  • <onLoad> 内の <action>
  • <onActivation> 内の <action>
  • <onDeactivation> 内の <action>
  • <onUnload> 内の <action>