1つの余分なフィールドで850万台のPCがクラッシュ。78分。
2024年7月19日 04:09 UTC: CrowdStrikeは、Rapid Response ContentアップデートであるChannel File 291を、オンラインの全Windows Falconセンサーにプッシュします。
2024年7月19日 04:09 UTC: CrowdStrikeは、Rapid Response ContentアップデートであるChannel File 291を、オンラインの全Windows Falconセンサーにプッシュします。それが供給するテンプレートは、2月に21個の入力フィールドで宣言されましたが、入力を供給するコードは20個の配列を作成します。4ヶ月間、どのルールもフィールド21をワイルドカードとして残していたため、何もフィールド21を読み込みませんでした。今回のアップデートで、そこに実際のパターンが置かれました。クラウド側のContent Validatorは、宣言に対して21個とカウントしてこれを通過させますが、センサーのContent Interpreterは境界チェックなしに、カーネルモードでスロット21を読み込み、Windowsはページフォールトを発生させます: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys。ドライバーは意図的にブートの早い段階でロードされ、同じファイルを読み込み、再びクラッシュします — ブートループです。05:27 UTC、78分後にロールバックされましたが、850万台のマシン(MicrosoftのカウントではWindowsの1%未満)がすでにそのファイルを受け取っており、修正には各キーボードにいる人間が必要です: セーフモードでC-00000291*.sysを削除し、BitLocker回復キーを使用します。航空会社、病院、銀行、そして911センターが停止し、デルタ航空は約7,000便をキャンセルし、CrowdStrikeとMicrosoftから少なくとも5億ドルの損害賠償を請求しています。Parametrixは、Fortune 500企業の被害額を54億ドル近くに見積もっています。事後検証は、CrowdStrike独自の根本原因分析、初期インシデント後レビュー、Microsoftのブログ、デルタ航空の8-K、および下院での証言に基づいています。Git blame: 65% CrowdStrike / 25% カーネルモード設計 / 10% 金曜日。修正に対する判断: SHIP IT、辛うじて。
この動画の要点
- 2024年2月28日~4月24日: センサー7.11はIPCテンプレートタイプを出荷(21フィールド宣言、20フィールド供給)。3月5日にストレステストに合格。フィールド21がワイルドカードのため、4つのインスタンスが機能。
- 7月19日 04:09 UTC: 2つの新しいテンプレートインスタンス。Content Validatorのロジックエラーにより非ワイルドカードのものが通過。カーネルで境界外読み込み。05:27 UTCにロールバック。
- 7月19日~29日: 手動での修正(セーフモード、ファイルの削除、BitLockerキー)。7月24日までに約97%のセンサーが復旧、7月29日までに約99%が復旧。
- 7月25日~8月19日: ランタイム境界チェック、コンパイル時フィールド数検証、Validatorチェック、カナリア+展開リング、Rapid Response Contentに対する顧客管理、2つの独立したレビュー。8月6日にクラッシュダンプを含む完全なRCA。
翻訳されたトランスクリプト
オリジナルの英語ナレーションから翻訳されています。利用可能なオーディオとキャプションはYouTubeによって管理されています。
0:00 あるセキュリティアップデートは、20個のフィールドに対応したドライバーに21個のフィールドを運び込み、 850万台のWindowsマシンが朝食前にブルースクリーンになります。 2024年7月19日 04:09 UTC。 CrowdStrikeはChannel File 291をすべてのFalconセンサーにプッシュします。 78分後、彼らはそれを引き戻しますが、その時までに航空会社、 病院、銀行は同じ青い長方形を見つめています。 CEOの最初の投稿はサイバー攻撃ではないと述べていますが、それは事実であり、論点ではありません。 それがどのように起こり、なぜ可能だったのか、そして誰が責任を負うのか。
0:27 これはThe Daily Diff、事後検証です。 2月28日。センサー7.11は、名前付きパイプ用の新しい検出器を出荷します。 それは21個の入力フィールドを宣言し、それを供給するコードは 20個の配列を構築します。誰も気づきません。4ヶ月間、すべてのルールがフィールド21を ワイルドカードとして残しており、誰もワイルドカードを読みません。 ストレステストに合格し、4つのルールが出荷され、すべて問題ありません。 7月19日、04:09。 2つの新しいルール。1つはフィールド21に実際のパターンを入れます。
0:51 クラウドバリデーターは宣言に対して21と数え、問題ないと言います。 カナリアリングがないため、すべてのオンラインのWindowsホストはそれを一度にダウンロードします。 センサーは、自分のメモリではないスロット21を読み込み、 カーネルはカーネルのすべきことをします。 05:27、ロールバックされました。再起動した人には遅すぎます。ドライバーはブートの早い段階でロードされ、 同じファイルを読み込み、再びクラッシュします。 ブートループ。なぜこれが可能なのか? ルールはクラウドからプッシュされる設定なので、コードはコードパイプラインをスキップしません。
1:16 インタプリタには境界チェックがなく、バリデータが信頼されています。 そしてバリデータは宣言を信頼しています。 そしてそれはすべてカーネルモードで実行され、そこでは不正なポインタは例外ではなく、 Windowsがtry-exceptで保護できないと言うページフォールトです。 パトリック・ワードルは、その日の午後にクラッシュダンプからそれを読み取ります: インデックス0x14、 スロット21。修正は手動です。 セーフモードでC-00000291を削除し、再起動。 BitLockerの場合、まず48桁の
1:43 回復キーを入力します。 このキーは、これもまたブルースクリーンのサーバー上にあります。 git blame。CrowdStrike、65パーセント: RCAには6つの発見がリストされており、 発見6は完全な文章です: テンプレートインスタンスは段階的なデプロイメントを行うべきです。カーネルモードの設計、 25パーセント: CrowdStrikeはWindowsが まだカーネル外でセキュリティをホストできないと言い、MicrosoftはMicrosoftのインシデントではないと言い、 ページフォールトは気にしません。 金曜日、10パーセント。
2:05 コミットメッセージにはコードではないと書かれています。 影響範囲: 850万台のデバイス、Windowsの1パーセント未満。 デルタ航空は7000便をキャンセルし、Microsoftを含む5億ドルの損害賠償を請求します。 保険会社はFortune 500企業の被害額を50億ドル近くに見積もっています。 Hacker News: 4500ポイント。 皮肉なことに、新しい攻撃手法を検出するためのアップデートが、その手法自体を提供しました。 判断、事後検証: SHIP IT、辛うじて。 6日後の境界チェック、段階的なリング、コンテンツアップデートに対する顧客管理、
2:27 2つの外部レビュー。 辛うじて、というのは、それらすべてがすでに標準的な慣行だったからです。 月曜日: エージェントがクラウドから取得するものはすべてカナリアリングを得ます。 設定は、何かを解析する際にエラーを発生させられない場所で解析されると、その瞬間からコードになります。 まだ話すことが許されていないインシデントを、 コメント欄、またはthedailydiff.devまでお送りください。 そして、それが今日のdiffです。 AxrisiのNikoでした。
2:48 責任を持ってマージしてください。 責任を持ってマージしてください。
情報源
- CrowdStrike, Root Cause Analysis — Channel File 291 (Aug 6, 2024, 12 pp.)www.crowdstrike.com
- CrowdStrike, Executive Summary of the RCA (Aug 6, 2024)www.crowdstrike.com
- CrowdStrike, Preliminary Post Incident Review (Jul 24, 2024)www.crowdstrike.com
- CrowdStrike, Remediation and Guidance Hub — Channel File 291 (the workaround steps)www.crowdstrike.com
- CrowdStrike, tech alert of Jul 19, 2024 (archived: Safe Mode → delete C-00000291*.sys → BitLocker key)web.archive.org
- Microsoft, David Weston, "Helping our customers through the CrowdStrike outage" (Jul 20, 2024; the 8.5 million figure)blogs.microsoft.com
- Delta Air Lines, Form 8-K (Aug 8, 2024; ~7,000 cancellations, at least $500 million)www.sec.gov
- Adam Meyers (CrowdStrike SVP), written testimony, House Homeland Security Subcommittee (Sep 24, 2024)homeland.house.gov
- George Kurtz on X, Jul 19, 2024, 09:45 UTCx.com
- Patrick Wardle on X, Jul 19, 2024 (the crash-dump index 0x14)x.com
- Hacker News, Jul 19, 2024 — "CrowdStrike Update: Windows Bluescreen and Boot Loops" (4,489 points)news.ycombinator.com
- The Guardian, Jul 24, 2024 — "CrowdStrike global outage to cost US Fortune 500 companies $5.4bn" (Parametrix estimate)www.theguardian.com
- Hacker News, Jul 21, 2024 — "Initial details about why CrowdStrike's CSAgent.sys crashed" (519 points)news.ycombinator.com
- Wikipedia — 2024 CrowdStrike-related IT outagesen.wikipedia.org



