지난 7월, 미국과 유럽 등 세계 곳곳의 항공사와 방송사, 금융사 등에서 벌어진 글로벌 IT 대란을 기억하십니까? 이들 기업이 사용하는 윈도우 서버와 PC가 갑자기 셧다운 됐습니다. 수백만 대의 윈도우 컴퓨터에 갑자기 블루스크린이 떴습니다.
일명 '크라우드스트라이크' 사태입니다. 이번 사태는 글로벌 사이버보안 업체인 크라우드스트라이크(CrowdStrike)의 소프트웨어의 업데이트가 윈도우와 충돌을 일으킨 것이 원인입니다.
크라우드스트라이크는 2011년에 미국 텍사스에서 설립된 클라우드 기반 보안업체입니다. 2019년 6월, 미국 나스닥에 상장했고요. 클라우드 기반 '엔드포인트 위협 탑지·대응(EDR)' 솔루션을 제공하는 것으로 잘 알려져 있습니다.
포춘 1000대 기업 중 538곳을 고객으로 두고 있을 만큼 영향력이 있는데요. 그만큼 이번 장애는 큰 피해를 유발했습니다. 사태가 발생한 직후 이 회사의 주가가 11% 하락했습니다. 현시점(8월 21일) 기준, 이 회사의 시가총액은 약 648억달러(87조원)입니다.
회사 측은 문제 발생 닷새만인 7월 24일에 '사고 원인 분석 및 대책 중간 보고서'를 발표했습니다. 크라우드스트라이크는 "이번 장애는 크라우드스트라이크의 팔콘(Falcon) 플랫폼의 긴급 대응 콘텐트(Rapid Response Content, 이하 RRC)" 구성 업데이트가 윈도우 시스템과 충돌을 일으킨 것이 원인"이라고 설명했습니다.
해당 보고서에 따르면 업데이트 배포 전에 테스트와 검증이 제대로 이뤄지지 못했다네요. 그 결과 7월 19일 금요일 오전 4시 9분부터 5시 27분(미국 현지 시각) 사이에 온라인 업데이트를 받은 윈도우 호스트가 영향을 받았습니다.
조금 더 구체적으로 살펴보죠.
RRC는 센서에 대한 가시성과 탐지 기능을 제공합니다. 보안 담당자는 원격 측정 데이터를 수집하고, 공격적 행동 지표를 식별하며, 탐지 및 예방작업을 수행하는 데 이를 사용하죠. RRC는 콘텐트 구성 업데이트 형태로 팔콘 센서에 제공되고 있습니다.
문제의 지난 19일, RRC의 콘텐트 구성 시스템을 통해 생성·구성되는 두 개의 프로세스 간 통신(IPC) 템플릿 인스턴스가 배포됐습니다. 그런데 배포 전, 콘텐트 구성 시스템에 포함된 콘텐트 검증기에 버그가 생겼습니다. 이로 인해 템플릿 인스턴스에 포함돼 있던 문제가 있는 콘텐트 데이터를 걸러내지 못한 채 유효성 검증을 통과하는 일이 발생했습니다. 이후 문제의 인스턴스는 프로덕션에 배포됐습니다.
회사 측은 "템플릿 타입을 처음 배포(2024년 3월 5일)하기 전 실시한 테스트, 콘텐트 검증기에서 수행된 검사에 대한 신뢰, 이전에 성공적인 IPC 템플릿 인스턴스 배포 사례 등을 기반으로 이 인스턴스를 프로덕션에 배포했다"면서 "이를 센서에서 수신해 콘텐트 인터프리터에 로드했을 때, 문제가 있는 콘텐트로 인해 아웃오브바운드 메모리 읽기로 인한 예외가 발생한 것"이라고 밝힙니다.
아울러 "이 예상치 못한 예외를 정상적으로 처리할 수 없어 윈도우 운영체제 총돌(BSOD)이 발생했다"고 장애 발생 경위를 설명했습니다. 이 떄문에 대규모 장애는 윈도우 환경에서만 일어났습니다. 맥과 리눅스 호스트는 영향을 받지 않았습니다.
이번 사태로 가장 억울함을 표한 곳은 다름 아닌 마이크로소프트였죠. 앞서 언급한 것처럼 맥과 리눅스 호스트는 영향을 받지 않았는데 윈도우 시스템은 장애가 일어났으니까요. 국내에서는 마이크로소프트 윈도우 클라우드 서비스 문제라거나, 그와 관련 문제와 대책을 지적하는 보도나 언급이 많이 나왔습니다만, 이는 잘못된 분석입니다.
문제가 발생한 이튿날, 마이크로소프트도 급한 불을 끄는데 적극 나섰습니다. 곧바로 "마이크로소프트의 사고는 아니지만, 생태계에 영향을 미치므로 크라우드스트라이크를 비롯한 다른 회사와 함께 업데이트를 제공한다"는 입장을 밝혔습니다. 마이크로소프트는 이번 크라우드스트라이크 업데이트가 850만대의 윈도우 기기에 영향을 미친 것으로 추정하고 있는데요, 이는 전체 윈도우 기기의 1% 미만이지만 피해 여파는 컸습니다.
이 사태는 마이크로소프트와 델타 항공사 사이의 갈등으로도 번졌습니다. 델타 항공은 크라우드스트라이크 업데이트의 오류로 항공운영 시스템이 중단됐었는데요. 델타 측은 이번 장애에 크라우드스트라이크 이외에 마이크로소프트에도 책임을 묻고 있습니다. 반면 마이크로소프트는 델타 항공의 시스템이 현대화되지 않아서 피해가 컸다고 보고 있습니다.
이 전쟁의 포문을 연 것은 바스티안 델타 항공 에드 바스티안 CEO입니다. 그는 CNBC와의 인터뷰에서 크라우드스트라이크와 마이크로소프트에 손해배상을 청구할 계획이라고 밝혔는데요. 바스티안 CEO의 주장에 따르면, 델타는 이번 사태로 무려 5억 달러의 손해를 입었다고 합니다. 5일 동안 5000여 편의 항공권을 취소했으며, 여행을 떠나지 못한 고객이 요구하는 손해배상액도 하루에 수천만 달러에 달한다고 하는데요. 이번 사태로 델타 항공 IT 부서의 직원들은 4만 대의 서버를 수동으로 재설정해야 했다고 바스티안 CEO가 말했습니다.
바스티안 CEO는 "기술 분야에서 '가장 취약한 플랫폼'에 대한 의존성을 재고할 것"이라고 강조했는데요. 가장 취약한 플랫폼은 마이크로소프트 플랫폼을 의미하는 것으로 풀이됩니다.
마이크로소프트도 발끈했죠. 이 회사를 대변하는 로펌 데처트의 마크 체포 대표는 바스티안 CEO의 이런 주장에 대해 "불완전하고 거짓이며, 오해의 소지가 있을 뿐 아니라 마이크로소프트 평판에 피해를 준다"고 반박했습니다. 그에 따르면, 사티아 나델라 회장이 직접 델타 CEO에게 이메일을 보내 도와주겟다고 제안했지만, 회신을 받지 못했다고 합니다.
마이크로소프트 측은 델타가 무료 지원 서비스를 거부한 이유에 대해 윈도우가 아닌 다른 시스템을 복구하는 데 어려움을 겪었기 때문이라고 의심합니다. 마이크로소프트 측은 "델타가 마이크로소프트의 도움을 거부한 이유는 복구하는 데 가장 어려움을 겪었던 승무원 관리 시스템의 지원 서비스를 IBM과 같은 다른 기술 공급업체로부터 받고 있었기 때문일 가능성이 높다"면서 "해당 시스템이 윈도우나 애저에서 실행되지 않기 때문"이라고 주장했습니다.
아울러 마이크로소프트는 "델타가 IT 인프라를 현대화하지 않은 것 같다"고 덧붙이기도 했는데요. 아메리칸 에어라인이나 유나이티드 에어라인과 같은 경쟁사보다 유독 델타 항공의 피해가 큰 이유가 시스템의 노후화 때문이라는 뉘앙스가 묻어났죠.
재발 방지 대책도 내놓았습니다. 앞서 언급한 보고서를 통해 공개한 내용인데요. 소프트웨어 복원력과 테스트 절차 개선을 핵심으로 내놓았습니다.
구체적으로는 ▲로컬 개발자 테스트 ▲콘텐트 업데이트와 롤백 테스트 ▲스트레스 테스트와 퍼징(fuzzing), 폴트 인젝션(fault injection) ▲안정성 테스트 콘텐트 인터페이스 테스트를 수행하겠다고 약속했는데요. RRC에 대한 콘텐트 검증기 관련 추가 검증 검사를 수행해 문제 있는 콘텐트가 배포되지 않도록 새로운 점검 방법을 도입하기 위한 작업을 추진하고 있다고도 밝혔습니다.
아울러 콘텐트 인터프리터에서 기존 오류 처리 기능도 강화활 계획을 공개했습니다. RRC 콘텐트에 대한 단계적 배포 전략을 도입하고, RRC 배포 중간에 피드백을 수집해 단계적 롤아웃에 반영해 센서·시스템 성능 모니터링 방식을 개선할 방침을 포함했고요.
업데이트 배포 시기와 위치를 세분화해 선택할 수 있도록 해, RRC 업데이트 제공에 대한 고객의 통제력도 강화시키는 등 RRC 배포 관련 개선 조치도 시행할 예정이라고 크라우드스트라이크 측은 강조했습니다.
일각에서는 보안 애플리케이션이 윈도우 커널에 접근하는 것을 막아야 한다는 주장도 나옵니다. 맥에서 피해가 없었던 것은 제 3자 애플리케이션이 맥의 커널에 접근할 수 없기 때문입니다. 반면 윈도우 플랫폼은 제3자 애플리케이션의 자율성을 조금 더 지원합니다. 그러나 커널에 접근하는 애플리케이션이 많아지면 그들의 실수로 시스템 전체가 셧다운되는 이번 사태가 재현될 가능성이 계속 남아있게 됩니다.
마이크로소프트, 윈도우 서비스 및 배포 프로그램 관리 담당 부사장 존 케이블은 자사 블로그에 올린 글에서 보안 솔루션 업체가 윈도우 커널에 액세스할 필요가 없는 기술을 사용할 것을 권장하기도 했습니다.
콘텐츠 제공 : 바이라인네트워크(byline.network)