レポート:NWDBルールの構文

Document created by RSA Information Design and Development on Feb 17, 2017
Version 1Show Document
  • View in full screen mode
  

このトピックでは、Reporting EngineのNWDBルールの構文でサポートされるルールの構文について説明します。Reportingの性能向上に関する情報については、次のトピックを参照してください:レポートに関する推奨事項.

ルールは、ルールの結果セットを処理する関数です。レポートの出力を絞り込んだり、データのクエリーや表示以外の機能をルールに追加したりすることができます。このようなルール アクションを組み合わせて使用すると、Security Analyticsによって収集された情報から重複を排除したり、情報をより有益な形で表現したりすることができます。

Reporting Engineでは、次のカテゴリーのNWDBデータソースのルール構文をサポートしています。

  • select

    • 集計を行わないルール
    • 集計を行うルール
  • where
  • where句演算子
  • then
  • 件数]フィールド
  • ルール アクション
  • ルール演算子

Select句

Select句は、値のコンマ区切りのリストです。たとえば、sessionid、time、serviceを選択します。

NWDBルールのselect句には、次の2種類あります。

  • 集計を行わないルール
  • 集計を行うルール

集計を行わないルール

グループ化なしでルールを定義するときは、[サマライズ]フィールドで[なし]を選択します。集計を行わないルールでは、Select句で任意の数のメタを選択できます。たとえば、sessionid、time、serviceを選択します。 

105_non_aggregate_fn.png

集計を行うルール

特定のメタおよびそれに関連づけられている集計値に対するクエリーを実行するときは、集計ルールを使用する必要があります。集計された結果を取得するには、[サマライズ]フィールドで、3つのメタ(イベント数、パケット数、セッション サイズ)のいずれか、または[カスタム]を選択して、Select句に集計関数を含める必要があります。たとえば、ip.src、sum (ip.dst)を選択します。カスタム集計ルールが有効になっている場合、ユーザー インタフェースでは次のフィールドが入力されています。

  • Group By
  • Order By
  • セッション閾値

次の図は、集計ルールの[ルールのビルド]ビューを示しています。

105_agr_rule.png

クエリーを実行できる集計値は次の2種類あります。

  • コレクション集計
  • メタ集計

コレクション集計

コレクション集計では、イベント、セッション、パケットに関連する集計を取得できます。次の値は、コレクションの集計でクエリーできます。

  • イベント数:イベントの総数。
  • パケット数:パケットの総数。
  • セッション サイズ:全セッション サイズ。

これらのオプションは、[サマライズ]フィールドにリストされており、ルール内でいずれかを選択できます。 
たとえば、[サマライズ]フィールドで、コレクションの集計(イベント数、パケット数、セッション サイズ)のいずれかを選択し、ip.srcを選択します。

105_agg_fn_event_count.png

メタ集計

メタ集計では、メタ値の集計を取得できます。次に示すのは、サポートされているメタ集計関数です。

  • sum(meta)
  • count(meta)
  • countdistinct(meta)
  • min(meta)
  • max(meta)
  • avg(meta)
  • first(meta)
  • last(meta)
  • len(meta)
  • distinct(meta)

サポートされるメタ集計関数

NWDBサービスでは、このリリースで次のメタ集計関数と構文をサポートしています。

                                                   
構文機能
sum(<meta>)

すべてのメタ値の合計

たとえば、select句でフィールドsum(payload)を指定すると、結果セットは、ペイロードのサイズの合計です。

注:sum集計関数で選択するメタ フィールドは、数値データ型である必要があります。

count(<meta>)

返されるメタ フィールドの合計数。

たとえば、select句でフィールドcount(ip.dst)を指定すると、結果セットは、ip.dst値が返される回数です。 

countdistinct(<meta>)

返される個別のメタ フィールドの合計数。たとえば、select句でフィールドcountdistinct(ip.dst)を指定すると、結果セットは、個別のip.dst値が返される回数です。

min(<meta>)

すべてのメタ値の最小値。

