本日、CrowdStrike を導入している Windows 環境で世界的にブルー スクリーンが発生するという問題が起きました。
既に対処については上記の記事に記載されている通り明確になっております。
※当ブログではこのような大規模な障害の対処方法をいたずらに書いても責任を取れないので書きません。問題が起きている方は Crowdstrike の製品を買っていると思いますので、ちゃんと公式サイトにログインして情報を見ましょう。
一方で気になっている点としては、X (旧 Twitter) で 「Microsoft がやらかしたか」 というポストが散見された点です。
私としては画面を見れば Crowdstrike の問題っぽいことは明確なのになぜこういう意見が出るのかと考えた結果、画面をそもそも見ていない or 見方がわからないという結論に至りました。
そのため、今回の記事を読んでいただいて、ちょっとでも画面を見てくれる方が増えたら嬉しいなと思い、記事を書いてみます。
ブルー スクリーンはこんな画面
見るのも嫌な方もいらっしゃるかと思いますが、ブルー スクリーンはこんな画面。
※ X からの拾い物です
そんなに情報が多いわけではありませんが、見るべきポイントは停止コードと失敗した内容です。
(というか QR コードか URL かこれらの情報しかないし……)
停止コード
停止コードは、Windows がどういう理由で停止したのかを示すコードです。
画面に書かれている PAGE_FAULT_IN_NONPAGED_AREA を検索するとこんな感じの情報が出てきます。
PAGE_FAULT_IN_NONPAGED_AREA バグ チェックの値は 0x00000050 です。 これは、無効なシステム メモリが参照されたことを示します。 通常は、メモリ アドレスが間違っているか、解放されたメモリがメモリ アドレスで指し示されています。
引用: https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/bug-check-0x50--page-fault-in-nonpaged-area
はい。
これ以上の情報はありません。
触れてはいけないメモリ領域にアクセスをしたからブルー スクリーンになったということがわかりました。
ちなみに余談になりますが、このサイトは以下の画像のように、画面の左側にそのほかの停止コードに関する情報もあります。
失敗した内容
失敗した内容は、どのモジュールがアクションを起こしてこの問題が起きたかを示します。
画面に書かれている内容は csagent.sys です。
慣れている人であれば 「Crowdstrike の agent のドライバーっぽいな」 というのがわかります。
が、そうでない方はこちらのページを見ると情報が載っていることがあります。
learn.microsoft.com ※ このページはドライバーを調べるページであり、dll は載っていません。
ページ内検索で csagent.sys を調べてみると……
ありますね。
CrowdStrike Ltd.
これが csagent.sys を提供している会社の名前です。
この項目で見える内容はここまで。
情報を総括すると
前の項目の内容を総括すると、"失敗した内容" ではブルー スクリーンを発生させた原因となっているモジュール、"停止コード" ではなぜブルー スクリーンが発生したかが表示されます。
これに当てはめると、今回は 「Crowdstrike の csagent.sys というドライバーが、触れてはいけないメモリ領域にアクセスをしたからブルー スクリーンになった」 と判断できます。
ということで冒頭に戻りますが、この画面の時点で怪しいものは Crowdstrike だと考えられるわけですね。
プログラムを作っていても、エラーを読まない人はよくいます。
ですが画面 1 つ見るだけで何となくの要因が推し量れて、ちょっと心構えができる時だってあります。
ぜひたまにはエラーやブルー スクリーンを見てあげてください。