지난달 글로벌 IT 중단 사태를 촉발한 Falcon 센서 코드를 검토하기 위해 외부 보안 회사 2곳을 고용했지만, 크라우드스트라이크가 사고를 일으킨 단순한 실수를 파악했기 때문에 그다지 많은 것을 발견하지는 못할 수도 있습니다. 검토 소식은 화요일에 발표된 근본 원인 분석을 통해 알려졌습니다. 전 세계 수백만 대의 윈도우 컴퓨터를 중단시킨 결함이 있는 코드에 대해 사고 후 처음으로 검토한 결과, 문제는 지난 2월에 시작되었음을 알 수 있습니다.
이 보안 공급업체는 소프트웨어가 네임드 파이프 및 기타 윈도우 프로세스 간 통신(IPC) 메커니즘을 악용하는 새로운 공격 기법을 탐지하는 데 도움이 되는 센서를 팔콘에 추가했습니다. 이 업데이트는 일반적인 개발 및 테스트를 거쳤고, 크라우드스트라이크는 IPC 관련 정보를 포함한 새로운 '템플릿 유형'을 291번 '채널 파일'에 담아 팔콘 센서에 푸시했습니다. 이 파일은 주기적으로 업데이트되어 새로운 "템플릿 인스턴스"를 추가하여 팔콘의 공격 탐지 능력을 향상시켰습니다. 템플릿 인스턴스의 정보는 팔콘이 동작할 때 "콘텐츠 인터프리터"에 의해 처리됩니다.
근본 원인 분석을 통해 다음에 무엇이 잘못되었는지에 대해 자세히 살펴볼 수 있었습니다: 새로운 IPC 템플릿 유형은 21개의 입력 파라미터 필드를 정의했지만, 채널 파일 291의 템플릿 인스턴스로 콘텐츠 인터프리터를 호출한 통합 코드는 일치할 입력 값을 20개만 제공했습니다. 이 파라미터 수 불일치는 센서 릴리스 테스트 프로세스, 템플릿 유형(테스트 템플릿 인스턴스 사용) 스트레스 테스트 또는 필드에서 IPC 템플릿 인스턴스를 처음 몇 차례 성공적으로 배포하는 동안 발견되지 않았기 때문에 여러 계층의 빌드 유효성 검사 및 테스트를 피할 수 있었습니다. 이는 부분적으로는 테스트 중 21번째 입력과 초기 IPC 템플릿 인스턴스에서 와일드카드 매칭 기준을 사용했기 때문이었습니다.
그리고 앞서 크라우드스트라이크에서도 설명했듯이, 7월 19일에 두 개의 IPC 관련 템플릿 인스턴스가 팔콘 사용자에게 자동으로 배포되었습니다. 이 중 하나는 21번째 입력에 대해 와일드카드가 아닌 매칭 기준을 사용했습니다. 이로 인해 새로운 버전의 채널 파일이 만들어져 팔콘 센서가 21개의 입력을 검사해야 했지만, 콘텐츠 인터프리터라는 다른 소프트웨어는 20개의 값만 예상했습니다.
보안 업체는 근본 원인 분석에서 "따라서 21번째 값에 액세스하려는 시도가 입력 데이터 배열의 끝을 넘어서는 범위를 벗어난 메모리 읽기를 생성하여 시스템 충돌이 발생했습니다."라고 설명했습니다. 크라우드스트라이크는 유효성 검사된 입력 수와 실제 입력 수의 불일치가 다시 발생하지 않도록 수정 코딩을 마쳤습니다. 템플릿 유형에서 제공하는 입력의 유효성을 검사하는 기능인 센서 콘텐츠 컴파일러에 대한 패치이며, 7월 27일에 프로덕션에 적용되었습니다. 크라우드스트라이크는 또한 입력 배열의 크기가 예상 입력 수와 일치하는지 확인하기 위해 빠른 응답용 콘텐츠 인터프리터 업데이트에 런타임 입력 배열 바운드 검사를 추가했다고 밝혔습니다. 이 수정 사항은 현재 센서 소프트웨어 핫픽스를 통해 모든 윈도우 센서 버전 7.11 이상에 백포트되고 있습니다. 이 릴리스는 8월 9일부터 일반적으로 제공될 예정입니다.
또한, 징계를 받은 보안 공급업체는 모든 템플릿 유형에서 각 필드에 대해 와일드카드가 아닌 일치 기준을 테스트하는 테스트와 결함이 있는 파일이 향후 팔콘 고객에게 푸시되지 않도록 하는 새로운 검사를 포함하여 더 많은 테스트를 수행하고 있습니다. 또한 크라우드스트라이크가 이전 분석에서 언급했듯이 모든 템플릿 인스턴스는 앞으로 모든 사용자에게 한 번에 푸시되지 않고 단계적으로 고객에게 배포됩니다.
이 회사는 원래 고객에게 업데이트를 보낼 때 이러한 유형의 단계적 접근 방식을 사용하지 않았다는 이유로 투자자들로부터 소송을 당하고 있다는 점에 주목할 필요가 있습니다. 대변인은 "앞으로 크라우드스트라이크는 이번 사건에서 얻은 교훈을 활용하여 고객에게 더 나은 서비스를 제공하는 데 주력할 것입니다."라고 선언했습니다. "크라우드스트라이크는 고객을 보호하고 보안 침해를 막는다는 사명을 굳건히 지켜나갈 것입니다." 그러나 코드 검토를 위해 고용한 파트너의 이름을 밝힐 정도로 확고하지는 않습니다. 이러한 검토는 시작되었으며 7월 19일의 실패를 초래한 코드와 프로세스에 초점을 맞추고 있습니다. 크라우드스트라이크 대변인은 더 레지스터에 "우리는 RCA에 언급된 것 이상으로 우리를 위해 일하고 있는 공급업체에 대한 정보를 제공하지 않고 있습니다."라고 말했습니다.
|