Decoder:Decoderのルールの構成

Document created by RSA Information Design and Development on Apr 19, 2018
Version 1Show Document
  • View in full screen mode
 

このトピックでは、DecoderまたはLog Decoderにおいて[サービス]の[構成]ビュー>[ルール]タブで、トラフィック収集のためのルールを作成し、管理する手順について説明します。[サービス]の[構成]ビュー:[ルール]タブには、[ルール]タブのオプションに関する詳細が示されます。

次の図は、Decoderで一般的に使用される設定を示しています。必要な手順のみ示すクイック基本セットアップについては、「DecoderおよびLog Decoderのクイック セットアップ」を参照してください。

収集ルールを使用して、セッションまたはログにアラートやコンテキスト情報を追加できます。また、DecoderまたはLog Decoderのフィルタで除外するデータも定義できます。ルールは、特定のメタデータ パターンに対して作成され、この条件に合致するデータが検出されたときに事前定義されたアクションを実行します。たとえば、特定の条件に合致するすべてのトラフィックを保存し、その他のすべてのトラフィックを破棄するアクションを実行するルールを作成できます。ルールが適用されると、パケット キャプチャ ファイルのインポートおよび実環境での ネットワーク収集の両方で動作します。

ルールとクエリのガイドライン」には、NetWitness Suiteコア サービスのすべてのクエリとルール条件が従う必要があるガイドラインが提供されています。

デフォルトでは、NetWitness Suiteのインストール直後にはルールは定義されていません。ルールを指定するまで、パケットはフィルタされません。Liveから最新のルールを導入できます。3種類のルールを定義できます。ネットワーク ルール、アプリケーション ルール、相関ルールです。

  • ネットワーク ルールはパケット レベルで適用され、レイヤー2、レイヤー3、レイヤー4のルール セットから構成されます。複数のルールをDecoderに適用できます。ルールは、複数のレイヤーに適用できます(たとえば、ネットワーク ルールで、特定のIPアドレスの特定のポートをフィルタする場合)。ネットワーク ルールはPacket Decoderでのみ使用できます。
  • アプリケーション ルールは、セッション レベルで適用されます。Decoderでは、リスト内のルールを順に評価し、一致が検出されるまでルールの照合を試みていきます。
  • 相関ルールは、構成可能なスライド タイム ウィンドウに基づいて適用されます。相関ルールのある条件に一致するセッションが検出された場合、サービスはスーパー セッションを作成し、ルールに一致する他のセッションを識別します。その後、解析用のセッション リストが作成されます。

ルールの最も一般的な使用法は次の2つです。

  • 特定の条件のセッションが検出された時にアラートを生成し、それによってカスタム アラート メタ データを生成する。
  • フィルタを設定し、データ解析には使用されないトラフィック タイプを除外する。

収集ルールをグループ化し、ルール セットを構成できます。ルール セットでまとめてインポートおよびエクスポートができます。この機能により、さまざまなシナリオで複数のルール セットの使用が可能になります。たとえば、エクスポートされたルール セットを.nwrファイルの形式で他のNetWitness Suiteサービスにインポートできるため、複数のサービスを導入し構成するような場合に手順を効率化することができます。

ルール処理

収集ルールの処理に関する基本的な事項を次に示します。

  • 複数のルールをDecoderに適用できます。
  • 収集ルールは、順番に実行されます。
  • すべてのルールが処理されたとき、またはルール処理を停止するようなルールが合致したときに、ルール処理が停止します。
  • デフォルト ルールを設定することができます。他のどのルールにも合致しないすべてのトラフィックを含めるか、除外するかを指定できます。デフォルト ルールを使用する場合、常にルール リストの最後に配置する必要があります。さもないと、すべてのトラフィックがデフォルト ルールによって選択され、デフォルトのルールが評価されるとすぐに、ルール処理が停止します。
  • ルール処理が停止すると、指定されたセッション オプションおよびデバッグ オプションを使用してセッションが保存されます。

ルールの構成

ルールとクエリのガイドライン

RSA NetWitnessコア サービスのすべてのクエリとルール条件は、次のガイドラインに従う必要があります。

すべての文字列リテラルとタイム スタンプは引用符で囲む必要があります。数値、MAC、IPアドレスは引用符で囲まないでください。

  • extension = 'torrent'
  • time='2015-jan-01 00:00:00'
  • service=80
  • ip.src = 192.168.0.1

注: 演算子の左右のスペースはオプションです。たとえば、ルールを service=80 または service = 80 として入力できます。

ルールの例

