Wireshark を使用してネットワークトラフィックをキャプチャし分析する

CybersecurityCybersecurityBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、人気のあるネットワークプロトコルアナライザである Wireshark を使用してネットワークトラフィックをキャプチャする方法を学びます。ネットワークトラフィック分析はサイバーセキュリティにおいて不可欠であり、潜在的な脅威の特定やネットワーク活動の監視を可能にします。

この実験の終了時には、Wireshark を使用してネットワークパケットをキャプチャし、分析する実践的な経験を積むことができます。これは、セキュリティインシデントを調査する上で非常に有用なスキルです。

Wireshark のインストール

Wireshark は強力なネットワークプロトコルアナライザです。コンピュータネットワークの探偵ツールのようなものです。Wireshark を使うと、ネットワークを流れるデータをキャプチャし、そのトラフィックを対話的に調査して理解することができます。このステップでは、Linux システムに Wireshark をインストールし、必要な権限を設定する手順を案内します。これにより、Wireshark を効果的に使用できるようになります。

パッケージリポジトリの更新

まず、ターミナルを開く必要があります。タスクバーのターミナルアイコンをクリックするか、キーボードショートカット Ctrl+Alt+T を使用することで簡単に開くことができます。ターミナルは、Linux システムに命令を与えることができるコマンドセンターのようなものです。

ターミナルが開いたら、パッケージリストを更新する必要があります。パッケージリストは、システムが利用可能なソフトウェアと最新バージョンを把握するためのカタログのようなものです。パッケージリストを更新することで、Wireshark をインストールする際に最新バージョンを取得できるようになります。ターミナルで以下のコマンドを実行します。

sudo apt update

コマンドの sudo 部分は、システムレベルのタスクを実行できる管理者権限を与えます。apt update は、システムに最新のパッケージ情報を確認するように指示するコマンドです。

コマンドを実行した後、以下のような出力が表示されるはずです。この出力は、システムがパッケージリストを確認して更新していることを示しています。

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
...
Reading package lists... Done

Wireshark のインストール

パッケージリストが更新されたので、ここで Wireshark をインストールします。ターミナルで以下のコマンドを実行します。

sudo apt install wireshark -y

再び sudo が管理者権限を与え、apt install wireshark は Wireshark をインストールするコマンドです。-y フラグは非常に便利です。インストール中にシステムがいくつかのアクションを確認する場合がありますが、-y フラグはこれらのプロンプトに自動的に「はい」と答えるため、手動で「はい」を押す必要がありません。インストールには数分かかる場合があります。

インストール中に、設定ダイアログが表示されます。ここでは、一般ユーザーにパケットをキャプチャする権限を与えるかどうかを尋ねます。デフォルトでは、セキュリティ上の理由から、root ユーザー(システム上で最も強力なユーザー)のみがネットワークパケットをキャプチャできます。しかし、一般ユーザーにこの権限を与えると非常に便利です。

キーボードの矢印キーを使って Yes を選択し、Enter キーを押します。

allow non-superusers to capture packets

パケットキャプチャ権限の設定

インストールが完了したら、Wireshark が実際にパケットをキャプチャできるようにする必要があります。Wireshark は dumpcap というツールを使ってパケットをキャプチャします。そのため、このツールに正しい権限を設定する必要があります。ターミナルで以下のコマンドを実行します。

sudo chmod +x /usr/bin/dumpcap

chmod コマンドは、ファイルまたはディレクトリの権限を変更するために使用されます。コマンドの +x 部分は、dumpcap ファイルに実行権限を追加します。これは、システムが dumpcap ツールを実行できるようにし、Wireshark がパケットを適切にキャプチャできるようにすることを意味します。

インストールの確認

Wireshark が正しくインストールされたことを確認するために、そのバージョンを確認することができます。ターミナルで以下のコマンドを実行します。

wireshark --version

インストールが成功した場合、以下のような出力が表示されるはずです。

Wireshark 3.6.2 (Git v3.6.2 packaged as 3.6.2-2)

おめでとうございます!システムに Wireshark を正常にインストールしました。次のステップでは、Wireshark を使ってネットワークトラフィックをキャプチャする方法を学びます。

ネットワークトラフィックのキャプチャ

このステップでは、Wireshark を起動してネットワークトラフィックをキャプチャする方法を学びます。パケットをキャプチャすることは、ネットワークを流れるデータを窺い見るようなものです。送受信されるすべての情報を見ることができ、ネットワークの仕組みを理解したり、潜在的なセキュリティ問題を検出したりするために重要です。

