Decoder:エントロピー パーサーの有効化と構成

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

NetWitness Suite 11.0以降では、管理者は、エントロピー パーサーと呼ばれるNetWitnessネイティブパーサーを使用して、Decoderを構成できます。エントロピー パーサーを有効にすると、アナリストは、他のトラフィックに混合されるが、通常のプロトコルの動作に従わないチャネルを把握できます。これにより、通常の環境のトラフィックのベースラインに準拠していないことから調査に値するチャネルの特定に役立ちます。

パーサーは、ネイティブNetWitness Suiteパーサーによって収集された統計情報に基づいてメタ キーを作成します。これは、多くのネットワーク トラフィックが発生しているチャネルの動作を識別するために役立ちます。パーサーを最初に有効にすると、アナリストは、バイトの頻度と通常のクライアントおよびサーバ ペイロードを理解するために、収集されたセッションに見られる別個のチャネルの全体的な動作に詳しくなる必要があります。正常な動作を把握すると、アナリストはメタ キーを使用して、予想と一致しない動作を確認できます。

デフォルトでは、エントロピー パーサーは10個のメタ キーを追加しますが、これによってDecoderの負荷が大幅に増加することはなく、この特殊な状況に役立ちます。パーサーはデフォルトで無効化されています。

パケットのペイロード バイトの解析に基づく興味深いセッションの確認に関心がある場合は、インデックス作成を有効にします。デフォルトでは、インデックス作成を簡単にするために、entropy.reqおよびentropy.resの通常のFloat32値に10kを乗算してUInt16に保存します(したがって0~10,000の4桁の精度が得られます)。

ただし、Decoder言語のentropy.*フィールドをFloat32に定義する場合、Decoderはこれを0.0~1.0の範囲の浮動小数として格納します。これをFloat32として保持することにした場合、すべての環境での言語の変更を慎重に行ってください。

精度の小さな変更により一意なカウントが増加するため、RSAはFloat32としてのインデックス作成を推奨していません。

デフォルトでは、次の10個の新しいメタ キーがエントロピー パーサーによって生成されます。

  • entropy.reqおよびentropy.res:これらのメタ キーは、Shannonエントロピー式を使ってエントロピーを収集します。その結果、浮動小数点値が得られます。0~1.000の浮動小数点値に10000を乗算し、NetWitness SuiteにUInt 16(0~10000の符号なし整数)として書き込まれます。
  • mcb.reqおよびmcb.res:最も一般的なバイトは、両端(0~255)で最も多く出現するバイトです。
  • mcbc.reqおよびmcbc.res:最も一般的なバイト数は、最も一般的なバイト(上記)がセッション ストリームに出現する回数です。
  • ubc.reqおよびubc.res:- 一意のバイト数は、ストリームごとに出現する一意のバイト数です。256は、0~255の間で少なくとも1回出現するすべてのバイト値を意味します。

  • payload.reqおよびpayload.res:ペイロード サイズのメトリックは、解析時の各セッション側のペイロード サイズです。ただし、インデックス作成により一意なカウント数が増加しないようにするために(パフォーマンスに悪影響)、次の2つのペイロード サイズのメタはこのように計算されます。
    • 1000未満は、ペイロードのバイト数の正確な数です。

    • 1000以上は1000の倍数でバケットが生成されます。したがって5826のサイズは、5000として保存されます。

