지난주에는 보안 이슈가 두 가지나 있었습니다. 우선 더 심각하다고 느껴지는 클라우드블리드에 관한 글입니다.
클라우드플레어는 CDN 업체입니다. 각각의 지역에 서버를 두고 자주 사용하는 파일(자바스크립트나 CSS 파일등)을 지역별로 캐시해 놓고 사용자가 요청하면 가장 가까운 서버에서 받아옴으로써 속도를 빠르게 해 주는 서비스를 제공하고 있습니다.
각 지역별로 서버가 있다보니 디도스 방어 기능도 제공하고 있습니다. 물론 디도스 방어는 규모가 커지면 돈을 받습니다만 왠만한 소규모 디도스들은 무료로 다 막아줍니다. 다만 한국에서는 가장 가까운 ICN 서버를 사용하지 못해 빠르게 느끼지는 못합니다. 이 부분은 다음 포스팅을 통해 설명드리겠습니다.
이러한 기능 외에도 웹서버의 Rewrite 기능을 간단하게 대체할 수 있도록 Page Rule 기능도 제공합니다. 예를 들자면 HTTP로 접속하면 HTTPS로 자동으로 이동을 시켜준다든가 하는 기능이 Page Rule의 기능입니다. 또 이메일 노출 방지를 위해 이메일을 자동으로 암호화시켜주는 기능까지 있습니다. 이 부분들이 이번 취약점의 원인이 된 부분입니다.
개인정보가 새어나갔다!
2월 17일 경, 구글 프로젝트 제로 소속인 Tavis Ormandy가 클라우드플레어의 보안 취약점을 발견했습니다. 이 취약점이 클라우드블리드라 불립니다. (아마 하트블리드와 비슷하다는 점을 이용해서 생긴 이름으로 보입니다) 그는 구글봇을 최적화하던 중 이상한 데이터를 발견했습니다. 이 데이터를 분석해 본 결과 그는 각종 사이트들의 로그인 정보, 쿠키 등이 포함된 사실을 밝혀냅니다. HTTPS 사이트임에도 불구하고 말이죠.
클라우드플레어측은 검색 엔진에 올라온 정보들은 모두 삭제했다고 공지하긴 했다만, 인터넷 상에 한번 올라간 정보가 과연 쉽게 사라질지..
모든 사이트가 이 공격의 피해를 받은 것은 아닙니다. 확인된 몇몇 사이트에게는 개인적으로 정보가 유출되었다고 이메일로 통지를 보내주는 것 같습니다.
저도 받았습니다. 다행히 현재까지 제가 운영중인 사이트의 유출된 데이터는 발견되지 않은 것 같습니다.
그러나 클라우드플레어 측에서 유출되지 않은 것으로 확인한 사이트라 하더라도(정확히는 검색 엔진에 누출된 데이터가 존재한 사이트) 구글 이외의 타 검색엔진의 캐시에 남아있을수도 있고 아직 유출되었을 가능성은 충분히 남아있습니다. 따라서 안심하시면 안됩니다. 2016년 9월 22일부터 2017년 2월 18일에 클라우드 플레어를 사용하는 사이트에서 민감한 정보를 사용한 적이 있다면 지금 즉시 비밀번호를 바꾸는 것을 추천드립니다. 만일 결제 정보나 집 주소등의 민감한 정보가 새어나갔다면 인터넷상에서 떠돌지 않기를 바라는 수밖에요.
국내에서는 리그오브레전드, 나무위키, 일간 베스트 저장소, 오늘의 유머 등등의 사이트가 클라우드 플레어를 사용중입니다. Curse 네트워크 전체 (마인크래프트 포럼, 위키 포함)과 기타 마인크래프트 관련된 사이트들(마인리스트, 마인체크, 프마포, Spigot 공식 사이트, Bukkit 공식 사이트, PPMP 공식 사이트)들도 모두 클라우드 플레어를 사용중입니다.
클라우드플레어 측은 정확한 피해 규모와 관련한 정보는 공개하지 않았습니다. 그러나 클라우드플레어를 사용하는 사이트가 매우 많은 만큼 상당수의 서버가 피해를 봤을 것으로 추측합니다.
웹 서버가 해킹당한 것은 아닙니다. 다만 웹 서버와 통신하던 중 중간에서 정보가 새어나갔다 정도로 생각하면 될 것 같습니다.
잠재적으로 정보 유출 위험이 사이트를 모아놓은 Github 저장소도 생겼습니다. 다만 이 목록은 클라우드 플레어를 사용하는 모든 도메인을 모아 놓은 것인지라, 목록에 올라가 있다고 해서 무조건 유출된 것이 아닌 잠재적인 유출 가능성이 있는 것일 뿐이며 목록에 없다고 해서 무조건 안심하시면 안된다는 사실을 기억하시기 바랍니다.
참고 링크
https://blog.cloudflare.com/incident-report-on-memory-leak-caused-by-cloudflare-parser-bug/
https://bugs.chromium.org/p/project-zero/issues/detail?id=1139