52
実実実実実実実実実実実実実実実実実 実実実実 実実実実実実実実実実実実

実際に流れているデータを見てみよう

Embed Size (px)

DESCRIPTION

2011/9/17 nwstudy で行ったセッションのスライドです。

Citation preview

Page 1: 実際に流れているデータを見てみよう

実際に流れているデータを見てみよう

パケット キャプチャとパケット解析

Page 2: 実際に流れているデータを見てみよう

about hebikuzure

2

村地 彰  aka hebikuzure [email protected] @hebikuzure http://www.hebikuzure.com/ http://hebikuzure.wordpress.com/ http://d.hatena.ne.jp/hebikuzure/ Microsoft MVP

(Client Operating System, Internet Explorer)

ネットワーク パケットを読む会(仮) 2011/9/17

Page 3: 実際に流れているデータを見てみよう

ネットワークのおさらい

ネットワーク パケットを読む会(仮)3 2011/9/17

Page 4: 実際に流れているデータを見てみよう

レイヤとプロトコル7. アプリケーション層

HTTP, DHCP, SMTP, SNMP, FTP, Telnet, AFP, X.500

6. プレゼンテーション層 SMTP, SNMP, FTP, Telnet, AFP

5. セッション層 TLS, NetBIOS, NWLink, DSI, ADSP, ZIP, ASP, PAP, 名前付きパイプ

4. トランスポート層 TCP, UDP, SCTP, SPX, NetBEUI, RTMP, AURP, NBP, ATP, AEP

3. ネットワーク層 IP, ARP, RARP, ICMP, IPX, NetBEUI, DDP, AARP

2. データリンク層 イーサネット , トークンリング , アークネット , PPP, フレームリレー

1. 物理層 RS-232, RS-422, 電話線 , UTP, ハブ , リピータ , 無線 , 光ケーブル

ネットワーク パケットを読む会(仮)4 2011/9/17

Page 5: 実際に流れているデータを見てみよう

ネットワーク キャプチャ 広義には、ネットワークを流れる生(未加工)のデー

タを特定のレイヤでデータとして取得・ファイル化する事です 取得するレイヤーにより確認・調査できる内容が異なります

「ネットワーク トレース」と呼ぶ場合もあります

例 HTTP キャプチャ パケット キャプチャ

「パケット キャプチャ」と同じ意味で使われる場合も多くあります

ネットワーク パケットを読む会(仮)5 2011/9/17

Page 6: 実際に流れているデータを見てみよう

HTTP キャプチャ ツールの例  Fiddler

2011/9/17ネットワーク パケットを読む会(仮)6

Page 7: 実際に流れているデータを見てみよう

パケット キャプチャ 別称「パケット ダンプ」 ネットワークを流れるパケット単位のバイナリ

データを取得・保存します データリンク層(または物理層)でキャプチャしま

す ソフトウェアのダンプ ツールは一般的にネットワーク

デバイスに対するドライバとして動作します

ネットワーク パケットを読む会(仮)7 2011/9/17

Page 8: 実際に流れているデータを見てみよう

ダンプした生のバイナリ データ

2011/9/17ネットワーク パケットを読む会(仮)8

Page 9: 実際に流れているデータを見てみよう

ネットワーク解析 ネットワーク キャプチャしたデータを可視化して

分析する手法です 利用されているプロトコルを推定します(既知のポート、

パターン マッチなどの手法が利用されます) プロトコルに応じたデータ構造をバイナリに適用します バイナリを可視化します

ネットワーク キャプチャ / 解析の別称「ネットワーク スニフィング」

ネットワーク パケットを読む会(仮)9 2011/9/17

Page 10: 実際に流れているデータを見てみよう

バイナリデータ

プロトコルの

可視化

プロトコル解析データ

パーサー

2011/9/17ネットワーク パケットを読む会(仮)10

Page 11: 実際に流れているデータを見てみよう

プロトコル解析されて可視化されたデータ

2011/9/17ネットワーク パケットを読む会(仮)11

Page 12: 実際に流れているデータを見てみよう

ネットワーク解析の目的 ネットワークとアプリケーションの正常動作の確認 ネットワークとアプリケーションの監視 ネットワーク トラフィック分析 問題の調査

