このトピックでは、詳細EPLルールで使用するようSecurity Analyticsに用意されている2つの注釈について説明します。
@RSAAlertアノテーション
@RSAAlertアノテーションは、EPLステートメントをアラート生成用とマークするために使用されます。@RSAAlertは詳細なルール定義で、ESAアラートを生成する必要があるステートメントでのみ使用するオプションです。
注:このアノテーションは、名前付きのウィンドウを作成するEPLステートメントなど、すべてのEPLステートメントで必要なわけではありません。
@RSAPersistアノテーション
@RSAPersistアノテーションは、データを保持するために、名前付きウィンドウをESA管理対象ウィンドウとしてマークするために使用します。名前付きウィンドウをESA管理対象ウィンドウとしてマークすることにより、ESAでは、ウィンドウの内容を定期的にディスクに書き込み、ウィンドウが導入解除されてから再導入された場合にそれらのウィンドウをリストアします。モジュールが導入解除されてウィンドウが削除される直前にスナップショットが作成されます。一方、モジュールが再導入された直後にスナップショットからウィンドウの内容がリストアされます。これにより、モジュールの状態が変わった場合や、ESAサービスがダウンした場合に、ウィンドウの内容が失われなくなります。
たとえば、IPアドレスから割り当てられた各ホスト名へのマッピングを保持する名前付きのウィンドウ、DHCPTracker について考えてみます。@RSAPersist注釈を使用して、次のように、このステートメントに注釈を付けることができます。
@RSAPersist
create window DHCPTracker.std:unique(ip_src) as (ip_src string, alias_host string);
insert into DHCPTracker select IP as ip_src, HostName as alias_host from DHCPAssignment(ID=32);
注:すべてのウィンドウの定義がデータ保全に適しているわけではありません。@RSAPersist 注釈は、慎重に使用する必要があります。ウィンドウに時限レコードが含まれている場合や、ウィンドウが時間基準の制約に基づいている場合、復元されたスナップショットによってウィンドウが正しい状態にリストアされない可能性が高くなります。また、ウィンドウ定義を変更すると、スナップショットが無効になり、ウィンドウが空白の状態にリセットされます。ウィンドウ定義の変更が競合しているかどうかを確認するためのセマンティック解析は一切行われません。モジュールの他の部分(つまり、ウィンドウを定義する特定のCREATE WINDOWコール)が変更されてもスナップショットが無効にならない場合があることに注意してください。