たとえば、select句でフィールドmin(payload)を指定すると、結果セットは、ペイロードの最小サイズです。

max(<meta>)

すべてのメタ値の最大値。

たとえば、select句でフィールドmax(payload)を指定すると、結果セットは、ペイロードの最大サイズです。

avg(<meta>)

すべてのメタ値の平均

たとえば、select句でフィールドavg(payload)を指定すると、結果セットは、ペイロードのサイズの平均です。

注:avg集計関数で選択するメタ フィールドは、数値データ型である必要があります。

first(<meta>)

最初に出現するメタ値。

たとえば、select句でフィールドfirst(ip.src)を指定すると、結果セットは、そのグループに対して最初に出現するip.srcです。

last(<meta>)

最後に出現するメタ値。

たとえば、select句でフィールドlast(ip.src)を指定すると、結果セットは、そのグループに対して最後に出現するip.srcです。

len(<meta>)

実際の値を返さずに、すべてのフィールド値をUInt32の長さに変換します。この長さは、実際の値を格納するためのバイト数で、メタ データベースに格納される構造の長さではありません。

たとえば、メタ値「NetWitness」の場合、長さは10が返されます。 IPv4フィールド(ip.srcなど)の場合は、すべて4バイトが返されます。

distinct(<meta>)

メタの個別の値。

たとえば、select句でフィールドdistinct(ip.src)を指定すると、結果セットは、そのグループに対してすべて個別のip.srcです。

[サマライズ]フィールドの[カスタム]フィールドを選択し、select句にメタとメタ集計関数を提供する必要があります。

105_agg_fn_custom.png

注:WHERE句ではメタ集計関数を使用できません。また、min_threshold/max_thresholdなどのルール アクションは、集計関数をフィルタするときに使用できます。「group by」を使用するときは、より絞り込んだwhere句を使用して、ルールのパフォーマンスを向上させることをお勧めします。

複数のメタの集計クエリー

複数のメタに対して集計クエリーを実行するには、次のステップを実行します。

  1. Security Analyticsメニューで、[Administration]>[レポート]をクリックします。

    [管理]タブがハイライト表示され、[ルール]ビューが表示されます。

  2. [ルール]ツールバーで、add_rule_button.png>[NetWitnessDB]をクリックします。

    たとえば、以下に示すハイライト表示されているフィールドに、次のメタを入力します。

    SELECT: ip.src, service, count(alias.host)
    WHERE:ip.src = 59.96.136.142

  3. 画面下部の[ルールのテスト]ボタンをクリックします。

    [ルールのテスト]ページが表示されます。

    Multiple_Query_Meta.png

サマライズ 

[サマライズ]で、ルールの要約や集計のタイプを決定します。

               
名前構成
サマライズ

カスタム グループ化なしでメタに対してクエリーを実行するには、以下を選択します。

  • なし:この場合、データはセッションによってグループ化されます。

コレクション(セッション/イベント/パケット)関連の集計を取得するには、次のいずれかを選択します。

  • イベント:イベントの総数。
  • パケット数:パケットの総数。
  • セッション サイズ:全セッション サイズ。

メタ ベースの集計を取得するには、次を選択します。

  • カスタム:これは、予期されるメタ集計関数が、ルールのselec句で定義されていることを示します。

Order By 

[整列]によって、結果セットをソートする方法が決まります。

                   
名前構成値
列名列名]は、結果をソートするための基準となる列の名前です。デフォルトでは、この値は空です。列をクリックすると、値は[サマライズ]フィールドに基づいて入力されます。
  • [なし]および[カスタム]の場合、値は、[選択]フィールドに基づいて入力されます。このリストから選択することも、カスタム名を追加することもできます。 
  • [イベント数]、[パケット数]、[セッション サイズ]の場合、使用できる値はTotalとValueです。 
  • Total - 集計値でソート
  • Value - メタごとのグループでソート
ソートソート基準]によって、結果をソートする順序が決まります。値は次のとおりです。
  • 昇順
  • 降順

