2024年7月19日に「世界的にWindowsがブルースクリーンで停止または再起動を繰り返す」という現象が発生しているとの情報が入りました。私の環境ではまだ発生していませんが、クラウドストライクという会社のサービスが影響を及ぼしている可能性があるとの情報を目にしました。詳細な情報はまだ把握できていませんが、とりあえず「突然Windowsがブルースクリーンで落ちる可能性があるため、現在作業中のファイルは保存しておくように」とお伝えしていました。
※ 画像はイメージです。実際に今回発生した画面ではありません。
簡単に事象を説明すると、クラウドストライクというセキュリティ関連の企業が提供するFalconというセキュリティソフトが不具合を起こし、それが原因でWindowsが停止するほどの処理を行ってしまいました。その結果、このソフトウェアを使用しているWindowsパソコンはブルースクリーンでダウンしてしまったという状況になります。
クラウドストライクという会社のサービスは、企業向けに提供されており、使用しているWindowsパソコンは約850万台とされています。航空会社などの企業でも採用されており、航空会社では欠航が発生するほどの影響を受けています。
では、どうしてブルースクリーンになってしまうほどの事態になったのかということをいくつかのエンジニアの方が解説しています。
その原因はNull Pointer Exception、いわゆる「ぬるぽ」です。この問題は、プログラムが無効なメモリ領域、具体的には0x9c (156)番地を読み取ろうとしたときに発生します。このメモリ領域は無効であるため、Windowsは強制終了を余儀なくされます。
このプログラムはシステムドライバというもので、パソコンへの特権アクセスが可能です。通常のプログラムであれば、問題のあるプログラムだけが強制終了するだけですが、システムドライバは回復させることができません。そのため、Windows全体が停止します。
プログラマーは、このような問題を防ぐために注意を払う必要があります。また、チェックツールというものも存在し、これを使用することで問題を防ぐことが可能です。しかし、この問題は、チェックが漏れたか、またはチェックされなかったために、クラウドストライク社が本番環境に導入してしまったと考えられます。
一部の専門家は、C++を使用している現状について言及し、これからはRustなどの最新の言語を使用するべきではないかと提案しています。Rustは安全性の高い言語であり、Windowsカーネルでも使用が始まっています。これにより、上記のような問題を防ぐことが期待されます。
今回の件において、マイクロソフトには落ち度はありません。もちろん、現在のWindowsの設計に異議を唱える方もいるでしょう。しかし、Windowsというシステムで大きな被害が出てしまったこと、そしてWindows稼働システムの1%にも満たないとはいえ、850万台のWindowsパソコンやサーバーに影響が出ていることから、マイクロソフトはWebサイトで対応方法を公開し、今後もサポートを続けることを表明しています。
Helping our customers through the CrowdStrike outage – The Official Microsoft Blog