2024년 7월 19일, 사이버보안 기업 CrowdStrike는 기업용 컴퓨터에서 Windows 커널 수준 깊숙이 실행되는 자사의 Falcon 센서 소프트웨어에 일상적인 구성 업데이트를 배포했다. 이 업데이트는 명명된 파이프를 검사하는 역할을 하는 파일인 채널 파일 291을 수정했는데, 그 파일에는 범위를 벗어난 메모리 읽기를 일으키는 결함이 들어 있었다. 센서는 정상적으로 실패하는 대신 유효하지 않은 페이지 폴트를 일으켜 Windows를 블루스크린과 부팅 루프로 추락시켰다.
Falcon 센서가 수많은 기업 시스템에서 높은 권한으로 실행되기 때문에, 이 실패는 거의 즉시 확산되었다. 마이크로소프트는 나중에 약 850만 대의 Windows 기기가 영향을 받았다고 추정했는데, 이는 전체 Windows 컴퓨터의 1퍼센트 미만이지만 기업을 운영하는 기기 중에서는 매우 큰 비중이었다. 항공사들은 수천 편의 항공편을 결항시켰고, 병원들은 종이로 되돌아갔으며, 은행, 방송사, 소매업체, 정부 서비스가 전 세계에서 중단되었다. CrowdStrike는 포춘 500대 기업의 약 60퍼센트를 포함해 2만4천 개 이상의 고객을 두고 있었다.
CrowdStrike는 약 한 시간 만에 결함이 있는 파일을 되돌렸고, CEO 조지 커츠는 그것이 공격이 아닌 사고임을 확인했다. 그러나 이미 다운된 기기들은 수정 사항을 자동으로 내려받을 수 없었다. IT 직원들은 각 기기를 안전 모드로 재부팅하고 잘못된 파일을 수동으로 삭제해야 했으며, BitLocker 디스크 암호화를 사용하는 기기에서는 이 과정이 더욱 복잡해졌다. 완전한 복구에는 며칠이 걸렸다. 전 세계적인 금전적 피해는 수십억 달러로 추정되어, 정보 기술 역사상 최대 규모의 장애가 되었다.
비용은 얼마였나
파일은 한 시간 안에 되돌려졌지만, 다운된 기기들은 수동 안전 모드 수정이 필요했기 때문에 복구에 며칠이 걸렸고 손실은 50억 달러를 넘었다.
왜 일어났나
콘텐츠 업데이트는 전체 설치 기반에 한꺼번에 배포되기 전에 충분히 검증되지 않았으며, 단계적 또는 카나리 배포가 없었다.
센서가 커널 수준에서 실행되기 때문에, 센서의 버그가 격리되지 않고 운영 체제 전체를 다운시켰다.
CrowdStrike의 소프트웨어는 고객에게 콘텐츠 업데이트를 지연하거나 단계적으로 배포할 방법을 제공하지 않았기 때문에, 모든 기기가 잘못된 파일을 즉시 받았다.
복구에는 기기별 수동 개입이 필요했기 때문에, 수정 사항이 존재한 후에도 장애가 오래 지속되었다.
교훈
커널에서 실행되는 소프트웨어는 그것이 보호하는 기기를 다운시킬 수 있다. 먼저 소규모 카나리 그룹에 배포하고, 콘텐츠 업데이트를 코드처럼 검증하며, 잘못된 업데이트가 치명적이지 않고 안전하게 실패하도록 만들어야 한다.
여파
CrowdStrike는 사과하고 영향을 받은 고객들에게 보상했으며, 콘텐츠 업데이트를 테스트하고 단계적으로 배포하는 방식을 전면 개편해 카나리 링과 배포 시점에 대한 고객 통제를 추가했다. 이 사건은 단일 커널 수준 보안 제품이 전 세계의 핵심 인프라 전반에서 실행되도록 허용하는 것의 취약성과, 마이크로소프트가 그러한 소프트웨어에 Windows의 깊은 커널 접근 권한을 부여한 결정에 대한 논쟁을 다시 불러일으켰다. 가장 큰 타격을 받은 기업 중 하나인 델타 항공은 수억 달러의 손실을 보고했다. 'CrowdStrike 장애'는 잘못된 업데이트 하나가 어떻게 세상을 멈출 수 있는지를 뜻하는 대명사가 되었다.
근거 확인하기
출처
- CrowdStrike — Channel File 291 Incident Root Cause Analysis (August 2024) crowdstrike.com
- 2024 CrowdStrike incident — Wikipedia en.wikipedia.org