「Windowsメモリダンプ解析サービス」のご案内
豊田孝の「IT談話館」 Windowsメモリダンプ解析を依頼する WinDbgとシステム分析




本記事は、書籍 「インサイド Microsoft Windows」 程度の基礎知識をお持ちの方を想定しています。

ビジネスメニュー



Windowsシステムクラッシュとメモリダンプ解析技術


 WindowsはSaaSとして提供される時代に入り、その内部は頻繁に更新されています。更新内容の多くは、いろいろな事情と理由から、公にされることはほとんどありません。最新のユーザー空間とカーネル空間に関する信頼できる技術情報を取得するには、「時間と予算を投資」し、高度な内部解析技術を習得する必要があります。本「IT談話館」が一般公開する記事は、0dayをはじめとする脆弱性研究者、組み込みシステム開発者、デジタルフォレンジック技術者、あるいは、EDR製品のビジネス関係者に広く読まれているようです。
 Windows 10の短周期の内部更新は、性能向上と互換性維持に加え、ML/DL/AI時代への対応と位置付けられています。簡単に表現すれば、Windows 10はCloudサービスと連携しながらBig Dataを収集・蓄積する「ソフトウェアセンサー」、という役割を担っています。本「IT談話館」は、そのソフトウェアセンサーのユーザー空間とカーネル空間を独自の解析コードで詳しく解析する技術を保有し、「Windowsメモリダンプ解析サービス」を提供しています。
 メモリダンプを解析すると、システム内の「異様な動き」を検出・解析することができます。「異様な動き」の中には、システムパフォーマンスの低下、既存アプリの動作異常、あるいは、セキュリティー脅威なども含まれます。本館サービスをご利用の際には、所属チーム内でご協議の上、「ご連絡」ください。

 セキュリティーの視点からWindows10ソフトウェアセンサーを見た場合、本「IT談話館」の確認範囲では、次のような保護メカニズム階層が考案・実装されています。下記リンクはすべて本館記事を指しています。
  1. Silo/Server Silo
  2. Job
  3. Session
  4. Protected Process
  5. Mandatory Integrity Control(MIC)
  6. Windows API(+CPU)
  7. 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
 この情報は次のような障害データを提供しています。  このクラッシュダンプの解析を依頼された場合、本「IT談話館」」は、多少多めの情報を収集・分析した上で、まず、システムクラッシュ発生当時のシステム概要を把握します。システム概要の把握は、システムクラッシュ原因の特定作業だけではなく、マルウェアやパフォーマンス低下因子の検出・分析作業でも基本中の基本です。さらには、近年ではデジタル犯罪が増えており、「完全メモリダンプ」ベースのデジタルフォレンジックが脚光を浴びています。作業目的が異なりますが、メモリ内部をくわしく解析する点では技術的に共通していますから、クラッシュダンプ解析技術はそのままデジタルフォレンジックに適応できます。

Windowsシステムクラッシュとシステム概要の把握」へ



ビジネスメニュー




本「IT談話館」は書籍 「インサイド Microsoft Windows」 程度の基礎知識をお持ちの方々を想定しています。
Windowsメモリダンプ解析技術開発室

Copyright©豊田孝 2004- 2020
本日は2020-06-01です。