技術移転
DKOMベースWindowsカーネルメモリダンプ解析を依頼する 豊田孝のIT談話館


IT談話館

Windowsカーネル空間診断サービス





Windows 10 1607 Anniversary Update (AU)のカーネル内部解析


 本稿では、AU適応前後の64ビットWindows 10環境で採取いたしましたActive Memory Dumpを次の視点から本「IT談話館」の独自解析コードで解析し、Windows 10の内部変遷を調査しています。  本稿では、プロセス間の親子関係のみの解析結果を紹介しておりますから、より詳細な内部解析にご興味をお持ちの方は、本「IT談話館」の次のような記事に目を通されるとよろしいかもしれません。プロセス間の親子関係は、セキュリティー確保やアプリケーション開発では、これまで以上に重要な意味を持ってきております。  まずは、AU適応前のWindows 10 Systemプロセスの親子関係から。
0: kd> vertarget
Windows 10 Kernel Version 10586 MP (2 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 10586.306.amd64fre.th2_release_sec.160422-1850
Machine Name:
Kernel base = 0xfffff801`b640d000 PsLoadedModuleList = 0xfffff801`b66ebcd0
Debug session time: Mon Jun 13 10:44:34.419 2016 (UTC + 9:00)
System Uptime: 1 days 22:04:59.017

0xFFFFE000A9A9F700	ParentId->0004	System
	01	0xFFFFE000AB153040	ParentId->0004	ChildId->0150	smss.exe
 Systemプロセスは、セッションマネージャープロセス「smss.exe」を起動しています。次に、同じ解析コードを実行し、AU適応後のWindows 10 Systemプロセスの親子関係を調査してみます。
1: kd> vertarget
Windows 10 Kernel Version 14393 MP (2 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 14393.0.amd64fre.rs1_release.160715-1616
Machine Name:
Kernel base = 0xfffff802`4161c000 PsLoadedModuleList = 0xfffff802`41921060
Debug session time: Sat Aug  6 11:20:38.904 2016 (UTC + 9:00)
System Uptime: 0 days 1:54:36.603

0xFFFFDF83EC2A9040	ParentId->0004	System
	01	0xFFFFDF83ED891780	ParentId->0004	ChildId->0138	smss.exe
	02	0xFFFFDF83EF094040	ParentId->0004	ChildId->0a04	MemCompression
 ご覧のように、Systemプロセスはセッションマネージャープロセス「smss.exe」に加え、「MemCompression」という名称のプロセスを起動しています。このプロセスは、次のように、Systemプロセスや「smss.exe」プロセスと同じように、Sessionオブジェクトを持っていません。
1: kd> dt _eprocess 0xFFFFDF83EC2A9040 -y session
ntdll!_EPROCESS
   +0x340 SessionProcessLinks : _LIST_ENTRY [ 0x00000000`00000000 - 0x00000000`00000000 ]
   +0x400 Session : (null) 

1: kd> dt _eprocess 0xFFFFDF83ED891780 -y session
ntdll!_EPROCESS
   +0x340 SessionProcessLinks : _LIST_ENTRY [ 0x00000000`00000000 - 0x00000000`00000000 ]
   +0x400 Session : (null)

1: kd> dt _eprocess 0xFFFFDF83EF094040 -y session
ntdll!_EPROCESS
   +0x340 SessionProcessLinks : _LIST_ENTRY [ 0x00000000`00000000 - 0x00000000`00000000 ]
   +0x400 Session : (null)
 通常のプロセスは、次のように、Sessionオブジェクトを持っています。
 
1: kd> dt _eprocess 0xFFFFDF83EEF56780 -y session
ntdll!_EPROCESS
   +0x340 SessionProcessLinks : _LIST_ENTRY [ 0xffffdf83`edf71ac0 - 0xffffdf83`eef58ac0 ]
   +0x400 Session : 0xffffc980`f9910000 _MM_SESSION_SPACE
 「MemCompression」プロセスの詳細な解析は本稿では割愛します。次に、サービスコントロールマネージャープロセス「services.exe」の親子関係を見てみます。
0: kd> vertarget
Windows 10 Kernel Version 10586 MP (2 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 10586.306.amd64fre.th2_release_sec.160422-1850
Machine Name:
Kernel base = 0xfffff801`b640d000 PsLoadedModuleList = 0xfffff801`b66ebcd0
Debug session time: Mon Jun 13 10:44:34.419 2016 (UTC + 9:00)
System Uptime: 1 days 22:04:59.017

0xFFFFE000ABBB4380	ParentId->0284	services.exe
	01	0xFFFFE000ABBF6840	ParentId->0284	ChildId->02ec	svchost.exe
	02	0xFFFFE000AB2763C0	ParentId->0284	ChildId->0354	svchost.exe
	03	0xFFFFE000ABBE4840	ParentId->0284	ChildId->0208	svchost.exe
	04	0xFFFFE000ABBE6840	ParentId->0284	ChildId->0210	svchost.exe
	05	0xFFFFE000ABBE0840	ParentId->0284	ChildId->03bc	svchost.exe
	06	0xFFFFE000AC55C840	ParentId->0284	ChildId->04f8	svchost.exe
	07	0xFFFFE000AAE5B080	ParentId->0284	ChildId->0500	svchost.exe
	08	0xFFFFE000AC55A840	ParentId->0284	ChildId->0508	svchost.exe
	09	0xFFFFE000AB85D840	ParentId->0284	ChildId->054c	svchost.exe
	10	0xFFFFE000ABBDA840	ParentId->0284	ChildId->07c8	spoolsv.exe
	11	0xFFFFE000A9A99080	ParentId->0284	ChildId->067c	svchost.exe
	12	0xFFFFE000AC7A7840	ParentId->0284	ChildId->078c	svchost.exe
	13	0xFFFFE000AC7A5840	ParentId->0284	ChildId->07b0	armsvc.exe
	14	0xFFFFE000ABD1A840	ParentId->0284	ChildId->004c	svchost.exe
	15	0xFFFFE000ABD16840	ParentId->0284	ChildId->0774	mqsvc.exe
	16	0xFFFFE000ABDA7840	ParentId->0284	ChildId->0888	svchost.exe
	17	0xFFFFE000AC795080	ParentId->0284	ChildId->08a4	Sysmon.exe
	18	0xFFFFE000ABDA3840	ParentId->0284	ChildId->08c8	MsMpEng.exe
	19	0xFFFFE000ABEF3840	ParentId->0284	ChildId->0a80	svchost.exe
	20	0xFFFFE000AAE29840	ParentId->0284	ChildId->0518	SearchIndexer.
	21	0xFFFFE000AC197300	ParentId->0284	ChildId->1008	svchost.exe
	22	0xFFFFE000AA584080	ParentId->0284	ChildId->13f4	svchost.exe
	23	0xFFFFE000AD2F6540	ParentId->0284	ChildId->0ba4	svchost.exe
	24	0xFFFFE000AD2AE840	ParentId->0284	ChildId->059c	NisSrv.exe
	25	0xFFFFE000AD5D7840	ParentId->0284	ChildId->0ca8	TrustedInstall
	26	0xFFFFE000AAA8F5C0	ParentId->0284	ChildId->10ac	WmiApSrv.exe
 AU適応以前は、26個のサービスを起動しています。AU適応後のサービスはどのように変化するでしょうか。
1: kd> vertarget
Windows 10 Kernel Version 14393 MP (2 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 14393.0.amd64fre.rs1_release.160715-1616
Machine Name:
Kernel base = 0xfffff802`4161c000 PsLoadedModuleList = 0xfffff802`41921060
Debug session time: Sat Aug  6 11:20:38.904 2016 (UTC + 9:00)
System Uptime: 0 days 1:54:36.603

0xFFFFDF83EE54A780	ParentId->028c	services.exe
	01	0xFFFFDF83EE544780	ParentId->028c	ChildId->0320	svchost.exe
	02	0xFFFFDF83EEAE3780	ParentId->028c	ChildId->0370	svchost.exe
	03	0xFFFFDF83EEAD9780	ParentId->028c	ChildId->0118	svchost.exe
	04	0xFFFFDF83EEADB780	ParentId->028c	ChildId->0194	svchost.exe
	05	0xFFFFDF83EEAD7780	ParentId->028c	ChildId->01e8	svchost.exe
	06	0xFFFFDF83EEACB780	ParentId->028c	ChildId->04c0	svchost.exe
	07	0xFFFFDF83EEAC9780	ParentId->028c	ChildId->04c8	svchost.exe
	08	0xFFFFDF83EEC33180	ParentId->028c	ChildId->04f4	svchost.exe
	09	0xFFFFDF83EED16780	ParentId->028c	ChildId->0620	svchost.exe
	10	0xFFFFDF83EDF7A780	ParentId->028c	ChildId->06bc	svchost.exe
	11	0xFFFFDF83EEE27780	ParentId->028c	ChildId->0734	spoolsv.exe
	12	0xFFFFDF83EEE17780	ParentId->028c	ChildId->0608	svchost.exe
	13	0xFFFFDF83EEE13780	ParentId->028c	ChildId->0808	svchost.exe
	14	0xFFFFDF83EEE11780	ParentId->028c	ChildId->0810	svchost.exe
	15	0xFFFFDF83EEF71440	ParentId->028c	ChildId->08b4	svchost.exe
	16	0xFFFFDF83EEF64780	ParentId->028c	ChildId->08e0	Sysmon.exe
	17	0xFFFFDF83EEF62780	ParentId->028c	ChildId->0900	mqsvc.exe
	18	0xFFFFDF83EEF58780	ParentId->028c	ChildId->0984	svchost.exe
	19	0xFFFFDF83EEF56780	ParentId->028c	ChildId->0998	MsMpEng.exe
	20	0xFFFFDF83EDF71780	ParentId->028c	ChildId->08d8	svchost.exe
	21	0xFFFFDF83EF361780	ParentId->028c	ChildId->0240	NisSrv.exe
	22	0xFFFFDF83EE355780	ParentId->028c	ChildId->0d44	SearchIndexer.
	23	0xFFFFDF83EC711780	ParentId->028c	ChildId->0ef8	svchost.exe
 サービス数が3個ほど減っているようです。特に、「WmiApSrv.exe」サービスの姿がないのが気になります。このサービスは、カーネルレベルでのトレースロガー機能の制御を行っていますから、ロガー数を確認しておきます。
0: kd> vertarget
Windows 10 Kernel Version 10586 MP (2 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 10586.306.amd64fre.th2_release_sec.160422-1850
Machine Name:
Kernel base = 0xfffff801`b640d000 PsLoadedModuleList = 0xfffff801`b66ebcd0
Debug session time: Mon Jun 13 10:44:34.419 2016 (UTC + 9:00)
System Uptime: 1 days 22:04:59.017

	-00: Not Set!
	-01: Not Set!
002	LoggerMode->2800480	LoggerName->Circular Kernel Context Logger
003	LoggerMode->108001c0	LoggerName->Eventlog-Security
004	LoggerMode->10808400	LoggerName->AppModel
005	LoggerMode->10808400	LoggerName->Audio
006	LoggerMode->400000	LoggerName->TCPIPLOGGER
007	LoggerMode->18800180	LoggerName->DefenderApiLogger
008	LoggerMode->188001c0	LoggerName->DefenderAuditLogger
009	LoggerMode->10800180	LoggerName->DiagLog
010	LoggerMode->11800180	LoggerName->EventLog-Application
011	LoggerMode->11800180	LoggerName->EventLog-ForwardedEvents
012	LoggerMode->11800180	LoggerName->EventLog-Microsoft-Windows-Sysmon-Operational
013	LoggerMode->10800180	LoggerName->EventLog-System
014	LoggerMode->800002	LoggerName->LwtNetLog
015	LoggerMode->800002	LoggerName->Microsoft Security Client
016	LoggerMode->800005	LoggerName->Microsoft Security Client OOBE
017	LoggerMode->10808400	LoggerName->NtfsLog
	-18: Not Set!
019	LoggerMode->10800190	LoggerName->UBPM
020	LoggerMode->800082	LoggerName->WdiContextLog
021	LoggerMode->800002	LoggerName->WiFiSession
022	LoggerMode->10800002	LoggerName->umstartup
023	LoggerMode->800002	LoggerName->Terminal-Services-LSM
024	LoggerMode->800002	LoggerName->Terminal-Services-RCM
025	LoggerMode->800002	LoggerName->Terminal-Services-RPC-Client
026	LoggerMode->800002	LoggerName->Terminal-Services-Unified-APIs
027	LoggerMode->800002	LoggerName->Terminal-Services-SessionEnv
028	LoggerMode->800002	LoggerName->Terminal-Services-SessionMsg
029	LoggerMode->800002	LoggerName->Terminal-Services-IP-Virtualization
030	LoggerMode->10800002	LoggerName->UserMgr
031	LoggerMode->10802102	LoggerName->WFP-IPsec Diagnostics
032	LoggerMode->804022	LoggerName->MSMQ
	-33: Not Set!
034	LoggerMode->800002	LoggerName->MpWppTracing-06112016-124057-00000003-ffffffff
035	LoggerMode->8800110	LoggerName->Diagtrack-Listener
 Eventlog-SecurityやEventLog-Systemなどはお馴染みのロガーであり、赤色の2種類のロガーは特別に追加したロガーです。AU適応後のロガー数はどのように変化するでしょうか。
1: kd> vertarget
Windows 10 Kernel Version 14393 MP (2 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 14393.0.amd64fre.rs1_release.160715-1616
Machine Name:
Kernel base = 0xfffff802`4161c000 PsLoadedModuleList = 0xfffff802`41921060
Debug session time: Sat Aug  6 11:20:38.904 2016 (UTC + 9:00)
System Uptime: 0 days 1:54:36.603

	-00: Not Set!
	-01: Not Set!
002	LoggerMode->2800480	LoggerName->Circular Kernel Context Logger
003	LoggerMode->108001c0	LoggerName->Eventlog-Security
004	LoggerMode->10808400	LoggerName->AppModel
005	LoggerMode->10808400	LoggerName->Audio
	-06: Not Set!
007	LoggerMode->18800180	LoggerName->DefenderApiLogger
008	LoggerMode->188001c0	LoggerName->DefenderAuditLogger
009	LoggerMode->10800180	LoggerName->DiagLog
010	LoggerMode->11800180	LoggerName->EventLog-Application
011	LoggerMode->11800180	LoggerName->EventLog-ForwardedEvents
012	LoggerMode->11800180	LoggerName->EventLog-Microsoft-Windows-Sysmon-Operational
013	LoggerMode->10800180	LoggerName->EventLog-System
014	LoggerMode->800002	LoggerName->LwtNetLog
015	LoggerMode->800002	LoggerName->Microsoft Security Client
016	LoggerMode->800005	LoggerName->Microsoft Security Client OOBE
017	LoggerMode->10808400	LoggerName->NtfsLog
	-18: Not Set!
019	LoggerMode->10800190	LoggerName->UBPM
020	LoggerMode->800082	LoggerName->WdiContextLog
021	LoggerMode->800002	LoggerName->WiFiSession
022	LoggerMode->10800002	LoggerName->umstartup
023	LoggerMode->10800002	LoggerName->UserNotPresentTraceSession
024	LoggerMode->10808400	LoggerName->COM
025	LoggerMode->800002	LoggerName->Terminal-Services-LSM
026	LoggerMode->800002	LoggerName->Terminal-Services-RCM
027	LoggerMode->800002	LoggerName->Terminal-Services-RPC-Client
028	LoggerMode->800002	LoggerName->Terminal-Services-Unified-APIs
029	LoggerMode->800002	LoggerName->Terminal-Services-SessionEnv
030	LoggerMode->800002	LoggerName->Terminal-Services-SessionMsg
031	LoggerMode->800002	LoggerName->Terminal-Services-IP-Virtualization
032	LoggerMode->10800002	LoggerName->UserMgr
033	LoggerMode->10802102	LoggerName->WFP-IPsec Diagnostics
034	LoggerMode->804022	LoggerName->MSMQ
035	LoggerMode->800002	LoggerName->MpWppTracing-08062016-092742-00000003-ffffffff
036	LoggerMode->8800110	LoggerName->Diagtrack-Listener
 赤色の2個のロガーなどが追加されています。UserNotPresentTraceSessionという名称のロガーはどのような情報をカーネルレベルで記録しているのかたいへん気になるところですが、本稿では割愛いたします。これらのロガーは、「DKOMベースWindows内部解析技術の適応分野」全般で重要な役割を果たします。その方面にご関心をお持ちの方は、本館の「この記事」などに目を通されるとよろしいかもしれません。

 実務的な解析コードの開発技術の導入をご予定の場合には、所属チーム内でご協議の上、本「IT談話館」の「オンサイトセミナー」の受講をご検討いただけますと幸いでございます。


安価なメモリダンプ解析入門独習講座
DKOMベースWindowsカーネルメモリダンプオンサイト解析サービス 豊田孝のIT談話館 人材育成

Copyright©豊田孝 2004- 2016
本日は2016-08-08です。