상세 컨텐츠

본문 제목

CloudFlare를 사용하는 수 백만 사이트들에서 중요 정보를 유출하는 심각한 버그 발견

국내외 보안동향

by 알약(Alyac) 2017. 2. 27. 10:19

본문

CloudFlare를 사용하는 수 백만 사이트들에서 중요 정보를 유출하는 심각한 버그 발견
Serious Bug Exposes Sensitive Data From Millions Sites Sitting Behind CloudFlare

컨텐츠 전송 네트워크(CDN)이자 웹 서비스 제공자인 CloudFlare에서 심각한 보안 취약점이 발견 되었습니다.
 
Cloudbleed라 명명 된 이 심각한 버그는 2014년 발견 된 Heartbleed를 따서 명명되었으나, Heartbleed보다 더욱 심각합니다. 이 취약점은 CloudFlare 네트워크상의 웹사이트들 뿐 아니라 모바일 앱들에도 영향을 미치는 것으로 확인되었습니다. 

Cloudbleed란?

1주일 전 Google Project Zero의 보안 연구원인 Tavis Ormandy가 발견한 Cloudbleed는 CloudFlare에서 호스팅 되는 웹사이트들에서 프라이빗 세션 키 및 기타 민감 정보 유출을 야기시킵니다.

CloudFlare는 사용자와 웹 서버간의 프록시 역할을 하여, 그들의 글로벌 네트워크에 존재하는 웹사이트들의 컨텐츠를 캐싱하고 최적화 및 보안을 위해 Cloudflare의 엣지 서버를 통해 컨텐츠를 파싱함으로써 오리지널 호스트 서버로의 요청 수를 줄입니다.

약 일주일 전, Ormandy는 Cloudflare의 엣지 서버들에서 버퍼의 끝을 지나서 실행 중이며 HTTP 쿠키, 인증 토큰, HTTP POST 바디 등의 개인 데이터가 포함 된 메모리를 반환하고 있는 버퍼 오버플로우 이슈를 발견하였습니다. 유출된 데이터 중 일부들은 이미 검색엔진들이 캐싱한 후였습니다. 


Cloudbleed는 얼마나 심각한가?



Ormandy는 지난 목요일 발표한 블로그 포스팅에서 “나는 큰 데이팅 사이트의 비공개 메시지들, 유명한 채팅 서비스의 전체 메시지들, 온라인 패스워드 관리자의 데이터, 성인 비디오 사이트의 프레임들, 호텔 예약 등을 찾을 수 있었다.” “우리는 HTTPS 요청 전체, 클라이언트 IP 주소, 전체 응답들, 쿠키들, 암호들, 키들, 데이터 외 모든 것을 얻을 수 있었다.”고 밝혔습니다.


Ormandy는 Cloudflare는 자신들의 “ScrapeShield” 기능에 아래와 유사한 코드를 포함하고 있었다고 밝혔습니다.


int Length = ObfuscateEmailAddressesInHtml(&OutputBuffer, CachedPage);

write(fd, OutputBuffer, Length);


하지만 회사는 난독화 파서가 악성 HTML로 인해 부정적인 값을 리턴했는지 확인하지는 않았습니다. 


Cloudflare의 “ScrapeShield” 기능은 HTML을 파싱하고 난독화 하지만, 역방향 프록시가 고객들 사이에 공유 되므로 이는 모든 CloudFlare 고객들에게 영향을 미칠 것입니다.


Ormandy는 CloudFlare에 연락해 그의 조사 결과를 제보했습니다. 회사는 문제점을 발견 후 CloudFlare의 기능 중 3개 (이메일 난독화, 서버 측 제외, 자동 HTTPS rewrite)를 즉시 비활성화했습니다. 이들은 동일한 HTML 파서 체인을 사용하고 있어 유출을 야기시켰습니다.


지난 목요일 Ormandy가 이 취약점에 대해 발표한 후, CloudFlare는 취약점을 인정하나 고객들의 SSL 프라이빗 키들은 유출 되지 않았다고 분명히 밝혔습니다.


CloudFlare의 CTO인 John Graham-Cumming은 “Cloudflare는 항상 SSL 연결들을 분리 된 이 버그에 영향을 받지 않는 NGINX 인스턴스를 통해 종료시켰다.” “이 버그는 유출 된 메모리에는 개인 정보가 포함되어 있을수도 있으며, 검색 엔진에 의해 캐싱될 수 있기 때문에 심각하다고 볼 수 있다.” “우리는 검색 엔진들이 민감 정보들을 삭제했다고 판단되는 시점인 지금 이 문제를 공개한다.” “또한 우리는 이 버그를 악용했다는 증거 또는 이를 발견했다는 다른 보고서들을 발견하지는 못했다.”고 밝혔습니다. 


CloudBleed의 근본적인 발생 원인


