호기심 많은 이웃이 비밀 레시피를 훔쳐보는 것이 쿠키를 둘러싼 가장 큰 프라이버시 걱정이던 시절이 있었지만, 인터넷의 등장으로 상황은 완전히 달라졌습니다. 일반 브라우저 쿠키는 대체로 유용하고 삭제도 쉽지만, 그와 달리 사용자를 끊임없이 추적하도록 설계된 변종 쿠키들도 존재합니다. 그중에서도 슈퍼쿠키(supercookie)와 좀비 쿠키(zombie cookie), 흔히 '에버쿠키(Evercookie)'라고 불리는 쿠키는 특히 제거하기가 까다롭습니다. 다행히 이러한 은밀한 추적 기법은 이미 주목받고 있으며, 브라우저들 역시 이에 맞서 계속 진화하고 있습니다.
슈퍼쿠키(Supercookies)란?

슈퍼쿠키는 여러 가지 서로 다른 기술을 지칭하는 데 사용되어 온 용어라 다소 혼란스러울 수 있습니다. 실제 쿠키인 경우도 있고 아닌 경우도 있습니다. 일반적으로 슈퍼쿠키는 브라우징 프로필을 변경해 사용자에게 고유 ID를 부여하는 모든 것을 의미합니다. 이런 점에서 쿠키와 동일한 기능, 즉 사이트와 광고주가 사용자를 추적할 수 있게 해주지만, 쿠키와 달리 삭제가 사실상 불가능하다는 것이 가장 큰 차이입니다.
'슈퍼쿠키'라는 용어는 원래 최상위 도메인에서 발행되는 쿠키를 가리켰지만, 오늘날에는 UIDH(Unique Identifier Header, 고유 식별자 헤더)와 HSTS(HTTP Strict Transport Security) 취약점을 지칭할 때 더 자주 들립니다. 최상위 도메인 쿠키란 ".com"이나 ".co.uk" 같은 도메인에 설정되어, 해당 도메인 접미사를 공유하는 모든 웹사이트가 열람할 수 있는 쿠키를 말합니다.
예를 들어 Google.com이 슈퍼쿠키를 설정하면, 다른 모든 ".com" 웹사이트에서도 해당 쿠키를 볼 수 있습니다. 이는 명백한 프라이버시 문제이지만, 어디까지나 일반적인 쿠키의 한 종류에 불과하기 때문에 대부분의 최신 브라우저는 기본적으로 이를 차단합니다. 이런 유형의 슈퍼쿠키에 대한 논의는 줄어들었고, 요즘은 아래의 두 가지 유형이 더 큰 화두가 됩니다.
UIDH(Unique Identifier Header): ISP가 심는 추적 코드
고유 식별자 헤더(UIDH)는 컴퓨터에 저장되지 않습니다. 대신 ISP(인터넷 서비스 제공업체)와 웹사이트 서버 사이에서 작동합니다. 작동 방식은 다음과 같습니다.
- 사용자가 ISP에 웹사이트 접속을 요청합니다.
- ISP는 요청을 서버로 전달하기 전에 요청 헤더에 고유 식별자 문자열을 추가합니다.
- 이 문자열 덕분에 사이트는 사용자가 쿠키를 삭제했더라도 동일한 사용자임을 식별할 수 있으며, 신원을 파악한 후에는 같은 쿠키를 그대로 브라우저에 다시 심을 수 있습니다.
간단히 말해, ISP가 UIDH 추적을 사용하면 사용자의 개인 '서명'을 방문하는 모든 웹사이트(또는 ISP에 비용을 지불한 사이트)에 전송하는 셈입니다. 주로 광고 수익 최적화에 활용되지만 매우 침해적인 방식이라, FCC(미국 연방통신위원회)는 이 사실을 고객에게 알리지 않고 옵트아웃(opt-out) 선택권도 제공하지 않은 버라이즌(Verizon)에 135만 달러의 벌금을 부과한 바 있습니다.
버라이즌 외에 어떤 기업들이 UIDH를 사용하는지에 대한 공개 데이터는 많지 않지만, 소비자들의 강한 반발로 인해 인기를 잃은 전략이 되었습니다. 더욱이 UIDH는 암호화되지 않은 HTTP 연결에서만 작동하는데, 요즘 대부분의 웹사이트는 기본적으로 HTTPS를 사용하고 'HTTPS Everywhere' 같은 확장 프로그램도 손쉽게 설치할 수 있으므로, 이 슈퍼쿠키는 사실 더 이상 큰 위협이 아니며 널리 사용되지 않을 가능성이 높습니다. 추가 보호를 원한다면 VPN을 사용하세요. VPN을 이용하면 UIDH가 붙지 않은 상태로 요청이 웹사이트에 전달됩니다.
HSTS 취약점을 악용한 슈퍼쿠키
HSTS를 악용한 슈퍼쿠키는 특정 사이트에서 공개적으로 확인된 적은 드문 유형이지만, 실제로 악용된 사례가 있었던 것으로 보입니다. Apple은 공격이 확인되었다며 Safari에 이에 대한 패치를 적용했습니다.
HSTS 자체는 유용한 보안 기술입니다. 브라우저가 안전하지 않은 HTTP 버전 대신 사이트의 HTTPS 버전으로 안전하게 리디렉션되도록 도와줍니다. 불행히도 다음과 같은 방식으로 슈퍼쿠키를 만드는 데 악용될 수 있습니다.
- 수많은 하위 도메인을 생성합니다(예: "domain.com", "subdomain2.domain.com" 등).
- 메인 페이지를 방문하는 각 방문자에게 임의의 번호를 할당합니다.
- 페이지에 보이지 않는 픽셀을 삽입하거나, 페이지 로딩 과정에서 사용자를 각 하위 도메인으로 순차적으로 리디렉션해 모든 하위 도메인을 강제로 로드하게 만듭니다.
- 일부 하위 도메인에는 HSTS를 사용해 보안 버전으로 전환하도록 브라우저에 지시하고, 나머지는 보안되지 않은 HTTP 상태로 둡니다.
- 하위 도메인의 HSTS 정책이 켜져 있으면 "1", 꺼져 있으면 "0"으로 계산합니다. 이 방식으로 사이트는 사용자의 임의 ID 번호를 2진수 형태로 브라우저의 HSTS 설정에 기록할 수 있습니다.
- 방문자가 다시 돌아올 때마다 사이트는 브라우저의 HSTS 정책을 확인해 처음 생성된 것과 동일한 2진수를 얻고, 이를 통해 사용자를 식별합니다.
복잡하게 들리지만 핵심은 간단합니다. 웹사이트가 브라우저로 하여금 여러 페이지에 대한 보안 설정을 생성·기억하게 만든 뒤, 다음 방문 시 그 고유한 설정 조합을 근거로 사용자 신원을 알아내는 것입니다. 다른 사람은 정확히 같은 설정 조합을 가질 수 없기 때문입니다.
Apple은 이미 사이트당 HSTS 설정을 한두 개의 메인 도메인에만 허용하고, 사이트가 사용할 수 있는 연쇄 리디렉션 횟수를 제한하는 등의 해결책을 마련했습니다. 다른 브라우저들도 이러한 보안 조치를 따를 것으로 예상됩니다(Firefox 시크릿 모드가 어느 정도 도움이 되는 것으로 알려져 있습니다). 다만 실제 피해 사례가 확인되지 않았기 때문에 대부분의 브라우저에게 최우선 과제는 아닙니다. 개인적으로 대응하려면 브라우저 설정을 살펴보고 HSTS 정책을 수동으로 삭제하는 방법 정도가 있습니다.
좀비 쿠키 / 에버쿠키(Zombie cookies / Evercookies)

좀비 쿠키는 이름 그대로, 삭제했다고 생각했던 쿠키가 되살아나는 쿠키입니다. '에버쿠키(Evercookie)'라고도 불리는데, 안타깝게도 윌리 워카의 영원히 녹지 않는 사탕처럼 즐거운 존재는 아닙니다. '에버쿠키'는 실제로 쿠키가 사용자의 삭제 노력을 얼마나 다양한 방식으로 회피할 수 있는지 보여주기 위해 만들어진 JavaScript API입니다.
좀비 쿠키가 삭제되지 않는 이유는 일반적인 쿠키 저장소 밖에 숨어 있기 때문입니다. 로컬 스토리지가 대표적인 은신처이며(Adobe Flash와 Microsoft Silverlight가 이를 많이 활용), 일부 HTML5 스토리지도 문제가 될 수 있습니다. 이 언데드 쿠키들은 웹 방문 기록이나, 브라우저가 캐시에 저장하는 RGB 색상 코드 속에도 숨어 있을 수 있습니다. 웹사이트는 숨겨진 쿠키 단 하나만 찾아내면 나머지를 모두 되살릴 수 있습니다.
다행히 이런 보안 구멍들은 점차 사라지고 있습니다. Flash와 Silverlight는 현대 웹 디자인에서 큰 비중을 차지하지 않게 되었고, 많은 브라우저가 에버쿠키의 다른 은신처에 더 이상 취약하지 않습니다. 하지만 이 쿠키들이 시스템에 스며드는 경로가 너무나 다양하기 때문에 단 하나의 완벽한 대책은 존재하지 않습니다. 그래도 검증된 프라이버시 확장 프로그램을 갖추고 브라우저 데이터를 주기적으로 삭제하는 습관은 결코 나쁘지 않습니다!
그래서 우리는 안전한가?
온라인 추적 기술은 끊임없는 군비 경쟁과도 같습니다. 따라서 프라이버시가 중요한 사용자라면, 온라인에서 100% 익명성이 보장되는 일은 없다는 사실에 익숙해지는 것이 좋습니다.
다행히 슈퍼쿠키는 실제 환경에서 자주 발견되지 않고 점점 더 많이 차단되고 있으므로 크게 걱정할 필요는 없습니다. 반면 좀비 쿠키/에버쿠키는 제거하기가 훨씬 까다롭습니다. 잘 알려진 침투 경로 대부분은 이미 막혔지만, 모든 취약점이 패치되기 전까지는 여전히 작동할 수 있고, 언제든 새로운 우회 기법이 등장할 수 있다는 점을 기억해야 합니다.