Decoderでエントロピー パーサーを有効化して構成するには、次の手順に従います。

  1. RSA NetWitnessにログインし、NetWitness Suiteメニューで[管理]>[サービス]を選択します。
  2. [サービス]ビューで、構成するDecoderを選択し、[表示]>[構成]を選択します。
    選択したDecoderのサービスの[構成]ビューが表示されます。
  3. エントロピー パーサーはデフォルトで無効化されています。[構成]の下のドロップダウン リストをクリックして、[有効化]を選択します。一部のメタ キーを無効化する場合は、ドロップダウン リストをクリックし、メタ キーの隣にある[無効化]を選択します。

  4. 適用]をクリックします。
    エントロピー パーサーが有効化され、新しいメタ キーの作成を開始し、Concentratorのカスタム インデックス ファイルで構成されるようにします。
  5. Decoderの[エクスプローラ ビュー]に移動し、[Decoder]>[パーサー]>[構成]ノードを選択します。parsers.optionsで、エントロピー パーサーのペイロードを設定することができます。スクリーン キャプチャに示すデフォルト値はEntropy = payload = 1000です。値を定義するとき、構文はEntropy = payload = "1000"です。値に空白がある場合は引用符が必要です。空白の問題を回避するには引用符を常に使用することをお勧めします。正確なペイロードを参照する場合は、このパラメータを「1」に設定します。

    デフォルトのエントロピー ペイロードは1000です。これは、ペイロードの数が1000未満の場合は、値そのものが提供されることを意味します。ペイロードの数が1000を超える場合は、1000未満の値は切り捨てます。たとえば、3798の個数は3000に切り捨てられます。
  6. デフォルトのエントロピー ペイロード丸め率を変更する場合は、値を編集します。この変更は、パーサーが再ロードされるときに有効になります

  7. [サービス]の[構成]ビューで、このDecoderからトラフィックを集計するConcentratorを選択します。[表示]>[ファイル]を選択し、Concentratorのカスタム インデックス ファイルを開きます。エントロピー パーサー メタ キーを検索して、これらが含まれていてコメント解除されているかどうか確認します。
    デフォルトでは、キーはコメント アウトされているため、有効化されていません。一部の言語を有効にするには、管理者はインデックス ファイルの一部をindex-concentrator-custom.xmlにコピーして、各メタ キーのkey descriptionの行のコメントを解除する必要があります。エントロピー パーサー キーおよび手順を含むカスタム インデックス ファイルの例を次に示します。
  8. エントロピー メタ キーが有効になっていると、アナリストの調査で使用できるますが、デフォルトでは非表示になっています。メタ キーを[値の調査]ビューで表示するには、非表示ではなくオープンな状態になるように[デフォルトのメタ キー]ダイアログでデフォルトのメタ キーを編集します。これらのメタ キーは、その他のメタ キーと同様に管理できます。
    これは、[デフォルトのメタ キーの管理]ダイアログの例です。

 

Concentratorのカスタム インデックス ファイルでのエントロピー パーサーの構成

管理者がカスタム インデックス ファイルにコピーする必要があるConcentratorのインデックス ファイル行の抜粋を次に示します。コメントは、パーサーの構成に関するガイドラインを提供します。

<!-- This section is commented out because it's only used by the Entropy parser which is disabled by default. To enable this part of the language, copy to index-concentrator-custom.xml and uncomment the keys. HOWEVER, take note that depending on how the Entropy parser is configured, the entropy.req and entropy.res format might be a Float32 instead of a UInt16. So make sure to change to the correct type if necessary.-->

<!-- Entropy parser meta - enable indexing if you have interest in exploring this for interesting sessions based on payload byte analysis of the packets. By default, to make indexing easier, the normal Float32 value for entropy.res and entropy.req is multiplied by 10k and stored in a UInt16 (thus giving 4 digits of precision, 0 to 10,000). However, if you define the *.entropy fields in the Decoder language to be Float32, it will store it as a float with a range of 0.0 to 1.0. Take care to change the language everywhere if you decide to keep it as a Float32. We also don't recommend indexing as a Float32.-->

<!--

<key description="Client Entropy" format="UInt16" level="IndexNone" name="entropy.req" valueMax="10001"/>

<key description="Server Entropy" format="UInt16" level="IndexNone" name="entropy.res" valueMax="10001"/>

-->

<!-- The most common byte is simply which byte for each side (0 thru 255) was seen the most -->

<!--

<key description="Client Most Common Byte" format="UInt8" level="IndexNone" name="mcb.req"/>

<key description="Server Most Common Byte" format="UInt8" level="IndexNone" name="mcb.res"/>

-->

<!-- The most frequest byte count is the number of times the most common byte was seen in the session streams -->

<!--

<key description="Client Most Frequent Byte Count" format="UInt32" level="IndexNone" name="mcbc.req" valueMax="500000"/>

<key description="Server Most Frequent Byte Count" format="UInt32" level="IndexNone" name="mcbc.res" valueMax="500000"/>

-->

<!-- Unique byte count is the number of unique bytes seen in each stream. 256 would mean all byte values of 0 thru 255 were seen at least once -->

<!--

<key description="Client Unique Bytes" format="UInt16" level="IndexNone" name="ubc.req"/>

<key description="Server Unique Bytes" format="UInt16" level="IndexNone" name="ubc.res"/>

-->

<!-- The payload size metrics are the payload sizes of each session side at the time of parsing. However, in order to keep

indexing from having high unique counts (bad for performance), the two payload size meta values below are calculated like so:

Less than 1000 is the exact number of payload bytes

1000 or greater is bucketed in increments of 1000. So a size of 5826 would be stored as 5000. -->

<!--

<key description="Client Payload Size" format="UInt32" level="IndexNone" name="payload.req" valueMax="500000"/>

<key description="Server Payload Size" format="UInt32" level="IndexNone" name="payload.res" valueMax="500000"/>

-->

 
You are here
Table of Contents > FeedおよびParserの構成 > エントロピーParserの有効化と構成

Attachments

    Outcomes