Wireshark の起動

Wireshark を使用するには、まず起動する必要があります。これは、ターミナルで簡単なコマンドを実行することで行えます。ターミナルは、コンピュータと対話するためにコマンドを入力できるテキストベースのインターフェースです。Wireshark を起動するコマンドは次の通りです。

wireshark

このコマンドを実行すると、Wireshark アプリケーションが開き、メインインターフェースが表示されます。このインターフェースはいくつかの異なる部分で構成されていますが、今は上部のネットワークインターフェースのリストに焦点を当てましょう。ネットワークインターフェースは、コンピュータをネットワークに接続するもので、例えば Ethernet ケーブルや Wi-Fi アダプタなどです。

ネットワークインターフェースの選択

パケットをキャプチャする前に、監視するネットワークインターフェースを選択する必要があります。ネットワークインターフェースは、データがコンピュータに出入りするドアのようなものです。各インターフェースは、コンピュータをネットワークに接続する異なる方法です。

Wireshark のメインウィンドウには、コンピュータ上の利用可能なすべてのネットワークインターフェースのリストが表示されます。各インターフェースの横には、そのインターフェースの現在のアクティビティを示すグラフがあります。このグラフを見ることで、そのインターフェースを通じてデータが流れているかどうかを確認できます。

Selecting the Network Interface

この実験では、eth0 インターフェースを選択します。リスト内でそれをダブルクリックすることで選択できます。eth0 インターフェースは通常、コンピュータをネットワークに接続する主要な Ethernet インターフェースです。Ethernet ケーブルを通じてコンピュータに出入りするデータの主要なドアのようなものです。

リストに eth0 が表示されない場合は問題ありません。アクティビティが表示されている(横のグラフが動いている)他のインターフェースを選択することができます。これは、そのインターフェースを通じてデータが流れていることを示しており、そのデータをキャプチャすることができます。

パケットキャプチャの開始

ネットワークインターフェースを選択すると、Wireshark は通常自動的にパケットのキャプチャを開始します。自動で開始しない場合は、手動でキャプチャを開始することができます。これには 2 つの方法があります。Wireshark ウィンドウ上部のツールバーにある青いサメのヒレのアイコンをクリックするか、キーボードで Ctrl+E を押します。

キャプチャを開始すると、選択したネットワークインターフェースを横断するパケットがメインウィンドウにリアルタイムで表示されます。これらのパケットは、実際にネットワークを流れるデータです。コンピュータを通じて流れる情報の流れを見ているようなものです。

Capturing Network Traffic

キャプチャを約 30 ~ 60 秒間実行しましょう。これにより、後で分析するのに十分なネットワークトラフィックが得られます。キャプチャするデータが多いほど、ネットワークで何が起こっているかをよりよく理解できます。

パケットリストの理解

キャプチャが実行されている間、Wireshark ウィンドウのメインパケットリストを見てみましょう。このリストの各行は 1 つのパケットを表しており、そのパケットに関するいくつかの重要な情報が含まれています。

  • No.: これは、このキャプチャセッションにおけるパケット番号です。各パケットの通し番号のようなもので、パケットを追跡するのに役立ちます。
  • Time: これは、パケットがキャプチャされた時刻を示します。ネットワークイベントのタイミングを理解するのに役立ちます。
  • Source: これは、パケットを送信したデバイスの IP アドレスまたはホスト名です。データの送信元を示します。
  • Destination: これは、パケットが送信される先のデバイスの IP アドレスまたはホスト名です。データの宛先を示します。
  • Protocol: これは、パケットが使用しているネットワークプロトコルを示します。例えば、TCP、UDP、または HTTP などです。異なるプロトコルは、異なるタイプのネットワーク通信に使用されます。
  • Length: これは、パケットのバイト数です。パケットに含まれるデータ量を示します。
  • Info: これは、パケットに関する追加情報を提供します。例えば、ネットワーク通信の具体的な詳細などです。

異なるタイプのパケットを容易に識別できるように、Wireshark は異なるプロトコルを異なる色で強調表示します。この視覚的な手がかりにより、異なるタイプのネットワークトラフィックをすばやく区別することができます。

キャプチャの停止

