はじめに
ネットワーク分析やセキュリティフォレンジックでは、複数のパケットキャプチャファイルが手元にあることがよくあります。これらは、異なる期間、異なるネットワークインターフェース、または異なるマシンからのものである可能性があります。それらを個別に分析するのは手間がかかり、ネットワークイベントの全体像を把握できなくなる可能性があります。
mergecap は、Wireshark スイートに含まれるコマンドラインツールです。その特定の目的は、複数のキャプチャファイルを単一の出力ファイルに結合することです。タイムスタンプに基づいてパケットを入力ファイルから時系列順にインテリジェントにマージし、分析のための統一されたビューを作成します。
この実験では、mergecap を使用して複数のサンプルキャプチャファイルをマージする方法を学びます。
異なるスキャンからの複数の .cap ファイルを特定する
このステップでは、実験環境で準備されたサンプルキャプチャファイルを特定します。実際のシナリオでは、これらのファイルは異なる時間に tcpdump または Wireshark を実行することによって生成された可能性があります。
私たちのセットアップスクリプトは、すでに 3 つのファイル (scan1.pcap、scan2.pcap、scan3.pcap) を作成しています。それらを確認するために、現在のディレクトリの内容を一覧表示しましょう。すべての作業は ~/project ディレクトリで行われます。
ls -l コマンドを使用して、詳細とともにファイルを一覧表示します。
ls -l
以下のような出力が表示され、3 つのキャプチャファイルの存在が確認できるはずです。サイズとタイムスタンプは若干異なる場合があります。
total 12
-rw-r--r-- 1 labex labex 160 Oct 26 10:30 scan1.pcap
-rw-r--r-- 1 labex labex 160 Oct 26 10:30 scan2.pcap
-rw-r--r-- 1 labex labex 160 Oct 26 10:30 scan3.pcap
これらの 3 つの .pcap ファイルは、結合したい異なるデータソースを表しています。
ファイルのマージが分析に役立つ理由を理解する
このステップでは、キャプチャファイルをマージすることの利点について説明します。ここでは実行するコマンドはありません。このセクションは概念的な理解のためのものです。
ネットワークの問題やセキュリティインシデントを調査している場合、関連するすべてのデータを一箇所にまとめることが重要です。マージが非常に役立つ理由は次のとおりです。
- 時系列分析:
mergecapは、すべての入力ファイルからのパケットをタイムスタンプで自動的にソートします。これにより、イベントの単一の時系列タイムラインを再構築することができ、原因と結果を理解するために不可欠です。 - ワークフローの簡素化: Wireshark で 3 つの別々のファイルを開き、それらを常に切り替える代わりに、単一の統合されたファイルで作業できます。これにより、データのフィルタリング、検索、分析がはるかに効率的になります。
- 包括的なビュー: クライアントマシンとサーバーで同時にトラフィックをキャプチャしたと想像してください。これらの 2 つのキャプチャをマージすることで、会話の両側を 1 つのストリームで確認でき、インタラクションの完全な画像を提供します。
ファイルをマージすることで、断片化されたデータを一貫性のある分析可能な全体に変えることができます。
Wireshark スイートの mergecap コマンドを使用する
このステップでは、mergecap コマンド自体に慣れます。セットアップスクリプトはすでに tshark パッケージをインストールしており、これには mergecap ユーティリティが含まれています。
mergecap が利用可能であることを確認し、その基本的な使用方法の説明を確認するために、ヘルプページを表示できます。これは、コマンドラインツールの機能を理解するための良い習慣です。
-h (help) フラグを指定して mergecap コマンドを実行します。
mergecap -h
これにより、利用可能なすべてのオプションとその説明のリストが表示されます。出力は次のようになります。
Mergecap (Wireshark) 4.0.x
Merge two or more capture files into one.
See https://www.wireshark.org for more information.
Usage: mergecap [options] -w <outfile>|- <infile> [<infile> ...]
Output:
-w <outfile>|- set the output filename to <outfile> or '-' for stdout
-a append packets to the end of the output file
...
-w <outfile> オプションに特に注意してください。これは最も重要なフラグであり、mergecap に結合された出力をどこに保存するかを指示します。
-w とすべての入力ファイルを使用して出力ファイルを指定する
このステップでは、実際のマージ操作を実行します。構文は簡単です。-w で出力ファイルを指定し、次にマージしたいすべての入力ファイルをリストします。
scan1.pcap、scan2.pcap、および scan3.pcap を merged_scans.pcap という単一の新しいファイルに結合します。
ターミナルで次のコマンドを実行します。
mergecap -w merged_scans.pcap scan1.pcap scan2.pcap scan3.pcap
コマンドが成功した場合、出力は生成されません。新しいファイルが作成されたことを確認するには、ディレクトリ内のファイルを再度一覧表示します。
ls -l
これで、リストに merged_scans.pcap ファイルが表示されるはずです。そのサイズは、3 つの入力ファイルの合計とほぼ同じになるはずです。
total 16
-rw-r--r-- 1 labex labex 208 Oct 26 10:35 merged_scans.pcap
-rw-r--r-- 1 labex labex 160 Oct 26 10:30 scan1.pcap
-rw-r--r-- 1 labex labex 160 Oct 26 10:30 scan2.pcap
-rw-r--r-- 1 labex labex 160 Oct 26 10:30 scan3.pcap
これで、3 つのソースファイルを 1 つに正常にマージしました。
マージされたファイルにすべてのソースからのデータが含まれていることを確認する
このステップでは、マージされたファイルに実際にすべてのソースファイルからの結合データが含まれていることを確認します。これを行う簡単な方法は、元のファイルのパケット数を確認し、それをマージされたファイルのパケット数と比較することです。
Wireshark スイートの一部である capinfos ツールは、キャプチャファイルの要約統計情報を提供します。まず、元のファイルの 1 つのパケット数を確認しましょう。
capinfos scan1.pcap
出力には、ファイルに関するさまざまな詳細が表示されます。「Number of packets」という行を探してください。
File name: scan1.pcap
File type: pcapng
...
Number of packets: 5
...
ご覧のとおり、scan1.pcap には 5 つのパケットが含まれています。すべてのソースファイルをそれぞれ 5 つのパケットで作成したので、マージされたファイルには合計 15 個のパケットが含まれているはずです。
次に、マージされたファイルで capinfos を実行します。
capinfos merged_scans.pcap
出力のパケット数を確認します。
File name: merged_scans.pcap
File type: pcapng
...
Number of packets: 15
...
「Number of packets」は 15 であり、これにより 3 つのソースファイルすべてのデータが merged_scans.pcap に正常に結合されたことが確認されます。
まとめ
この実験では、ネットワークトラフィック分析の基本的なスキルを学びました。まず、複数の個別のパケットキャプチャファイルを特定しました。次に、mergecap コマンドのコア構文を学び、それを使用して個別のファイルを単一の統合されたキャプチャファイルに結合しました。最後に、capinfos ユーティリティを使用して、新しいファイルのパケットの総数がソースファイルのパケットの合計と一致することを確認することで、マージが成功したことを検証しました。
これで、さまざまなソースからのネットワークキャプチャを統合できるようになり、分析ワークフローが大幅に効率化されます。