次の表に、ルール条件の例を示します。Archiverのログ保存コレクションおよびDecoder、Log DecoderまたはConcentratorのアプリケーション、ネットワーク、相関付けルールにルールの条件を使用できます。ルール条件は、すべてのコア データベース クエリのすべての WHERE 句でも使用されます。

NetWitness Suiteのルール構文の詳細については、「コア データベース チューニング ガイド」の 「クエリ」セクションの WHERE句」 を参照してください。

                             
ルール名 条件
ComplianceDevices device.group='PCI Devices' || device.group='HIPPA Devices'
HighValueWindows device.group='Windows Compliance'
MediumValueWindows device.type='winevent_nic' && msg.id='security_4624_security'
LowValueWinLogs device.type='winevent_nic' && msg.id='security_4648_security'
LowValueProxyLogs device.class='proxy' && msg.id='antivirus_license_expired'
GeneralWindows device.type='winevent_nic'

無効なルール

NetWitness Suiteでは、ルールとクエリに対して有効な構文を厳密に定義するルール パーサを使用します。コア サービスで無効な構文が検出されると、NetWitness Suiteログにエラーを示す警告が書き込まれます。

注: NetWitness Suite 11.0はレガシー構文ルールの解析をサポートしません(NetWitness Suite 10.6とは異なります)。 NetWitness Suite 11.0への更新後は、無効な構文を使用したルールがユーザ インタフェースにハイライト表示され、無効なルールが修正されるまでルールは適用されません。ルール エディタによって追加のツールチップが提供されます。ルールを修正した後は、ハイライト表示が消えます。「無効な構文を含むルールの修正」を参照してください。

/decoder/config/rules/rule.errors/concentrator/config/rules/rule.errors の統計情報には、エラーのあるルール数が含まれています。 rule.errors がゼロ以外の場合、NetWitness Suiteでは、ルールを修正する必要があることを示すヘルスモニタ アラートが生成されます。

一般的な構文ガイドライン

  • テキスト値は、すべて引用符で囲む必要があります。例: username = 'user1'
  • 一重引用符または二重引用符のどちらも使用できますが、一致する必要があります (一重引用符で開始して二重引用符で終了することはできません)。
  • リテラル値に引用符が含まれる場合は、(バックスラッシュを使用して)エスケープするか、別の引用符文字で囲みます。次の例はどちらも有効です。 username = "User's"username = 'User\'s'

以下に有効な構文ルールを示します。

  • リテラル文字列でバックスラッシュを使用するには、 \のようにバックスラッシュを1つ追加してエスケープします。
  • time値で日付を表す場合はすべて、
    time = 'YYYY-MM-DD HH:MM:SS'
    の形式で引用符を使用します。
  • time値でエポック(1970年1月1日)からの経過秒数を表す場合は、引用符で囲みません。
    例: time = 1448034064
  • 上記以外の場合はいずれも 、引用符をつけません。IPアドレス、MACアドレス、数値などです。例: service = 80 && ip.src = 192.168.1.1/16

収集ルールの構文

収集ルールでは、フィールドを値または他のフィールドと比較します。これは、演算子の左側にメタ キー、右側に値を含むシンプルな式の例です。

ip.dst=192.168.1.1

構文では、アプリケーションおよびネットワーク ルールに対してDecoderとLog Decoderで演算子の右側にメタ キーを使用できます。メタ キーの比較は、クエリのwhere句に適用されません。これは、演算子の左側にメタ キー、右側にメタ キーを含むシンプルな式の例です。

ip.src=ip.dst

メタ キーの比較を含むルールは、名称変更したメタ キーをサポートします。ルールで、名称変更されたメタ キーのクエリが実行されると、名称変更されたメタ キーに対してルールが解析されます。たとえば、メタ キーip_dstをルールで使用すると、名称変更されたメタ キーに透過的透過的にマッピングされます。ip.dst。元のキーを含む既存のルールでは、名称変更されたメタ キーのデータを含むアラートがトリガーされます。

以下は、Decoderで同じip.srcアドレスとip.dstアドレスを持つパケットを検出し、Concentratorでアラートを生成する例です。

alert=alert.id name=testRule8 rule="ip.src=ip.dst" order=38

このルールでは、eth.srcip.srcが互換性のない形式であるためエラーが生成されます。

rule="eth.src=ip.src" name="testRule99" alert=alert.id

値は、個別の値、値の範囲、上限また下限、これらの組み合わせとして表すことができます。「より多い」または「より少ない」の比較を作成するには、値の範囲または上限/下限に対して合致するかしないかを評価します。

