オンサイトセミナー
豊田孝の「IT談話館」 Windowsメモリダンプ解析を依頼する Windowsクラッシュダンプ解析技術




メモリ解析サービス



Windows 10 1709とカーネル内部セキュリティー保護


 Windows 8から導入された「SetProcessMitigationPolicy」API関数を使用すると、各種セキュリティー保護機能を有効にすることができます。このAPI関数の仕様はMicrosoft社の「このページ」から公開されています。セキュリティーの観点からは、状況に応じてセキュリティー保護機能を有効/無効にできる利点は大きいといってよろしいと思います。本稿では、Windows 10環境で採取されたActive Memory Dumpを本「IT談話館」の「独自解析コード」で解析し、各種保護機能とプロセスオブジェクトの関係を解析しています。

 バージョン1709から導入されたMitigationフラグの値と各プロセスオブジェクトの関係概要は次のようになっています。
MitigationFlags->0x00000060	System
MitigationFlags->0x00000121	smss.exe
MitigationFlags->0x00000121	csrss.exe
MitigationFlags->0x00000021	wininit.exe
MitigationFlags->0x000001a1	services.exe
MitigationFlags->0x00000021	lsass.exe
MitigationFlags->0x00000021	WUDFHost.exe
MitigationFlags->0x01000821	svchost.exe
MitigationFlags->0x00004039	fontdrvhost.ex
MitigationFlags->0x01000821	svchost.exe
MitigationFlags->0x01000821	svchost.exe
[---]
MitigationFlags->0x01000821	svchost.exe
MitigationFlags->0x01000821	svchost.exe
MitigationFlags->0x00000040	MemCompression
MitigationFlags->0x01000821	svchost.exe
MitigationFlags->0x01000821	svchost.exe
[---]
MitigationFlags->0x00000021	SecurityHealth
MitigationFlags->0x00000000	armsvc.exe
MitigationFlags->0x008800a1	MsMpEng.exe
[---]
MitigationFlags->0x01000821	svchost.exe
MitigationFlags->0x00000121	csrss.exe
MitigationFlags->0x00000021	winlogon.exe
MitigationFlags->0x00004039	fontdrvhost.ex
MitigationFlags->0x00000021	dwm.exe
MitigationFlags->0x00000021	sihost.exe
MitigationFlags->0x01000821	svchost.exe
MitigationFlags->0x01000821	svchost.exe
MitigationFlags->0x00000021	taskhostw.exe
MitigationFlags->0x00000001	explorer.exe
MitigationFlags->0x00000039	ShellExperienc
MitigationFlags->0x00000039	SearchUI.exe
MitigationFlags->0x000000b1	RuntimeBroker.
MitigationFlags->0x000000b1	RuntimeBroker.
MitigationFlags->0x00000021	ctfmon.exe
MitigationFlags->0x00000021	MSASCuiL.exe
[---]
MitigationFlags->0x00000021	chrome.exe
MitigationFlags->0x00000021	chrome.exe
MitigationFlags->0x00000021	chrome.exe
MitigationFlags->0x00a900a1	chrome.exe
MitigationFlags->0x00a910a1	chrome.exe
MitigationFlags->0x0cad01bd	dllhost.exe
MitigationFlags->0x00000021	ApplicationFra
MitigationFlags->0x00800539	MicrosoftEdge.
MitigationFlags->0x00000021	browser_broker
MitigationFlags->0x01000821	svchost.exe
MitigationFlags->0x00a80039	Windows.WARP.J
MitigationFlags->0x000000b1	RuntimeBroker.
MitigationFlags->0x00a8c03b	MicrosoftEdgeC
MitigationFlags->0x000000b1	RuntimeBroker.
MitigationFlags->0x00a8053b	MicrosoftEdgeC
MitigationFlags->0x00a8c53b	MicrosoftEdgeC
MitigationFlags->0x000000b1	RuntimeBroker.
MitigationFlags->0x00a8053b	MicrosoftEdgeC
MitigationFlags->0x00a8c53b	MicrosoftEdgeC
MitigationFlags->0x01000821	svchost.exe
MitigationFlags->0x00a8c53b	MicrosoftEdgeC
MitigationFlags->0x00000021	ImeBroker.exe
MitigationFlags->0x1c000021	SystemSettings
[---]
 Mitigationフラグは、2017年秋に公開されたCreatorと呼ばれるWindows 10で用意されたフラグであり、それ以前のWindows 10には存在しません。ただし、フラグを構成する個々のビットは古いWindows 10のプロセスオブジェクトにも存在していましたが、どちらかといえば、取り急ぎ追加された印象があり、あちこちに散乱している状態でした。Mitigationフラグは散乱していた複数ビットを一か所にかき集め、整理する方向で構成されています。この整理はちょっとした散乱状態の解消といった意味合いも否定できませんが、将来の仕様変更や保守の効率化と費用軽減に寄与することは間違いないでしょう。

 上の情報の中には、「MitigationFlags->0x00000000 armsvc.exe」などのデータが含まれ、セキュリティー保護機能が一切有効となっていないプロセスも複数存在していることが分かります。そのようなプロセスの多くは、旧式の32ビットプロセスです。外部からの攻撃の入り口になる恐れもありますから、アプリケーションの導入時には注意したいところです。
 また、重要なプロセスであるSystemプロセスは「MitigationFlags->0x00000060」というフラグ値を持ち、多くの(余分な)保護機能を有効としていません。このプロセスに何らかの不具合が発生した場合は、「Idleプロセス」に制御が移り、基本的には、システムがクラッシュすると考えてよいでしょう。赤色で強調している数値は、現在のブラウザ市場を二分しているGoogle社のChromeとMicrosoft社のEdgeそれぞれにおけるWin32k入力機能を抑制制御するフラグの値です。フラグ値をビット分解してみますと、2つのブラウザはWin32k入力機能を次のように制御していることが分かります。