30 ~ 60 秒間ネットワークトラフィックをキャプチャしたら、キャプチャを停止する時です。Wireshark ウィンドウ上部のツールバーにある赤い四角のアイコンをクリックするか、再度 Ctrl+E を押すことで停止できます。キャプチャを停止すると、パケットリストが固定されるため、収集したデータの分析を開始できます。

キャプチャしたパケットの保存

ここでネットワークトラフィックをキャプチャしたので、後で分析できるように保存しましょう。キャプチャしたパケットを保存する方法は次の通りです。

  1. Wireshark ウィンドウ上部のメニューで File をクリックし、Save As を選択します。これにより、ファイルの保存場所と名前を選択できるダイアログボックスが開きます。
  2. /home/labex/project ディレクトリに移動します。ここが、キャプチャしたネットワークトラフィックを保存する場所です。
  3. ファイル名として capture.pcapng を入力します。.pcapng ファイル形式は、Wireshark がパケットキャプチャを保存するためのネイティブ形式です。キャプチャしたパケットに関するすべての情報を保持するように設計されています。
  4. Save ボタンをクリックしてファイルを保存します。
Saving Captured Packets

キャプチャしたパケットを .pcapng 形式で保存することで、後で Wireshark でこのファイルを開いて分析を続けることができます。

おめでとうございます!Wireshark を使用してネットワークトラフィックを正常にキャプチャしました。次のステップでは、このキャプチャしたトラフィックを分析する方法を学びます。

ネットワークトラフィックの分析

これでネットワークトラフィックをキャプチャしたので、次はそれを分析する時です。ネットワークトラフィックを分析することで、ネットワーク上で何が起こっているかを理解することができます。Wireshark は、パケットのフィルタリング、ソート、検査など、様々な機能を提供する強力なツールです。これらの機能を使うことで、キャプチャしたデータを深く掘り下げ、有用な情報を見つけることができます。

Wireshark インターフェースの理解

Wireshark のインターフェースは 3 つの主要なペインに分かれています。各ペインには特定の機能があり、キャプチャしたパケットに関する異なる種類の情報を表示します。

  1. パケットリストペイン (上部): このペインには、キャプチャされたすべてのパケットが表示されます。ネットワークトラフィック全体の概要を提供します。
  2. パケット詳細ペイン (中央): パケットリストペインでパケットを選択すると、このペインにそのパケットの詳細情報が表示されます。パケットを異なるレイヤーとフィールドに分解し、その構造を理解することができます。
  3. パケットバイトペイン (下部): このペインには、選択されたパケットの生バイトが表示されます。ネットワークを介して送信される実際のデータを示します。

特定のパケットの詳細を見るには、パケットリストペインでそのパケットをクリックするだけです。そのパケットに関する情報はパケット詳細ペインに表示され、対応する生バイトはパケットバイトペインに表示されます。

表示フィルタの使用

表示フィルタは Wireshark の最も強力な機能の 1 つです。特定の種類のトラフィックに焦点を当てることができ、分析プロセスを大幅に容易にします。すべてのパケットを一度に見る代わりに、フィルタを使って関心のあるパケットのみを表示することができます。

表示フィルタを使用するには、ウィンドウ上部のフィルタバーにフィルタを入力します。たとえば、TCP トラフィックのみを表示したい場合は、次のように入力します。

tcp

フィルタを入力した後、Enter キーを押すか、適用ボタン(青い矢印)をクリックしてフィルタを適用します。

Filtering Packets

フィルタが適用されると、パケットリストペインには TCP パケットのみが表示されます。これにより、分析したい特定のトラフィックに集中することができます。

試すことができる他の有用なフィルタをいくつか紹介します。

  • http: HTTP トラフィックのみを表示します。
  • dns: DNS トラフィックのみを表示します。
  • ip.addr == 8.8.8.8: IP アドレス 8.8.8.8 への、またはそこからのトラフィックを表示します。
  • tcp.port == 443: HTTPS トラフィックのみを表示します。

フィルタをクリアしてすべてのパケットを再度表示したい場合は、フィルタバーの横にある「クリア」ボタン(X)をクリックします。

色付けルールの使用

Wireshark は色を使って、異なる種類のトラフィックをすばやく識別できるようにしています。これにより、ネットワークトラフィックのパターンや異常を見つけやすくなります。

色付けルールを表示または変更するには、次の手順に従います。

  1. メニューで View > Coloring Rules を選択します。
  2. 現在の色付けルールが表示されるダイアログが開きます。
Coloring Packets