セッション閾値

セッション閾値は、選択したメタのスキャンを停止するための最適化設定です。
閾値は、0(デフォルト)~2147483647の範囲の整数です。閾値0は、すべての一致するセッションをスキャンします。

注:ゼロ以外の値(ゼロより大きい値)を設定した場合、集計結果が不正確になることがあります。これは、集計値ではなく一意の値を調べる場合にのみ使用できます。

サポートされるwhere句

                   
構文説明
where <field1> [<field-operator>] <value1>,<value2>,<value3-value4> <logic-operator> <field2>,などwhere句はコンマで区切ったフィールドの値や範囲のリストで指定し、NwValues関数で使用します。where句では、文字列値を一重引用符で囲む必要があります。たとえば、where username = 'admin' && service = 22となります。
where <field1> [<field-operator>] <List1>レポートする値が複数ある場合、where句内でリストを使用できます。たとえば、where ip.src exists && alias.host exists &&alias.host contains $[User Reports/List of Alias Host]となります。リストを使用する場合、$[<path>/<List name>]の形式で指定する必要があります。

where句では、メタ タイプに基づいた正しい構文であることを確認します。
例: 
メタ タイプがテキストの場合、引用符を使用します。例:username = 'user1'
メタ タイプがIPアドレス、Ethernetアドレス、数値の場合、引用符は使用しません。例:service = 80 &&ip.src = 192.168.1.1
メタ タイプが日付と時刻の場合、日付と時刻の形式が「YYYY-MM DD HH:MM:SS」であれば、引用符を使用します。
日付と時刻の形式が「1448034064」(EPOCH(1970年1月1日)以降の秒数)の場合、引用符は使用しません。

注:ルールでリストを使用する場合は、使用するメタ タイプに基づいて、リストの値が引用符で囲まれているか、または囲まれていないことを確認してください。[リストの定義]ページの[すべての値に対して引用符を挿入します]チェックボックス(詳細については、「 リストの追加 」セクションを参照)を選択すると、すべてのリストの値に引用符が付きます。

サポートされるwhere句演算子

                                               
構文説明
=指定した値と一致するフィールドを結果として返します。たとえば、tcp.dstport = 21-25,110は、TCP宛先ポートの21、22、23、24、25、110のいずれかのセッションを返します。
!=指定した値と一致しないフィールドを結果として返します。  たとえば、eth.type !=0x0800は、16進数値0x0800(10進数値の2048)以外のセッションを返します。これはすべて非IPベースのプロトコルです。
beginsテキストまたはバイナリ フィールドの先頭部分にある値を確認します。
contains部分的に一致するテキストまたはバイナリの値を検索します。
endsテキストまたはバイナリ フィールドの末尾にある値を確認します。
existsそのフィールド値が存在すれば、値にかかわらず、この演算はtrueと評価されます。
!existsそのフィールド値が存在しなければ、この演算はtrueと評価されます。
lengthフィールドの長さを評価します。たとえば、username length 20-uは、文字数が20以上のユーザー名を返します。
regexテキストまたはバイナリ値に対して正規表現による検索を実行します。
 

サポートされているthen句

               
構文説明
then <ルール アクション>then句には、ルールの元の結果セットを処理するルール アクションが含まれます。このようにして、レポートの出力をより具体的にしたり、データのクエリーや表示以外の機能をルールに追加したりすることができます。たとえば、dedup (filename)。

[件数]フィールド

これは、データベースからデータをフェッチするとき、クエリーに対して設定する件数を示します。結果セットがイベント数、
パケット数、またはセッション サイズでソートされる場合、件数(=N)を指定すると、上位(または下位)N個の結果が返されます。結果セットをソートしない場合は、
最初のN個の値が返されます。

ルール アクション

NWDBデータ ソースのルール構文は、次のルール アクションをサポートしています。

  • dedup
  • filter_on
  • filter_out
  • lookup_and_add
  • max_threshold
  • min_threshold
  • regex
  • sum_count
  • sum_values
  • show_whats_new

