アノマリ検出ルール

アノマリ検出ルールは、ネットワークで異常なトラフィック・パターンが発生したときにそれを検出するために、保存済みのフローまたはイベント検索の結果をテストします。

アノマリ検出ルールには、共通パラメーターに沿ってグループ化された保存済みの検索と、有効な時系列グラフが必要です。 アノマリ、しきい値、または振る舞いの変化のパターンを識別する結果をアノマリ・ルールで返すには、通常、検索でデータを蓄積する必要があります。

アノマリ・ルール

イベント・トラフィックおよびフロー・トラフィックをテストして、相対的に長い時間フレームに対して比較を行う際に短期イベントに変化がないかどうか調べます。 例えば、ネットワーク内に出現した新規のサービスやアプリケーション、Web サーバーのクラッシュ、全面的にトラフィックを拒否し始めたファイアウォールなどです。

例: ネットワークが攻撃されている可能性があるため、ファイアウォール・デバイスの 1 つが通常よりも頻繁に報告している場合に通知を受け取る必要があります。 1 時間に受け取るイベント数が 2 倍の場合に通知を受けるようにするとします。 以下のステップに従います。
  1. ログ・ソース別にグループ化した検索を作成して保存し、数の列のみを表示します。
  2. 保存された検索を例外ルールに適用し、ルールテストを追加し、 そして最後の 1 時間 あたりの平均値 ( インターバルごと ) が 最後の 24 時間 で同じプロパティーの過去の平均値 ( インターバルごと ) と 少なくとも 100% 異なる

しきい値ルール

イベントまたはフローをテストして、指定された範囲を上回るか下回るアクティビティーがないかどうか調べます。 このタイプのルールは、アプリケーションの帯域幅使用量の変化、失敗したサービス、VPN に接続しているユーザーの数、および大容量のアウトバウンドの転送を検出する場合に使用します。

例: 前のインシデントに関与していたユーザーが、大規模なアウトバウンド転送を行ったとします。

ユーザーが以前のオフェンスに関わっている場合、リファレンス・セットに追加するルールの応答を自動的に設定します。 ユーザーの監視リストがある場合、そのようなユーザーをリファレンス・セットに追加します。 しきい値ルール内で許容される制限をチューニングします。

検索では、リファレンス・セット、WatchUsers およびキー username が必要です。

以下の検索を実行してから、しきい値ルールに適用します。
select assetuser(sourceip, now()) as 'srcAssetUser',
Applicationname(applicationid)as 'AppName', long(sum(sourcebytes
+destinationbytes)) as 'flowsum' from flows where flowdirection = 'L2R' and 
REFERENCESETCONTAINS('Watchusers', username)group by 'srcAssetUser',
applicationid order by 'flowsum' desc last 24 hours

振る舞い型ルール

イベントまたはフローをテストして、異常値を検出するために、通常のパターンで発生するボリューム変化が生じていないかどうか調べます。 例: オープン・リレーがあり、突然多数のホストと通信を開始したメール・サーバーや、多数のアラート・アクティビティーを生成し始めた IPS (侵入保護システム)。

振る舞い型ルールでは、事前定義した周期におけるプロパティーのレートまたはボリュームを学習します。 周期では、評価内容のベースライン比較タイムラインを定義します。 周期として 1 週間を設定した場合、1 週間におけるプロパティーの振る舞いが学習されます。その後、ルール・テストを使用して、重大な変化が発生した場合にアラートを受け取ります。

振る舞い型ルールを設定すると、周期は自動的に調整されます。 周期内のデータが学習されると、そのデータは継続的に評価されて、周期内におけるビジネスの成長のプロファイルが作成されます。ユーザーがルールを変更する必要はありません。 振る舞い型ルールの実行期間が長くなればなるほど、そのルールの正確度が向上します。 その後、ルールの応答を調整して、さらに微細な変化をキャプチャーするようにすることができます。

以下の表で、振る舞い型ルール・テストのパラメーターのオプションについて説明します。

表 1. 振る舞い型ルール・テストの定義
ルール・テストのパラメーター 説明
周期

最も重要な値。 周期は、他のルール・テストで使用するテスト対象のプロパティーのベースラインの振る舞いを定義します。 周期を定義するには、モニター対象のトラフィックのタイプを考慮します。 例えば、ヒューマン・インタラクションが含まれるネットワーク・トラフィックまたはプロセスの場合、1 週間が、適した周期時間フレームになります。 パターンが一貫している自動サービスを追跡する場合、その振る舞いパターンを定義するためにわずか 1 日の周期を作成する場合もあります。

現在のトラフィック・レベル (Current traffic level)

周期的変化およびランダム誤差が考慮された、元のデータの重み。 このルール・テストは、「データは昨日の同時刻と同じか?」という質問をします。

重みは 1 から 100 の範囲内でなければなりません。 値が大きいほど、以前に記録された値をより重視します。

現在のトラフィック・トレンド (Current traffic trend)

各時間間隔のデータの変化の重み。 このルール・テストは、「この 1 分と前の 1 分を比較した場合にデータはどのくらい変化したか?」という質問をします。

重みは 1 から 100 の範囲内でなければなりません。 値が大きいほど、計算された振る舞いよりトラフィック・トレンドを重視します。

現在のトラフィック動作 (Current traffic behavior)

各期間の周期的効果の重み。 このルール・テストは、「第 2 週から第 3 週のデータの増加量は、第 1 週から第 2 週と同じか?」という質問をします。

重みは 1 から 100 の範囲内でなければなりません。 値が大きいほど、学習行動をより重視します。

予測値

予測値は、ベースラインをスケーリングして、アラートの感度を上げる、または下げる場合に使用します。

感度は 1 から 100 の範囲内でなければなりません。 値 1 は、測定値が予測値から外れてはならないことを示します。 値 100 は、トラフィックが予測値の 4 倍を超えても構わないことを示します。

(n+1)th の間隔からの値の予測は、以下の式を使用して計算されます。

Fn+1 = Bn + Tn + Tn+1-s

ここで、F は予測値、B は間隔 n の基本値、T は間隔 n のトレンド値、T は周期間隔前のトレンド値、s は周期内の間隔数です。

基本値は、以下の式を使用して計算されます。

Bn+1 = (0.2 + 0.3*(<Current traffic level> / 100.0))*(valuen+1 – Tn+1-s) + (1 – (0.2 + 0.3*(<Current traffic level> / 100.0)))*Tn

トレンド値は、以下の式を使用して計算されます。

Tn+1 = (0.2 + 0.3*(<Current traffic trend> / 100.0))*(Bn+1 - Bn) + (1 - (0.2 + 0.3*(<Current traffic trend> / 100.0)))*Tn

平滑偏差 D は、以下の式を使用して計算されます。

Dn+1 = (0.2 + 0.3*(<Current traffic behavior> / 100.0))*|valuen+1 – Fn+1| + (1 – (0.2 + 0.3*(<Current traffic behavior> / 100.0)))*Dn+1-s

振る舞い型ルールは、以下の式が false の場合に、間隔に対するアラートを生成します。

F – (1 + (sensitivity / 100.0)*3)*D <= value <= F + (1 + (sensitivity / 100.0)*3)*D

振る舞い型ルールは、最初の周期中には将来の計算のための学習を行い、アラートの生成は行いません。