Microsoft Message Analyzer で
パケット キャプチャー
Murachi Akira aka hebikuzure
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International
License.
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
About me
 http://www.murachi.net/
 http://www.hebikuzure.com/
 https://hebikuzure.wordpress.com/
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 20153
好きなパケット
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 20154
SMB / SMB2 / SMB3
おことわり
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 ライセンス
で公開しています。
Message Analyzer 前史
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 20156
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 以降では利用できない
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 ログ解析ツール
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
パケットをキャプチャーする方法 #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(ハードウェア)
ネットワーク モニター
エージェント
プロトコル
参考
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
パケットをキャプチャーする方法 #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)
ドライバー
参考 NPF Driver Service
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201513
パケットをキャプチャーする方法 #3
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201514
 Microsoft Message Analyzerの場合
= ETW
ETW?
?
ETW (Event Tracing for Windows)
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201515
ETW = Event Tracing for Windows
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201516
 Windows のコンポーネントに対してトレース ログを出力
させる仕組み
 Window のコンポーネント以外のカーネルモード/ユー
ザーモード ドライバー、ユーザーモード アプリケーション
でも実装可能
 Checked Build によるデバッグ プリントより高速でモ
ジュール本来の動作に与える影響が少ない
 動的な有効化/無効化が可能
 出力されるログはバイナリ データ
 表示/解析にはツールが必要
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
イ
ベ
ン
ト
ト
レ
ー
ス
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 より
ETW の仕組み
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201519
トレース採取対象の
ドライバー
アプリケーション
トレース有効化/無効化
ETW の仕組み
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201520
トレース データの配信
セッションの作成/管理
ETW の仕組み
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201521
トレースの配信
ETW の仕組み
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201522
Message Analyzer
参考資料
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
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
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201525
ここから本題
ETW でネットワーク キャプチャー
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201526
ETW で「ネットワーク キャプチャー」
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201527
 プロバイダ「Microsoft-Windows-NDIS-
PacketCapture」のトレースを採取する
 Windows 8 以降から利用可能なプロバイダ
 Network Monitor と同等のパケット キャプチャが可能
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
NDIS-PacketCapture プロバイダの問題
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201529
 Windows 7 以前では利用できない
 プロバイダを有効にするために管理者権限が必要
※ Message Analyzer から利用する場合、Message
Analyzer を「管理者として実行」する必要がある
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] をクリック
パケット キャプチャの開始 – 方法1
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201531
パケット キャプチャの開始 – 方法2
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201532
パケット キャプチャの開始 – 方法2 (2)
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201533
– 方法1
パケット キャプチャの開始 – 方法2 (3)
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201534
– 方法1
パケット キャプチャの停止
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201535
 ツールバーの [Stop] ボタン
 [Session] メニュー – [Stop]
データの保存
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201536
 ツールバーの [Save] ボタン
 [File] メニュー – [Save]
 [Save as] で cap 形式 (Microsoft Network Monitor 形式) で
保存できる ⇒ Wireshark で開けます
他のコントローラを使う
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201537
 Message Analyzer 以外の ETW コントローラ
 logman コマンド
 パフォーマンス モニタ (perfmon.exe)
– [データ コレクター セット]
– [イベント トレース セッション]
 いずれも「管理者として実行」が必要
WFP のプロバイダーを利用する
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201538
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)
のキャプチャができない
Microsoft-pef-WFP-MessageProvider
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201540
 Windows フィルタリング プラットフォーム (WFP) の
ETW プロバイダー
 WFP :ネットワーク フィルタリング アプリケーションを作
成するためのプラットフォームを提供する API およびシ
ステム サービスのセット
https://msdn.microsoft.com/ja-
jp/library/aa366510.aspx
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 のキャプチャはできない)
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 でフィルタリング
WFP のデメリット
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201543
 キャプチャしたデータの形式が一般的なパケット キャプ
チャ ツールと異なる
 (参考: NDIS でキャプチャした場合)
 CAP 形式にエクスポートできない
 Ethernet フレーム情報が無いため
NDIS と WFP の使い分け
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201544
 可能であれば NDIS で採取した方がよい
 Windows 7 の場合、管理者権限がない場合は WFP
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
リモート キャプチャ
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201546
リモート コンピューターの追加
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201547
 [New Session] – [Edit Target Computers]
 [Add] で新しいコンピューターを追加
