+− THE DAILY DIFFdev & AI news
SHIP IT

필드 하나가 850만 대의 PC를 다운시켰습니다. 78분 만에요.

2024년 7월 19일, 04:09 UTC: CrowdStrike는 Channel File 291 — Rapid Response Content 업데이트 —를 온라인 상태의 모든 Windows Falcon 센서에 푸시합니다.

2024년 7월 19일, 04:09 UTC: CrowdStrike는 Channel File 291 — Rapid Response Content 업데이트 —를 온라인 상태의 모든 Windows Falcon 센서에 푸시합니다. 업데이트에 사용된 템플릿은 2월에 21개의 입력 필드로 선언되었지만, 입력을 제공하는 코드는 20개의 배열을 생성합니다. 4개월 동안 필드 21은 와일드카드로 남아 있었기 때문에 아무것도 읽지 않았습니다. 이 업데이트는 실제 패턴을 거기에 넣었습니다. 클라우드 측 Content Validator는 선언에 대해 21개를 세어 통과시켰습니다. 센서의 Content Interpreter는 범위 검사 없이 커널 모드에서 슬롯 21을 읽고 Windows 페이지 오류: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys가 발생합니다. 드라이버는 의도적으로 부팅 초기에 로드되어 동일한 파일을 읽고 다시 충돌하여 부팅 루프에 빠집니다. 78분 후인 05:27 UTC에 롤백되었지만, 850만 대의 컴퓨터(Microsoft 집계, Windows의 1% 미만)는 이미 해당 파일을 가지고 있었고, 해결책은 모든 키보드 앞에 사람이 앉아 안전 모드에서 C-00000291*.sys를 삭제하고 BitLocker 복구 키를 사용하는 것이었습니다. 항공사, 병원, 은행 및 911 센터가 중단되었습니다. Delta는 약 7,000편의 항공편을 취소하고 CrowdStrike와 Microsoft로부터 최소 5억 달러를 청구했습니다. Parametrix는 Fortune 500 기업의 피해액을 54억 달러에 육박하는 것으로 추정했습니다. 사후 분석은 CrowdStrike 자체의 Root Cause Analysis, Preliminary Post Incident Review, Microsoft 블로그, Delta의 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: 두 개의 새로운 템플릿 인스턴스; Content Validator의 논리 오류로 인해 비와일드카드 인스턴스가 통과됨; 커널에서 범위 외 읽기; 05:27 UTC 롤백됨
  • 7월 19일 – 29일: 수동 복구 (안전 모드, 파일 삭제, BitLocker 키); 7월 24일까지 센서의 ~97% 복구, 7월 29일까지 ~99% 복구
  • 7월 25일 – 8월 19일: 런타임 범위 검사, 컴파일 타임 필드 수 유효성 검사, Validator 검사, 카나리 + 배포 링, Rapid Response Content에 대한 고객 제어, 두 번의 독립적인 검토; 8월 6일에 크래시 덤프를 포함한 전체 RCA

번역된 스크립트

원래 영어 내레이션에서 번역되었습니다. 사용 가능한 오디오 및 캡션은 YouTube에서 제어합니다.

0:00 하나의 보안 업데이트가 스무 개에 맞게 만들어진 드라이버에 스물한 개의 필드를 전달합니다, 그리고 850만 대의 Windows 머신이 아침 식사 전에 블루 스크린을 띄웁니다. 2024년 7월 19일, 04:09 UTC. CrowdStrike가 모든 Falcon 센서에 Channel File 291을 푸시합니다. 78분 후 그들은 그것을 회수합니다; 그 때까지 항공사, 병원과 은행은 같은 파란색 사각형을 응시하고 있었습니다. CEO의 첫 게시물은 사이버 공격이 아니라고 말했습니다. 사실이지만, 중요한 것은 아닙니다. 어떻게 이런 일이 일어났고, 왜 가능했으며, 누가 비난받아야 하는가.