key 0-5(値の範囲)

key = 0-ukey >= 0と同じ(上限、次より大きいまたは等しい)

次の表は、メタ キーの演算子をまとめたものです。

                                                                                                         
左オペランドの形式演算子右オペランドの形式説明
any= 左オペランドと互換性あり等しい 等価演算子の右側で値またはメタ キーを使用することができます。

any

!= 左オペランドと互換性あり等しくない 不等演算子の右側で値またはメタ キーを使用することができます。
any < 左オペランドと互換性ありより小さい演算子 この演算子の右側で値またはメタ キーを使用することができます。
any <= 左オペランドと互換性あり以下演算子 この演算子の右側で値またはメタ キーを使用することができます。
any > 左オペランドと互換性ありより大きい演算子 この演算子の右側で値またはメタ キーを使用することができます。
any >= 左オペランドと互換性あり以上演算子 この演算子の右側で値またはメタ キーを使用することができます。
テキストcontains テキスト右側のオペランドを含む値を検索します。この演算子の右側でメタ キーまたは値を使用することができます。

テキスト

begins

テキスト

右側のオペランドで始まる値を検索します。この演算子の右側でメタ キーまたは値を使用することができます。
テキストends テキスト右側のオペランドで終わる値を検索します。この演算子の右側でメタ キーまたは値を使用することができます。

テキスト

length

integer

特定の長さの文字列を検索します。この演算子の右側でメタ キーまたは値を使用することができます。

any

count

integer

セッション内で特定の回数発生している値を検索します。この演算子の右側でメタ キーまたは値を使用することができます。

any

ucountおよびunique

integer

一意に発生している値の数を検索します。この演算子の右側でメタ キーまたは値を使用することができます。たとえば、結果に5つの一意の値のメタ キーと同じ値の3つのメタ キーのインスタンスが含まれる場合、ucountは6です。

N/Aexists anyメタ キーの任意の値を検索します。この演算子の右側でメタ キーまたは値を使用することができます。
N/A!exists anyメタ キーが発生していないすべてのセッションを検索します。この演算子の右側でメタ キーまたは値を使用することができます。

テキスト

regex

テキスト

正規表現と一致する値を検索します。この演算子の右側で値を使用することができます。

次の表は、ルールで使用されている他の構文の要素をまとめたものです。

                                               
構文エレメント説明

*

デフォルトのルール。ルールの文字としてアスタリスクのみ(*)を使用すると、すべてのトラフィックが選択されます。

u 時間、IPアドレス、または数値形式の範囲の上限。たとえば、40000より大きい数値のすべてのTCPポートを選択する場合、構文は以下のようになります。
tcp.port = 40000-u
l 時間、IPアドレス、または数値の範囲の下限。たとえば、40000より小さい数値のすべてのTCPポートを選択する場合、構文は以下のようになります。
tcp.port = l-40000
-(ダッシュ)範囲を表します。これは時間値、IPまたはMACアドレス、あるいは数値にのみ適用されます。範囲の下限と上限の間にダッシュ(-)を使用します。たとえば、25~443のTCPポートを選択する場合、構文は以下のようになります。
tcp.port = 25-443
,(コンマ)範囲、値またはメタ キーのリストを示します。個別の値のほか、範囲や上限、下限を組み合わせて使用できます。1つのリストで単一のメタ キーを使用できます。メタ キーとリテラル値の両方を演算子の右側に表示することはできません。たとえば、以下は有効な構文です。
tcp.port = 1-10,25,110,143-225,40000-u
( ) グループ化演算子。式をかっこで囲んで、新しい論理式を作成できます。たとえば、以下の式では、ポート80の192.168.1.1への送受信トラフィックか、ポート443の10.10.10.1への送受信トラフィックが選択されます。
(ip.addr=192.168.1.1 && tcp.port=80) || (ip.addr=10.10.10.1 && tcp.port=443)

~

論理NOT演算子、一方の式の否定。

&& 論理AND演算子、2つの式の連言。
|| 論理OR演算子、2つの式の選言。

収集ルールの構成

DecoderおよびLog Decoderのルールは、[サービス]の[構成]ビューで編集可能です。ルールの各タイプ(ネットワーク、アプリケーション、相関)について独自のタブがありますが、いずれのタイプのルールでも類似した機能が提供されています。このページでは、以下の項目について説明します。

  • ルールの追加、編集、削除
  • ルールの有効化と無効化
  • ルールの実行順序の変更
  • ファイルからのルールのインポート
  • ファイルへのルールのエクスポート
  • 別のサービスへのルールのプッシュ
  • ルールの変更の適用またはキャンセル
  • 直近10件のスナップショットから、いずれかのルール構成へリストア

