
パソコンが起動しない!?バックアップ・リストアの手間をかけられない!予防対策は?復旧対策は?
世界的規模でWindowsのブルースクリーンが発生
事象について
2024年7月19日(金)に、Windows PCでブルースクリーンが多発するという事件が起こりました。
今回の事象は、セキュリティ会社であるCrowdStrike(クラウドストライク)社のソフトウェアが原因のようです。かなり大規模でであることから、CrowdStrike(クラウドストライク)社のセキュリティソフトのシェアは相当大きかったようですね。
CrowdStrike(クラウドストライク)社の発表によると、今回の事象は、セキュリティインシデントでもサイバー攻撃でもないとのことです。クラウドストライクのCEO兼共同創業者であるGeorge Kurtz(ジョージ・カーツ)さんのXの投稿(日本語訳)は次の通りです。

企業の業務に影響を及ぼしている以上、十分にセキュリティインシデントに該当するかと思いますが、自分の考えるセキュリティインシデントと、CrowdStrike(クラウドストライク)社のセキュリティインシデントの定義が異なるのかも知れませんので、ここでは置いときます。
この件で自分が思い出したのは2005年に、トレンドマイクロ社のウィルスバスターの定義ファイルの更新で、パソコンが起動しなくなった事件です。あの時も、影響を受けた方は大変だったと思います。(昔の事件ですが、ググれば記事は出てきます)
さて、このウィルス対策ソフトのパッチに関しては、セキュリティに対する運用がしっかりと確立している組織であるならば、Windowsやセキュリティ対策ソフトの本番環境へのパッチ適用の前に、検証用機器で、パッチを適用し、問題ないことを確認したうえで、組織のイントラを使って本番環境へ適用といった流れになるかと思いますが、すべての企業でそういうわけにはいかないでしょう。
バックアップを取っていたら最悪パッチ適用前の状態に戻せますが、バックアップファイルからリストアするのも、時間と手間がかかります。
最悪、リストアするしかないという判断ができるまでは、業務は止まったままになります。
さて、今回の現象はWindowsのみだったようですが、『Windowがいけない、Linuxが良い』という話ではありません。Windowsのシェアが大きく、広く普及しているからこそ、多くの攻撃の対象となっています。そして、それゆえ、セキュリティ対策ソフトも多くのメーカーから出ています。
Windowsの普及率はいまだ高く、そのセキュリティ対策のコストを含めても使い続けるだけの実績と信頼を積み重ねているのはすごいことです。
ただ、今回のような企業に対するシェアが高い製品で、問題が発生した場合、影響を受ける範囲は広く、問題もかなり大きく取り上げられてしまいます。
予防対策は?
さて、今回のセキュリティ対策ソフトによるOSの起動障害ですが、どのような対策があるのでしょうか?
まず、ウィルスやサイバー攻撃ではないため、セキュリティ対策ソフトの更新や、ファイアウォールの導入、アプリやシステムのセキュリティパッチの適用では、対応出来ません。
ですので、先に述べたとおり、検証機を用意し、OSの起動を含め、他のシステムに影響がないかどうかを検証後、本番環境に適用することが対策の1つでしょう。
しかし、大手企業であるならばともかく、個人ユースでこのようなことが発生した場合、どのようにしたら良いのか、悩ましいところです。
復旧対策は?
できるだけ簡単にシステム全体をリストアできることが望ましいです。
OSが起動する状態ならば、OSの起動後の「復元ポイント」へ回復することで対応できるかも知れません。
もしくは日次でバックアップを取得しているならば、バックアップファイルからリストアできるでしょう。
ですが、そもそもOS自体が起動しない状態の場合は、どうしようもありません。
では、どうすれば良いか?
私の考えですが、OSが起動する前のブート画面で複数のOSの世代を管理し、1つ前の世代にロールバックできる仕組みが1つの解決策ではないかと思います。
という訳で、今回はその仕組みを有しているLinuxディストリビューション『Fedora Silverblue』の紹介になります。
Fedora Silverblueとは?
普遍のオペレーティングシステム
Fedora Silverblueのユーザーガイドによると、Fedora Silverblueは「不変のデスクトップ オペレーティング システム」とのことです。ユーザーガイドより引用します。
Fedora Silverblue is an immutable desktop operating system. It aims to be extremely stable and reliable. It also aims to be an excellent platform for developers and for those using container-focused workflows.
(Fedora Silverblueは不変のデスクトップ オペレーティング システムです。極めて安定し、信頼性が高いことを目指しています。また、開発者やコンテナー中心のワークフローを使用するユーザーにとって優れたプラットフォームとなることを目指しています。)
これはどういう意味なのでしょうか?
Fedora Silverblueの特徴は大きくわけ2つの技術に支えられています。
OSTreeによるシステム管理
OS環境はReadOnlyであり、OS部分を書き換えることは出来ません。OS環境を書き換えることが出来ないため、非常に堅牢なセキュリティを有しています。
OS更新時には、各パッケージが個別に更新されるのではなく、ディレクトリのツリー構造毎、丸ごと切り替えることになります。Flatpakを採用
実行環境を含めたアプリケーションのコンテナ化を行うFlatpakパッケージを採用しています。このことにより、各個別パッケージのバージョンが上がったとしても、重要なシステム部分に影響を与えることはありません。

Fedora Silverblueは、このような技術によって支えられており、安定性の非常に高いOSとなっています。
アップデートとロールバック
また同じくユーザーガイドに次のような記載もあります。
Installing updates with Fedora Silverblue is easy and fast. It also has a special rollback feature, in case anything goes wrong. Additionally, you can choose to have multiple versions of your operating system installed at all times, and you can choose which one to boot into whenever you start up your system.
(Fedora Silverblue でアップデートをインストールするのは簡単で高速です。また、何か問題が発生した場合に備えて、特別なロールバック機能も備えています。さらに、常に複数のバージョンのオペレーティング システムをインストールしておくこともでき、システムを起動するたびにどのバージョンで起動するかを選択することもできます。)
アップデートは容易であり、何か問題が発生した場合でも、以前の状態にロールバックが出来るようです。これは心強い。
尚、このFedora Silverblueでは起動時のOS選択画面(Grub画面)はそのままでは表示されず、スキップされます。起動時に何かキーを叩き続ければブート画面が表示されるようですが、それでも出来たり出来なかったりしました。
OS選択画面(Grub画面)は次のような表示となります。
カーソルがあたっている一番上が最新バージョンであり、その下が一つ前のバージョンです。こんな感じで1つ前のバージョンに戻すことが出来ます。

また、先にも述べましたが、Fedora Silverblueは普遍のOSということで、何かOSの基幹部分に変更が生じるとシステム全体がアップデートされます。
例えば、『neofetch』というコマンドをインストールしてみたところ、OS選択画面(Grub画面)では、同じバージョンのものが並ぶことになります。

実際に一番上の最新版を起動し、neofetchコマンドを入力したところ、次のように表示されました。

ブート画面で、最新版のひとつ下のものを起動し、neofetchコマンドを入力したところ、「コマンドが見つかりません」と表示され、確かに1つ前のバージョンにロールバックされていることが分かります。

姉妹プロジェクト
Fedora Silverblueでは、Gnomeデスクトップ環境を採用しています。
Fedora Silverblueの仕組みは使ってみたいが、ユーザの中にはGnomeデスクトップ環境以外のデスクトップ環境を好まれる方もいるかと思います。
というわけでこのFedora Silverblueには、他のデスクトップ環境やウィンドウマネージャを採用した姉妹プロジェクトがいくつかありますので、そちらを紹介します。
Fedora Kinoite
『KDE Plasma デスクトップ環境』を採用したものになります。
Fedora Sway Atomic
『Sway タイリング ウィンドウマネージャ』を採用したものになります。
Fedora Budgie Atomic
『Budgie デスクトップ環境』を採用したものになります。
おわりに
今回は、2024年7月19日に発生したWindowsのブルースクリーン問題を踏まえ、その対策にはどのようなものがあるか、そしてそれを実現しているLinuxディストリビューションとしてFedora Silverblueについて紹介させていただきました。
もちろん今回の話は私見になります。他にもっと適したセキュリティ対策や仕組みはあるかと思いますので、思いつくもの、現在実現している仕組み、個人レベルではこうしているという考えややり方があれば、どしどし意見をいただきたいです。