dedup (string field)

dedupは、ソートされていない結果セットから重複するエントリーを削除し、適切なデータだけを表示します。dedupルール アクションは、レポート内の特定のフィールドの重複するエントリーを削除し、最初に出現する値だけがレポートに表示されるようにします。

注:dedupルール アクションは、集計ルールと一緒に使用できません。

たとえば、個々のセッションで生成されるメタ データには重複が多いケースがあります。特に、DNSの検索が何度も行われるセッションや、さまざまなリソース(javascript、cssなど)が同じホストに何度もアクセスするWebセッションなどでその傾向があります。重複したホストのエントリーを削除するには、dedupルール アクションを使用します。

例:

次の例は、長くなる結果セットです。同じセッションで重複する値を削除することでトリミングできます。

105_dedup_before.png

次の図は、dedupルール アクションを使用して結果セットから重複するエントリーを削除する方法を示しています。

105_dedup_build.png

ルール結果セット内の各エントリーで重複する値が1つに減っていることが分かります。

105_dedup_after.png

filter_on (string filter, string field, bool matchExact)

filter_on は、 filter 条件を含まない値を結果セットから削除します。 結果セットに複数のフィールドが含まれる場合は、フィルタを適用する特定のフィールドを選択する必要があります。単一の結果セットに結果を追加するには、lookup_and_addなどの関数を含めます。

matchExactパラメータによって、完全一致か部分一致かを指定します。

  • matchExactを false,に設定すると、フィルタ テキストを含むあらゆる値が一致と見なされます。
  • matchExactを trueに設定すると、指定したフィルタ テキストに一致する値だけが結果セットに含まれるようになります。

注:matchExactパラメータが指定されていない場合は、フィルタ パラメータで指定された文字に対する完全一致がルール アクションのデフォルトの動作になります。フィルタ テキストを含む結果を結果セットで保持するように指定する場合は、matchExactパラメータをfalseに設定する必要があります。

例:

以下の図に、国とそれぞれのイベント数のリストを示します。

105_before_filteron_result.png

以下の図に、スペイン、中国、米国、英国以外の国を結果セットから除外するfilter_onルール アクションを示します。

105_With_filteron_build_rule.png

次の図は、filter_onルール アクションの出力を示しています。

105_With_filteron_result.png

結果セットからエントリを除外する方法として、除外する変数のリストを作成する方法もあります。たとえば、値として英国、フランス、ドイツを含むリストを作成できます。ルール アクションでこのリストを使用して、同じ結果セットを得ることができます。たとえば、COUNTRY_LISTというリストを作成した場合、次のように使用できます。

filter_on ('$COUNTRY_LIST', 'country.src', 'false');

filter_out (string filter, string field)

filter_out (string filter, string field, bool matchExact)

filter_outは、filter条件を含む値を結果セットから除外します。結果セットに複数のフィールドが含まれている場合は、フィルタを適用する特定のフィールドを選択する必要があります(たとえば、lookup_and_addを使用して、結果を単一の結果セットに追加できます)。

matchExactパラメータによって、完全一致か部分一致かを指定します。

  • matchExactをfalseに設定すると、フィルタ テキストを含むあらゆる値が一致と見なされます。
  • matchExactをtrueに設定すると、指定したフィルタ テキストに一致する値だけが結果セットから除外されるようになります。

注:matchExactパラメータが指定されていない場合は、フィルタ パラメータで指定された文字に対する完全一致がルール アクションのデフォルトの動作になります。フィルタ テキストを含む結果を結果セットから除外するように指定する場合は、matchExact パラメータをfalseに設定する必要があります。

例:

以下の図に、国とそれぞれのイベント数のリストを示します。

105_before_filterout_result.png

次の図は、filter_outルール アクションを使用して結果セットからスペイン、中国、米国、英国のイベント数を削除する方法を示しています。

105_With_filterout_build_rule.png

次の図は、filter_outルール アクションの出力を示しています。