色付けルールは上から下の順に適用されます。パケットに一致する最初のルールがそのパケットの色を決定します。ルールの横のチェックボックスをオンまたはオフにすることで、ルールを有効または無効にすることができます。

色付けルールの表示または変更が終了したら、色付けルールダイアログを閉じます。

TCP ストリームの追跡

分析において最も有用な機能の 1 つは、TCP ストリームを追跡する機能です。TCP ストリームは、2 つのホスト間の全体的な会話を表します。TCP ストリームを追跡することで、特定の接続中に 2 つのホスト間で交換されるすべてのデータを見ることができます。

TCP ストリームを追跡するには、次の操作を行います。

  1. キャプチャ内で TCP パケットを見つけます。パケットが大量にある場合は、tcp フィルタを適用して TCP パケットのみを表示することができます。
  2. パケットを右クリックし、Follow > TCP Stream を選択します。
Follow TCP Stream

新しいウィンドウが開き、完全な会話が表示されます。赤色のテキストはクライアントからサーバーに送信されたデータで、青色のテキストはサーバーからクライアントに送信されたデータです。

この TCP ストリームを保存するには、Save As ボタンをクリックし、ファイルを /home/labex/project ディレクトリに tcp_stream.txt として保存します。

Save TCP Stream

「保存」をクリックしてプロセスを完了します。TCP ストリームを保存することで、後で会話を見直したり、他の人と共有したりすることができます。

パケット詳細の調査

特定のパケットを深く理解するには、パケット詳細ペインとパケットバイトペインを使ってその詳細を調査することができます。

  1. パケットリストペインでパケットをクリックして選択します。
  2. パケット詳細ペインの各フィールドの横にある矢印(►)をクリックしてセクションを展開します。これにより、パケットの各部分に関するより詳細な情報が表示されます。
  3. パケット詳細ペインで異なるフィールドを選択すると、対応するバイトがパケットバイトペインで強調表示されます。これにより、パケットの構造とその生データの関係を見ることができます。

この詳細ビューを使うことで、最下位レイヤーの Ethernet フレームから最上位レイヤーのアプリケーションレイヤーデータまで、パケットのすべての側面を調査することができます。

統計と分析ツール

Wireshark は、キャプチャを分析するための多くの統計ツールを提供しています。これらのツールは、ネットワークトラフィックの全体的なパターンに関する貴重な洞察を提供し、異常な活動を特定するのに役立ちます。

Statistics メニューのいくつかのオプションを試してみましょう。

  • Protocol Hierarchy: キャプチャ内のプロトコルの分布を表示します。これにより、ネットワーク上で最も頻繁に使用されているプロトコルを理解することができます。
  • Conversations: エンドポイント間のすべての接続をリスト表示します。どのホストが互いに通信しているか、およびどれだけのデータが交換されているかを示します。
  • Endpoints: キャプチャ内のすべてのエンドポイント(ホスト)をリスト表示します。ネットワークトラフィックに関与しているすべてのデバイスの概要を提供します。
  • I/O Graph: 時間経過に伴うトラフィックのグラフを表示します。一定期間にわたってネットワークトラフィックがどのように変化するかを視覚化するのに役立ちます。

これらのツールは、ネットワークトラフィックの全体的なパターンを理解し、異常な活動を特定するのに役立ちます。

おめでとうございます!これで Wireshark を使ってネットワークトラフィックを分析する基本を学びました。この知識は、より高度なネットワーク分析やサイバーセキュリティ調査の基礎となります。

まとめ

この実験では、Wireshark を使用してネットワークトラフィックをキャプチャし、分析するための基本的なスキルを学びました。まず、Wireshark をインストールし、パケットキャプチャに必要な権限を設定しました。次に、システムからリアルタイムのネットワークトラフィックをキャプチャし、さらなる分析のために保存しました。最後に、表示フィルタ、色付けルール、TCP ストリームの追跡など、さまざまな分析手法を試しました。

習得したこれらのスキルは、ネットワークのトラブルシューティングやサイバーセキュリティ調査において基本的なものです。ネットワークトラフィック分析により、セキュリティ脅威を特定し、ネットワークやアプリケーションの問題を解決し、プロトコルの機能を詳細に理解し、ネットワークのパフォーマンスを監視することができます。サイバーセキュリティの道を進むにつれて、これらの基礎を元に、マルウェア検出、侵入検知、ネットワークフォレンジックなど、より高度なパケット分析技術を開発することができます。