Wiresharkとは

Wiresharkはネットワーク上に流れている実データのパケットをキャプチャ(採取)して、そのパケットの中身を画面上に表示してくれるパケットキャプチャソフトです。

パケットをキャプチャするだけなら他にもソフトはいろいろありますが、Wiresharkはキャプチャしたパケットを解析する機能が豊富にあり、現状、最も使われているパケットキャプチャソフト(LANアナライザ)と言えると思います。

GPL(GNU General Public Licence)で配布されているオープンソースのソフトウェアであるため、誰でも自由にパソコンに導入することができます。また、ソースコードが公開されているため、自分の使いやすいように改良したりすることもできます。

Wiresharkの目的

Wiresharkのドキュメント(Wireshark User’s Guide)には、Wiresharkは以下の目的に利用できると記載されています。

  • ネットワーク管理者がネットワークのトラブルを解決するために利用する。
  • セキュリティ技術者がセキュリティの問題をテスト・確認するために利用する。
  • 開発者がプロトコルの実装についてデバッグするために利用する。

昔は上記のようなことをするためには、ハードウェアアナライザや有償のソフトウェアアナライザが必要で、どちらもものすごく高価でした。そのため、個人ではパケットキャプチャしたくても、できないのが実情でしたが、Wiresharkの前進であるEtherealの登場で、一変しました。

今では誰でも無償でパケットキャプチャをすることができるようになっています。そのため、上記のような業務に関わる目的だけでなく、TCP/IPやLANなどネットワークについての学習にも大いに利用できます。

パケットをキャプチャする

「パケットをキャプチャする」とはつまり、イーサネットケーブルや無線などの媒体を流れる信号を採取することです。媒体には様々な信号が流れており、環境によっては自分のパソコン以外の信号、つまり他人の通信やネットワーク全体の通信の信号についても取得することが可能です。

それは、ネットワーク問題時のトラブルシューティングに大いに役立ちますが、その一方で、他人の通信の中身を盗み見ることもできるということです。

Wiresharkのメリット・デメリット

Wiresharkは無料で使えるため、普段使っているノートパソコンなどに入れておくとエンジニアとしては、非常に便利です。ただ、無料で使えるという点だけでみれば、今は他にもパケットキャプチャソフトは存在します。

ではなぜWiresharkなのか。

以下にWiresharkを使用するメリットを羅列します。

  • WiresharkはWindows、Linux、UNIX、MAC全てに対応している
  • パケットの内容を詳細表示でき、画面上でグラフィカルに確認できる
  • キャプチャしたデータを様々な形式で保存できる
  • パケットを細かい条件で指定してフィルタできる
  • 重要なパケットに色をつけることができるなど画面上での操作性が高い
  • 様々な統計情報を表示できる
  • プラグインを使用することで、機能を自由に拡張できる
  • サポートされているプロトコルが非常に多くパケットの解読が容易
  • USBやBluetoothなど、ネットワーク以外のプロトコルを解析できる
  • USBメモリーにインストールして持ち歩けるバージョン「Wireshark Portable」がある

この他にも、シェアが高いというのも大きなメリットのひとつです。みんなが使っているので、Wireshark形式でファイルを保存すれば、そのファイルを誰かに送ったとしても、開けないことはありませんし、何より使い方をチームメンバーで共有できます。

デメリットは正直あまり思いつきません。
有償のパケットキャプチャソフトであればIDS(侵入検知システム)に対応しているものもあり、通信の内容を監視し、攻撃や侵入を検知して報告する機能も備えているものもあるようです。今のところ、Wiresharkにはそのような機能はないようですが、IDSは少し用途が異なるため、デメリットとは言えないでしょう。