[ルール]タブでルールを構成するには、次の手順を実行します。

  1. 管理>[サービス]に移動します。
  2. サービス]ビューで、Decoderサービスを選択し、Actions menu cropped>[表示]>[構成]を選択します。
  3. [サービス]の[構成]ビューで、[ネットワーク ルール]、[アプリケーション ルール]、[相関ルール]のいずれかのルール タブを選択します。
    選択したルール タイプのルール リストが表示されます。
    これは、[アプリケーション ルール]タブのルール リストの例です。

ルール タイプごとに、表示されるリストの列とパラメータは、多少異なっています。すべてのタイプのルールについて、次の共通のガイドラインが適用されます。

  • ルールは、リストの表示順に実行されます。ルールの実行順序を変更するには、リスト内の適切な場所にルールをドラッグ アンド ドロップするか、コンテキスト メニューのオプションを使用してリスト内でルールを配置します。
  • 単一の行を選択するには、該当する行をクリックします。
  • 隣接する行から成る複数のルールを選択するには、最初の行をクリックした後、Shiftキーを押しながら選択する範囲の最後の行をクリックします。
  • 複数の隣接していない行を選択するには、最初の行をクリックした後、Ctrlキーを押しながら他の行をクリックします。
  • [ルール]タブでルールを編集した場合、ルールを有効化するためには構成変更を適用する必要があります。
  • 変更を適用するまでは、リストへの編集を破棄し、編集前のルールに戻すことができます。
  • ルールが適用された後でも、[アクション]メニューの[履歴]オプションを使用して、直近10バージョンまでのいずれかの状態にルール構成をリストアできます。

[ルール]タブで[ルール]を追加するには、以下のいずれかの操作を行います。

  • [追加]アイコンをクリックします。
  • ルールを右クリックし、コンテキスト メニューから[上に挿入]または[下に挿入]を選択します。
    該当するタイプの[ルール エディタ]ダイアログが表示されます。

ルールを削除するには、以下の手順を実行します。

  1. 任意の[ルール]タブで、ルール リストから削除するルールを選択します。
  2. [削除]アイコンをクリックします。
    選択したルールがリストから削除されますが、[適用]が実行されるまで、ルールはサービス上に存在しています。

ルールを編集するには、以下の手順を実行します。

  1. 任意の[ルール]タブで、編集するルールを選択します。
  2. [編集]アイコンをクリックするか、ルール行をダブル クリックします。
    該当するタイプの[ルール エディタ]ダイアログが表示されます。

ルールを無効化するには、次の手順を実行します。

  1. [ルール]タブから、無効化するルールを選択します。
  2. [無効]ボタンをクリックします。
    ルール リストでステータスが無効に変更されますが、[適用]が実行されるまで、ルールはサービス上で有効のままです。

ルールを有効化するには、次の手順を実行します。

  1. [ルール]タブから、有効化するルールを選択します。
  2. [有効]ボタンをクリックします。
    ルール リストでステータスが有効に変更されますが、[適用]が実行されるまで、ルールはサービス上で無効のままです。

ファイルからのルールのインポートおよびルールのエクスポート

同じタイプのルールを含むファイルからDecoderにネットワーク ルール、アプリケーション ルール、相関ルールをインポートできます。ルールがインポートされた後、他のルールと同様に、ルールの編集と管理を行うことができます。

複数のルールが含まれるファイルからインポートを試みると、NetWitness Suite 管理ではインポートするルールのタイプがチェックされます。成功した場合、インポートされたルールの数を示すメッセージが表示されます。インポート ファイル内のルール タイプが表示しているタブのルール タイプと異なる場合、ルールはインポートされません。該当するタブでルールを再度インポートするか、またはインポートする別のファイルを選択する必要があります。

サービスにルールをインポートする方法

  1. 任意の[ルール]タブから、[アクション]ドロップダウン メニュー[インポート]ボタンを選択します。
    [インポート]ダイアログが表示されます。
    これは、[インポート]ダイアログの例です。
  2. [追加]アイコンをクリックします。
    ローカルのディレクトリが表示されます。
  3. インポートする1つ以上のNetWitnessルール(.nwr)ファイルを選択し、[開く]をクリックします。
    [インポート]ダイアログのリストにファイルが追加されます。
    これは、[インポート]ダイアログの例です。
  4. インポート]をクリックします。
    ルールがユーザ インタフェースにインポートされます。インポートされたルールの編集された各列には、隅に赤い三角印が表示されます。
  5. 必要な場合は、ルールを編集するか順序を変更します。
  6. サービスにルールを保存するために、[適用]をクリックします。
    サービス上でルールに対する変更が有効になります。

