2017년 클라우드플레어의 파서 버그로 인해 민감한 데이터가 메모리에서 누출되고 일부가 검색 엔진에 캐시된 ‘클라우드블리드’ 사건에 대한 개요.
클라우드블리드 (Cloudbleed)
위키백과, 우리 모두의 백과사전
클라우드블리드는 2017년 2월 17일 프로젝트 제로가 공개한 클라우드플레어의 버퍼 오버플로이다. 클라우드플레어의 코드가 다른 고객의 개인 정보를 포함한 메모리 내용을 노출했는데, 여기에는 HTTP 쿠키, 인증 토큰, HTTP POST 바디 및 기타 민감한 데이터가 포함되어 있었다.[1] 그 결과, 서버 메모리에 접근할 수 있었던 다른 모든 클라우드플레어 고객에게 클라우드플레어 고객의 데이터가 유출되었다. 클라우드플레어가 당시 제공한 수치에 따르면, 문제가 수정되기 전까지 이와 같은 상황은 1,800만 회 이상 발생했다.[2][3] 누출된 데이터 일부는 검색 엔진에 의해 캐시되기도 했다.[3][4][5][6][7][8]
이 발견은 구글의 프로젝트 제로 팀에 의해 보고되었다.[1] 태비스 오어맨디[9]는 팀 이슈 트래커에 문제를 게시하며 2월 17일에 클라우드플레어에 문제를 알렸다고 밝혔다. 그의 자체 개념증명(POC) 공격에서 그는 클라우드플레어 서버로부터 “주요 데이팅 사이트의 비공개 메시지, 잘 알려진 채팅 서비스의 전체 메시지, 온라인 비밀번호 관리자 데이터, 성인 비디오 사이트의 프레임, 호텔 예약. 전체 HTTPS 요청, 클라이언트 IP 주소, 전체 응답, 쿠키, 비밀번호, 키, 데이터 등 모든 것”을 반환받았다.[1]
[편집]
영향 면에서 클라우드블리드는 2014년의 하트블리드 버그에 비견된다. 두 경우 모두 웹 서버에서 실행되는 프로그램의 메모리에 있는 데이터에 무단 제3자가 접근할 수 있었고, 이에는 전송 중 TLS로 보호되던 데이터도 포함되었다.[10][11] 또한 클라우드블리드는 거의 200만 개의 웹사이트에 콘텐츠를 제공하는 콘텐츠 전송 네트워크에 영향을 주었기 때문에, 하트블리드에 못지않게 많은 사용자에게 영향을 미쳤을 가능성이 높다.[4][11]
이 취약점을 가장 먼저 발견한 태비스 오어맨디는 보고서에서 “이 문제를 ‘cloudbleed’라고 부르지 않기 위해 있는 힘을 다했다”고 말하며 하트블리드와의 비교를 즉시 언급했다.[1]
2017년 2월 23일 목요일, 클라우드플레어는 다음과 같이 글을 게시했다:[12]
이 버그는 누출된 메모리에 개인 정보가 포함될 수 있고, 또한 검색 엔진에 의해 캐시되었기 때문에 심각했습니다. 우리는 이 버그의 악의적 악용이나 그 존재에 대한 다른 보고의 증거를 발견하지도 못했습니다.
가장 큰 영향 기간은 2월 13일부터 2월 18일까지였으며, 클라우드플레어를 통과하는 HTTP 요청 약 3,300,000건당 1건꼴로 잠재적인 메모리 누수가 발생했습니다(이는 전체 요청의 약 0.00003%에 해당합니다).
클라우드플레어는 메모리가 이보다 앞선 2016년 9월 22일부터 누출되었을 수 있음을 인정했다. 회사는 또한 기계 간 암호화에 사용되는 자사 프라이빗 키 중 하나가 유출되었다고 밝혔다.
메모리 누수를 야기한 근본 버그는 수년간 우리 Ragel 기반 파서에 존재했지만, 내부 NGINX 버퍼 사용 방식 때문에 메모리 누수가 발생하지 않았습니다. cf-html을 도입하면서 버퍼링이 미묘하게 바뀌어 누수가 가능해졌고, cf-html 자체에는 문제가 없었음에도 그런 현상이 발생했습니다.[3]
클라우드플레어의 CTO인 존 그레이엄커밍은 우버와 OkCupid 같은 클라우드플레어 고객들이 상황의 보안 위험 때문에 직접 통보받지 못했다고 언급했다. 그는 “클라우드플레어 외부와의 백도어 소통은 없었습니다 — 구글 및 다른 검색 엔진과만 소통했습니다”라고 말했다.[6]
그레이엄커밍은 또한 “불행히도, 잠재적 보안 문제가 숨어 있던 오래된 소프트웨어 조각이 있었고, 우리가 그것에서 벗어나는 마이그레이션을 진행하는 과정에서만 그 문제가 드러났습니다.”라고 말하며, 팀이 이미 다른 가능한 이슈에 대비해 소프트웨어 점검을 시작했다고 덧붙였다.[7]
[편집]
태비스 오어맨디는 처음에는 “클라우드플레어의 신속한 대응과 이 불행한 문제를 정리하려는 헌신에 정말 감명받았다”고 밝혔다.[1] 그러나 오어맨디가 클라우드플레어에 추가 정보를 요청하자, “그들은 말이 되지 않는 여러 변명을 했다”[13]며, 고객에 대한 위험을 “심각하게 축소하는” 초안을 보냈다고 말했다.[14]
우버는 자사 서비스에 대한 영향이 매우 제한적이었다고 밝혔다.[10] 우버 대변인은 “소수의 세션 토큰만 관련되었고 이미 변경되었다. 비밀번호는 노출되지 않았다”고 덧붙였다.[15]
OKCupid의 CEO 엘리 사이드먼은 “클라우드플레어가 어젯밤 버그를 우리에게 알렸고, 우리는 OkCupid 회원에게 미치는 영향을 조사하고 있다. 초기 조사는 노출이 있더라도 극히 미미하다는 것을 보여준다. 만약 사용자가 영향을 받았다고 판단되면 즉시 통지하고 그들을 보호하기 위한 조치를 취할 것이다”라고 말했다.[10][15]
핏빗(Fitbit)은 사건을 조사한 결과 “소수의 사람들만 영향을 받았다”고 밝혔고, 우려되는 고객에게는 비밀번호 변경과 앱을 계정에서 제거 후 다시 추가하여 세션 토큰을 무효화할 것을 권고했다.[16]
블로그 글에서 제프리 골드버그(Jeffery Goldberg)는 클라우드블리드로 인해 1Password의 데이터가 위험에 처하지 않으며, 이는 클라이언트와 서버가 네트워크를 통해 어떤 비밀도 공유하지 않고 서로의 신원을 증명하는 보안 원격 비밀번호(SRP) 프로토콜을 사용하기 때문이라고 밝혔다. 1Password 데이터는 또한 사용자의 마스터 비밀번호와 비밀 계정 코드에서 파생된 키로 추가 암호화되며, 이는 1Password 자체 서버가 침해되더라도 자격 증명을 보호해 줄 것이라고 그는 주장했다. 1Password는 이 버그와 관련된 잠재적 침해에 대응하여 사용자에게 마스터 비밀번호 변경을 권고하지는 않았다.[17]
여러 주요 언론은 클라우드플레어가 호스팅하는 사이트 사용자들에게 비밀번호를 변경하라고 조언했는데, 다중 요소 인증으로 보호되는 계정조차 위험할 수 있기 때문이라고 했다.[18][19][20][7][21] 모바일 앱의 비밀번호 역시 영향을 받았을 수 있다.[22] Arbor Networks의 연구자들은 경보에서 “대부분의 우리에게 있어, 이 대규모 정보 유출에 대한 유일하게 진정으로 안전한 대응은 우리가 매일 사용하는 웹사이트와 앱 관련 서비스의 비밀번호를 업데이트하는 것이다... 거의 전부”라고 제안했다.[23]
반면 Inc. 매거진의 사이버보안 칼럼니스트 조지프 스타인버그는 사람들에게 비밀번호를 바꾸지 말라고 조언하며, “현재 위험은 앞으로 더 큰 문제로 이어질 ‘사이버보안 피로’ 증가로 치러야 할 대가에 비하면 훨씬 작다”고 주장했다.[24]