はじめに
この実験では、強力なネットワークプロトコルアナライザーである Wireshark からパケットをエクスポートする方法を学びます。パケットのエクスポートは、ネットワーク分析、トラブルシューティング、セキュリティ調査において重要です。また、キャプチャしたデータを同僚と共有することも可能になります。
この実験を通じて、ネットワークトラフィックをキャプチャし、特定の通信タイプを対象とするフィルターを適用し、キャプチャしたデータをさまざまな形式でエクスポートしてさらなる分析を行います。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
この実験では、強力なネットワークプロトコルアナライザーである Wireshark からパケットをエクスポートする方法を学びます。パケットのエクスポートは、ネットワーク分析、トラブルシューティング、セキュリティ調査において重要です。また、キャプチャしたデータを同僚と共有することも可能になります。
この実験を通じて、ネットワークトラフィックをキャプチャし、特定の通信タイプを対象とするフィルターを適用し、キャプチャしたデータをさまざまな形式でエクスポートしてさらなる分析を行います。
Wireshark は世界で最も広く使われているネットワークプロトコルアナライザーの 1 つです。コンピュータネットワークでは、通信はパケットと呼ばれる小さな単位を通じて行われます。パケットを、ネットワークを介してデータを運ぶ小さな封筒のように考えてください。Wireshark を使うと、これらのパケットをキャプチャし、分析することができ、ネットワークで何が起こっているかを非常に詳細なレベルで確認することができます。これは、ネットワークの顕微鏡のようなもので、データの流れや問題の有無を理解するのに役立ちます。
まず、Wireshark を開く必要があります。これを行うには、ターミナルウィンドウを開きます。ターミナルは、コンピュータと対話するためのコマンドを入力できるテキストベースのインターフェイスです。ターミナルウィンドウを開く方法は 2 つあります。
Ctrl+Alt+T
を押します。これはターミナルをすばやく開くショートカットです。ターミナルが開いたら、Wireshark を起動するコマンドを使用します。ターミナルで次のコマンドを入力し、Enter キーを押します。
wireshark
このコマンドを実行すると、Wireshark アプリケーションが開きます。利用可能なネットワークインターフェイスのリストが表示されます。ネットワークインターフェイスは、コンピュータがネットワーク上の他のデバイスと通信するために使用する接続で、Wi - Fi や Ethernet などがあります。
Wireshark が開いたら、少し時間をかけてインターフェイスを見回してみましょう。レイアウトを理解することで、後でこのツールを使いやすくなります。
パケットのキャプチャを開始する前に、Wireshark インターフェイスの各部分の機能を知っておくことが重要です。この知識は、ツールを効果的に操作し、必要な情報を見つけるのに役立ちます。
これで、Wireshark インターフェイスの基本を理解したので、ネットワークトラフィックのキャプチャを開始する準備ができました。
このステップでは、Wireshark の基本機能であるネットワークパケットのキャプチャ方法を学びます。パケットキャプチャは、システム上で行われているすべてのネットワーク通信を確認できる、探偵の道具のようなものです。これは、デバイスに出入りするデータの流れを明確に把握することができるため、ネットワークの問題解決や潜在的なセキュリティ脅威の分析など、様々な目的にとって不可欠です。
Wireshark のメインインターフェイスで、利用可能なネットワークインターフェイスのリストが表示されていることに気付くでしょう。これらのインターフェイスは、デバイスがネットワークに接続するための異なる「ドア」のようなものです。各インターフェイスは、Wi-Fi、Ethernet、または仮想ネットワーク接続など、デバイスがデータを送受信する異なる方法を表しています。このリストを見て、パケットをキャプチャする適切なインターフェイスを選択します。
eth1
インターフェイスをクリックして選択します。これはメインの Ethernet 接続です。Ethernet は、物理ケーブルを使用してデバイスをローカルネットワークに接続する一般的な方法です。eth1
を選択することで、この特定の Ethernet 接続を通過するネットワークトラフィックをキャプチャすることを選択しています。
ツールバーの青いサメのヒレのアイコンをクリックして、パケットキャプチャを開始します。このアイコンは、Wireshark でパケットキャプチャを開始するボタンです。または、eth1
インターフェイスをダブルクリックすることもできます。キャプチャを開始すると、Wireshark は選択したインターフェイスを通過するすべてのネットワークパケットの収集を開始します。
これで、パケットがキャプチャされ、リアルタイムで表示されるはずです。各行は 1 つのパケットを表しています。パケットの詳細には以下が含まれます。
もっと興味深いトラフィックを見るために、ウェブサイトを訪問して HTTP トラフィックを生成しましょう。HTTP(Hypertext Transfer Protocol)は、インターネット上でウェブページを転送するために使用されるプロトコルです。HTTP トラフィックを生成することで、ウェブサイトを訪問したときに実際に行われるデータ交換を確認することができます。
Wireshark を実行したまま、Ctrl+Alt+T
を押して新しいターミナルを開きます。ターミナルは、システムと対話するためのコマンドを入力できるコマンドラインインターフェイスです。
curl
コマンドを使用してウェブページを要求します。
curl www.google.com
curl
コマンドは、サーバーとの間でデータを転送するためのツールです。この場合、Google のウェブページを要求するために使用しています。ターミナルの出力に Google のホームページの HTML コンテンツが表示されるはずです。これは、要求が成功し、Google サーバーからデータを受信したことを示しています。
Wireshark に戻り、キャプチャされた新しいパケットを観察します。Google への要求に関連する DNS、TCP、および HTTP パケットが表示されるはずです。DNS(Domain Name System)は、www.google.com
のようなドメイン名を IP アドレスに変換するために使用されます。TCP(Transmission Control Protocol)は、デバイスとサーバーの間に信頼性の高い接続を確立する役割を担っています。HTTP は、実際のウェブページデータを転送するために使用されます。
パケットキャプチャを停止するには、ツールバーの赤色の四角い停止ボタンをクリックします。これにより、新しいパケットの収集プロセスが停止します。
これでいくつかのパケットをキャプチャしたので、それらをファイルに保存しましょう。
File
をクリックします。メニューバーには、Wireshark セッションを管理するためのさまざまなオプションが含まれており、ファイルの開き、保存、エクスポートなどができます。Save As
を選択します。このオプションを使用すると、キャプチャしたパケットを保存するファイルの場所と名前を選択できます。/home/labex/project
ディレクトリに移動します。これは、キャプチャしたパケットデータを保存する場所です。capture.pcapng
を入力します。.pcapng
拡張子は、ファイルが PCAPNG 形式であることを示しており、これはネットワークパケットデータを保存するための標準形式です。Save
をクリックします。ファイルが保存されました。PCAPNG 形式はすべてのキャプチャデータを保持し、Wireshark のデフォルト形式です。これは、キャプチャしたパケットに関するすべての詳細、たとえば送信元と宛先のアドレス、プロトコル、およびパケットの内容がファイルに保存されることを意味します。
ネットワークトラフィックを正常にキャプチャし、ファイルに保存しました。次のステップでは、特定のタイプのトラフィックに焦点を当てるために、これらのパケットをフィルタリングする方法を学びます。
実際のネットワークシナリオでネットワークトラフィックをキャプチャすると、キャプチャファイルは非常に大きくなり、数千、場合によっては数百万のパケットが含まれることがあります。これらすべてのパケットを一度に分析するのは困難で非効率的です。そこでフィルタリングが役立ちます。フィルタリングは、特定のタイプのトラフィックに焦点を当てることができる重要な技術です。対象とするパケットを絞り込むことで、分析プロセスをはるかに管理しやすくし、必要な情報をより迅速に見つけることができます。
Wireshark には強力なフィルタリング言語が搭載されています。この言語を使用すると、特定の条件を満たすパケットのみを表示することができます。表示フィルターの一般的な使用方法をいくつか紹介します。
まず、Wireshark でキャプチャファイルを開きます。ファイルが開いたら、Wireshark ウィンドウの上部を見てください。青い背景のテキストフィールドが表示されます。これがフィルターボックスです。フィルターボックスには、フィルター条件を入力します。
たとえば、HTTP トラフィックをフィルタリングしたいとします。HTTP はウェブ通信に使用されるプロトコルです。これを行うには、フィルターボックスに次のように入力します。
http
フィルターを入力した後、適用するには 2 つのオプションがあります。キーボードの Enter キーを押すか、フィルターボックスの隣の右矢印ボタンをクリックすることができます。これを行うと、Wireshark はパケットリストにフィルターを適用し始めます。
フィルターを適用した後、パケットリストには HTTP パケットのみが表示されるはずです。ただし、パケットが表示されない場合は、キャプチャファイルに HTTP トラフィックが含まれていない可能性があります。その場合は、代わりにフィルター tcp
を試してみることができます。TCP は基本的なトランスポート層プロトコルであり、このフィルターを使用すると、キャプチャファイル内のすべての TCP パケットが表示されます。
フィルターをクリアしてすべてのパケットを再表示したい場合は、2 つの方法があります。フィルターボックスの右側にある「X」ボタンをクリックするか、ボックス内のフィルターテキストを削除してから Enter キーを押すことができます。
パケット分析をさらに洗練させるために、より具体的なフィルターを探ってみましょう。
たとえば、HTTP GET リクエストのみに関心があるとします。GET リクエストは、サーバーからデータを取得するために使用される一般的なタイプの HTTP リクエストです。これらのリクエストのみを表示するには、フィルターボックスに次のフィルターを入力します。
http.request.method == "GET"
Enter キーを押してフィルターを適用します。すると、Wireshark はパケットリストを検索し、HTTP GET リクエストのみを表示します。
フィルターを適用した後、パケットが表示されない場合は、キャプチャファイルに HTTP GET リクエストが含まれていない可能性があります。
次に、別のフィルターを試してみましょう。ポート 80(HTTP の標準ポート)を宛先とするすべての TCP パケットを表示したい場合は、フィルターボックスに次のフィルターを入力します。
tcp.dstport == 80
Enter キーを押してこのフィルターを適用します。
フィルターを適用した後、パケットリストにはポート 80 宛てのすべての TCP パケットが表示されるはずです。
論理演算子を使用して複数のフィルターを組み合わせることで、フィルターをさらに強力にすることができます。
たとえば、HTTP または DNS のパケットを表示したいとします。DNS はドメイン名を IP アドレスに変換するために使用されるプロトコルです。これをフィルタリングするには、フィルターボックスに次のように入力します。
http or dns
Enter キーを押してフィルターを適用します。
フィルターを適用した後、パケットリストには HTTP と DNS の両方のパケットが表示されるはずです。
フィルタリングは Wireshark の強力な機能で、分析に最も関連するパケットに焦点を当てることができます。Wireshark の使用経験が増えるにつれて、特定のニーズに合わせたより高度なフィルターを作成することができるようになります。
パケットをキャプチャしてフィルタリングした後、エクスポートする必要があるのは一般的なことです。パケットをエクスポートすることで、さらなる詳細分析、ドキュメント作成、または他の人とデータを共有することができます。Wireshark はいくつかのエクスポート形式を提供しており、各形式は異なるユースケースに設計されています。
Wireshark は複数のエクスポート形式をサポートしています。以下に各形式の簡単な説明を示します。
まず、キャプチャしたパケットの一部をエクスポートしてみましょう。
まず、適用したすべてのフィルターをクリアする必要があります。これを行うには、フィルターボックスの「X」ボタンをクリックします。フィルターをクリアすると、キャプチャしたすべてのパケットが表示されます。このステップは、キャプチャしたすべてのパケットを完全に表示し、エクスポートしたいパケットを選択できるようにするために重要です。
次に、エクスポートしたいパケットを選択します。最初のパケットをクリックします。次に、Shift キーを押しながら別のパケットをクリックすると、その間のすべてのパケットが選択されます。すべてのパケットを選択するには、単に Ctrl+A
を押します。
パケットを選択したら、メニューバーの File
をクリックします。次に、Export Specified Packets...
を選択します。このオプションを使用すると、選択したパケットを特定の形式で保存することができます。
表示されるエクスポートダイアログで:
/home/labex/project
ディレクトリに移動します。ここにエクスポートしたファイルを保存します。Wireshark/tcpdump/... - pcap
が選択されていない場合は、選択します。PCAP 形式はパケットデータに広く使用されている形式です。exported.pcap
を入力します。これがエクスポートしたファイルの名前になります。Save
をクリックします。これで、選択したパケットを PCAP ファイルに正常にエクスポートしました。このファイルは、Wireshark だけでなく、PCAP 形式をサポートするすべてのツールで開くことができます。これにより、さらなる分析に異なるツールを使用する柔軟性が得られます。
次に、同じデータを CSV 形式でエクスポートしてみましょう。CSV 形式は、スプレッドシートアプリケーションでの分析に非常に便利です。
パケットがまだ選択されていることを確認します。選択されていない場合は、Ctrl+A
を押してすべてのパケットを再度選択します。次に、メニューバーの File
をクリックし、Export Packet Dissections...
を選択します。このオプションを使用すると、パケットデータをさまざまな形式でエクスポートすることができます。
As CSV...
ボタンをクリックします。これにより、エクスポート形式が CSV に設定されます。
エクスポートダイアログで:
/home/labex/project
ディレクトリに移動します。exported.csv
を入力します。Save
をクリックします。これで、パケットデータを CSV ファイルにエクスポートしました。このファイルの内容を表示するには、ターミナルで次のコマンドを使用できます。
head -n 10 /home/labex/project/exported.csv
このコマンドは、CSV ファイルの最初の 10 行を表示します。列ヘッダーといくつかのパケットデータが表示され、ファイル内に何が含まれているかをすぐに確認できます。
時には、パケットの実際の生バイト列をエクスポートする必要がある場合があります。以下はその方法です。
パケットリストから 1 つのパケットを選択します。これが生バイト列をエクスポートしたいパケットです。
パケットを右クリックし、Export Packet Bytes...
を選択します。このオプションを使用すると、パケットの生データを保存することができます。
エクスポートダイアログで:
/home/labex/project
ディレクトリに移動します。packet_bytes.bin
を入力します。Save
をクリックします。これで、選択したパケットの生バイト列をエクスポートしました。これは、詳細な分析やパケットに埋め込まれたファイルの抽出に非常に役立ちます。
これらのエクスポートオプションは、パケットキャプチャデータの分析と共有方法に大きな柔軟性を与えます。選択する形式は、特定のニーズとさらなる分析に使用する予定のツールによって異なります。
この実験では、強力なネットワークプロトコルアナライザーである Wireshark を使用して、ネットワークパケットをキャプチャ、フィルタリング、およびエクスポートする方法を学びました。まず、Wireshark のインターフェイスに慣れ、実際のネットワークトラフィックをキャプチャしました。次に、HTTP リクエストや TCP 通信などの特定のトラフィックタイプを対象とするフィルターを適用する方法を学びました。最後に、PCAP や CSV などの形式でパケットをエクスポートして、さらなる分析や共有を行うさまざまな方法を探りました。
これらのスキルは、ネットワーク管理者、セキュリティアナリスト、および IT プロフェッショナルにとって不可欠です。これらのスキルを使えば、ネットワーク問題の効率的なトラブルシューティング、セキュリティインシデントの調査、およびネットワークの動作の理解が可能になります。Wireshark のパケットエクスポート機能を習得することは、サイバーセキュリティとネットワーク分析にとって貴重なツールとなり、実際の IT およびセキュリティの役割で適用できるより高度な技術の基礎を築きます。