本「
IT談話館」一般公開記事は、10年以上の実務経験を持つ上級Windowsエンジニアを想定しています。
本館は、Windowsカーネル深層を解析し、クラッシュ原因をはじめとするシステム内の「異様な動き」を検出・分析する
超高度な技術と実績を保有しています。
Windowsシステムクラッシュとメモリダンプ解析技術
本「IT談話館」の「一般公開記事」は、「Active Memory Dump とカーネルメモリダンプ」の解析結果を基に起草されています。「本館」主筆の「豊田孝」はDKOM(Direct Kernel Object Manipulation)ベースの解析手法の第一人者であり、Windowsカーネル空間の解析分野では世界の先頭を走っています。
現在、セキュリティー問題を無視することはできません。Microsoft社側の負担だけではなく、同社製品の利用者側の負担も増しています。困ったことではありますが、当面避けられません。セキュリティーの視点から「Windows10ソフトウェアセンサー」を見た場合、本「IT談話館」の確認範囲では、「カーネル層保護ロジック」に加え、次のような保護メカニズム階層が考案・実装されています。下記リンクはすべて本館記事を指しています。
- Silo/Server Silo
- Job
- Session
- Protected Process
- Mandatory Integrity Control(MIC)
- Windows API(+CPU)
- CPU
ソフトウェアセンサーはWindowsカーネルアーキテクチャーの上位に位置する概念であり、Windowsデバイス(Clientマシン)とMicrosoftクラウド(ML/DL/AIシステム)を連結しています。Windows 10のソフトウェアセンサー化に興味のある方は、本「IT談話館」の別稿「Windowsセキュリティーメカニズム」に目を通すとよろしいかもれません。
本稿ではWindowsのクラッシュダンプの解析技術を取り上げます。クラッシュダンプを解析する場合、多くのビジネス組織では「!analyze -v」コマンドを実行していると思いますが、本稿ではそこから一歩奥に入った作業工程を取り上げています。
Windowsシステムは性能限界に達すると動作を停止し、指定されたクラッシュダンプを作成します。ただ、性能限界と一口に言っても、サードバーティー製デバイスドライバーの不具合や外部から投下された低品質マルウェアの動作異常をはじめとする外的因子からプロセスやスレッドを管理するカーネル内部機能の仕様限界も含まれ、正確な定義は存在しません。
本稿では、次のような「カーネルメモリダンプ」を解析対象とします。
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck 133, {0, 501, 500, 0}
*** ERROR: Module load completed but symbols could not be loaded for netr28ux.sys
Probably caused by : netr28ux.sys ( netr28ux+8bd3 )
Followup: MachineOwner
---------
0: kd> vertarget
Windows 8.1 Kernel Version 9600 MP (4 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 9600.17328.amd64fre.winblue_r3.140827-1500
Machine Name:
Kernel base = 0xfffff802`50871000 PsLoadedModuleList = 0xfffff802`50b47370
Debug session time: Fri Nov 7 14:50:46.222 2014 (UTC + 9:00)
System Uptime: 0 days 21:21:18.953
この情報は次のような障害データを提供しています。
- ダンプの採取環境は「64ビットWindowsバージョン8.1」である
- 「Windowsバージョン8.1」は4コアーのハードウェア環境にインストールされている
- クラッシュ発生日時は「2014年11月7日14時50分」である
- バグチェックコードは「0x133」である
- 想定されるクラッシュ原因は「netr28ux+8bd3」コードにある
- 「netr28ux+8bd3」コードはデバイスドライバー「netr28ux.sys」の内部を指している
このクラッシュダンプの解析を依頼された場合、本「IT談話館」」は、多少多めの情報を収集・分析した上で、まず、システムクラッシュ発生当時のシステム概要を把握します。システム概要の把握は、システムクラッシュ原因の特定作業だけではなく、マルウェアやパフォーマンス低下因子の検出・分析作業でも基本中の基本です。さらには、近年ではデジタル犯罪が増えており、「完全メモリダンプ」ベースのデジタルフォレンジックが脚光を浴びています。作業目的が異なりますが、メモリ内部をくわしく解析する点では技術的に共通していますから、クラッシュダンプ解析技術はそのままデジタルフォレンジックに適応できます。