수많은 웹사이트가 Reddit처럼 Cloudflare와 같은 리버스 프록시 및 DDoS 완화 서비스를 활용해 대형 장애로부터 스스로를 보호하고 안정적인 운영을 이어가고 있습니다. 이러한 서비스들은 흔히 보안과 성능 향상을 동시에 제공한다고 홍보합니다.
그러나 2017년 2월 17일, Cloudflare 소프트웨어의 치명적인 버그로 인해 수백만 개 웹사이트의 개인 데이터가 언제든 노출될 수 있는 상태에 빠졌습니다. 일부 데이터는 구글 검색 결과에 나타난 페이지 캐시 복사본에까지 등장했습니다. '클라우드블리드(Cloudbleed)'로 알려진 이 사건은 기술을 안전하게 활용하는 문제에 대한 가치 있는 논의의 계기가 되었습니다.
대체 무슨 일이 벌어진 걸까?
Cloudflare를 잘 모르는 분들을 위해 간단히 설명하자면, Cloudflare는 웹사이트와 인터넷 사이에서 중개자 역할을 하는 서비스입니다. 이 서비스를 사용하는 사이트에 접속하면 실제로는 해당 사이트가 아닌 Cloudflare에 먼저 연결되고, Cloudflare가 다시 원래 사이트에 접속해 결과물을 전달해 줍니다.
자주 방문되는 페이지 일부는 캐싱해 두기 때문에 원본 서버가 매번 응답하지 않아도 되며, 대량 트래픽이 서버에 주는 부담을 크게 줄여줍니다. 분산 서비스 거부(DDoS) 공격의 영향도 완화할 수 있습니다. 공격의 직격탄을 막아주는 관문 역할을 하며, 정상적인 방문자는 통과시키고 봇은 차단하는 신호등과 같은 기능을 하는 것입니다. Cloudflare뿐 아니라 Incapsula, Akamai 같은 리버스 프록시 서비스들 역시 자신들을 웹사이트 보안의 수호자로 마케팅하곤 합니다.
클라우드블리드란 무엇인가?
클라우드블리드는 구글 프로젝트 제로(Project Zero) 팀의 한 연구원이 Cloudflare 소프트웨어의 버그를 발견하면서 세상에 알려진 사건입니다. 이 버그로 인해 주요 웹사이트의 개인 메시지, 온라인 비밀번호 관리자 데이터, 여러 서버의 전체 HTTPS 요청 내용이 노출될 위험이 드러났습니다.
Cloudflare가 연결 요청에 응답하는 과정에서 할당된 버퍼 공간을 초과하는 경우가 잦았고, 그 과정에서 당시 다른 고객들이 이용 중이던 웹사이트의 데이터가 함께 새어 나왔습니다. 이는 모든 정보를 무방비 상태로 만든 것과 마찬가지였으며, 이 서비스에 의존하는 웹사이트 운영자와 방문자 모두에게 심각한 보안 위험을 안겼습니다.
버그 자체는 2월 말에 패치되었지만, Cloudflare는 2016년 9월 22일 새 HTML 파서를 도입한 시점부터 데이터 유출이 시작되었을 가능성이 있다고 인정했습니다.
우리가 얻은 교훈
이전 글을 꾸준히 읽어온 독자라면 2014년의 '하트블리드(Heartbleed)' 사건을 기억할 것입니다. 당시 OpenSSL을 사용하던 웹사이트들은 공격에 취약했고, 사적인 데이터 조각이 외부에 노출될 수 있었습니다. 하트블리드와 최근의 클라우드블리드 사건은 하나의 값진 교훈을 남깁니다. 아무것도 100% 신뢰할 수 없으며, 사용자를 보호하기 위해 존재하는 서비스조차 예외가 아니라는 점입니다.
물론 이 글이 Cloudflare를 비난하려는 것은 아닙니다. 이런 버그는 어느 서비스에서든 발생할 수 있었습니다. 핵심은 인터넷은 결코 보증된 수준의 안전을 기대할 수 있는 곳이 아니라는 사실입니다. 가능한 모든 방법으로 스스로를 보호하더라도, 통제할 수 없는 상황 속에 무방비로 노출될 수 있습니다.
그렇다면 지금 뭘 해야 할까?
Inc.com의 Joseph Steinberg가 지적했듯이, "현재의 위험은 커지는 '사이버 보안 피로(cybersecurity fatigue)'로 인해 치러야 할 대가보다 훨씬 작으며, 이는 앞으로 더 큰 문제로 이어질 수 있습니다." 그의 말은 이렇게 해석할 수 있습니다. 이번 버그의 특성상 비밀번호가 유출되었을 확률은 천문학적으로 낮기 때문에, 지금 비밀번호를 바꾸는 행위는 오히려 사용자를 지치게 할 뿐이라는 것입니다. 진짜 위기가 닥쳤을 때, 끊임없는 소음과 공포, 과장된 보도에 지쳐 정작 중요한 순간의 비밀번호 변경 요청을 무시하게 될 수도 있습니다. 클라우드블리드는 그런 순간이 아닙니다. 물론 정말 필요하다고 느낀다면 비밀번호를 변경하는 것이 나쁠 것은 없습니다.
그 외에는 평소 경계심을 유지하고, 자주 사용하는 서비스에서 보내오는 이메일을 무시하지 않으면 됩니다. 위기가 발생하면 대부분의 서비스는 알아야 할 내용을 담은 안내 메일을 보내오고, 피해를 예방하기 위한 조언까지 함께 제공합니다.
Steinberg처럼 사이버 보안 피로가 실재한다고 생각하시나요? 충분한 근거가 없어도 사람들은 늘 경계 상태를 유지해야 할까요? 여러분의 생각을 댓글로 들려주세요!