パケットキャプチャとは?Wireshark(ワイヤーシャーク)でネットワーク通信を分析する基礎

手順を順番に確認しながら、最初のパケットキャプチャを読めるようになるまで進めてみましょう。環境構築から、フィルターの使い分け、よくある通信の読み方、そして必ず守るべき法的な注意点までを扱います。

  1. パケットキャプチャとは何か

    ネットワークインターフェースを行き交うデータをパケット単位で記録し、中身を直接確認する作業のことです。ネットワークの問題を診断したり、プロトコルが実際にどう動作しているかを自分の目で確かめたりしたいときに使う手法です。「つながらない」「遅い」といった漠然とした症状を、「どの段階で応答が止まっているか」という具体的な事実に置き換えられるのが最大の利点です。

  2. Wiresharkをインストールする

    Wiresharkは最も広く使われている無料のオープンソースのパケットキャプチャ・分析ソフトで、公式サイトからWindows・Mac・Linux向けのインストーラーを入手できます。Windowsでは、インストール時に一緒に導入されるキャプチャ用のドライバー(Npcap)が実際のパケット取得を担っています。必ず公式サイトからダウンロードし、出所の不明な配布元は避けましょう。

  3. キャプチャするネットワークインターフェースを選んで開始する

    起動後に表示される一覧から、Wi-Fiやイーサネットなど、実際にトラフィックが流れているインターフェースをダブルクリックすると、リアルタイムでパケットが表示され始めます。一覧に表示される小さな波形グラフが動いているものが、通信中のインターフェースの目安です。調べたい操作(ページを開く、アプリを起動するなど)を行ってから停止ボタンで止めると、必要な部分だけを確認できます。

  4. キャプチャフィルターであらかじめ絞り込む

    キャプチャを始める前に特定の相手アドレスやポートの条件でキャプチャフィルターを指定しておくと、関心のあるトラフィックだけを保存でき、ファイルサイズと分析の負担を減らせます。書式はtcpdumpと同じBPF構文で、host 192.168.1.10、port 443、tcp port 80 のように書きます。記録されなかったパケットは後から見ることができないので、迷ったときは絞り込みすぎないのが安全です。

  5. ディスプレイフィルターで見たいパケットだけ選び出す

    すでにキャプチャした結果の中では、画面上部のフィルター入力欄にプロトコル名や条件式を入力することで、条件に合うパケットだけを絞り込んで表示できます。ディスプレイフィルターは表示を切り替えるだけで、元のデータは消えません。入力欄が緑色なら式が有効、赤色なら構文の誤りがあるという目安になります。

  6. よく見る通信パターンの読み方を身につける

    TCP接続開始時の3ウェイハンドシェイク(SYN、SYN/ACK、ACKの3パケット)、DNSの問い合わせと応答、HTTPのリクエストとレスポンスといった頻出パターンを読めるようになると、いつ接続が失敗しているか、どの区間で応答が遅いかを確認できるようになります。たとえばSYNを送っても応答がなければ経路やファイアウォールの問題、再送(Retransmission)が多ければ回線の品質が疑われます。ただしHTTPSのように暗号化された通信は、どのサーバーと通信したかといった情報は分かっても、実際の内容までは読み取れません。

  7. ストリームを追跡して保存する

    1つの接続に属するパケットだけをまとめて読みたいときは、パケットを右クリックして「追跡」から「TCPストリーム」を選びます。分析結果は.pcapng形式のファイルとして保存でき、後から開き直したり、他の人に共有したりできます。ただし保存したファイルにはパスワードや個人情報が含まれることがあるため、共有する前に内容を必ず確認してください。

覚えておくと便利なディスプレイフィルターの例

日常的な用途のほとんどは、いくつかの式でカバーできます。ip.addr==192.168.1.10 は特定の機器との通信すべてを絞り込み、tcp.port==443 はHTTPS通信に絞り込み、http はHTTPのリクエストとレスポンスだけを表示し、dns はDNSの問い合わせだけを表示します。tcp.analysis.retransmission は再送されたパケットを探すのに便利です。「&&」(かつ)や「||」(または)でフィルターを組み合わせれば、さらに細かく絞り込めます。

Wiresharkだけがすべてではない

キャプチャしたトラフィックを探索するにはWiresharkのグラフィカルな画面が最も分かりやすいですが、ほとんどのLinuxやMacに標準搭載されているコマンドラインのパケットキャプチャツールtcpdumpは、GUIが使えないリモートサーバー上での簡単な確認には手早く使えることが多いです。tcpdumpでキャプチャした結果をファイルに保存し、後でWiresharkで開いて深く分析することもできます。

暗号化された通信をどう扱うか

現在のウェブ通信の多くはTLSで暗号化されているため、そのままでは内容が見えません。自分のブラウザの通信を学習目的で調べる場合は、ブラウザが出力できる鍵ログファイルをWiresharkに読み込ませる方法があります。ただし、これは自分の端末で自分の通信に対してのみ行うべき方法であり、他人の暗号化通信を解読する目的で使ってはいけません。

よくある質問

自分のパソコンの通信しか見えないのですか、それとも隣の人の通信も見えますか?

一般的なスイッチベースの有線ネットワークでは、基本的に自分の機器宛て・自分の機器発の通信だけが見えます。ただしネットワークの構造によってはより広い範囲が見えることもあるため、必ず自分が使用を許可されているネットワークでのみキャプチャを行うべきです。

Wiresharkを使うこと自体は違法ですか?

ツール自体は合法的なネットワーク診断プログラムです。問題になるのは使い方であり、自分が所有しているか明示的に許可を得ているネットワークや機器で診断目的に使うのは問題ありませんが、他人の同意なしに通信を傍受する行為は違法になる可能性があります。個別の判断は法律の専門家に相談してください。

キャプチャフィルターとディスプレイフィルターの違いは何ですか?

キャプチャフィルターは記録を始める前に設定し、条件に合うパケットだけを保存します。ディスプレイフィルターは記録済みのデータの中から表示するものを絞り込むだけで、元のデータは変わりません。書式も別物で、前者はBPF構文、後者はWireshark独自の構文です。

キャプチャしたのに何も表示されません。どうすればよいですか?

まず通信が実際に流れているインターフェースを選んでいるか確認してください。複数の仮想アダプターがある環境では、別のインターフェースを選んでいることがよくあります。また、管理者権限が必要な場合や、キャプチャフィルターが厳しすぎる場合も考えられます。

初心者はまず何を調べるとよいですか?

自分のPCでブラウザからあるページを開き、DNSの問い合わせ、TCPの3ウェイハンドシェイク、TLSの接続開始という流れを順番に追ってみるのがおすすめです。この流れを一度読めるようになると、他のプロトコルも理解しやすくなります。

キャプチャしたファイルは長く保存しても大丈夫ですか?

パケットには通信先や、暗号化されていない通信の内容が含まれるため、必要な分析が終わったら削除するのが基本です。業務で扱う場合は、社内の情報管理ルールに従って保管場所と期間を決めてください。