Infoseek 楽天

全世界で発生したCrowdStrike“ブルスク”問題、原因からIT担当者が検討すべきセキュリティ対策を考察する

ITmedia PC USER 2024年7月24日 15時5分

 Windowsがブルースクリーンになり、再起動ループに陥ってしまう──米CrowdStrike製セキュリティ対策ソフトウェアのアップデートが引き起こした問題は、社会的に大きな影響を及ぼす事態となった。ミッションクリティカルな産業(航空業界、鉄道など)やパブリックセクターも同ソフトウェアを導入していたことによるものだ。

 そうした問題がどのように起きて、何が原因で、今後IT担当者はどのような対策を施すべきか、そうしたことに関して、CrowdStrikeやMicrosoftなどの発表をもとに考えていきたい。

●ソフトの“致命的なバグ”で850万台のPCがブルースクリーンに

 今回の騒動の原因になったのは、CrowdStrikeが提供するエンドポイント向けセキュリティ対策ソフトウェアに含まれるツールにバグがあったことだ。

 同社が提供する「Falcon」シリーズに含まれる「Falcon sensor for Windows」は、Windowsの動作をOSレベルで監視するためのソフトウェアで、クラウド側で展開されるSaaSベースのツールと協調して、PCのセキュリティを高める役割を果たす。

 このFalcon sensor for Windows向けに同社が公開したアップデートで問題が発生した。OSがクラッシュした時に表示されるBSOD(Blue Screen of Death)と呼ばれる“ブルースクリーン”画面が表示され、システムが強制的に再起動──その後、システムの再起動がループして、OSが起動しないという事象が発生した。

 本事象が発生したのは、グリニッジ標準時間の7月19日午前5時27分(日本時間では7月19日午後2時27分)にCrowdStrikeが公開したアップデートパッチが展開されてからだ。同社によれば、Falcon sensor for Windowsは自動でアップデートされる仕組みになっており、通常通りアップデートパッチを展開(英語ではrolloutと呼ぶ)したところ、世界的にFalcon sensor for Windowsが導入された端末で、BSODが発生したという。

 OSベンダーであるMicrosoftの集計によれば、850万台のPCが影響を受けており、世界で稼働しているWindowsデバイスの1%以下だという。1%以下といわれると、そんなに大したことがないように感じられるが、問題はCrowdStrikeの顧客が“ラージエンタープライズ”と呼ばれる、大企業がほとんどであることだ。

 ミッションクリティカルと呼ばれる、エラーが発生すると大きな影響がある航空会社や官公庁などで採用されていたため、社会的に大きな影響を及ぼした、というのが事案の概要となる。

●こうなるのはWindowsの安定性が足りないから?

 なぜこうしたことが起こるのか? Windowsの安定性に問題があるのか? 公正な言い方をすると、それはある意味正しく、ある意味正しくない。

 今回の原因になったFalcon sensor for Windowsの復旧方法では、Windowsをセーフモードなどで起動して、「C:\Windows\System32\drivers\CrowdStrike」というシステムファイルが格納されているドライバーフォルダにある「C-00000291*.sys」(*は何らかの文字列であることを示している)というファイルを削除して再起動すると、OSはBSODのループから復帰して正常に起動すると説明されている。

 この「C:\Windows\System32\drivers」というフォルダには通常、ハードウェアのドライバーなどが置かれていて、Windows OSの起動時にカーネルモードと呼ばれるOSの重要部分の一部として読み込まれることになる。

 今回はそこに格納されたCrowdStrikeの「C-00000291*.sys」がBSODを引き起こしていたため、BSODになった後、OSが起動する段階で再びBSODになるということを繰り返したと考えられる。

 なお、インストール時には管理者権限付与が必要になるため、きちんとユーザーレベルの管理を行っている企業PCではユーザーレベルの権限ではこうしたドライバーをインストールできないようになっている。しかし、ISV(サードパーティーのソフトウェアベンダー、Microsoftから見たCrowdStrikeがこれに該当する)にそうしたモジュールをOSの一部として組み込ませるような仕組みを用意していることが、今回の問題につながったと否定的に捉えることは一面正しい。

 しかし、それはさまざまなISVのアプリケーションや、さまざまなIHV(サードパーティーハードウェアベンダー、Microsoftから見てPCメーカーや周辺機器メーカーが該当する)のハードウェアをサポートできるプログラマブルOSであるWindowsの特徴を否定するという意味で正しくない。

 Windowsでは標準セキュリティツールとして「Windowsセキュリティ」と呼ばれるセキュリティツールが含まれている。それでも十分なセキュリティ性は確保できると考える企業もあれば、もっとガチガチなセキュリティを実現したいと考えている企業もあるというのが現状だ。そこで、CrowdStrikeのようなISVが採用される余地がある。

 Windowsセキュリティではセキュリティ性が十分ではないと考えるとエンタープライズは少なくなく、実際そういう大企業が多いからこそ、今回のような問題が顕在化したということだ。

 結局のところ、プログラマブルとセキュリティ性の高さはトレードオフの関係だ。最初からISVのセキュリティツールを組み込めないようにすれば、今回のような問題を引き起こすことは防ぐ事ができるが、しかし大企業のようにもっと高度なセキュリティツールをインストールしたいというニーズには応えることができない。

●CrowdStrikeの検証プロセスに課題があったことは否定できず

 ただ、そもそも論として「CrowdStrikeがアップデートを展開する前に、動作検証をすることで、この問題は避けられたのではないか?」というのはもっともな議論だ。

 通常、どんなソフトウェアであろうが、まずはコードを書き、バイナリーという実行形式などにコードを変換する「コンパイル」を実行し、そして動作検証を行った後で、ユーザーの環境に展開するのが一般的だ。

 850万台もの端末に影響を及ぼすような、すぐに発見できてしかるべきエラーを発見できずユーザー環境に展開してしまったことは、「CrowdStrikeの動作検証に不備があったのでは?」と指摘されても反論の余地はあまりないだろう。その意味で、CrowdStrikeはどういう動作検証を行っており、なぜそれを見つけることができなかったのかをきちんと情報公開し、同時に今後は同じ事が起きないようにする措置を取るべきだろう。

 その一方で、OSベンダーとしてのMicrosoftの対応は称賛に値する。問題が発生した翌日(米国時間では翌々日)にはプレスリリースを発行し、Microsoftのエンジニアが問題の解決に当たっていると明らかにし、競合のクラウドサービスプロバイダーであるAWS、Google Cloudとも協力してCrowdStrike問題による影響を最小限にする努力を続けていることを明らかにしている。

 また、セーフモードあるいはWindowsとは別のパーテーションに格納されている「Windows PE」(インストールなどで利用する小型のWindows)でさえ起動しない場合などを想定して、USBからブートして問題を修正できるメディアを配布している。ISVの問題だからと放置しないで積極的に対応しているMicrosoftの姿勢は評価されてしかるべきだろう。

●根本的な対策は「ゼロトラストセキュリティ」の徹底か

 今回の騒動に振り回されたエンタープライズの“情シス”にとっては、今後同じような問題が起きないようにどうするべきか、議論が進んでいくだろう。もちろん、騒動の直接の原因となったCrowdStrikeが動作検証のプロセスを見直すなどその対策をしなければいけないが、ソフトウェアのバグを防ぐ事はできないので今後別のソフトウェアで発生する可能性は否定できない。バグのないソフトウェアというのはない、見つかっていないだけというのがセキュリティ業界での考え方だ。

 ではどうすべきか。1つはセキュリティ確保の考え方をエンドポイントを強化する方向性から、ゼロトラストセキュリティというエンドポイントのセキュリティが十分ではないということを前提にしたITシステムを構築する方向に変えていくことだ。

 現在のITの仕組みは、会社のファイアウオールの外にデバイスを持ち出す場合、追加のセキュリティソフトウェア(まさにCrowdStrikeがそれだ)をノートPCなどにインストールすることで保護し、VPNで社内のネットワークに接続して利用するという形が一般的だ。それによりマルウェアやランサムウェアが社内ネットワークに接続されているデータセンターに影響を及ぼすことを防ぐという考え方だ。

 それに対してゼロトラストの考え方では、エンドポイントにあるデバイスは全て安全ではないと考えて企業のITシステムを構築する。社内のサービスにはインターネット経由で、そしてIDベースで認証して個別のクライアントデバイスに対してアクセス許可を出す(認証されたアクセス情報はクライアントにデバイスのハードウェアとひもづけて格納する)。

 仮にクライアントデバイスが、マルウェアやランサムウェアにやられても、ネットワーク側でそれをいち早く検知しそのデバイスや既に影響を受けたデバイスからのアクセス権限を無効にすることで、そのデバイスの中だけで影響が済むような処置を行うという考え方だ。

 ゼロトラストの考え方を実行しておけば、OSカーネルに影響を及ぼすソフトウェアをインストールしなければいけないエンドポイントセキュリティではなく、Windows 11標準のセキュリティ機能である「Windows セキュリティ」で代替できるようになる。

 例えば、Microsoftは大企業向けのMicrosoft 365 EnterpriseのE3/E5などで、Microsoft DefenderというSaaSベースのセキュリティツールを提供しており、クライアントのWindowsセキュリティと連携して動作することで、クライアントの状況をシステム管理者が容易には把握できる。

 そうしたエンドポイントセキュリティ重視からゼロトラストへの転換は、言うまでもなく企業のITシステム全体を変革する必要があるため非常に手間も時間もかかる。その意味では、現在のエンドポイントの考え方を継続するのであれば、今回のようにOSが起動しない状況が発生しても、リモートからの操作でBitLockerキーの入力やセーフモードでの操作を可能にするソリューションの導入を検討すべきだろう。

 Intel vPro、AMD PROと呼ばれるSoCベンダーの企業向けの製品を搭載したノートPCでは、OSが起動しなくてもインターネット経由でリモート接続し、BitLockerの回復キーをシステム管理者が入力し、OSをセーフモードで起動して今回の問題に対処することなどが可能になる。

 そうしておけば、現場の従業員がBitLockerの回復キーの意味が分からないため、対応できないというトラブルにもリモートから対処でき、回復にかかる時間を短縮できるだろう。今回痛い目にあった企業は、そうした機能に対応したノートPCの導入も今後検討していくべきだ。

この記事の関連ニュース