0:27 이것은 The Daily Diff, 사후 분석입니다. 2월 28일. 센서 7.11이 명명된 파이프를 위한 새로운 탐지기를 출시합니다. 그것은 스물한 개의 입력 필드를 선언합니다; 그것을 공급하는 코드는 스무 개의 배열을 만듭니다. 아무도 눈치채지 못합니다: 4개월 동안 모든 규칙은 필드 21을 와일드카드로 남겨두고, 아무도 와일드카드를 읽지 않습니다. 스트레스 테스트를 통과하고, 네 가지 규칙이 출시되고, 모두 괜찮습니다. 7월 19일, 04:09. 두 개의 새로운 규칙; 하나는 필드 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가지 발견 사항을 나열하며, 여섯 번째 발견 사항은 완전한 문장입니다: 템플릿 인스턴스는 단계별 배포를 해야 합니다. 커널 모드 설계, 25%: CrowdStrike는 Windows가 아직 커널 외부에서 보안을 호스팅할 수 없다고 말하고, Microsoft는 Microsoft 사건이 아니라고 말하며, 페이지 오류는 신경 쓰지 않습니다.

2:05 금요일, 10%. 커밋 메시지는 코드가 아니라고 말합니다. 피해 범위: 850만 대의 장치, Windows의 1% 미만. Delta는 7천 편의 항공편을 취소하고 Microsoft를 포함하여 5억 달러를 고소합니다. 보험사들은 Fortune 500 기업의 피해액을 50억 달러에 가깝게 추정합니다. Hacker News: 4500포인트. 아이러니하게도, 새로운 공격 기술을 탐지하기 위한 업데이트가 실제로 하나를 제공했습니다. 평결, 사후 분석: SHIP IT, 아슬아슬하게.

2:27 6일 이내에 범위 검사, 단계별 링, 콘텐츠 업데이트에 대한 고객 제어, 두 번의 외부 검토. 아슬아슬하게, 왜냐하면 이 모든 것은 이미 표준 관행이었기 때문입니다. 월요일: 에이전트가 클라우드에서 가져오는 모든 것은 카나리 링을 거칩니다. 구성은 무언가가 예외를 발생시킬 수 없는 곳에서 구문을 분석하는 순간 코드가 됩니다. 아직 이야기할 수 없는 사건이 있다면 저에게 보내주세요. 댓글로, 또는 dailydiff.dev로. 그리고 오늘은 이것으로 다릅니다.

2:48 저는 Axrisi의 Niko입니다. 책임감 있게 병합하세요.

출처

  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 · ko · 2026. 9. 25.

1밀리초 버그로 영국 항공 교통 6시간 마비.

9월 8일 화요일 오전 10시, NATS의 국가 영공 시스템(NAS) 내에서 일상적인 스쾍 코드 요청이 값을 업데이트하는 도중에 우선순위가 더 높은 메시지에 의해 중단되었습니다. 노출 시간은 약 1밀리초입니다. 요청이 잘못 재개되고 비행 데이터가 손상되어 오후 7시 30분까지 2,000편 이상의 영국 항공편이 지연, 취소 또는 회항되었습니다.

3:06 ↗
postmortem · ko · 2026. 9. 22.

재부팅으로 텔스트라가 2006년으로 돌아갔습니다. 9백만 대의 전화.

멜버른의 한 엔지니어가 새벽 2시 50분에 타이밍 섀시 전원을 다시 켰고, 아침 식사 시간까지 호주 최대의 모바일 네트워크는 2006년 11월이라고 동의했습니다. 2026년 7월 8일: 텔스트라의 NTP 섀시에 있는 GPS 카드가 전원 공급 장치 수리 중에 재부팅되었고, 펌웨어는 GPS 주 롤오버 업데이트가 없었기 때문에 이전 에포크를 선택하여 1,024주

3:15 ↗