「Microsoft Windows」は、全世界の10億台以上のPCと膨大な数のサーバーに搭載されており、その多くが顧客に直接サービスを提供する施設で重要な役割を果たしている。では、信用あるソフトウェアプロバイダーが配信したアップデートによって、それらのPCが急に機能を停止したら、何が起きるだろうか。
米国時間2024年7月19日の時点で、その問いに対する答えは分かっている。大混乱の発生だ。
今回のケースでの信用あるソフトウェア開発会社は、CrowdStrike Holdingsという企業だった。同社はかつて、米民主党全国委員会が所有するサーバーの2016年のハッキング事件を分析したセキュリティ企業として名を馳せた。今やそれは古い思い出にすぎない。CrowdStrikeは、史上最大のIT障害を引き起こした企業として、永遠に知られることになるからだ。この障害により、フライトの欠航、一部の銀行システムへのアクセス遮断、大規模医療ネットワークの障害、少なくとも1つのニュースネットワークの放送停止といった影響が発生した。
MicrosoftはCrowdStrikeのアップデートの影響を受けたWindowsデバイスの数を850万台と見積もっている。これは全世界のWindowsインストールベースのごく一部だが、MicrosoftのエンタープライズおよびOSセキュリティ担当バイスプレジデントのDavid Weston氏は、「広範な経済的および社会的影響が発生したことは、多数の重要なサービスを運営する企業がCrowdStrikeを使用しているということを示している」と指摘した。Reutersは「Fortune 500企業の半数以上と、米国の最高サイバーセキュリティ機関である米サイバーセキュリティ・インフラセキュリティ庁(CISA)など多数の政府機関が、同社のソフトウェアを使用している」と報じた。
何が起きたのか
システムを外部の攻撃から保護するためのセキュリティソフトウェアを販売するCrowdStrikeが、「Falcon Sensor」ソフトウェアを実行する世界中の多数のPCに、欠陥のある「センサー設定の更新」を配信した。CrowdStrikeによると、その更新は「チャネルファイル」であり、新たに観測されたサイバー攻撃者の悪意ある活動を特定する機能があったという。
更新ファイルには.sys拡張子が付いていたが、それ自体はカーネルドライバーではなかった。このファイルと通信するFalconセンサーの他のコンポーネントが、Windows PCで最高の特権レベルであるWindowsカーネルと同じ空間で実行され、メモリーやハードウェアと直接やりとりする。CrowdStrikeは、そのコードの「ロジックエラー」が原因で、Windows PCおよびサーバーが起動後数秒以内にクラッシュし、STOPエラーが表示されると説明した。STOPエラーは、「死のブルースクリーン」(Blue Screen of Death:BSOD)という通称の方が知られているだろう。
CrowdStrikeは7月24日、同社のウェブサイトに掲載した「Preliminary Post Incident Review(PIR)」の中で、これまで報告されていたインシデントに関するいくつかの詳細を確認した上で、さらにいくつかの情報を追加した。障害が発生したコードは、Windowsのカーネル空間で動作するFalconセンサーの一部だった。このセンサーはバージョン7.11で、2024年2月28日にリリースされていた。CrowdStrikeによると、このリリースでは「Named Pipesを悪用した新手の攻撃手法を検出するための新しい『InterProcessCommunication(IPC) Template Type』が導入された。このリリースでは、すべて『Sensor Content』のテスト手順に従って行われた」という。
4月8~24日に3つのIPC Template Typeインスタンスが展開されたが、このときに問題は発生しなかった。7月19日には「さらに2つのIPC Template Typeインスタンスを追加展開した。2つのテンプレートインスタンスのうち1つにコンテンツデータの問題があったが、『Content Validator』のバグによって検証を通過してしまった」と同社は述べる。そのインスタンスがそのまま本番環境に配備されると「センサーによって受信され、『Content Interpreter』にロードされたときに『Channel File 291』の問題のあるコンテンツによって境界外のメモリー読み込みが発生し、Windowsオペレーティングシステムのクラッシュ(BSOD)を引き起こした」(同社)
このような欠陥によって生じた損傷を修復するプロセスは、非常に面倒だ。影響を受けたすべてのPCを手作業によって「Windows Recovery Environment」で再起動し、昔ながらのコマンドラインインターフェースを使用してPCから欠陥ファイルを削除しなければならない。対象PCのシステムドライブがMicrosoftの「BitLocker」暗号化ソフトウェアで保護されている場合は(ほぼすべてのビジネスPCがそうなっている)、修復に必要な手順がもう1つ増える。一意の48文字のBitLocker回復キーの入力だ。これにより、ドライブにアクセスしてCrowdStrikeの欠陥ドライバーを削除できるようにする。
CrowdStrikeのコードを使用する企業ネットワークでWindows PCの管理を担当している知人がいるなら、その人は今、非常に忙しいに違いない。その忙しさは今後何日も続くだろう。