発生状況の確認 発生トリガーの確認 原因の追究

ネットワーク プロトコルの学習

ネットワーク パケットを読む会(仮)12 2011/9/17

Page 13: 実際に流れているデータを見てみよう

パケット解析 パケット ダンプに対する解析 データリンク層( Ethernet レベル)からアプリ

ケーション層まで、すべてのレイヤでの現象が調査できます

ネットワーク パケットを読む会(仮)13 2011/9/17

Page 14: 実際に流れているデータを見てみよう

パケット解析のツール 「ダンプ(キャプチャ)」の機能と「解析」の両方

の機能が必用です 多くのソフトウェア ツールは両方の機能を持って

います

専用のハードウェア(アプライアンス)もあります

ソフトウェアのツール、ハードウェア共に「ネットワーク アナライザ」などと呼ばれます

ネットワーク パケットを読む会(仮)14 2011/9/17

Page 15: 実際に流れているデータを見てみよう

色々な呼び方 ネットワーク アナライザ LAN アナライザ パケット アナライザ ネットワーク スニファ ネットワーク モニタ

ネットワーク パケットを読む会(仮)15 2011/9/17

Page 16: 実際に流れているデータを見てみよう

コマンドライン ツール tcpdump Windump netcap

ネットワーク パケットを読む会(仮)16 2011/9/17

Page 17: 実際に流れているデータを見てみよう

GUI ツール OmniPeek Sniffer Portable ClearSight Xplico Pacmon Wireshark Microsoft Network Monitor

ネットワーク パケットを読む会(仮)17 2011/9/17

Page 18: 実際に流れているデータを見てみよう

パケットを採取する場所 自分自身が宛先 / 送信元のパケット

自分自身でキャプチャを実行すれば OK 「他の PC が宛先 / 送信元のパケット」と同じ方法で他

の PC でキャプチャすることもできます(負荷が問題になる場合、ツールがインストールできない場合など)

他の PC が宛先 / 送信元のパケット 同一コリジョン ドメイン内でキャプチャを実行

→ って、最近はスイッチング ハブ使ってますね どこかでネットワーク データを横取りしてキャプチャ

する必要がありますね そこで「その他の道具」の出番です

ネットワーク パケットを読む会(仮)18 2011/9/17

Page 19: 実際に流れているデータを見てみよう

2011/9/17ネットワーク パケットを読む会(仮)19

Page 20: 実際に流れているデータを見てみよう

2011/9/17ネットワーク パケットを読む会(仮)20

Page 21: 実際に流れているデータを見てみよう

その他の道具類 リピータ ハブ ミラー ポート付きスイッチング ハブ ネットワーク タップ 2 つ以上のネットワーク インターフェイスを持つ

PC(ブリッジを構成します)

