重複パターン

重複ルールは、重複パターンによって定義されます。重複ルールでは、指定された時間間隔内に受け入れられた 2 番目以降のイベントをカウントしますが、これらのイベントのルール・セット処理をスキップします。これはステートフル・ルールです。

概説

重複パターンは、通常、一定期間にわたり類似 (重複) するイベントを分離するために使用されます。重複イベントとは、前のイベントと何らかの点で類似しているイベントを指しますが、そのイベントの正確なコピーであるとは限りません。単に、ルールのイベント選択基準を満たしたイベントが、重複していると見なされます。期間は、ルール言語の <timeWindow> エレメントによって 定義された、必須の時間枠で指定されます。

ルール応答が実行される条件

重複パターンを使用すると、ルール応答は以下の時点で実行されます。
  • 最初のイベントが検出されたとき (<onDetection> エレメントで定義)。
  • 各重複イベントが処理されたとき (<onNextEvent> エレメントで定義)。
  • 時間枠が完了したとき (<onTimeWindowComplete> エレメントで定義)。

重複イベントを受信していない場合でも、最初のイベントにより <onDetection> アクションがトリガーされます。この振る舞いの理由は、最初のイベントを転送して、重複イベントのルール・セット処理をスキップする必要がある場合があるためです。この場合、ルールに対して、<onDetection> アクションがトリガーされたときに最初のイベントを転送するルール応答アクションを追加できます。

重複イベント (2 番目以降のイベント) に対するデフォルトの処理では、重複イベントはカウントされますが、重複イベントのルール・セット処理はスキップされます。重複イベントに対して追加のアクションを実行する場合は、<onNextEvent> アクションを明示的に定義できます。例えば、重複イベントが、データベースまたはその他のリポジトリーに既に記録されているイベントである場合も考えられます。このため、<onNextEvent> アクションを、このような他のロケーションから重複イベントを除去するようコーディングする必要があります。

<onTimeWindowComplete> アクションは、処理された重複の数を含む、すべての重複イベントのサマリー・レコードを作成するのに使用できます。

このルール・パターンの使用例

「サービス妨害」メッセージが、同じリソース・タイプ (セキュリティー・モニター) から繰り返し発生すると想定します。これは、セキュリティー・ブリーチ (抜け穴) の可能性を示します。重複パターンの使用例は、以下を行うルールです。
「サービス妨害」メッセージがセキュリティー・モニターで発生すると、その後 30 秒間に発生するそのイベントの重複はすべてカウントされますが、オペレーター・コンソールには送信されません。また、30 秒間が経過したときに、ルールは、その期間に発生した「サービス妨害」メッセージの数を示すイベントを生成します。
関連資料
重複ルールのサマリー