セキュリティ・ダークナイト

第4回 パケットキャプチャ術で秘密もちょっぴりこぼれた?


NTTデータ先端技術株式会社
辻 伸弘

2010/6/28
Wiresharkのコマンドライン版「tshark」で知る、平文通信の危険性。膨大なログから狙った1行を検索するテクニック、身をもって体験せよ!(編集部)

 新社会人の皆さんは、そろそろ通勤ラッシュにも慣れてきたころだろうか。配属先が決まった方、目下研修中といった方、すでにお客様先に行っている方、さまざまだろう。筆者も新社会人のころは、毎日が発見で新鮮だったと記憶している。筆者は幸い、「5月病」にはならなかったが、新しい生活にも慣れてくると、ふとした瞬間に気が抜けると知らず知らずのうちにたまっていたストレスが一気に出ることもある。皆さんがこの記事を読むころには、すでに6月も後半を迎えていることと思うが、引き続き気を付けていただきたい。

 筆者は社会人になる前も、なってからも、そしていまでも「さて、何をしよう? 何で楽しもう?」と、暇さえあれば考えるようにしている。もしかしたら、これが「5月病」にならなかった理由かもしれない。

 今回は、期待を胸に社会に飛び出してきた皆さんにささやかではあるが「パケットキャプチャ術」の情報を提供したいと思う。もちろん、業務上パケットとなじみがあまりない方や、最近このようなツールに触れていない方もいらっしゃるだろう。そんな方も読んでいただければ幸いである。

 コマンドラインを使い、自在にパケットを取り出す

 パケットキャプチャと聞いて、どのようなソフトウェアを思い浮かべるだろうか。硬派に「tcpdump」、ベタに「Wireshark」(旧Ethereal)だろうか。今回はWireshark付属のコマンドライン「tshark」を取り上げる。tsharkはWiresharkに比べ分析能力には欠けるが、動作が軽く安定している。そしてtcpdumpよりもキャプチャ停止条件や出力関連のオプションが充実しており、Linux系OSでもWindows系OSでも使用することができる。

【注】
tcpdumpのWindows版として、「WinDump」というツールがあるが、こちらは2006年12月を最後に更新されていない。

 そして、フィルタ(任意のパケットをマッチさせる機能)条件の記述方法として、tcpdump形式(libpcap形式)とWireshark Display Filterの両方が用意されているため、フィルタ条件を学ぶ上でも役に立つことだろう。厳密には2つのフィルタには挙動の違いが生じるが、それについては後述する。

 今回は、特定の通信の内容を捕捉するスキルを得ることを目標としよう。記事の最後ではセキュリティ・ダークナイトからの出題と、その解答を説明する。この記事を読めば、きっと答えにまで至れるはずだ。

問題:
このファイルから正しい「認証情報」を取り出せ!

atit_dn4_ntsuji.cap


 ダウンロードとインストール手順

 今回利用するツールは、Wireshark公式サイトのダウンロードページからダウンロードし、インストールする。インストール自体は、非常に簡単であるためここでは割愛する。インストールが完了したら、環境変数からPathを通しておくとよいだろう。

図1 「Wireshark」の公式サイト

図2 システム環境変数を確認する

 図2のPathの最後を「;」(セミコロン)で区切り、tshark.exeが存在するフォルダまでのパスを追記する(デフォルトは、「C:\Program Files\Wireshark」)。パスが通っているかどうかの確認は、cmd.exe(コマンドプロンプト)で「tshark -h」としヘルプが表示されるかどうかで確認すればよいだろう。

図3 pathを設定し、tsharkのヘルプが表示されるかを確認する

 Linux系OSのディストリビューションはたくさんあるが、今回は「Ubuntu」を例にインストール方法を紹介しよう。といっても、

# apt-get install tshark

の1行だ。

 準備が整ったら

 それでは、早速パケットをキャプチャしてみよう――と、その前に。

 キャプチャを行うには、どのネットワークインターフェイス(以下NIC)で行うかを適宜指定する必要がある。そのためには、キャプチャを行うPCにどのようなNICが認識されているか、また、その番号を知る必要がある。

# tshark -D

 としてみよう。下図は筆者の環境での実行結果である。

図4 tshark -Dの実行結果(Windowsの場合)

図5 tshark -Dの実行結果(Ubuntuの場合)

 Windowsの方が若干分かりづらい印象を受けるかもしれないが、この中からキャプチャする対象のNICを番号で指定できるため、NICの名前で判断ができれば問題ないだろう。

 上記の図4、Windowsの「-D」の例で、無線LANのパケットをキャプチャしたい場合は「11a/b/g Wireless LAN Mini PCI Express Adapter (Microsoft's Packet Scheduler)で2番、有線LANの場合は「Intel(R) PRO/1000 PL Network Connection (Microsoft's Packet Scheduler)」で5番となる。

 自身のNICについては把握できただろうか。それでは、NICを指定してキャプチャを開始してみよう。

# tshark -i N   (「N」の部分はキャプチャを行うNICの番号を指定する)

 キャプチャを開始したら、Webブラウジングをしてみるといいだろう。目にも止まらぬ速さでログが流れていく。適当なところでCtrl+Cで止めていただきたい。

図6 tsharkの実行イメージ

 さて、何も考えずひとまずパケットキャプチャを行ってみたが、「-D」や「-i」といったものがオプションである。

 tsharkには、このほかにもオプションが多数あり、

  • キャプチャ環境の設定
  • キャプチャ条件
  • 出力設定

などいろいろな制御を行うことが可能である。

 ここからは筆者が知っておくべきだと判断するオプションについて解説する。適宜、手元でも実際に操作、確認していってほしい。

1/5

Index
パケットキャプチャ術で秘密もちょっぴりこぼれた?
Page1
コマンドラインを使い、自在にパケットを取り出す
ダウンロードとインストール手順
準備が整ったら
  Page2
出力関連のオプション
キャプチャ停止の条件を指定する
  Page3
ファイル出力関連のオプション
保存ファイルの読み出し
フィルタ関連のオプション
  Page4
フィルタしてみよう
フィルタで遊んでみる
  Page5
解答編――たった1つのリクエストを見つけるまでのステップ


セキュリティ・ダークナイト 連載インデックス

TechTargetジャパン

Security&Trust フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH