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




 本「IT談話館」一般公開記事は、10年以上の実務経験を持つ上級Windowsエンジニアを想定しています。
 本館は、Windowsカーネル深層を解析し、クラッシュ原因をはじめとするシステム内の「異様な動き」を検出・分析する
超高度な技術と実績を保有しています。



プロフェッショナル向けWindowsシステム分析


 本「IT談話館」の「一般公開記事」は、「Active Memory Dump とカーネルメモリダンプ」の解析結果を基に起草されています。「本館」主筆の「豊田孝」はDKOM(Direct Kernel Object Manipulation)ベースの解析手法の第一人者であり、Windowsカーネル空間の解析分野では世界の先頭を走っています。

 現在、セキュリティー問題を無視することはできません。Microsoft社側の負担だけではなく、同社製品の利用者側の負担も増しています。困ったことではありますが、当面避けられません。セキュリティーの視点から「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システム分析作業にはツールが必要になりますが、本「IT談話館」は、米Microsoftから無料で提供されているWinDbgを採用しています。WinDbgはかつてはVisual Stadio(VS)の補完ツールのように表現されたことがありました。つまり、デバッグ作業の90%はVS環境で行い、それでも手に負えない場合にだけWinDbg環境で行う、という開発現場の雰囲気が主流でした(本館主筆豊田孝の監訳書籍を参照)。

 WinDbgはこれまで「強力」だが「敷居の高い」カーネルデバッガー、という位置付けでした。WindowsがSaaSとして提供されている現在、この雰囲気は変質し、世界的に活動するWindows先端技術者はほぼ例外なくWinDbgを起動し、内部解析を行っています。

 本「IT談話館」は、20年以上前から、WinDbgを単なるデバッガーではなく、新旧のWindowsシステムを構成するユーザー空間とカーネル空間を徹底解析する、高度なシステム分析ツールと位置付けています。本館のこれまでの経験を振り返ると、Windowsカーネル内部はすでにBig Dataの世界であり、データ収集技術に加え、作業目的に合致した分析視点を設定する能力と、Big Dataを絞り切り、その絞り切ったDataを分析する(データサイエンス)能力が要求されています。「絞り切り+分析」(データサイエンス)工程では諸現象に潜む現象固有の「パターン」が見えてきます。

 WinDbgを起動し、Windowsシステム分析を行うと、次のような今日的な課題と問題を検出・解決することができます。

Windowsメモリダンプ解析依頼申し込み
解析内容

  • パフォーマンス低下因子
  • システムクラッシュ発生原因
  • アプリケーション性能評価
  • 長期潜伏型マルウェアの検出と分析
  • メモリフォレンジックス

 Windowsシステムコード自体がインターネット越しに随時更新されている現在、豊富な経験を誇るベテラン技術者でも、不意を打たれたように、なぜ?、とつぶやく回数が増えています。現在の「私たち」に必要とされるのは、目の前の問題に対処できる一過性のハウツー知識に加え、予想外の局面に含まれる、不明な要素を自力で解明するシステム分析能力です。ここでの「私たち」の中には米Microsoft社の上級エンジニアーも含まれます(別稿参照)。

 短周期で繰り返される内部変更に関する情報は、今後も外部には公開されることはないでしょう。また、更新範囲が多岐に渡るため、掌握も困難を極めます。Windowsの信頼できる最新情報を入手するカギは、実は、メモリ内に埋まっています。次の初歩的なWinDbgコマンドライン操作は、WinDbgがC++とMASMの2種類の発想をサポートし、高度な内部解析とメモリフォレンジックを可能としていることを明確に示しています。
0: kd> r? $t0 = @@c++((nt!_kthread*)@$thread)
0: kd> r? $t1 = @@c++((nt!_eprocess*)@$t0->Process)
0: kd> r $t2 = @@c++(&@$t1->ImageFileName)
0: kd> .printf "%ma\r\n", @$t2
Idle
0: kd> r? $t0 = @@c++((nt!_kthread*)@$thread)
0: kd> r? $t1 = @@c++((nt!_eprocess*)@$t0->Process)
0: kd> r $t2 = @@masm(@$t1+0x438)
0: kd> .printf "%ma\r\n", @$t2
Idle
 このコードは、一つのアドレスが分かれば、それを頼りにC++とMASMの視点からメモリ内部を「詳細、かつ、効率的」に解析できることを示しています。本「IT談話館」はこの強力な機能を活用し、たとえば、次のページで取り上げているように、Google社のProjectZeroチームが公開する 「このようなブログ」を一種の仕様書と見立て、独自の解析コードを開発し、ブログ内容の賞味期限とともに、日々繰り返されるWindowsシステムの内部変遷を確認しています。インターネット上に公開される最近の技術情報の寿命は短命化し、事実を語っているわけではありません。検証作業が必須となっています。今の時代、この作業は避けて通れません。

次へ




ビジネスメニュー




「Windowsメモリダンプ解析サービス」のご案内
Windowsメモリダンプ解析技術

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