ネットワークトラフィックの分析において、Wiresharkは欠かせないツールです。しかし、大量のパケットデータの中から必要な情報を見つけ出すには、適切なフィルタリング技術が重要です。この記事では、Wiresharkのフィルタリング方法を詳しく解説します。
いつも使っていないとやり方を忘れてしまいがちなので、備忘録をいう意味も込めてまとめておきます。
Wiresharkは、LAN上に流れているパケットを「見える化」するパケットキャプチャツールです1。ネットワーク上を流れるパケットをリアルタイムにキャプチャして解析できる、オープンソースのプロトコルアナライザとして、世界中で広く利用されています2。主な特徴
ダウンロードはこちら。
Wiresharkでフィルタを使用するには、主に以下の3つの方法があります。
今回は、一番上のフィルタボックスに直接入力する方法を紹介します。
以下の図の赤枠に直接フィルタ設定をします。
ネットワークトラフィックを効率的に分析するには、プロトコルごとのフィルタリングが有効です。
基本的なプロトコルフィルタ
tcp # TCPトラフィックのみ表示
http # HTTPトラフィックのみ表示
icmp # ICMPパケットのみ表示
dns # DNS通信のみ表示
特定のホストやサービスに関連する通信を分析する際に便利です。IPアドレスフィルタ
ip.src == 192.168.1.1 # 送信元IPアドレス
ip.dst == 192.168.1.2 # 宛先IPアドレス
ip.addr == 192.168.1.1 # 送信元または宛先IPアドレス
ポート番号フィルタ
tcp.port == 80 # 特定のポート番号
tcp.srcport == 443 # 送信元ポート
tcp.dstport == 8080 # 宛先ポート
TCPコネクションの状態を分析する際に役立ちます。フラグフィルタの例
tcp.flags.syn == 1 # SYNパケット
tcp.flags.fin == 1 # FINパケット
tcp.flags.reset == 1 # RESETパケット
より詳細な分析のために、複数の条件を組み合わせることができます。論理演算子の使用例
ip.src == 192.168.1.1 && tcp # 特定IPからのTCP通信
http.host == "example.com" # 特定ドメインへの通信
!(tcp.port == 80 || tcp.port == 443) # 80番と443番以外のポート
TCPストリームの追跡や特定の通信セッションの分析に使用します。
tcp.stream eq 1 # 特定のTCPストリーム
ip.addr eq 192.168.1.1 && ip.addr eq 192.168.1.2 # 特定のホスト間の通信
Wiresharkのフィルタ機能を使いこなすことで、ネットワークトラフィックの分析作業を大幅に効率化できます。基本的なプロトコルフィルタから、複雑な条件を組み合わせた高度なフィルタまで、状況に応じて適切なフィルタを選択することが重要です。これらのフィルタリング技術を習得することで、より正確で迅速なネットワーク分析が可能になります。