無料登録申し込みメールの送信
閲覧情報は自動返信されます。



0: kd> vertarget
Windows 10 Kernel Version 16299 MP (2 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 16299.15.amd64fre.rs3_release.170928-1534
Machine Name:
Kernel base = 0xfffff802`e5a99000 PsLoadedModuleList = 0xfffff802`e5dfafb0
Debug session time: Thu Nov 30 09:08:09.753 2017 (UTC + 9:00)
System Uptime: 1 days 1:29:36.413

Disabled->0	AuditDisabled->0	EnableFilter->0	AuditFiltered->0	chrome.exe
Disabled->0	AuditDisabled->0	EnableFilter->0	AuditFiltered->0	chrome.exe
Disabled->0	AuditDisabled->0	EnableFilter->0	AuditFiltered->0	chrome.exe
Disabled->0	AuditDisabled->0	EnableFilter->0	AuditFiltered->0	chrome.exe
Disabled->1	AuditDisabled->0	EnableFilter->0	AuditFiltered->0	chrome.exe
Disabled->0	AuditDisabled->0	EnableFilter->0	AuditFiltered->0	MicrosoftEdge.
Disabled->0	AuditDisabled->0	EnableFilter->1	AuditFiltered->1	MicrosoftEdgeC
Disabled->0	AuditDisabled->0	EnableFilter->0	AuditFiltered->0	MicrosoftEdgeC
Disabled->0	AuditDisabled->0	EnableFilter->1	AuditFiltered->1	MicrosoftEdgeC
Disabled->0	AuditDisabled->0	EnableFilter->0	AuditFiltered->0	MicrosoftEdgeC
Disabled->0	AuditDisabled->0	EnableFilter->1	AuditFiltered->1	MicrosoftEdgeC
Disabled->0	AuditDisabled->0	EnableFilter->1	AuditFiltered->1	MicrosoftEdgeC
 赤色のデータは次のようなことを示しています。  「このブログ」を読んでみると、Google社とMicrosoft社の2つのブラウザチームはお互いの開発姿勢を強く意識しながら作業していることが分かります。Win32k入力機能の無効化は、CFG、DEP、フォントロード抑制制御、ダイナミックコード展開制御などともにセキュリティー保護オプションを構成し、Windows 10カーネル層におけるオプション構成と実装はビルド単位で異なっています。つまり、一口にWindows 10といいましても、出荷されるカーネルはビルド単位で(時には、劇的に)異なります。

 本「IT談話館」は、高度な内部解析技術を保有し、Windowsクラッシュダンプ、中でもカーネルメモリダンプとWindows 10 Active Memory Dumpの「メモリダンプ解析ビジネス」を展開しております。新しく導入されたAPI関数とカーネルとの本質的な関係やシステムへの影響の評価なども解析工程の一部として行っています。


サービスメニュー
Windowsクラッシュダンプ解析サービス Windowsメモリフォレンジック

Copyright©豊田孝 2004- 2017
本日は2017-12-13です。