Uber, Fitbit, OkCupid, 1Password 등 세계 유수 기업의 사용자 데이터가 수주 동안 유출 위험에 노출되는 사건이 발생했습니다. 원인은 '클라우드블리드(Cloudbleed) 버그'로, 서버가 버퍼를 초과해 실행되면서 개인 정보가 담긴 메모리를 그대로 반환하면서 생긴 문제입니다. 2014년에 보고된 하트블리드(Heartbleed) 버그와 유사한 사례입니다. 이 취약점은 구글 보안 연구원 테비스 오맨디(Tavis Ormandy)가 처음 발견해 보고했습니다. CloudFlare의 CTO 존 그레이엄 커밍(John Graham-Cumming)은 약 600만 개 웹사이트 중 어느 곳이 영향을 받았는지 정확히 특정하기 어렵다고 밝혔습니다. 다수의 보안 전문가들은 실제 피해 규모가 CloudFlare가 공식 발표한 것보다 훨씬 클 것으로 보고 있습니다.

Cloudflare 취약점이 초래한 결과
CloudFlare의 많은 서비스는 HTML을 실시간으로 파싱하고 수정하는 방식에 의존하고 있습니다. CloudFlare는 기존에 ragel로 작성된 파서를 사용하다가, 지난해 자체 파서를 새로 개발하기로 결정했습니다. 두 파서 모두 nginx 모듈 형태로 배포되었는데, 문제의 버그 자체는 ragel 파서에 원래부터 존재했지만, 새 파서가 도입되면서 파서와 서버 간 상호작용 방식이 바뀌었고, 이로 인해 메모리 오버플로우가 발생하며 취약점이 드러나게 되었습니다.
클라우드블리드의 직접적인 결과는 다음과 같습니다:
- 검색 엔진이 유출된 데이터를 대량으로 캐싱하여 검색 결과에 그대로 노출
- 소셜 미디어 및 데이팅 사이트에서 오간 개인 채팅 내용 유출
- 사용자 신원 정보 누출
- 쿠키 및 IP 정보 노출
즉각적으로 취해야 할 예방 조치
- FTP, cPanel, 관리자 패널 등 모든 계정의 비밀번호를 즉시 변경합니다.
- 서비스를 운영 중이라면 사용자에게도 비밀번호 변경을 강제합니다.
- 가능하다면 2단계 인증(2FA)을 활성화합니다.
- 웹사이트 캐시를 삭제하고 기존 캐시를 완전히 퍼지(purge)합니다.
역방향 프록시에 제기된 의문들
사이버 보안 전문가이자 전도사로 알려진 트로이 헌트(Troy Hunt)는 자신의 블로그를 통해 이번 사건에 대한 우려를 표했습니다.
취약점이 공개된 이후 CloudFlare의 대응은 매우 단호하고 투명했습니다. CEO와 CTO가 공개 성명을 발표하고 상황을 직접 책임졌습니다. 그럼에도 불구하고 이번 사건은 웹 트래픽을 자사 서버로 경유시키도록 요구하는 역방향 프록시(reverse proxy) 솔루션 전반에 대한 근본적인 의문을 남깁니다. 이러한 솔루션의 최대 리스크는 서버 하나가 해킹당하면 그 위에서 운영되는 모든 웹사이트가 한꺼번에 위험에 빠진다는 점입니다. CloudFlare의 사례에서 보듯이, 단 하나의 결함만으로도 수백만 개 웹사이트가 위험에 노출될 수 있습니다.
저희는 이 주제에 대해 저명한 보안 연구원이자 저자인 라파이 발로흐(Rafay Baloch)의 견해를 들어보았습니다.
라파이의 지적은 매우 시사적입니다. 보안 기업들은 세계 최고 수준의 WAF(웹 애플리케이션 방화벽)조차 뚫을 수 있는 보안 연구원들의 능력을 결코 과소평가해서는 안 됩니다. 완전한 보안 솔루션에는 반드시 '책임 있는 취약점 공개(Responsible Disclosure)' 체계가 포함되어야 한다는 주제로 곧 추가 글을 연재할 예정입니다.
Astra를 개발하면서 역방향 프록시 방식을 채택하지 않은 주요 이유 중 하나도 바로 이런 상황을 피하기 위해서였습니다. 인프라의 단 하나의 취약점 때문에 모든 사용자가 일괄적으로 위험에 노출되는 일이 없도록 하기 위함이었습니다.