ARP スプーフィング ツール Cain & Abel ( http://www.oxid.it/cain.html )

ネットワーク パケットを読む会(仮)21 2011/9/17

Page 22: 実際に流れているデータを見てみよう

まず注意事項 自分が所有・管理しているネットワークでキャプ

チャする場合 お好きにどうぞ

他人が所有・管理しているネットワークでキャプチャする場合 自分宛 / 自分発以外のパケットのキャプチャは傍受です

傍受した内容を第三者に明かすと通信の秘密の侵害です

傍受した情報を不正に利用してはいけません 所有者・管理者が接続を認めている以外の機器をネット

ワークに接続してはいけません 必要に応じて所有者・管理者の許可・了解を取りましょ

うネットワーク パケットを読む会(仮)22 2011/9/17

Page 23: 実際に流れているデータを見てみよう

パケット解析をしてみよう 無償で利用できるネットワーク アナライザ

Wireshark http://www.wireshark.org/ Mac OS X, AIX, BSD, FreeBSD, NetBSD,

OpenBSD, HP-UX, Linux, SunOS/Solaris, Windows

Microsoft Network Monitor http://support.microsoft.com/kb/933741/

en-us Windows

ネットワーク パケットを読む会(仮)23 2011/9/17

Page 24: 実際に流れているデータを見てみよう

Wireshark の画面

2011/9/17ネットワーク パケットを読む会(仮)24

Page 25: 実際に流れているデータを見てみよう

Microsoft Network Monitor の画面

2011/9/17ネットワーク パケットを読む会(仮)25

Page 26: 実際に流れているデータを見てみよう

Wireshark のインストール Windows / Mac OS X の場合

http://www.wireshark.org/download.html からインストーラーをダウンロードしてインストール

Linux などの場合 http://www.wireshark.org/download.html からソー

ス コードをダウンロードして自分でビルド リポジトリからパッケージを見つけてインストール

ネットワーク パケットを読む会(仮)26 2011/9/17

Page 27: 実際に流れているデータを見てみよう

インストールについての注意事項 最新バージョンを利用しましょう

セキュリティ修正が含まれます 古いバージョンは攻撃対象になります

Windows 環境では同梱の WinPcap を利用しましょう 同梱の WinPcap と同じバージョンがすでにインス

トールされている場合は、 WinPcap のインストールはスキップできます

ネットワーク パケットを読む会(仮)27 2011/9/17

Page 28: 実際に流れているデータを見てみよう

WinPcap の注意事項 WinPcap 4.1 以降のバージョンではキャプチャの

ための NPF サービスが自動起動に設定されます [ 管理者として実行 ] しなくてもパケット キャプチャが

できます

自動起動で問題がある場合は、以下のレジストリ キーで設定が変更できますHKLM\SYSTEM\CurrentControlSet\services\NPF\Start 0x1 : SERVICE_SYSTEM_START 0x2 : SERVICE_AUTO_START 0x3 : SERVICE_DEMAND_START

ネットワーク パケットを読む会(仮)28 2011/9/17

Page 29: 実際に流れているデータを見てみよう

参考情報 How To Set Up a Capture

http://wiki.wireshark.org/CaptureSetup Security

http://wiki.wireshark.org/Security Platform-Specific information about

capture privilegeshttp://wiki.wireshark.org/CaptureSetup/CapturePrivileges

ネットワーク パケットを読む会(仮)29 2011/9/17

Page 30: 実際に流れているデータを見てみよう

参考図書 実践パケット解析

O'Reilly Japan http://www.oreilly.co.jp/books/9784873113517/

パケットキャプチャ実践技術 リックテレコム http://www.ric.co.jp/book/contents/book_796.html

パケットキャプチャ入門 改訂版 リックテレコム http://www.ric.co.jp/book/contents/book_875.html

現場で使えるパケット解析テクニック アスキー http://ascii.asciimw.jp/books/books/detail/978-4-7561-

5018-9.shtmlネットワーク パケットを読む会(仮)30 2011/9/17

Page 31: 実際に流れているデータを見てみよう

Microsoft Network Monitor のインストール 略称 Netmon 最新版は ver. 3.4 ダウンロード センターからダウンロードしてイン

ストール http://www.microsoft.com/download/en/

details.aspx?id=4865 サポート OS

Windows 7, Windows Vista Service Pack 1, Windows Vista 64-bit Editions Service Pack 1, Windows XP 64-bit, Windows XP Service Pack 3

Windows Server 2003 Service Pack 2, Windows Server 2003 Service Pack 2 x64 Edition, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 for Itanium-based Systems

ネットワーク パケットを読む会(仮)31 2011/9/17

Page 32: 実際に流れているデータを見てみよう

インストールについての注意事項 アップグレードの際は旧バージョンのインスタンス

をすべて終了します 本体とパーサーそれぞれのインストーラーが続けて

動作するので、両方とも完了します インストール後、 Microsoft Update で更新プログ

ラムが提供されていないか確認し、必要ならインストールします セキュリティ ホールは攻撃対象になります

ネットワーク パケットを読む会(仮)32 2011/9/17

Page 33: 実際に流れているデータを見てみよう

参考情報 Microsoft Network Monitor を使ってみよう

http://www.microsoft.com/japan/powerpro/TF/column/am_01_1.mspx

Information about Network Monitor 3 http://support.microsoft.com/kb/933741/en-us

Using Network Monitor with the Microsoft Office and SharePoint Products Parsers http://msdn.microsoft.com/en-us/library/

hh372964.aspx ネットワーク・モニタ 3.1 を使う(基本編)

http://www.atmarkit.co.jp/fwin2k/win2ktips/857netmon3/netmon3.html

ネットワーク パケットを読む会(仮)33 2011/9/17

Page 34: 実際に流れているデータを見てみよう

キャプチャの手法1. ネットワーク上の適切な場所でツールを起動しま

す2. 必要に応じてツールの設定をします

プロミスキャス モードの設定 キャプチャ フィルタの設定

3. キャプチャを開始します4. ネットワーク アクティビティを発生します

キャプチャしたい一連の事象を再現します 再現性のある障害の場合は、再現手順を実行します

5. キャプチャを停止します6. データを保存します

ネットワーク パケットを読む会(仮)34 2011/9/17

Page 35: 実際に流れているデータを見てみよう

プロミスキャス モード 自分宛のデータパケット以外の信号も取り込んで処

理をする、ネットワーク カードの動作モード Wireshark や Netmon を利用するとプロミスキャス

モードに設定できます 通常は、プロミスキャス モードへの変更には管理者の権限( Administrators, root )が必要です

セキュリティ的な問題動作としてネットワーク管理者が監視している場合もあります PromiScan などの検知ツールがあります

ネットワーク パケットを読む会(仮)35 2011/9/17

Page 36: 実際に流れているデータを見てみよう

プロミスキャス モード

2011/9/17ネットワーク パケットを読む会(仮)36

Page 37: 実際に流れているデータを見てみよう

キャプチャ フィルタ 条件を設定して、それに合致するパケットのみキャ

プチャする機能です 設定できる条件の例

特定の MAC アドレス( Source, Destination ) 特定の IP アドレス( Source, Destination ) 特定のポート番号 特定のプロトコル

どのようなパケットを採取すれば良いかわからない場合は、キャプチャ フィルタを適用しないで採取します

ネットワーク パケットを読む会(仮)37 2011/9/17

Page 38: 実際に流れているデータを見てみよう

事象の再現 ネットワーク トラフィックが確実にキャプチャで

きるよう注意します キャプチャしている場所をトラフィックが必ず通過する

ようルーティングなどを確認 キャッシュなどローカルの一時ファイルが利用されない

よう、クリアしておく 余分なトラフィックが発生しないように注意します

事象の再現に必要ない操作をしない 他のプロセスをできるかぎり終了しておく 他のプロセスで自動的なネットワーク アクセスが発生

しないよう一時的に設定を変更する

ネットワーク パケットを読む会(仮)38 2011/9/17

Page 39: 実際に流れているデータを見てみよう

キャプチャしたパケットの解析 ディスプレイ フィルタで絞り込む

特定の MAC アドレス( Source, Destination ) 特定の IP アドレス( Source, Destination ) 特定のポート番号 特定のプロトコル 各プロトコルごとの詳細な動作(バージョン、サービス

名、ヘッダー、エラー、認証など) プロトコルの自動解析結果を確認し、必要に応じて

手動でプロトコルを指定する ミクロ的、マクロ的分析を行う

ネットワーク パケットを読む会(仮)39 2011/9/17

Page 40: 実際に流れているデータを見てみよう

ディスプレイ フィルタ 既定のフィルタが用意されています

Wireshark : [Analyze] – [Display Filter] Netmon : [Filter] – [Display Filter] – [Load

Filter] フィルタをカスタマイズしたり、新規に作成できま

す Wireshark : [Filter] ボックスに記述

( [Expression] ボタンでビルダーが起動します)

Netmon : [Display Filter] ウィンドウに記述 (入力補助機能が利用できます)

作成したフィルタを保存して、再利用できます

ネットワーク パケットを読む会(仮)40 2011/9/17

Page 41: 実際に流れているデータを見てみよう

プロトコルの自動解析 各レイヤーごとのプロトコルが解析されます 既知のポートやパターン マッチなどの方法でプロ

トコルを推定します 推定したプロトコルの仕様に従って、バイナリ

データが可視化されます

パーサーの定義(プロトコル解析データ)を新規に作成する事も可能です Wireshark : Lua ( http://www.lua.org/ )で記述し

ます Netmon : npl ( C# っぽい言語)で記述します

ネットワーク パケットを読む会(仮)41 2011/9/17

Page 42: 実際に流れているデータを見てみよう

自動解析の限界 正しく解析されない場合も多い

特にトランスポート層で既定のポート以外を使い通信を行っている場合

ex. 81 番ポートで HTTP 443 番ポート以外での HTTPS

ネットワーク パケットを読む会(仮)42 2011/9/17

Page 43: 実際に流れているデータを見てみよう

プロトコルの手動指定 プロトコルのデフォルトのポートを使用していない

トラフィックは正しいプロトコルが推測されない場合が多い

キャプチャ内容などからプロトコルが分かる場合は、手動でプロトコルを指定して表示させることができる Wireshark : フレームを右クリックして [Decode

As] Netmon : [Hex Details] ウィンドウで指定する範囲を

選択して [Decode As]

ネットワーク パケットを読む会(仮)43 2011/9/17

Page 44: 実際に流れているデータを見てみよう

ミクロ的分析 個々のパケット(フレーム)ごと、個々の スト

リームごと、個々のセッションごとの内容を確認、調査してネットワークやプログラムの挙動を調査します

向いている目的 特定の明確な事象(エラーの発生、不正な結果、接続不

能など)に対する調査 特定のアプリケーションの挙動の調査 特定のタイミングで発生する現象の調査

ネットワーク パケットを読む会(仮)44 2011/9/17

Page 45: 実際に流れているデータを見てみよう

マクロ的分析 パケット(フレーム)の全体、または特定の条件で抽出した部分に対して、統計的手法で分析します

向いている目的 全般的なトラブル(パフォーマンスの低下、断続的な接続不良、ランダムな事象)の調査

トラフィックのトレンド分析 特異なトラフィックの調査 正常時と異常時の比較によるネットワークの健全性の調

ネットワーク パケットを読む会(仮)45 2011/9/17

Page 46: 実際に流れているデータを見てみよう

マクロ的分析 : プロトコル階層別分析

2011/9/17ネットワーク パケットを読む会(仮)46

Page 47: 実際に流れているデータを見てみよう

マクロ的分析 : IO グラフ

2011/9/17ネットワーク パケットを読む会(仮)47

Page 48: 実際に流れているデータを見てみよう

マクロ的分析 : スループット グラフ

2011/9/17ネットワーク パケットを読む会(仮)48

Page 49: 実際に流れているデータを見てみよう

DEMO キャプチャしてみる キャプチャしたデータを見てみる キャプチャしたデータからダウンロードされたコン

テンツを取り出す

ネットワーク パケットを読む会(仮)49 2011/9/17

Page 50: 実際に流れているデータを見てみよう

「ネットワーク パケットを読む会 ( 仮 ) 」 ネットワーク パケット解析についての勉強会です 年 4~ 5回のペースで都内で開催しています

http://pa.hebikuzure.com/ http://groups.google.com/group/packetreading #pakeana

次回SynAck Caputure Nite 2011ネットワークパケットを読む会(仮)+Hokkaido.cap+ NetAgent パケットキャプチャ勉強会 合同勉強会

次々回10月~ 11月に開催予定

ネットワーク パケットを読む会(仮)50 2011/9/17

Page 51: 実際に流れているデータを見てみよう

SynAck Caputure Nite 2011 2011年 9月 21日 (水 ) 19:00 - 21:00 ネットエージェント株式会社 セミナールーム

(墨田区江東橋 4-26-5 東京トラフィック錦糸町ビル9F )

内容 永続的パケットキャプチャノススメ (杉浦 隆幸 さん ) DEFCON CTF で戦ったパケットを見て攻撃を解析

(ghetto2199 さん ) 会場にてビアバッシュによる懇親会 (21:00 ~ 22:00)

参加申込受付 ATND http://atnd.org/events/19434 からお申し込みくだ

さい(残念ながら定員オーバーしています)

ネットワーク パケットを読む会(仮)51 2011/9/17

Page 52: 実際に流れているデータを見てみよう

ありがとうございました

2011/9/17ネットワーク パケットを読む会(仮)52

「ネットワーク パケットを読む会(仮)」へのご参加をお待ちしております