클라우드블리드(Cloudbleed), 클라우드플레어 파서 버그로 고객 웹 세션 정보가 무작위 노출된 사태
2016-09-22 — 2017-02-23
최종 갱신
이 문서는 실제 사건·사고를 시간순으로 정리합니다. 편집 시 신뢰할 수 있는 출처를 반드시 밝혀 주세요.
1. 개요[편집]
2017년 2월 구글 프로젝트 제로의 타비스 오르마니가 클라우드플레어 프록시가 초기화되지 않은 메모리를 응답에 섞어 내보낸다는 사실을 발견해 알려, 쿠키·인증 토큰·POST 본문이 검색엔진 캐시에까지 남은 것으로 드러난 대규모 정보 노출 사건.
2. 전개 과정[편집]
8개 기록 · 2016-09-22 ~ 2017-02-23
새 HTML 파서 cf-html이 '자동 HTTPS 재작성' 기능에 처음 도입
클라우드플레어는 고객 웹페이지의 HTML을 실시간으로 고쳐 쓰는 기능을 위해 cf-html이라는 새 파서를 개발했다. 이 파서가 2016년 9월 22일 '자동 HTTP 재작성(Automatic HTTPS Rewrites)' 기능에 처음 적용되었고, 사고 후 클라우드플레어는 이 날짜를 메모리가 새어 나갔을 수 있는 가장 이른 시점으로 제시했다. 파서의 버그는 특정 조건에서 버퍼 끝을 넘어 읽는 결함이었지만 이 시점에는 거의 발현되지 않았다. 이후 같은 파서가 다른 기능으로 확대되면서 문제의 규모가 커졌다.
'서버 사이드 익스클루드' 기능이 새 파서로 이전
2017년 1월 30일 클라우드플레어는 서버 사이드 익스클루드(Server-Side Excludes) 기능을 기존 파서에서 cf-html 파서로 옮겼다. 이 기능은 특정 구간의 내용을 방문자에게만 숨기는 데 쓰이며 많은 고객 사이트가 사용하고 있었다. 새 파서가 적용되는 기능이 둘로 늘면서 버그가 발현될 수 있는 요청의 폭도 넓어졌다. 다만 당시에는 누구도 이상 징후를 눈치채지 못했고 유출은 조용히 진행되고 있었다.
이메일 난독화 기능 일부가 새 파서로 이전, 유출 정점 구간 시작
2017년 2월 13일 이메일 주소 난독화(Email Obfuscation) 기능의 일부가 cf-html 파서로 옮겨지면서 버그가 실제로 자주 발현되는 조건이 만들어졌다. 클라우드플레어는 가장 많은 유출이 일어난 시기를 2월 13일부터 18일 사이로 추정했다. 이 기간에도 전체 HTTP 요청 약 330만 건당 1건꼴로만 메모리가 섞여 나간 것으로 집계되어 확률은 낮았지만, 절대 요청량이 워낙 커서 노출 건수는 적지 않았다. 유출된 응답에는 다른 고객의 쿠키와 인증 토큰이 뒤섞여 있을 수 있었다.
구글 프로젝트 제로 타비스 오르마니, 클라우드플레어 연락처를 찾으며 결함 통보
2017년 2월 17일 오르마니는 말뭉치 정제 작업을 하던 중 예상과 다른 데이터가 섞여 나오는 것을 발견했다. 그는 2월 18일 협정세계시 00시 11분 트위터로 클라우드플레어의 보안 연락처를 구한다는 글을 올렸고, 같은 날 00시 32분 구글을 통해 버그의 상세 내용이 클라우드플레어에 전달되었다. 그가 확인한 응답 사이에는 요청과 무관한 데이터가 끼어 있었다. 이로써 몇 달간 이어진 유출의 실체가 처음으로 외부에 알려졌다.
클라우드플레어, 7시간 만에 파서 킬스위치 배포
통보를 받은 클라우드플레어는 00시 40분 샌프란시스코에서 부서 간 대응팀을 꾸렸고, 01시 19분 이메일 난독화 기능을 전 세계에서 껐다. 01시 22분 런던 팀이 합류해 24시간 대응 체제가 가동되었으며, 04시 24분에는 자동 HTTPS 재작성 기능도 전 세계에서 중단되었다. 07시 22분에는 cf-html 파서 자체를 끄는 킬스위치 패치가 전 세계에 배포되어 유출 경로가 막혔다. 통보부터 핵심 완화까지 약 7시간이 걸렸다는 점은 신속한 대응이었다는 평가와 함께, 이미 수개월간 노출된 데이터가 남았다는 한계도 보여 주었다.
SAFE_CHAR 수정 배포 후 세 기능 모두 재활성화
클라우드플레어는 2월 20일 협정세계시 21시 59분 포인터가 버퍼 끝을 넘어 이동하지 못하게 하는 SAFE_CHAR 수정안을 전 세계에 배포했다. 이어 2월 21일 18시 03분 일시 중단했던 자동 HTTPS 재작성, 서버 사이드 익스클루드, 이메일 난독화 세 기능이 전 세계에서 다시 켜졌다. 회사는 버그가 근본적으로 제거되었다고 밝혔고 파서 코드를 보다 안전하게 다루도록 개선 작업을 이어 가겠다고 했다. 이 시점까지 외부에는 아직 사고가 공개되지 않은 상태였다.
오르마니 공개 폭로: '클라우드플레어가 수개월간 고객 HTTPS 세션을 흘렸다'
2017년 2월 23일 오르마니는 클라우드플레어가 고객의 HTTPS 세션 정보를 수개월간 새어 나가게 했다고 공개적으로 밝혔고, 보안 업계는 이 결함을 '하트블리드'에 빗대 '클라우드블리드'라고 불렀다. 같은 날 클라우드플레어도 사고 경위 보고서를 내놓고 쿠키, 인증 토큰, HTTP POST 본문 같은 민감 정보와 회사 내부 비밀 일부가 노출됐을 수 있다고 인정했다. 다만 고객의 SSL 개인키는 구조적으로 분리되어 있어 유출되지 않았다고 설명했다. 이 사건은 CDN 한 곳의 결함이 수많은 웹사이트에 동시에 영향을 미칠 수 있다는 집중 위험을 부각시켰다.
검색엔진 캐시 정리: 161개 도메인, 770개 URI
클라우드플레어는 유출된 메모리가 구글·야후·빙 등 검색엔진 캐시에 남아 있는지 조사했다. 그 결과 유출 내용이 캐시된 고유 도메인은 161개, 유출 데이터를 포함한 고유 URI는 770개로 확인되었고 이들은 검색엔진 업체의 협조로 삭제되었다. 회사는 유출 가능성이 있던 기간의 요청 비율이 0.00003% 수준이라고 강조했으나, 이미 캐시에 저장된 정보는 제3자가 열람했을 수 있어 비밀번호 변경 같은 이용자 조치 논쟁이 이어졌다. 클라우드플레어는 외부에서 이 취약점이 악용되었다는 증거는 발견하지 못했다고 밝혔다.
3. 같이 보기[편집]
- ILOVEYOU 러브버그 웜, 100억 달러 피해와 처벌 공백의 사이버 대란(2000)— IT·서비스
- 모리스 웜, 코넬대 대학원생이 퍼뜨린 최초의 대규모 인터넷 웜 사태(1988)— IT·서비스
- 디지노타(DigiNotar) 해킹, 가짜 구글 인증서 발급과 인증기관 파산— IT·서비스
- 하트랜드 페이먼트 시스템즈 1억 3천만 카드 정보 유출 사태(2008)— IT·서비스
- 영국항공 고객 카드정보 유출 사태, ICO 2,000만 파운드 과징금(2018)— IT·서비스
- 마이크로소프트 윈도 리콜 프라이버시 논란, 상시 화면 캡처 기능의 출시 연기와 재설계(2024)— IT·서비스

자주 묻는 질문
- 클라우드블리드(Cloudbleed), 클라우드플레어 파서 버그로 고객 웹 세션 정보가 무작위 노출된 사태, 어떤 사건인가요?
- 2017년 2월 구글 프로젝트 제로의 타비스 오르마니가 클라우드플레어 프록시가 초기화되지 않은 메모리를 응답에 섞어 내보낸다는 사실을 발견해 알려, 쿠키·인증 토큰·POST 본문이 검색엔진 캐시에까지 남은 것으로 드러난 대규모 정보 노출 사건.
- 클라우드블리드(Cloudbleed), 클라우드플레어 파서 버그로 고객 웹 세션 정보가 무작위 노출된 사태, 언제 일어났나요?
- 2016-09-22부터 2017-02-23까지 이어진 사건입니다.
- 클라우드블리드(Cloudbleed), 클라우드플레어 파서 버그로 고객 웹 세션 정보가 무작위 노출된 사태, 지금 상태는 어떤가요?
- 종결된 사건입니다. 2017-02-23에 마무리되었습니다.
개선 제안
이 문서에 대한 개선을 제안할 수 있어요. 제안은 관리자 검토 후 반영됩니다.
개선 제안하기