쿠키 하나로 당신의 검색 히스토리를 훔친다
초록
이 논문은 구글 검색 서비스에서 사용되는 비보안 세션 쿠키(sid)를 탈취해, 사용자의 검색 클릭 기록과 일부 연락처 정보를 복원할 수 있음을 보여준다. 연구팀은 Firefox와 Chrome용 확장 프로그램을 구현해 10명의 자원봉사자를 대상으로 실험했으며, 평균 40 %·최대 80 %에 달하는 클릭 히스토리를 회수했다.
상세 분석
본 연구는 웹 서비스가 개인화 기능을 제공하면서도 인증 단계와 식별 단계 사이에 존재하는 보안 격차를 악용한다. 구글은 두 단계 쿠키 정책을 적용한다. ssid는 HTTPS 전용이며 인증된 세션에만 사용되는 반면, sid는 단순 사용자 식별용으로 모든 구글 도메인(예: *.google.com)에서 HTTP와 HTTPS 모두 전송된다. sid는 암호화되지 않은 평문으로 전송되기 때문에, 공격자는 공용 Wi‑Fi, 악성 액세스 포인트, 혹은 HTTPS‑Everywhere와 같은 확장 프로그램의 미비점을 이용해 쿠키를 가로챌 수 있다.
가로챈 sid를 이용하면 구글 검색 결과에 대한 개인화 기능에 접근한다. 구글은 사용자의 검색 기록, 방문한 사이트, 그리고 소셜 네트워크(구글+, Gmail 연락처 등)와 연계된 정보를 기반으로 “Visited”(방문한 링크)와 “Social”(소셜 공유) 필터를 제공한다. 공격자는 이 필터를 활성화한 채로 자동화된 쿼리를 전송하면, 검색 결과 페이지에 방문한 URL만 남게 된다. 특히 “.com”, “.net” 등 도메인 확장자와 흔히 사용되는 파일명(.jsp, .php 등)을 포함한 15개의 키워드 리스트를 순차적으로 검색함으로써, 최소한의 쿼리로도 대부분의 클릭 히스토리를 회수할 수 있다.
실험 구현은 Firesheep 확장의 모듈화를 활용해 이루어졌다. Firesheep은 네트워크 인터페이스를 모니터링해 세션 쿠키를 실시간으로 캡처한다. 연구팀은 이를 확장해 sid가 포착되면 자동으로 구글 검색 페이지를 열고, “Visited” 필터와 사전 정의된 키워드 집합을 사용해 페이지를 파싱하고 다음 페이지로 이동하면서 결과를 수집한다. 이 과정에서 공격자는 피해자의 검색 히스토리에 자체 쿼리가 남게 되지만, 전체 쿼리 수를 제한하면 탐지 위험을 크게 낮출 수 있다.
실험 결과는 10명의 자원봉사자를 대상으로 진행되었으며, 각 사용자는 883 059개의 검색 결과를 보유하고 있었다. 회수된 클릭 수는 72467개였으며, 이는 전체 히스토리의 11 %82 %에 해당한다. 특히 검색 기록이 풍부한 사용자(1 3403 059개 클릭)에서도 628~644개의 링크를 회수해 약 50 % 이상의 정보를 유출할 수 있었다. 이러한 결과는 sid 쿠키 하나만으로도 개인화된 검색 서비스를 통해 상당량의 민감 정보를 폭로할 수 있음을 입증한다.
논문은 또한 “HTTPS‑Everywhere”와 같은 보안 확장의 한계, 구글 서비스 중 아직 HTTPS를 지원하지 않는 영역(예: Google Alerts) 등을 지적하며, sid 쿠키를 전송하는 모든 HTTP 요청을 차단하거나, 개인화 기능 자체에 인증을 요구하도록 설계 변경을 제안한다.
요약하면, 비보안 세션 쿠키의 존재와 구글 검색 개인화 기능의 설계 결함이 결합돼, 공격자는 비교적 간단한 네트워크 스니핑만으로도 사용자의 검색 행동과 사회적 연결망 정보를 대량으로 수집할 수 있다. 이는 현재 웹 서비스가 인증과 식별을 명확히 구분하지 않을 경우 발생할 수 있는 심각한 프라이버시 위협을 보여준다.
댓글 및 학술 토론
Loading comments...
의견 남기기