More Related Content Similar to Message Analyzer でパケット キャプチャー (20) Message Analyzer でパケット キャプチャー1. Microsoft Message Analyzer で
パケット キャプチャー
Murachi Akira aka hebikuzure
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International
License.
2. About me
村地 彰 aka hebikuzure
株式会社シーピーエス 代表取締役
株式会社エクシードワン 事業推進部
Microsoft MVP (Most Valuable Professional)
2011年 4月 ~ 5年連続受賞
受賞分野 Visual Studio and Development Technologies
(Front End Web Dev)
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 20152
5. おことわり
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 20155
本セッションは「ネットワーク パケットを読む会(仮)」第
32回、第33回、第34回で行った「Message Analyzer 再
入門 (1) ~ (3)」の内容を再構成、追補したものです
本セッションの内容については、発表者が調査および検
証した結果であり、発表者の所属する組織およびマイク
ロソフト社の見解とは異なる場合があります
本スライドは Creative Commons NC/ND ライセンス
で公開しています。
7. Microsoft のパケットキャプチャ ツール #1
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 20157
Microsoft Systems Management Server (SMS)
Network Monitor が付属
プロミスキャス モード対応
リモート キャプチャー対応
Network Monitor 2.x
SMS 付属版の機能限定版を無償提供
Windows Server 2000/2003 には標準添付
プロミスキャスモード / リモートキャプチャー未対応
Windows Vista 以降では利用できない
8. Microsoft のパケットキャプチャ ツール #2
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 20158
Network Monitor 3.x (最終版は 3.4)
Windows Vista 以降で利用可能 (Windows 10 は NG?)
無償提供
プロミスキャスモード対応
リモート キャプチャー未対応
アプリケーション (プロセス) 単位でのパケット解析
Microsoft Message Analyzer
Network Monitor の後継
「パケット キャプチャ ツール」ではない
ETW ログ解析ツール
9. Microsoft Message Analyzer の入手と情報
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 20159
ダウンロード ページ
http://www.microsoft.com/en-us/download/details.aspx?id=44226
最新版は ver. 1.3.1 (2015/7/30 リリース)
Message Analyzer Blog
http://blogs.technet.com/b/messageanalyzer/
サポート フォーラム
https://social.msdn.microsoft.com/Forums/windowsdesktop/
en-us/home?forum=messageanalyzer
Microsoft Message Analyzer Operating Guide
https://technet.microsoft.com/en-us/library/jj649776.aspx
10. パケットをキャプチャーする方法 #1
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201510
Network Monitor の場合
= ネットワーク モニター エージェント
アプリケーション
Windows Firewall
TDI
TCP/IP NWLink NBF
NDIS
ネットワーク ドライバー
NIC(ハードウェア)
ネットワーク モニター
エージェント
プロトコル
11. 参考
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201511
TDI : Transport Driver Interface
https://msdn.microsoft.com/en-
us/library/windows/hardware/ff565685
NWLink : NetWare Link
https://support.microsoft.com/en-us/kb/316019
NBF : NetBIOS Frames
12. パケットをキャプチャーする方法 #2
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201512
Wireshark の場合
= ドライバー
アプリケーション
Windows Firewall
TDI
TCP/IP NWLink NBF
NDIS
ネットワーク ドライバー
NIC(ハードウェア)
WinPCAP
(NPF Driver Service)
ドライバー
13. 参考 NPF Driver Service
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201513
15. ETW (Event Tracing for Windows)
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201515
16. ETW = Event Tracing for Windows
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201516
Windows のコンポーネントに対してトレース ログを出力
させる仕組み
Window のコンポーネント以外のカーネルモード/ユー
ザーモード ドライバー、ユーザーモード アプリケーション
でも実装可能
Checked Build によるデバッグ プリントより高速でモ
ジュール本来の動作に与える影響が少ない
動的な有効化/無効化が可能
出力されるログはバイナリ データ
表示/解析にはツールが必要
17. ETW
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201517
イベント トレース
アプリケーション
Windows Firewall
TDI
TCP/IP NWLink NBF
NDIS
ネットワーク ドライバー
NIC(ハードウェア)
ETW
Event Tracing for Windows
イ
ベ
ン
ト
ト
レ
ー
ス
18. ETW の仕組み
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201518
http://blogs.msdn.com/b/jpwdkblog/archive/2011/12/27/event-tracing-for-windows-etw.aspx より
23. 参考資料
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201523
ETW へのご招待
http://blogs.msdn.com/b/tsmatsuz/archive/2008/01/2
3/etw.aspx
Event Tracing for Windows (ETW)
http://blogs.msdn.com/b/jpwdkblog/archive/2011/12/
27/event-tracing-for-windows-etw.aspx
FAQ: Common Questions for ETW and Windows Event Log
https://social.msdn.microsoft.com/Forums/ja-JP/a1aa1350-
41a0-4490-9ae3-9b4520aeb9d4/faq-common-questions-
for-etw-and-windows-event-log
Event Tracing for Windows (ETW) Simplified
https://support.microsoft.com/en-us/kb/2593157
24. 2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201524
Event Tracing
https://msdn.microsoft.com/en-
us/library/windows/desktop/bb968803.aspx
ETW Tracing
https://msdn.microsoft.com/en-
us/library/ms751538.aspx
Event Tracing Reference
https://msdn.microsoft.com/en-
us/library/windows/desktop/aa363802.aspx
27. ETW で「ネットワーク キャプチャー」
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201527
プロバイダ「Microsoft-Windows-NDIS-
PacketCapture」のトレースを採取する
Windows 8 以降から利用可能なプロバイダ
Network Monitor と同等のパケット キャプチャが可能
28. NDIS
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201528
Network Driver Interface Specification
%SystemRoot%System32DriversNdis.sys
http://blogs.msdn.com/b/jpwdkblog/archive/2010/08/31/windows-network-driver.aspx
30. Message Analyzer でパケット キャプチャ
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201530
1. Message Analyzer を起動
2. [Start Local Trace] をクリック
または
1. Message Analyzer を起動
2. [New Session] をクリック
3. [Live Trace] をクリック
4. [Trace Scenario] で [Local Network Interface] を選
択
5. [Start] をクリック
31. パケット キャプチャの開始 – 方法1
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201531
32. パケット キャプチャの開始 – 方法2
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201532
33. パケット キャプチャの開始 – 方法2 (2)
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201533
– 方法1
34. パケット キャプチャの開始 – 方法2 (3)
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201534
– 方法1
36. データの保存
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201536
ツールバーの [Save] ボタン
[File] メニュー – [Save]
[Save as] で cap 形式 (Microsoft Network Monitor 形式) で
保存できる ⇒ Wireshark で開けます
37. 他のコントローラを使う
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201537
Message Analyzer 以外の ETW コントローラ
logman コマンド
パフォーマンス モニタ (perfmon.exe)
– [データ コレクター セット]
– [イベント トレース セッション]
いずれも「管理者として実行」が必要
39. NDIS-PacketCapture プロバイダの問題
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201539
Windows 7 以前では利用できない
プロバイダを有効にするために管理者権限が必要
※ Message Analyzer から利用する場合、Message
Analyzer を「管理者として実行」する必要がある
ループバック インターフェイス (Localhost / 127.0.01)
のキャプチャができない
41. WFP のメリット
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201541
Windows 7 / Windows Server 2012 でも利用できる
(NDIS は Windows 8 / Windows Server 2012 R2 以
降)
管理者権限が無くてもキャプチャできる
(NDIS でのキャプチャには管理者権限が必要)
Loopback インターフェイスのキャプチャができる
(NDIS では Loopback のキャプチャはできない)
42. Loopback のみキャプチャする
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201542
Trace Scenario の中に「Local Loopback Network」が
ある
プロバイダーはMicrosoft-pef-WFP-MessageProvider
IPv4 / IPv6 ともに InBound のみキャプチャ
IP アドレス 127.0.0.1 / ::1 でフィルタリング
43. WFP のデメリット
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201543
キャプチャしたデータの形式が一般的なパケット キャプ
チャ ツールと異なる
(参考: NDIS でキャプチャした場合)
CAP 形式にエクスポートできない
Ethernet フレーム情報が無いため
44. NDIS と WFP の使い分け
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201544
可能であれば NDIS で採取した方がよい
Windows 7 の場合、管理者権限がない場合は WFP
45. WFP-MessageProvider の参考資料
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201545
Microsoft-PEF-WFP-MessageProvider
https://technet.microsoft.com/en-us/library/jj674804.aspx
Selecting Data to Capture
https://msdn.microsoft.com/ja-jp/library/office/dn799002
PEF-WFP Layer Set Filters
https://msdn.microsoft.com/ja-jp/library/office/jj729732
48. リモート コンピューターの指定
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201548
コンピュータ名 / ユーザー名 / パスワードを指定
NDIS プロバイダーの利用権限のあるユーザーを指定する
Localhost は [Delete] で削除
50. 参考情報
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201550
Capturing Data Remotely
https://technet.microsoft.com/en-us/library/dn386835
54. アドレスのフィルタリング
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201554
Address でネットワーク アドレスを示す
MAC ex. 6c-62-6d-94-c2-35
IPv4 ex. 192.168.1.1 / 10.1.0.0/16
IPv6 ex. 2001:4898:0:FFF:200:5EFE:4135:4A7
フィルター例
*Address==02-01-0A-01-01-64
IPv4.Address in 10.1.0.0/16
IPv4.Address == 192.168.1.1
*Address == 192.168.1.1 or *Address ==
2001:4898:0:FFF:200:5EFE:4135:4A7
56. プロトコルごとの詳細フィルタリング
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201556
HTTP.StatusCode >= 400
HTTP.Uri contains "msn"
HTTPTCP.Port == IANA.Port.HTTP
TCP.SourcePort in [6608, 6609, 6610]
TCP::Flags:SYN == true
(TCP.Segment.Flags.SYN == true と同じ)
(かつ、TCP.SYN == true と同じ)
. はすべての下位の要素を利用可能
: は直下の階層の要素を利用可能 (:: で階層名を省略可)
57. 文字・数字でのフィルタリング
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201557
contains フィルターを利用する
*Summary contains “error”
contains “Microsoft”
contains “Microsoft” caseSensitive
contains “Microsoft” encoding ASCII
contains $[4d534e] (MSN)
58. 正規表現
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201558
regex “(?!000)([0-6]d{2}|7([0-6]d|7[012]))
([ -]?)(?!00)dd3(?!0000)d{4}”
— (US の) 電話番号
Regex @“^([w.-]+)@([w-]+)((.(w){2,3})+)$”
— 電子メール アドレス
Regex @“^d{3}-d{2}-d{4}$”
— (US の) 社会保険番号
Regex @“bthisW+(?:w+W+){1,6}?thatb”
— “that” の近くにある “this”
60. Library の管理
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201560
Library のフィルターは [New Filter], [Manage Filter] で
追加・削除など可能
62. View Filter の参考資料
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201562
Filtering Live Trace Session Results
https://technet.microsoft.com/en-us/library/jj738055.aspx
Getting Started with Creating and Applying Filters
https://technet.microsoft.com/en-us/library/jj851104.aspx
Understanding the Filtering Language Basics
https://technet.microsoft.com/en-us/library/jj851106.aspx
Using the Filtering Language
https://technet.microsoft.com/en-us/library/jj851105.aspx
63. 宣伝
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201563
ネットワーク パケット解析の勉強会
「ネットワーク パケットを読む会(仮)」
を開催しています
毎月後半(最終週の場合が多い)・平日夜に開催
次回は1月開催の予定です
“pakeana” または「ネットワークパケットを読む会」で検
索
http://pa.hebikuzure.com/
#pakeana
Editor's Notes TDI : Transport Driver Interface https://msdn.microsoft.com/en-us/library/windows/hardware/ff565685
NWLink : NetWare Link https://support.microsoft.com/en-us/kb/316019
NBF : NetBIOS Frames http://www.hitachi-solutions.co.jp/ms-solutions/sp/column/silverlight/130424.html
Scenario 1: HTTP Timeout Example Using ETW Tracing and Netsh Commands https://msdn.microsoft.com/en-us/library/windows/desktop/cc307237(v=vs.85).aspx http://www.hitachi-solutions.co.jp/ms-solutions/sp/column/silverlight/130424.html