Cumming은 Cloudbleed의 근본적인 발생 원인에 대해 “버퍼의 끝에 도달했다는 것을 확인할 때 동등 연산자를 사용했으며, 포인터가 버퍼 끝을 지나갈 수 있었기 때문”이다, “확인 시 버퍼의 끝을 뛰어 넘는 == 대신 >=를 사용했다면 발생하지 않았을 것”이라고 밝혔습니다.


Cloudflare는 또한 가장 많이 영향을 미친 기간이 2월 13일 ~ 2월 18일 사이였으며, 3,300,000건의 HTTP 요청 중 1건 마다 메모리 누수로 이어졌는데, 이는 전체 요청의 0.00003%라고 밝혔습니다.


하지만 연구원은 구글의 캐싱 된 데이터를 살펴 봤을 때, Cloudbleed 취약점이 수 개월 간 존재했었다며 CloudFlare가 속임수를 쓰고 있다고 주장했습니다.


Cloudbleed가 사용자에게 미치는 영향은?


Cloudflare의 엣지 서버들을 통해 HTML 페이지를 파싱하고 수정하는 Cloudflare의 서비스와 웹사이트들이 많이 있습니다.


Cloudflare를 직접 사용하지 않는다고 해도 예외는 아닙니다. 당신이 방문하는 웹사이트, 당신이 사용하는 웹 서비스들도 이에 영향을 받아 데이터가 유출 될 가능성이 있습니다.


물론 당신의 사이트에 Cloudflare 서비스를 사용하고 있다면, 이 결점은 당신에게 영향을 미쳐 CloudFlare의 프록시를 통해 당신의 서버와 최종 사용자 간을 이동하는 민감정보들이 노출될 수 있습니다.


CloudFlare의 서비스는 재빨리 이 버그를 패치하고 실제로 미친 영향은 비교적 미미한 편이라고 밝혔지만, 데이터는 수 개월 동안 끊임없이 누출 되고 있었습니다.


누출 된 데이터 중 일부는 구글, 빙, 야후 등의 검색엔진에 공개적으로 캐싱 되었으나 현재는 삭제 되었습니다. 하지만 DuckDuckGo를 포함한 일부 검색 엔진은 혀전히 해당 데이터들을 포함하고 있습니다.


또한 누출 된 데이터들이 다른 웹사이트들에 존재하거나 웹을 통해 캐싱 되었을 경우에는, 모든 위치에서 데이터를 찾아 삭제하는 것은 불가능하다고 볼 수 있습니다.


Cloudbleed, 모바일 앱에도 영향 미쳐


Cloudbleed는 모바일 앱에도 영향을 미치게 됩니다. 많은 경우 앱들이 컨텐츠 전달 및 HTTPS(SSL/TLS) 종료를 위해 브라우저와 동일한 백엔드를 사용하도록 설계 되었기 때문입니다.


YCombinator 사용자들은 DuckDuckGo 캐시들을 검색하여 Discord, FitBit, Uber와 같은 앱들에 HTTP 헤더 데이터가 존재함을 확인했습니다. NowSecure가 실시한 분석에서는, 연구원들이 앱 스토어에서 가장 인기있는 앱 샘플 3,500개를 분석 결과 Cloudflare 서비스를 사용하는 것으로 나타난 iOS 앱을 약 200개 발견했다고 밝혔습니다. 또한 증거는 없지만 Ormandy보다 더 빨리 누군가가 이 취약점을 발견해 악용하였을 수도 있습니다. 


Cloudbleed에 영향을 받은 CloudFlare의 주요 고객들은 Uber, 1Password, FitBit, OKCupid 등이 있습니다. 하지만 1Password는 데이터를 전송 시 암호화를 하기 때문에 어떠한 민감 데이터도 유출 되지 않았다고 밝혔습니다.


그러나 GitHub의 사용자인 ‘pirate’가 이 버그에 잠재적으로 영향을 받은 웹사이트들의 목록을 공개했는데, 여기에는 CoinBase, 4Chan, BitPay, DigitalOcean, Medium, ProductHunt, Transferwise, The Pirate Bay, Extra Torrent, BitDefender, Pastebin, Zoho, Feedly, Ashley Madison, Bleeping Computer, The Register 등이 포함 되어 있습니다. 


CloudFlare가 아직까지 공식적으로 영향을 받은 서비스의 목록을 발표하지 않았기 때문에 위의 목록이 종합적인 것은 아닙니다.


사용자가 해야 할 일은 무엇인가?


온라인 사용자들은 모든 사이트에서 동일한 패스워드를 사용했을 경우 패스워드들을 모두 리셋하고, 삭제 작업이 진행 되고 있는 중이기 때문에 계정 활동을 모니터링해보는 것이 좋습니다.


또한 자신의 웹사이트에 Cloudflare를 사용하고 있는 고객이라면 사용자들의 패스워드를 모두 변경하는 것이 좋을 것입니다.





참고 : 

http://thehackernews.com/2017/02/cloudflare-vulnerability.html

https://bugs.chromium.org/p/project-zero/issues/detail?id=1139



관련글 더보기

댓글 영역