105_With_filterout_result.png

lookup_and_add (string select, string field)

lookup_and_add (string select, string field, int limit)

lookup_and_add (string select, string field, int limit, boolean inherit)

lookup_and_add (string select, string field, int limit, boolean inherit, string extraWhere)   

lookup_and_add(string select, string field, int limit, boolean inherit, string extraWhere, boolean aggregate)

このルール アクションは、結果セット内の値のリストを反復処理し、他のメタ データを検索して、結果セット内の要素間の関係を示すことができます。

注:lookup_and_addルール アクションは、集計ルールでのみ使用できます。

最初のパラメータであるselectは、結果セットの要素に追加する必要があるメタ データのタイプを指定します。2つ目のパラメータであるfieldは、結果セット内のどこに追加すべきかを指定します。また、limit(制限)を適用することで、結果セットが大きくなりすぎるのを防ぐことができます。

デフォルトでは、SDKに対する後続のクエリは、親ルールのwhere句を継承します。一意のwhere句を使用するには、4つ目のパラメータにブール値を指定し、5つ目のパラメータに別のwhere句を指定します。

注:クエリーで一意のwhere句を使用する場合は、シングル クォート(')で引数を囲み、ダブル クォート(")で文字列値を囲みます。

このように、[カスタム]サマライズと[Group By]機能を使用することで、lookup_and_addルール アクションがなくても結果を達成できます。groupbyを含む新しいルール構文により、結果はフラット構造で表示されます。これは、groupbyを含まない以前のルール構文よりも優れています。適切な場合には必ず、lookup_and_addルール アクションを含むルールを手動で編集/更新し、groupby句を使用することをお勧めします。

注:Lookup_And_Addルール アクションは、SELECT句に1つのメタと集計関数が含まれる場合にのみサポートされます。

たとえば、次のシナリオを参照してください。例2aでは、lookup_and_addルール アクションが使用されています。lookup_and_addルール アクションを使用せずに、同じ結果を達成するには、[カスタム]サマライズと[Group By]機能を使用します。次の例2bを見てください。

しかし、lookup_and_addルール アクションは、次の条件では、NWDBルールに対して引き続きサポートされています。

  • [イベント数]、[パケット数]、[セッション サイズ]としてサマライズが含まれるNWDBルールのすべてのバージョン。
  • [カスタム]サマライズの場合、lookup_and_addルールに必要なのは、1つのgroup byメタと1つの集計関数のみです。この集計関数はsum()またはcount()のいずれかである必要があります。

注:「サマライズ - なし」ではサポートされません。

たとえば、次のルールに対してlookup_and_addルール アクションを使用できます。

  • select ip.src, sum(size) group by ip.src
  • select ip.src, count(filename) group by ip.src

次のルールに対しては使用できません。

  • select ip.src, sum(size),count(filename) group by ip.src
  • select ip.src, sum(size),avg(size) group by ip.src
  • select ip.src,ip.dst count(filename) group by ip.src,ip.dst

例:

1. lookup_and_add('ip.dst','ip.src', 2);

このルール アクションは、最初の結果セットの各ip.srcを反復処理し、ip.srcごとに上位2個の宛先IPアドレスを検索して追加します。

次の図にルールの定義を示します。

105_LUA_Build_rule1.png

次の図は、ソースIPアドレス(ip.src)と、ip.srcごとに上位2個の宛先IPアドレス(ip.dst)を含む結果セットを示しています。

105_With_filterout_result.png

2a. lookup_and_add('ip.dst','ip.src', 2); lookup_and_add('service','ip.src', 3);

このルール アクションは、最初の結果セットで各ip.srcを反復処理し、ip.srcごとに上位2個の宛先IPアドレス(ip.dst)と、各ip.srcで使用される上位3個のポート(service)を検索します。

次の図にルールの定義を示します。

105_LUA_Build_rule2.png

次の図は、ソースIPアドレス(ip.src)、ip.srcごとに上位2個の宛先IPアドレス(ip.dst)、そして各ip.srcで使用される上位3個のポート(service)を含む結果セットを示しています。

105_LUA_result2.png

結果セットでさまざまなフィールドを選択し、別の部分に追加することで、複雑なクエリを作成できます。たとえば、それぞれの送信元IPにどのファイルが添付されているかを知りたいとします。しかし、親ルールには、service = '6667'というWHERE句が指定されています。このルール アクションのデフォルトの動作は元のWHERE句の継承であるため、親WHERE句のオーバーライドが必要です。この概念を理解する最も簡単な方法は、以前のlookup_and_add call lookup_and_add('ip.dst','ip.src',2)を見ることです。実際にサーバに送信されるクエリーは、SELECTip.dstWHEREservice = 6667&&ip.src= 206.42.199.194となります。親ルールから継承したWHERE句の「service = '6667'」の部分を強制的にオーバーライドするには、例3のように、4つ目のパラメータとしてfalseを指定します。

2b. Lookup_and_addルールなし

このルールでは、[カスタム]要約と[Group By]機能を使用して、結果をソートします。

次の図にルールの定義を示します。

105_without_LUA_build_rule.png

次の図は、ソースIPアドレス(ip.src)、ip.srcごとに上位2個の宛先IPアドレス(ip.dst)、そして各ip.srcで使用される上位3個のポート(service)を含む結果セットを示しています。

105_without_LUA_result.png

3. lookup_and_add('filename', 'ip.src', 2, false);

この呼び出しでサーバに発行するクエリーは、SELECT filename WHERE ip.src = 90.0.0.142のようになります。SELECT filename WHERE service = 6667' && ip.src = 90.0.0.142ではありません。これは、親ルールの最初のWHERE句を無視するルール アクションを指定しているためです。

次の図にルールの定義を示します。

105_LUA_Build_rule3.png

次の図に結果セットを示します。

105_With_filterout_result.png

testリストはグループ名netwitnessにあります。このリストには、次の構文を使用してアクセスできます。

これらの追加された結果を絞り込み、ファイル名(filename)の拡張子が.gifであるファイル名だけが含まれるようにすることもできます。それには、ルール アクションで5つ目のパラメータを使用します。5つ目のパラメータでは、WHERE句の条件を追加で指定できます。.gifファイル名拡張子のファイルは、testリスト(DocTeamListという名前のグループ内)に格納されます。このリストには、threat.source = $[DocTeamList/test]という構文でアクセスできます 
これは、次の方法で、追加のwhere句パラメータで参照できます。

4. lookup_and_add('filename', 'ip.src', 5, false, 'filename CONTAINS $[DocTeamList/test]');

次の図にルールの定義を示します。

105_LUA_Build_rule4.png

次の図に結果セットを示します。

105_With_filterout_result.png

5. lookup_and_add('ip.dst','ip.src', 2,true,,false);

このルール アクションは、最初の結果セットの各ip.srcを反復処理し、ip.srcごとに上位2個の宛先IPアドレスを検索して追加します。「aggregate」パラメータは「false」に設定されています。これにより検索値の集計がスキップされるため、検索クエリーの実行がより迅速になります。

注:
「aggregate」のデフォルト値は「true」です。「aggregate」が「false」に設定されると、Reporting Engineはthreshold=1、Sort by='value'、Order=AscendingをNWDBに渡して、検索クエリーが迅速に実行されるようにします。 
。ルールに集計関数が含まれる場合、またはルールがより広い時間範囲に対して実行される場合に、「aggregate」をfalseに設定する必要があります。これにより、ルールをより迅速に実行できます。

次の図にルールの定義を示します。

105_LUA_Build_rule5.png

次の図に結果セットを示します。

105_With_filterout_result.png

max_threshold (string quantity)

max_threshold (string quantity, string field)

max_thresholdは、結果セットから最大閾値を超える数量の結果をまとめて削除します。数やサイズについて数量を指定でき、これは親ルールのソート オプションにも関連します。サイズでルールをソートする場合、ルール アクションのパラメータはバイトで指定します(KB、MB、GB、TBをパラメータに追加してサイズ変換できます)。 

max_thresholdルールを使用して、集計関数の値に基づいて値をフィルタすることもできます。次のように、ルールで使用されているサマライズのタイプに基づいて構文を使用します。

  • max_threshold(String quantity): イベント数、パケット数、セッション サイズのフィルタに使用できます。
  • max_threshold(String quantity, String field): カスタム集計または任意のメタの値のフィルタに使用できます。

例:

1. max_threshold(200);

次の図は、max_threshold引数を指定しなかった場合の結果を示しています。出力結果のイベント数は200を超えています。

Max_Threshold_results(before)1.png

次の図は、出力に対して200バイトの制限を適用するmax_thresholdルール アクションを示しています。データが200バイトを超える出力は表示されません。

105_max th2.png

次の図は、max_thresholdルール アクションが適用された場合の結果を示します。上記のスクリーン キャプチャの番号1の結果は、結果から削除されます。

Max_Threshold_results1.png

2. max_threshold(5,count(alias.host));

次の図は、max_threshold引数を指定しなかった場合の結果を示しています。出力結果のalias.host数は5を超えています。

105_max th4.png

次の図は、出力に対して5の制限を適用するmax_thresholdルール アクションを示しています。値が5を超える出力は表示されません。

105_max th5.png

次の図は、max_thresholdルール アクションが適用されるときの結果を示します。値が5を超える出力は結果から削除されます。

105_max th6.png

min_threshold (string quantity)

min_thresholdは、結果セットから最小閾値を下回る数量の結果をまとめて削除します。数やサイズについて数量を指定でき、これは親ルールのソート オプションにも関連します。サイズでルールをソートする場合、ルール アクションのパラメータはバイトで指定します(KB、MB、GB、TBをパラメータに追加してサイズ変換できます)。

min_thresholdルールを使用して、集計関数の値に基づいて値をフィルタすることもできます。次のように、ルールで使用されているサマライズのタイプに基づいて構文を使用します。

  • min_threshold(String quantity): イベント数、パケット数、セッション サイズのフィルタに使用できます。
  • min_threshold(String quantity, String field): カスタム集計または任意のメタの値のフィルタに使用できます。

例:

1. min_threshold(200);

次の図は、min_thresholdを指定したクエリーの例です。

105_Min Th2.png

この図では、出力に対して200バイトの制限が適用されます。データが200バイト未満の出力は表示されません。出力にmin_thresholdルール アクションが適用されます。

Min_Threshold_results1.png

図のように、すべての値が200バイトを超えています。

2. min_threshold(100,count(alias.host));

次の図は、min_threshold引数を指定しなかった場合の結果を示しています。出力結果のalias.host数は100を下回っています。

105_Min Th4.png

次の図は、出力に対して100の下限を設定するmin_thresholdルール アクションを示しています。データが100を下回る出力は表示されません。

105_Min Th5.png

次の図は、min_thresholdルール アクションが適用された場合の結果を示します。データが100未満の出力は結果から削除されます。

105_Min Th6.png

regex (string regex, string field)

regexルール アクションは、結果セットに正規表現を適用します。Regexルール アクションの形式を次に示します。

regex(regular_expression, meta_name)

各項目の意味は以下のとおりです。

  • regular_expression:メタの値と一致する正規表現。
  • meta_name:regexを適用するメタまたはフィールド名。

サポートされるregexパターンのリストについては、http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.htmlを参照してください。

regexルール アクションの例:

さまざまなセッションからPNGとJPEG形式のファイルのファイル名をすべて列挙する場合は、次のregexルール アクションを含むルールを記述します。

regex(".+.(png|jpg)", filename);

次の図は、このルールを示しています。

105_regex_build.png

次の図は、regexルール アクションが適用された出力を示しています。

Reg_exp_results1.png

sum_count()

ある結果セットについて数量を合計します。たとえば、イベント数でソートされたルールに対してsum_count()を呼び出すと、結果セット内のすべての値のサイズが合計され、その結果セットの代わりに合計が表示されます。

例: 

次の図は、sum_count()ルール アクションを示しています。

105_sum-count_build.png

sum_count()ルール アクションを指定した場合は、出力にすべてのイベント数の合計サイズが示されます。

105_sum-count_result.png

sum_values()

ある結果セットの値の数を合計します。このアクションは、特定のルールに一致するものがいくつ存在するかを表示するために使用します。

例:

次の図は、sum_values()ルール アクションを示しています。

105_sum-value_build.png

次の図は、sum_valuesルール アクションを指定した場合の結果を示しています。

105_sum-value_result.png

show_whats_new()

show_whats_new()ルール アクションは、結果セットのすべての結果を受け取り、現在実行中のレポートのタイム フレームより前のNetWitnessメタ データベースに存在する値を除外します。レポートを実行すると、Security Analyticsはレポートの時間範囲で最初のセッションのIDを判断します。結果セットの値の最初のセッションIDがレポートのタイム フレームの最初のセッションIDよりも大きければ、その値はレポート実行前のNetWitnessメタ データベースには存在せず、NetWitnessシステムにとってレポートのタイム フレームよりも新しい値であることになります。

show_whats_new()ルール アクションも、カスタム集計ルールでサポートされています。複数のメタがカスタム ルールで選択されている場合、最初のメタは、古い値を除外するために考慮されます。次の例2で、このルール アクションが、カスタム集計ルールでどのように使用されているかを確認してください。

注:show_whats_new()ルール アクションは、集計ルールでのみ使用できます。

例:

1. イベント数が指定された集計ルールに対するshow_whats_new()

次の例では、過去2週間で使用できたすべてのソースIPアドレスが表示されます。

105_WO_SWN_result.png

次の図では、show_whats_newルール アクションを使用して、過去2週間の新しいエントリーのみを一覧表示しています。

105_With_SWN_build.png

次の図は、過去2週間の新しいエントリーを一覧表示しています。

105_With_SWN_result.png

2. カスタム集計ルールに対するshow_whats_new()

次の例では、過去2週間で使用できたすべてのソースIPアドレスが表示されます。

105_WO_SWN_agg_result.png

次の図では、show_whats_newルール アクションを使用して、過去2週間の新しいエントリーのみを一覧表示しています。

105_With_SWN_agg_build.png

次の図は、過去2週間のソースIPアドレスの新しいエントリーを一覧表示しています。

105_With_SWN_agg_result.png

この機能の利点は、レポートの実行時刻に関係なく、NetWitnessにとって新しい値を識別できることです。この機能の注意点は、データがリセットされるとデータが失われるということです。しかし、この機能を使用すれば、システムに大きな負荷をかけずに(ただし、結果セットのサイズによります)、簡単にシステムの基準を定めて変更点や新しいアイテムを識別できます。

サポートされるルール演算子

Reporting EngineでのNWDBデータ ソースのルール構文では、Security Analyticsでサポートされているルール演算子のサブセットをサポートしています。

                                           
構文説明
*アスタリスク(*)を単独の演算子としてルールに使用すると、すべてのトラフィックやログを検索できます。
=等号
!= 不等号
&&論理積
||論理和
-u上方境界。たとえば、tcp.port = 40000-uは、40000より大きいすべてのTCPポートを選択します。
-l下方境界。たとえば、tcp.port = l-40000は、40000より小さいすべてのTCPポートを選択します。
-ダッシュ(-)演算子は数値のみに使用できます。範囲の上限と下限をダッシュ(-)で区切って指定します。  たとえば、tcp.port = 25-443は、25と443の間にあるすべてのTCPポートを選択します。
Previous Topic:IPDBルールの構文
You are here
Table of Contents > レポート ルールの操作 > ルールの概要 > NWDBルールの構文

Attachments

    Outcomes