ファイルにルールをエクスポートするには、次の手順を実行します。

  1. ルールのサブセットをエクスポートするには、エクスポートするルールを選択します。
  2. 以下のいずれかの操作を実行します。
    • ツールバーで、[アクション]ドロップダウン メニュー>[エクスポート]>[選択]を選択します ([エクスポート]>[すべて]を選択すると、エクスポートするサブセットを選択していても、リスト内のすべてのルールがエクスポートされます)。
    • 選択したルールを右クリックし、[選択範囲のエクスポート]を選択します。

ファイル名の入力を求めるプロンプトが表示されます。

  1. ファイル名を入力し、[エクスポート]をクリックします。
    .nwrファイルがダウンロードされます。

別のサービスへのルールのプッシュ

すべてのルールまたは選択したルールを他のサービス(DecoderまたはLog Decoder)やサービス グループに適用(プッシュ)することができます。他のサービスにすべてのルールをプッシュする場合は、ターゲット サービス上のすべてのルールが削除され、ソース サービス上のすべてのルールに置き換えられます。 

あるDecoderから別のDecoderに選択したルールをプッシュするには、次の手順を実行します。

  1. 任意の[ルール]タブで、別のDecoderにプッシュするルールを選択します。
  2. 以下のいずれかの操作を実行します。
    • [アクション]ドロップダウン メニュー>[プッシュ]>[選択]を選択します。
    • 選択したルールを右クリックし、[選択したルールのプッシュ]を選択します。
      [選択したルールのプッシュ]ダイアログが表示されます。
      これは、[選択したルールのプッシュ]ダイアログの例です。
  3. プッシュ オプションを選択します。
    • ターゲット サービス上のすべてのルールを削除し、選択したルールに置き換える場合は、[すべて置換]を選択します。このオプションはデフォルトで選択されています。
    • 選択したルールとターゲット サービス上の既存のルールをマージする場合は、[マージ]を選択します。
  4. サービス]タブでプッシュされたルールを受信するターゲット サービスを選択するか、[グループ]タブからサービスのグループを選択します。
  5. プッシュ]をクリックします。
    ルールは選択したサービスにプッシュされ、直ちに有効になります。

あるDecoderから別のDecoderにすべてのルールをプッシュするには、次の手順を実行します。

  1. 任意の[ルール]タブで、[アクション]ドロップダウン メニュー>[プッシュ]>[すべて]を選択します
    [プッシュ]>[すべて]を選択すると、プッシュするサブセットを選択していても、リスト内のすべてのルールがプッシュされます)。[選択したルールのプッシュ]ダイアログが表示されます。
    これは、[すべて置換]が選択された[選択したルールのプッシュ]ダイアログの例です。
  2. サービス]タブでプッシュされたルールを受信するターゲット サービスを選択するか、[グループ]タブからサービスのグループを選択します。
  3. プッシュ]をクリックします。
    ターゲット サービスからすべてのルールが削除され、ソース サービスのすべてのルールに置き換えられます。ルールは直ちに有効になります。

ルールの実行順序の変更

収集ルールは、ルール リスト内の表示順に適用されます。ルールの順序を変更するには、次のいずれかの方法を使用します。

  • ルールをドラッグし、ルール リスト内の適切な場所にドロップします。
  • ルールを右クリックしてコンテキスト メニューを表示し、[切り取り]オプションと[貼り付け]オプションを使用します。

履歴からのルール スナップショットのリストア

NetWitness Suiteでは、サービスに適用されたルール構成のうち、直近10バージョンまでのいずれかの状態にルール構成をリストアできます。

履歴からルールのスナップショットをリストアするには、次の手順を実行します。

  1. [アクション]ドロップダウン メニュー>[履歴
    ]を選択します。スナップショットのサブメニューが表示されます。
    [履歴]ドロップダウン リスト
  2. サブメニューからスナップショットの日時を選択します。
    スナップショットに保存されているルールがルール リストにロードされ、現在のセットと置き換えられます。ただし、[適用]が実行されるまで、まだ現在のルール セットはサービス上で有効となっています。
  3. サービスにルールを適用するために、[適用]をクリックします。
    ルールがサービスに適用されます。
You are here
Table of Contents > Decoderのルールの構成

Attachments

    Outcomes