[イベント]ビューのイベント リストには、分割セッションと関連セッションからのイベントが、解析された順序で表示されるため、常に一緒に表示されるとは限りません。バージョン11.4.1以降では、[イベントのグループ化]オプションを使用して、収集したデータの関係をより簡単に検出できるように、イベントの表示順を変更できます。イベントがグループ化されている場合、最初のイベントは先行イベントと呼ばれます。
ユーザ インタフェースは、グループ化されたイベントを識別するよう設計されています。実線は関連するイベントのさまざまなグループを示すのに対し、点線は関連する同じグループに属するイベントを表します。イベントのグループでは、先行イベントが最初に置かれ、後続イベントは先行イベントの下でネスト構造になり、後続イベントのインデントおよび関係アイコンが表示されます。関係アイコンの横の数字は、セッション分割数を区別します。
現在のデータ セットに先行イベントが含まれていない場合でも、後続イベントは最初の後続イベントの下でグループ化されたままになります。先行イベントまたは最初のイベント(先行イベントがない場合)のみがソートされ、インデントされたイベントはソートされません。後続イベント マーカー()にカーソルを合わせると、関係を説明したツールチップが表示されます。次の図は、[イベント]リストに表示される関連イベントの例を示しています。
イベントがセッション フラグメントに基づいて関連している場合に、後続イベントを選択して再構築を開くと、[イベント メタ]パネルにsession.splitメタ キーが表示されます。
ネットワーク セッションの分割
次のようなツールチップが表示される場合、リスト内のイベントは分割ネットワーク セッションの一部です。
The event is part of a split session (session.split: #) matching these parameters: ip.src=127.0.0.1 AND ip.dst=127.0.0.1 AND tcp.srcport=25 AND tcp.dstport=1234.
分割の原因は次のいずれかです。
- 元のイベントに含まれるトランザクションごとに個別のイベントが作成されたため、元のイベントが複数のサブパーツに分割された。
- 元のセッションのサイズがAssembler Maximum Size(デフォルト=32 MB)を超えるため、Network Decoderが取り込む際に分割された。
- 元のセッションの時間がAssembler Timeout Session(デフォルト=60秒)を超えるため、Network Decoderが取り込む際に分割された。
セッション サイズと時間の分割
Network Decoderは、デフォルトのセッション サイズ(assembler.size.max)とセッション タイムアウト((assembler.timeout.session)を使用して構成されています。構成の詳細については、『Decoder構成ガイド』の「セッション分割タイムアウトの構成」を参照してください。セッションがいずれかの制限を超えると、Network Decoderはセッションを分割し、後続のパケットはすべて新しいセッションとして処理されます。つまり、実際のネットワーク セッションが複数のNetwork Decoderセッションに分割されます。Network Decoderでは、より大規模なネットワーク セッションの断片としてセッション フラグメントを処理し、ソースおよび宛先アドレス、ポート、アプリケーション プロトコルの関連付けを改善するため、コンテキスト フラグメントが解析され、セッション フラグメントがハイライト表示されます。
注: [レガシー イベント]ビューでは、セッション フラグメントを見つけて、[イベント]リストに表示されているすべてのパケットを1つのPCAPにエクスポートできます。「[レガシー イベント]ビューでのフラグメントの検索と結合」を参照してください。
Network Decoderは、構成された最大セッション サイズ(デフォルト = 32 MB)、または構成されたタイムアウト(デフォルト = 60秒)に基づいて、セッションの解析を完了します。パースが完了した時点で、パース結果には適切なアドレス方向とアプリケーション プロトコルが含まれます。その結果を後続のすべてのセッション フラグメントに追加することにより、元の論理的ネットワーク セッションとの一貫性を確保します。
トランザクション処理の分割
管理者は、Network Decoderを構成し、トランザクションの作成を目的としてLUA Parserを使用する場合に、受信セッションをより小さなトランザクション セッションに分割できます。構成の詳細については、『Decoder構成ガイド』の「Decoderでのトランザクション処理の構成」を参照してください。Decoderサービス構成ノードには、パーサがネットワーク セッション内のトランザクションを定義するときにNetwork Decoderの動作を制御するパラメータ/decoder/parsers/config/parser.transaction.modeがあります。モードがsplitに設定されている場合に、パーサがメールなどのアプリケーションレベルのトランザクションを生成すると、複数のアプリケーションレベル トランザクションを含む大規模なセッションが分割されます。この例としては、複数のメールを含む大規模なセッションが挙げられます。メール(トランザクション)ごとに、新しいセッション項目(分割セッション)が作成され、新しいセッションにネットワーク メタ項目がコピーされ、トランザクションでマークされたメタ項目が元のセッションから新しいセッションにコピーされます。
トランザクションを機能させるには、パーサのアップデートが必要であり、初期状態では、SMTPおよびHTTPパイプライン化のユースケースしかサポートされません。これは、元のイベント内の個々のメールに基づいて分離された、メールの再構築の例です。各トランザクションは単一のメールをハイライト表示し、トランザクションに関連づけられているメタデータはそのメールにのみ関連します。この機能を提供するために、元のパケットはネットワーク イベントに対して通常どおりNetwork Decoderに格納されますが、新しい関連トランザクション イベントはConcentratorで作成されます。その結果、ユーザ インタフェースにはアナリスト向けのビジュアル キューが表示され、以前はすべてバンドルされていた特定のメールまたはメール属性のみを検索するクエリを実行することも可能になります。クエリ結果から元のイベントを除外するため、session.splitメタキーはインデックスされています。トランザクション分割がある場合、元のイベントにそのメタ キーは関連づけられませんが、関連するすべてのトランザクション イベントには関連づけられます。
セッション フラグメントの強調表示
どちらのタイプのセッション フラグメントにも、session.splitという追加のメタ キーがあります。最初のセッション フラグメントは0で、それ以降のタイムスタンプのセッション フラグメントには1から順に番号が設定されます(1、2、3など)。session.splitメタ キーは、前のセッション フラグメントの数を示しますが、値が0の場合は、必ずしも後続のセッション フラグメントが存在するとは限りません。また、最大セッション サイズを超える前にセッションのパースが完了した場合は、セッションの最初のフラグメントにsession.splitメタデータが存在しない可能性もあります。
トランザクション分割は、session.splitの値1で始まります。セッションを表示するとき、session.splitメタ キーは、[イベント]ビューと[レガシー イベント]ビュー(イベント リストビューとイベント詳細ビュー)のフラグメントであるセッションを明確に識別します。
これがセッション サイズとタイムアウトの分割であった場合は、セッション フラグメントを表示して、分割セッションを再度1つに結合するための解析に必要な最大セッション サイズまたはセッション タイムアウトを決定できます。たとえば、32 MBのフラグメントが4つある場合は、128 MBを超える最大セッション サイズをテスト用のDecoder(通常は、本番サービスから切り離された仮想マシン構成)に構成する必要があります。この手順は、セッション タイムアウトに基づいてすべてのフラグメントを検索する手順と同じです。
関連ネットワーク セッション
次のようなツールチップが表示される場合は、IPソース、IP宛先、ソース ポート、宛先ポートを識別する4つの値が、Network Decoderによって処理される別々のイベントによって共有されています。
The event is related to a previous session matching these parameters: ip.src=127.0.0.1 AND ip.dst=127.0.0.1 AND tcp.srcport=25 AND tcp.dstport=1234"Second category: Related Network Session
この例では、Network Decoderが分割を挿入しておらず、どのイベントにもsession.splitメタデータが関連づけられていません。これらのイベントがグループ化されている理由は、パターンに基づいて精査に値するイベントを強調するためです。各イベントは同じソースIPアドレス、宛先IPアドレス、ソース ポート、宛先ポートを持ちます。データ プライバシーを確保するため、4つのメタ キーのいずれかが難読化されている場合、関連イベントのグループ化は行われません。
関連ネットワーク セッションとしてイベントを分類するために一致する必要があるメタ キーの組み合わせを次に示します。
- ip.dst、ip.src、tcp.dstport、tcp.srcport
- ip.dst、ip.src、upd.dstport、udp.srcport
- ipv6.dst、ipv6.src、tcp.dstport、tcp.srcport
- ipv6.dst、ipv6.src、upd.dstport、udp.srcport
分割および関連ネットワーク セッションからのイベントを表示するための使用例
以下は、分割セッションからのイベントを表示するための実際的な使用例です。
- プロキシ サーバをインラインで使用しているNetwork Decoderは、NetWitnessの認識に応じてイベント時間に基づいて単一セッションにバンドルされる多数のメール接続を受信します。subject、email.src、email.dstをはじめとしたメールに関連するメタ キーのメタ値はセッションごとに複数あり、正しく組み合わせてマッピングすることは困難です。セッションを先行イベントと後続イベントとして編成することで、アナリストは各メールの詳細を明確に把握できるようになります。
-
アナリストは、セッションに関連づけられたすべてのメタデータのうち、どのIPアドレスがメタデータの生成またはアラートの原因となったかを理解しようとしていますが、IPアドレスが出力に含まれていません。たとえば、侵害の兆候を解析しているフィードでは、多くのIPアドレスを持つセッションで多くのトリガーが発生する可能性があります。アナリストは、先行イベントと後続イベントとして編成された完全なイベントを表示することにより、アラートをトリガーしたIPを把握できます。
- アナリストは、どのディレクトリからどのファイルが削除されたか、どのディレクトリでどのファイルが読み取られたかを把握する必要がありますが、セッションに複数のファイルとディレクトリが含まれています。たとえば、directory /keep/、directory /temp/、filename foo.txt、filename me.doc、action delete、action readのコマンドを使用するHTTP接続があるとします。先行イベントと後続イベントを表示すると、/temp/me.docが削除され、/keep/foo.txtが読み取られたことがわかります。これにより、アナリストまたは分析担当者は、これらのアクションの実際の影響についての判断を行えるようになります。
-
疑わしいアラートをトリガーしたイベントに関連している大容量ファイルをアナリストが取得しようとしています。ただし、転送されたファイルは大きすぎたため、Network Decoderによって100個の個別のセッションに分割されました。アナリストは、このグループ関連の分割セッションを表示する際に、セッションのPCAPをダウンロードし、より大規模なアセンブラー設定のDecoderまたはサード パーティ ツールでそれを実行することにより、元のファイルを抽出できます。
イベント リストでの関係の表示と非表示
どちらのタイプの関連イベントについても、イベントの関係は[イベント]ビューの[イベント]リストで確認できます。[イベント]リストが最初に表示されている場合は、[イベント]リストの最上部にある[イベントのグループ化]スイッチを見て、結果に関連イベントが含まれているかどうかを確認できます。結果に関連イベントが含まれていない場合、このスイッチはグレー表示になります(次の図を参照)。
[イベント]リストで関連イベントを検索するには、次の手順を実行します。
- [調査]>[イベント]に移動して、クエリを送信します。
結果に関連イベントが含まれている場合、[イベントのグループ化]スイッチはアクティブですが、有効ではありません。次の図は、分割セッションを含む一連の結果を示しています。[イベントのグループ化]スイッチは無効になっています。関連イベントはネスト構造になっていません。 - [イベントのグループ化]スイッチをクリックします。
関連する後続イベントは、先行イベントの下にネストされます。後続イベントはインデントされ、アイコンで示されます。アイコンをクリックすると、イベントがグループ化されている理由が表示されます。
セッション フラグメントのハイライト表示(11.3の[イベント]ビュー)
次の図は、分割されたセッション情報がハイライト表示されているイベント リストビューおよびイベント詳細ビューを示しています。
注: 以下の画面イメージを取得した環境では、最大セッション サイズは12 MBに構成されています。
注: 結果で分割セッションを見つけやすくするには、session.splitメタ キーにインデックスを付ける必要があります。
session.splitメタデータは、詳細ビュー([レガシー イベント]ビュー)ではアドレスとポート メタの直後に表示されます。この機能拡張により、次の操作をすぐに行うことができます。
- ネットワーク セッションのフラグメントであるセッションを特定する。
- 1つのセッション フラグメントから、元のネットワーク セッションのすべてのセッション フラグメントを表示する。
- ネットワーク セッション全体のパケットを1つのPCAPファイルとしてエクスポートする。
[レガシー イベント]ビューでのフラグメントの検索と結合
[レガシー イベント]ビューから、[再フォーカス]>[セッション フラグメントを検索]コンテキスト メニュー オプションを使用して、セッション フラグメントを見つけることができます。NetWitness Platformは、選択したセッションのソース アドレス、宛先アドレス、ポートを使用してクエリを作成し、現在の時間範囲内でそのクエリと一致するすべてのセッションを表示します。
セッション フラグメントを検索するには、次の手順を実行します。
- [レガシー イベント]ビューで、ソース アドレス、宛先アドレス、ポートの値(ip.src、ip.dst、ipv6.src、ipv6.dst、tcp.srcport、tcp.dstport、udp.srcport、udp.dstport)またはsession.split値のいずれかを右クリックします。
コンテキスト メニューが表示されます。
- [再フォーカス]>[セッション フラグメントを検索]または[新しいタブを再フォーカス]>[セッション フラグメントを検索]を選択します。
NetWitness Platformでは、現在の時間範囲に存在する特定の1セッションのセッション フラグメントがイベント リストに表示されます。選択したオプションに応じて、再フォーカスは現在のビューに表示されるか、新しいタブに表示されます。(例の中で、時間範囲として「すべてのデータ」を選択している場合がありますが、本番システムでの使用は推奨されません)。
- 必要な場合は、時間範囲を調整して、現在の時間範囲の前後に存在する可能性があるすべてのセッション フラグメントを表示します。時間の境界の近くでフラグメントが発生した場合、特に最初に表示されるフラグメントのsplitの値が0(または、なし)でない場合は、時間範囲を広げる必要があることが分かります。また、最後に表示されるセッションのパケットを調査すれば、セッションが継続しているかどうかを判断できます。次に例を挙げます。
- 明らかに最初のフラグメントではないもの、たとえば10:30~10:35の時間範囲に、1、2、3、4のフラグメントが見つかった場合は、フラグメント0が存在するはずです。時間範囲の開始を早めると(この例では10:25)、追加のフラグメントを見つけることができます。
- 最後のフラグメントのセッション サイズが最大セッション サイズ(この例では12 MB)に近い場合は、それ以降の時間(この例では10:40)を含めるように時間範囲を広げ、追加のフラグメントを探します。
ネットワーク セッションのすべてのセッション フラグメントを1つのイベント リストに表示すると、リストが複数ページにまたがることがあります。
- (オプション)すべてのセッション フラグメントのパケットを1つのPCAPファイルにエクスポートするには、[アクション]>[すべてのPCAPのエクスポート]を選択します。
PCAPがダウンロード中であることを示すメッセージが表示されます。ダウンロードが完了すると、PCAPファイルには、分割されたネットワーク セッションの全体が含まれています。