リモート コンピューターの指定
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201548
 コンピュータ名 / ユーザー名 / パスワードを指定
 NDIS プロバイダーの利用権限のあるユーザーを指定する
 Localhost は [Delete] で削除
リモート キャプチャの実行
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201549
参考情報
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
View Filter の設定
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201551
View Filter
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201552
 Wireshark でいうところの “Display Filter”
これですね
View Filter
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201553
ここにあります
アドレスのフィルタリング
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

プロトコルのフィルタリング
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201555
 TCP, UDP, HTTP, SSL, TSL, DNS などのプロトコル名
でフィルタリング
 ex.
 HTTP
 SSL or TLS
 HTTP and !UDP
プロトコルごとの詳細フィルタリング
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 と同じ)
 . はすべての下位の要素を利用可能
 : は直下の階層の要素を利用可能 (:: で階層名を省略可)
文字・数字でのフィルタリング
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)
正規表現
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”
Library
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201559
 良く利用されるフィルターのパターンは Library にプリ
セット済み
Library の管理
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201560
 Library のフィルターは [New Filter], [Manage Filter] で
追加・削除など可能
History
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201561
 [History] で設定したフィルターの履歴を表示・再入力
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
宣伝
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201563
 ネットワーク パケット解析の勉強会
「ネットワーク パケットを読む会(仮)」
を開催しています
 毎月後半(最終週の場合が多い)・平日夜に開催
 次回は1月開催の予定です
 “pakeana” または「ネットワークパケットを読む会」で検
索
 http://pa.hebikuzure.com/
 #pakeana
