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

手順を順番に確認しながら、最初のパケットキャプチャを読めるようになるまで進めてみましょう。

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

    ネットワークインターフェースを行き交うデータをパケット単位で傍受・記録し、直接中身を確認する作業のことです。ネットワークの問題を診断したり、プロトコルが実際にどう動作しているかを自分の目で確かめたりしたいときに使う手法です。

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

    Wiresharkは最も広く使われている無料のオープンソースパケットキャプチャ・分析ソフトで、公式サイトからWindows・Mac・Linux向けのインストーラーを入手できます。インストール時に一緒に導入されるキャプチャドライバーが、実際にパケットを傍受する処理を担っています。

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

    プログラムを起動した後、一覧に表示されるWi-Fiやイーサネットなどのインターフェースのうち、実際にトラフィックが流れているものをダブルクリックすると、リアルタイムでパケットが画面に表示され始めます。

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

    キャプチャを始める前に特定の相手アドレスやポートの条件でキャプチャフィルターを指定しておくと、関心のあるトラフィックだけを保存でき、ファイルサイズと分析の負担を減らせます。

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

    すでにキャプチャした結果の中では、画面上部のフィルター入力欄にプロトコル名や条件式を入力することで、関心のあるプロトコルや条件に合うパケットだけを絞り込んで表示できます。

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

    TCP接続開始時の3ウェイハンドシェイク、DNSの問い合わせと応答、HTTPのリクエストとレスポンスといった頻出パターンを読めるようになると、「いつ接続が失敗しているか」「どの区間で応答が遅いか」を自分の目で確認できるようになります。ただしHTTPSのように暗号化された通信は、どのサーバーと通信したかといった情報は分かっても、実際の内容までは読み取れません。

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

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

Wiresharkだけがすべてではない

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

よくある質問

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

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

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

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