
グラフ優先のネットワークトラフィック可視化ツール。ライブキャプチャとPCAPリプレイに対応し、チェックポイント差分比較、パストレーシング、Wiresharkスタイルの表示フィルタによるセキュリティ分析を実現。
PacMap は、グラフファーストのネットワークトラフィック可視化ツールで、ライブキャプチャと PCAP リプレイに対応しています。何が変わったのか、何がノイズなのか、次に何を調べるべきかを把握するのに役立ちます。
ネットワーク動作のための Git と考えてください。スナップショット、差分、リプレイを視覚的に行えます。

PacMap は 2 つのワークフローをサポートしています。
.pcap または .pcapng ファイルをアップロードし、パケットフローを時間経過に沿ってリプレイします。リポジトリルートから:
python3 -m venv venv
source venv/bin/activate
pip install websockets scapy
npm install --prefix client
Windows の場合、通常の Python ワークフローで venv を作成してアクティブ化した後、同じパッケージをインストールします。Windows でのパケットキャプチャには Npcap が必要です。
リポジトリルートから PacMap を起動します:
npm start -- --iface en0
よくあるインターフェースの例:
en0eth0wlan0次の URL を開きます:
http://127.0.0.1:5176
その後、コントロールパネルを使用してライブキャプチャを開始します。
生のパケットキャプチャには通常、管理者権限が必要です。macOS/Linux の場合:
sudo npm start -- --iface en0
Windows の場合、ターミナルを管理者として実行します。
Web アプリを開き、ソースを PCAP リプレイに切り替え、.pcap または .pcapng ファイルをアップロードします。その後、以下を使用します:
リプレイはブラウザ内で実行され、Python キャプチャサーバーを起動する必要はありません。
リプレイには、会話、エンドポイント、プロトコル内訳、名前解決、I/O タイムラインアクティビティの調査パネルが含まれています。
ファイル制限: 100 MB および 100,000 パケット。サポートされていないフレームはスキップされ、UI でカウントされます。
現在のリプレイサポート:
.pcap および基本的な .pcapngライブキャプチャとリプレイの両方で、Wireshark スタイルの表示フィルターバーをサポートしています。フィルターを入力して Enter キーを押すと適用され、フィールドをクリアして Enter キーを押すと解除されます。
サポートされている構文:
tcp udp dns http arp
ip.addr == 192.168.1.10
ip.src == 10.0.0.1
ip.dst == 8.8.8.8
tcp.port == 443
udp.port == 53
port == 80
ip.src == 10.0.0.1 && ip.dst == 8.8.8.8
複合フィルター (&&) は 2 つのフィールドフィルターを組み合わせます。フィルターを適用すると、グラフが一致するノードとエッジに絞り込まれ、解除すると現在のキャプチャウィンドウの全ビューが復元されます。
複合フィルター ip.src == X && ip.dst == Y を適用すると、パストレーシングが有効になります。PacMap は全キャプチャに対して BFS を実行し、2 つのエンドポイント間のホップチェーンを見つけます。コントロールパネルの下に、各ホップとエッジごとのパケット数・バイト数を表示するパネルが表示され、中間ノードがグラフ上でハイライトされます。
チェックポイントは、特定の時点におけるネットワーク状態(ノード、エッジ、トラフィック量)のスナップショットを保存します。
チェックポイントは localStorage に pacmap_checkpoints として保存されます(最大 50 エントリ)。
ブラウザはホストのネットワークトラフィックを直接傍受したり、特権的なパケットキャプチャを開始したりできません。PacMap は、ライブキャプチャのために Scapy を使用するローカルの Python WebSocket ヘルパーを使用し、パケットの要約を React アプリにストリーミングします(以下で通信)。
ws://127.0.0.1:8765
PCAP リプレイは別です。ブラウザはアップロードされたファイルを読み取り、同じグラフ可視化を再利用するため、ライブパケットアクセスは不要です。
フロントエンドのみ:
cd client
npm install
npm run dev
プロダクションビルド:
npm run build
キャプチャサーバーのみ:
source venv/bin/activate
python3 server.py --iface en0
server.py が実行されていないか、WebSocket ポートが使用不可能です。ping 8.8.8.8、DNS ルックアップなどのネットワークアクティビティを発生させてください。