検索
特集/連載

Windowsブルースクリーン障害が起きた「CrowdStrikeだけじゃない原因」はこれだWindowsの大規模障害はなぜ起きたのか【前編】

Windows搭載の850万台のPCに発生した、CrowdStrikeに起因するブルースクリーン問題。広範に影響を与えたこの障害は、ソフトウェア更新に内在するさまざまな問題を提起した。

Share
Tweet
LINE
Hatena

関連キーワード

Microsoft(マイクロソフト) | Windows | OS


 MicrosoftのクライアントOS「Windows」搭載のPCにおいて2024年7月19日に発生した世界的な障害は、ソフトウェアの更新に内在するさまざまな問題を呼び起こした。

 Windows搭載の約850万台のPCが「ブルースクリーン」(OSに深刻なエラーが発生した場合の青い画面)になったのは、CrowdStrikeが同社のセキュリティソフトウェア向けに配信した更新用のファイルが原因の一つだったことが分かっている。この障害ではCrowdStrikeだけではなく、Windowsやその他ソフトウェアに関わる問題が浮上した。何が原因だったのかを踏まえて、問題を整理しよう。

原因はCrowdStrikeだけじゃない? Windows障害はなぜ起きたのか

 CrowdStrikeによれば、障害の直接的な原因になったのはセキュリティソフトウェア「CrowdStrike Falcon」のセンサー(エージェント)用に配信される「Rapid Response Content」という設定更新だった。Rapid Response Contentには、“脅威を監視するための機能”を迅速に更新する役割がある。センサーの機能がRapid Response Contentを読み込んだ際、境界外メモリ読み出し(割り当てられたメモリ領域外のデータを読み込むこと)が発生し、ブルースクリーンを発生させることになった。

 Microsoftによれば、障害に巻き込まれた850万台のWindows搭載PCは、全てのWindows搭載PCの1%未満を占めるに過ぎない。だがこの障害は医療業界や運輸産業を含む複数の分野において数日間にわたる混乱を引き起こし、その影響は甚大だった。

 CrowdStrikeは障害発生から約1週間後の2024年7月25日(現地時間)に、センサーの97%が復旧したと発表した。セキュリティ分野の専門家らは、CrowdStrikeの対処が迅速だったことは評価しつつも、それ以前にテストに問題があったと指摘する意見が目立っている。より厳格にテストを実施して段階的に更新を配信していれば、問題がこれほど大規模になる事態は避けられたはずだからだ。

CrowdStrikeのテストプロセスの失敗

 今回のCrowdStrikeの障害では、設定更新の不備が事前に検出されることなく一斉に配信された。これについてセキュリティツールベンダーVeracodeの最高研究責任者であるクリス・エング氏は次のように語る。「今回の障害が示しているのは、ソフトウェアそのものだけではなく品質保証のためのツールにもバグが含まれる可能性があるということだ」。エング氏は、更新を段階的に配布することによって、一部の組織はサービス停止を回避できた可能性があるとも指摘する。

 「ソフトウェア開発のプロセスがより高速で複雑になっていることを考えると、大規模な障害を抑止するためには厳格なテストと複数の安全対策を実施する必要がある」。こう語るのは、セキュリティツールベンダーESETのチーフセキュリティエバンジェリスト、トニー・アンスコム氏だ。更新プログラムを配布する際は、不具合が発生する万が一の場合にも、安全性を確保できるような機能を構築しておく必要があるともアンスコム氏は指摘する。

 今回の障害の影響範囲が広範に及んだのは、CrowdStrikeのセキュリティツールが重要インフラを担う組織において広く採用されていたこととも関係している。アンスコム氏は「重要インフラ分野のさまざまな組織が単一の特定にベンダーに依存している」と語り、採用する製品やサービスにおいて多様性を確保することの重要性を説く。

Windowsのカーネルモードの設計

 VeracodeのCTO(最高技術責任者)兼共同創設者のクリス・ワイソパル氏は、ソフトウェアのテストには慎重さが求められる一方で、「巧妙化する脅威に対抗するためにはソフトウェアを継続的に更新することが重要」という点にも同意する。それを前提して、ワイソパル氏は今回の障害には2つの要因があったと指摘する。

 1つ目は、Windowsのカーネル(OSの中核)でドライバを実行する設計に関する問題だ。ワイソパル氏によれば、Windowsのブルースクリーンはカーネルを動かす権限であるカーネルモードでの不具合によって起こり得る事象だ。同様の問題は、カーネルへのアクセスに制限を設けているAppleのクライアントOS「macOS」では発生しなかった。いずれにしてもシステムのクラッシュ(正常に動作しなくなること)を引き起こす可能性のあるドライバは徹底的にテストする必要がある。

 ワイソパル氏が2つ目の問題として指摘するのは、マルウェア対策ソフトウェアは新たに出てくる脅威に日々対抗するために頻繁に更新しなければならないことだ。「徹底的にテストすることと、頻繁に更新をするという2つの取り組みは相反するものだ」とワイソパル氏は語る。“最善の解決策”はMicrosoftがサードパーティーのドライバを使用する際の設計を見直してシステムがクラッシュしないように変更することだが、「以前に下されたMicrosoftの決断が覆ることは期待できない」と同氏は語る。

複雑に絡み合った原因

 Synopsysのソフトウェアサプライチェーンリスク戦略責任者ティム・マッキー氏も、エング氏と同様に更新を段階的に配布することが大規模なシステム障害を避ける対策の一つになるという点に同意する。一方で障害の原因については「ほとんど場合は複数の要因が絡んでいる」とマッキー氏は語る。CrowdStrikeは、ソフトウェアのテストに関するさまざまな方法を改善する意向だ。同氏は「テストの手法が足りていなかったというよりは、問題が擦り抜ける隙間があったということだ」と指摘する。

  • 不備が検証のプロセスを擦り抜けたこと
  • 更新が一斉に配信されたために一時停止ができなかったこと

 マッキー氏は「ソフトウェアの更新に関わる人はこれら2つの失敗から教訓を得るべきだ」と語る。


 次回は、今回の障害に対するCrowdStrikeの対処を中心に考える。

TechTarget発 先取りITトレンド

米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る