Any Question?
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201564
2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201565
Thank You

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
  • 3.
    About me  http://www.murachi.net/ http://www.hebikuzure.com/  https://hebikuzure.wordpress.com/ 2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 20153
  • 4.
    好きなパケット 2015/11/28© 2015 MurachiAkira - CC BY-NC-ND - .NET Labo Nov. 20154 SMB / SMB2 / SMB3
  • 5.
    おことわり 2015/11/28© 2015 MurachiAkira - CC BY-NC-ND - .NET Labo Nov. 20155  本セッションは「ネットワーク パケットを読む会(仮)」第 32回、第33回、第34回で行った「Message Analyzer 再 入門 (1) ~ (3)」の内容を再構成、追補したものです  本セッションの内容については、発表者が調査および検 証した結果であり、発表者の所属する組織およびマイク ロソフト社の見解とは異なる場合があります  本スライドは Creative Commons NC/ND ライセンス で公開しています。
  • 6.
    Message Analyzer 前史 2015/11/28©2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 20156
  • 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© 2015Murachi 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 MurachiAkira - 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© 2015Murachi 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 DriverService 2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201513
  • 14.
    パケットをキャプチャーする方法 #3 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201514  Microsoft Message Analyzerの場合 = ETW ETW? ?
  • 15.
    ETW (Event Tracingfor Windows) 2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201515
  • 16.
    ETW = EventTracing 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 MurachiAkira - 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© 2015Murachi 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 より
  • 19.
    ETW の仕組み 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201519 トレース採取対象の ドライバー アプリケーション トレース有効化/無効化
  • 20.
    ETW の仕組み 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201520 トレース データの配信 セッションの作成/管理
  • 21.
    ETW の仕組み 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201521 トレースの配信
  • 22.
    ETW の仕組み 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201522 Message Analyzer
  • 23.
    参考資料 2015/11/28© 2015 MurachiAkira - 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 MurachiAkira - 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
  • 25.
    2015/11/28© 2015 MurachiAkira - CC BY-NC-ND - .NET Labo Nov. 201525 ここから本題
  • 26.
    ETW でネットワーク キャプチャー 2015/11/28©2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201526
  • 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 MurachiAkira - 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
  • 29.
    NDIS-PacketCapture プロバイダの問題 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201529  Windows 7 以前では利用できない  プロバイダを有効にするために管理者権限が必要 ※ Message Analyzer から利用する場合、Message Analyzer を「管理者として実行」する必要がある
  • 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
  • 35.
    パケット キャプチャの停止 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201535  ツールバーの [Stop] ボタン  [Session] メニュー – [Stop]
  • 36.
    データの保存 2015/11/28© 2015 MurachiAkira - CC BY-NC-ND - .NET Labo Nov. 201536  ツールバーの [Save] ボタン  [File] メニュー – [Save]  [Save as] で cap 形式 (Microsoft Network Monitor 形式) で 保存できる ⇒ Wireshark で開けます
  • 37.
    他のコントローラを使う 2015/11/28© 2015 MurachiAkira - CC BY-NC-ND - .NET Labo Nov. 201537  Message Analyzer 以外の ETW コントローラ  logman コマンド  パフォーマンス モニタ (perfmon.exe) – [データ コレクター セット] – [イベント トレース セッション]  いずれも「管理者として実行」が必要
  • 38.
    WFP のプロバイダーを利用する 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201538
  • 39.
    NDIS-PacketCapture プロバイダの問題 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201539  Windows 7 以前では利用できない  プロバイダを有効にするために管理者権限が必要 ※ Message Analyzer から利用する場合、Message Analyzer を「管理者として実行」する必要がある  ループバック インターフェイス (Localhost / 127.0.01) のキャプチャができない
  • 40.
    Microsoft-pef-WFP-MessageProvider 2015/11/28© 2015 MurachiAkira - CC BY-NC-ND - .NET Labo Nov. 201540  Windows フィルタリング プラットフォーム (WFP) の ETW プロバイダー  WFP :ネットワーク フィルタリング アプリケーションを作 成するためのプラットフォームを提供する API およびシ ステム サービスのセット https://msdn.microsoft.com/ja- jp/library/aa366510.aspx
  • 41.
    WFP のメリット 2015/11/28© 2015Murachi 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© 2015Murachi 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© 2015Murachi 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© 2015Murachi 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
  • 46.
    リモート キャプチャ 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201546
  • 47.
    リモート コンピューターの追加 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201547  [New Session] – [Edit Target Computers]  [Add] で新しいコンピューターを追加
  • 48.
    リモート コンピューターの指定 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201548  コンピュータ名 / ユーザー名 / パスワードを指定  NDIS プロバイダーの利用権限のあるユーザーを指定する  Localhost は [Delete] で削除
  • 49.
    リモート キャプチャの実行 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201549
  • 50.
    参考情報 2015/11/28© 2015 MurachiAkira - CC BY-NC-ND - .NET Labo Nov. 201550  Capturing Data Remotely https://technet.microsoft.com/en-us/library/dn386835
  • 51.
    View Filter の設定 2015/11/28©2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201551
  • 52.
    View Filter 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201552  Wireshark でいうところの “Display Filter” これですね
  • 53.
    View Filter 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201553 ここにあります
  • 54.
    アドレスのフィルタリング 2015/11/28© 2015 MurachiAkira - 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 
  • 55.
    プロトコルのフィルタリング 2015/11/28© 2015 MurachiAkira - CC BY-NC-ND - .NET Labo Nov. 201555  TCP, UDP, HTTP, SSL, TSL, DNS などのプロトコル名 でフィルタリング  ex.  HTTP  SSL or TLS  HTTP and !UDP
  • 56.
    プロトコルごとの詳細フィルタリング 2015/11/28© 2015 MurachiAkira - 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 MurachiAkira - 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 MurachiAkira - 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”
  • 59.
    Library 2015/11/28© 2015 MurachiAkira - CC BY-NC-ND - .NET Labo Nov. 201559  良く利用されるフィルターのパターンは Library にプリ セット済み
  • 60.
    Library の管理 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201560  Library のフィルターは [New Filter], [Manage Filter] で 追加・削除など可能
  • 61.
    History 2015/11/28© 2015 MurachiAkira - CC BY-NC-ND - .NET Labo Nov. 201561  [History] で設定したフィルターの履歴を表示・再入力
  • 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 MurachiAkira - CC BY-NC-ND - .NET Labo Nov. 201563  ネットワーク パケット解析の勉強会 「ネットワーク パケットを読む会(仮)」 を開催しています  毎月後半(最終週の場合が多い)・平日夜に開催  次回は1月開催の予定です  “pakeana” または「ネットワークパケットを読む会」で検 索  http://pa.hebikuzure.com/  #pakeana
  • 64.
    Any Question? 2015/11/28© 2015Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 201564
  • 65.
    2015/11/28© 2015 MurachiAkira - CC BY-NC-ND - .NET Labo Nov. 201565 Thank You

Editor's Notes

  • #11 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
  • #17 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
  • #24 http://www.hitachi-solutions.co.jp/ms-solutions/sp/column/silverlight/130424.html