Windowsサーバクラッシュの3大原因とその回避策(前編)
古いウイルス対策ソフトウェアによるWindowsサーバクラッシュ
Windowsサーバをクラッシュさせる3つの原因について詳しく説明し、それらの回避に必要なベストプラクティスを紹介する。
Windowsサーバのクラッシュにはさまざまなタイプがあるが、大部分のクラッシュの原因は3つに大別される。すなわち「古いウイルス対策ソフトウェア」「互換性のないストレージドライバ」「多過ぎるフィルタドライバ」だ。私はこの10年間に世界中から依頼を受けて1000件近くのクラッシュを分析してきたが、その経験からいえるのは、これらは回避すべき問題だということだ。
以下では、サーバをクラッシュさせるこれら3つの一般的な原因について詳しく説明し、それらの回避に必要なベストプラクティスを紹介する。
古いウイルス対策ソフトウェア
Windowsサーバのクラッシュは、「古いウイルス対策ソフトウェアが原因で発生する」ものが断然多い。ウイルス対策ソフトウェアはいずれも、I/O(読み書き)要求を途中で受信して付加的なチェックを行うデバイスドライバ(より具体的に言えば、“フィルタドライバ”)を使用する。ウイルス対策ドライバは、定義ファイルに含まれる既知のウイルスのパターンと検査対象ファイルを照合する。感染ファイルを検出し、感染が広がらないようにするためだ。
フィルタドライバは、低レベルのカーネル関数とデータ構造を介してOSとやりとりするカーネルモードコードから成る。これらの関数とデータ構造には、あらかじめ定義された一連の引数とデータ型が含まれている。これらは、対応するデバイスドライバからの呼び出し時に、存在すると想定されている引数とデータ型だ。関数に誤ったデータ型や不正な数の引数が渡されると、エラーが発生し、カーネルモードでシステムクラッシュを引き起こす可能性がある。
この問題は、サービスパックやメジャーアップグレードなどによるOSのバージョン変更に伴って、こうしたカーネル関数やデータ構造が開発者によって変更された場合に起こる。Microsoftは、OSに変更を加えるに当たっては、自社のデバイスドライバの互換性テストを常に適切に行っている。しかし、同社がサードパーティー製デバイスドライバの互換性を保証するためのテストを行っていないのは明らかだ。このため、古いウイルス対策ドライバがこうしたカーネル関数やデータ構造の変更と衝突すると、最終的にシステムをクラッシュさせてしまう。他のフィルタドライバもこの問題を発生させやすいが、ウイルス対策ドライバがこの問題の最大の犯人だ。
例を見てみよう。
このクラッシュは、「Stop 0x8Eエラー(KERNEL_MODE_EXCEPTION_NOT_HANDLED)」が発生し、バグチェックが実行されたことによるものだった。Windowsデバッガで「!analyze -v」コマンドを入力すると、以下のスタックパターンが表示される。スタックを末尾から読むと、NtCreateFileの呼び出しに関連するフィルタドライバbuggydrvが、バグチェックを生成させ、システムをシャットダウンさせたことが分かる(この解説の目的は犯人探しではないので、このドライバの名前は変えてある)。「!lmi buggydrv」コマンドにより、このドライバは2006年に作られたことが分かる。だが、OSはWindows Server 2003 SP2であり、これがリリースされたのは2007年だ。これにより、この古いウイルス対策ドライバは、この新しいバージョンのOSでテストされていなかったことが分かる。
nt!KeBugCheckEx+0x1b
nt!KiDispatchException+0x3a2
nt!CommonDispatchException+0x4a
nt!Kei386EoiHelper+0x186
buggydrv+0x13059 ←クラッシュを引き起こしたフィルタドライバ
buggydrv+0x8390
buggydrv+0x8809
buggydrv+0x2940
nt!IofCallDriver+0x45
nt!IopParseDevice+0xa35
nt!ObpLookupObjectName+0x5b0
nt!ObOpenObjectByName+0xea
nt!IopCreateFile+0x447
nt!IoCreateFile+0xa3
nt!NtCreateFile+0x30 ←CreateFileを呼び出すシステムコール
nt!KiFastCallEntry+0xfc
この例のクラッシュは、ベンダーが既知の問題として文書化済みで、対処策としてウイルス対策ソフトウェアの新バージョンを提供していた。実際、ユーザーが遭遇するWindowsサーバクラッシュの大部分は、他の誰かが既に経験しており、通常はその解決策が文書化され、インターネットで公開されている。このため、OSを更新するときには(サービスパックで更新するときも)、必ず事前に使っているソフトウェアの提供元にソフトウェアが更新されていないかを確認しなければならない。このことを覚えておくことが重要だ。
次回は、クラッシュの原因となる残りの2つでる「互換性のないストレージドライバ」「多過ぎるフィルタドライバ」に対する解決策を紹介する。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣 -
製品資料
[サイボウズ株式会社] AIが「わざわざ使うツール」になっていない? 業務で自然に使う導線にする秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
2
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
3
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
4
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
5
「中堅・中小企業のネットワーク・セキュリティ運用実態」に関するアンケート
-
6
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
7
「Wi-Fi 7」経由でWindowsが乗っ取られる? 最高権限奪取の恐怖
-
8
情報漏えいはなぜ繰り返されるのか 今すぐ見直すべき「境界」
-
9
情シスの約8割が転職や退職を意識 調査で分かった“辞めたくなる最大の理由”
-
10
【漫画付き】ひとり情シス協会が明かす、RAG導入でしくじる企業「2つの共通点」
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
4
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
5
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
6
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
生成AIを開発に導入しても効果が見えない? 実証実験で分かった成果と課題
-
9
経産省DX指針から読み解く、受発注業務デジタル化ロードマップ
-
10
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー