+− THE DAILY DIFFdev & AI news
SHIP IT

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 責任を持ってマージしてください。 責任を持ってマージしてください。

情報源

  1. CrowdStrike, Root Cause Analysis — Channel File 291 (Aug 6, 2024, 12 pp.)www.crowdstrike.com
  2. CrowdStrike, Executive Summary of the RCA (Aug 6, 2024)www.crowdstrike.com
  3. CrowdStrike, Preliminary Post Incident Review (Jul 24, 2024)www.crowdstrike.com
  4. CrowdStrike, Remediation and Guidance Hub — Channel File 291 (the workaround steps)www.crowdstrike.com
  5. CrowdStrike, tech alert of Jul 19, 2024 (archived: Safe Mode → delete C-00000291*.sys → BitLocker key)web.archive.org
  6. Microsoft, David Weston, "Helping our customers through the CrowdStrike outage" (Jul 20, 2024; the 8.5 million figure)blogs.microsoft.com
  7. Delta Air Lines, Form 8-K (Aug 8, 2024; ~7,000 cancellations, at least $500 million)www.sec.gov
  8. Adam Meyers (CrowdStrike SVP), written testimony, House Homeland Security Subcommittee (Sep 24, 2024)homeland.house.gov
  9. George Kurtz on X, Jul 19, 2024, 09:45 UTCx.com
  10. Patrick Wardle on X, Jul 19, 2024 (the crash-dump index 0x14)x.com
  11. Hacker News, Jul 19, 2024 — "CrowdStrike Update: Windows Bluescreen and Boot Loops" (4,489 points)news.ycombinator.com
  12. The Guardian, Jul 24, 2024 — "CrowdStrike global outage to cost US Fortune 500 companies $5.4bn" (Parametrix estimate)www.theguardian.com
  13. Hacker News, Jul 21, 2024 — "Initial details about why CrowdStrike's CSAgent.sys crashed" (519 points)news.ycombinator.com
  14. Wikipedia — 2024 CrowdStrike-related IT outagesen.wikipedia.org

関連動画

postmortem · ja · 2026/09/12

正規表現がCloudflareをダウンさせた。27分間。

2019年7月2日13時42分(UTC):CloudflareのWebアプリケーションファイアウォール(WAF)に新しいルールが180以上の都市で約2秒で適用されました。これはシミュレートモードのXSSルールであり、何もブロックしませんが、すべてのリクエストで実行され、末尾は.*(?:.*=.*)となっています。PCREはバックトラックし、HTTPを処理するすべてのCPUコアが100%に達し、Cl

3:00 ↗
postmortem · ja · 2026/09/25

1ミリ秒のバグで英国の航空交通が6時間停止

9月8日火曜日の午前10時、NATSの国家空域システム(NAS)内で通常のスコークコード要求が、値の更新途中に優先度の高いメッセージによって中断された。露出ウィンドウは約1ミリ秒。要求は誤ったまま再開され、フライトデータが破損し、午後7時30分までに2,000便以上の英国発着便が遅延、欠航、または目的地変更となった。

3:06 ↗
postmortem · ja · 2026/09/22

再起動でテルストラは2006年に逆戻り。900万台の電話が影響。

メルボルンのエンジニアが午前2時50分にタイミングシャーシの電源を入れ直したところ、朝食の時間までにはオーストラリア最大のモバイルネットワークが「今は2006年11月である」と認識する事態に。2026年7月8日、テルストラのNTPシャーシ内のGPSカードが電源修理中に再起動し、ファームウェアにはGPS週数ロールオーバーのアップデートが一度も適用されていなかったため、古いエポックを選択し、1,024

3:15 ↗
postmortem · ja · 2026/09/19

Google Cloudが空白フィールドでクラッシュ。3時間。

空白のフィールドを含むポリシ行がヌルポインタにヒットし、Google Cloudはすべてのリージョンで一度にクラッシュしました。その後、Cloudflareもダウンしました。2025年6月12日、17:49 UTC: すべてのGoogle Cloud APIリクエストを承認するバイナリであるService Controlが、「意図しない空白フィールド」を含むクォータポリシの変更を読み込み、2週間前

2:57 ↗