히스토리 스니핑
History sniffing히스토리 스니핑은 웹 사이트가 사용자가 방문한 웹 사이트와 방문하지 않은 웹 사이트를 기록하여 사용자의 웹 브라우징 히스토리 활동을 추적할 수 있도록 하는 웹 취약성 및 공격의 한 종류입니다. 이는 웹 플랫폼의 설계에 내재된 오랜 정보 유출 문제를 활용함으로써 수행되며, 그 중 가장 잘 알려진 것 중 하나는 사용자가 이미 방문한 링크에서 CSS 속성 변경을 감지하는 것입니다.
2002년 이래로 알려졌음에도 불구하고, 역사적 냄새는 여전히 풀리지 않는 문제로 여겨집니다. 2010년, 연구원들은 여러 유명 웹사이트들이 사용자들을 식별하고 추적하기 위해 히스토리 스니핑을 사용했다고 밝혔습니다. 얼마 지나지 않아 Mozilla와 다른 모든 주요 웹 브라우저는 히스토리 스니핑에 대한 방어를 구현했습니다. 그러나 최근 연구에 따르면 이러한 완화는 특정 공격 변형에 대해 효과적이지 않으며 방문 링크 및 새로운 브라우저 기능을 통해 히스토리 스니핑이 여전히 발생할 수 있습니다.
배경
모자이크와 넷스케이프 네비게이터와 같은 초기 브라우저는 페이지로 알려진 정적으로 연결된 문서 집합인 웹 모델을 기반으로 구축되었습니다. 이 모델에서는 사용자가 어떤 문서를 참조하든 이전에 방문한 문서와 방문하지 않은 문서를 아는 것이 합리적이었습니다.[1] 초기 그래픽 웹 브라우저 중 하나인 모자이크는 보라색 링크를 사용하여 페이지가 방문되었음을 표시하고 파란색 링크를 사용하여 방문하지 않은 페이지를 표시합니다.[2][3] 이 패러다임은 계속 유지되었고 이후 모든 현대 웹 브라우저에서 채택되었습니다.[4]
수년에 걸쳐 웹은 정적 컨텐츠의 원래 모델에서 보다 동적 컨텐츠를 선호하는 방향으로 발전했습니다. 1995년 Netscape의 직원들은 주력 웹 브라우저인 Netscape Navigator에 스크립트 언어인 자바스크립트를 추가했습니다. 이 추가 기능을 통해 사용자는 렌더링 프로세스의 일부로 자바스크립트 프로그램을 실행하여 웹 페이지에 상호작용성을 추가할 수 있었습니다.[5][6] 그러나 이러한 자바스크립트 프로그램이 서로의 실행 컨텍스트에 액세스할 수 있고 사용자에 대한 민감한 정보에 액세스할 수 있다는 새로운 보안 문제가 추가되었습니다. 그 결과 얼마 지나지 않아 Netscape Navigator에서 동일한 출처의 정책을 도입하게 되었습니다. 이 보안 조치로 인해 자바스크립트가 다른 웹 페이지의 실행 컨텍스트에서 데이터에 임의로 액세스할 수 없게 되었습니다.[7] 그러나 동일한 출처의 정책이 존재하기 전에 도입된 다양한 기능을 포함하도록 이후 확장되었지만 사용자의 웹 탐색 능력을 손상시키는 것으로 인식되어 하이퍼링크를 포함하도록 확장되지는 않았습니다.[4] 이 무해한 누락은 웹에서 알려진 가장 잘 알려진 초기 형태의 역사 냄새로 드러날 것입니다.[8]
역사

역사적 냄새를 맡는 착취에 대한 최초의 공개된 보고 중 하나는 2002년 퍼듀 대학의 앤드류 클로버가 BUGTRAQ의 메일링 리스트 게시물에서 한 것입니다. 게시물에는 악의적인 웹사이트가 자바스크립트를 사용하여 특정한 색상의 링크가 있는지 확인할 수 있는 방법을 자세히 설명하여 링크가 이전에 방문되었는지 여부를 밝혔습니다.[9] 이것은 처음에는 실제 가치가 거의 없는 이론적인 착취로 생각되었지만, 2010년 Jang et al. 의 이후 연구에 따르면 유명 웹 사이트가 사용자 브라우징 데이터를 드러내기 위해 이 기술을 사용하고 있었습니다.[10] 본 연구의 게재 결과 1986년 컴퓨터 사기 및 남용에 관한 법률 위반을 주장하며 이력을 스니핑하여 사용한 것으로 밝혀진 웹사이트를 대상으로 여러 건의 소송이 제기되었습니다.[8]
같은 해, 모질라 사의 L. David Baron은 모든 주요 브라우저가 나중에 채택할 공격에 대한 방어책을 개발했습니다. 방어에는 방문 링크 스타일을 지정하는 데 사용할 수 있는 CSS 속성의 종류에 대한 제한이 포함되었습니다. 링크에 배경 이미지 및 CSS 전환을 추가하는 기능은 허용되지 않았습니다. 이 외에도 방문 링크는 표준 링크와 동일하게 취급되며, 자바스크립트 API는 방문 링크에 대한 속성을 비방문 링크에 대한 속성과 동일하게 반환합니다. 이를 통해 악성 웹 사이트가 단순히 색상 변경 사항을 조회하여 개인의 검색 기록을 추론할 수 없습니다.[11]
2011년 당시 스탠퍼드 대학원생이었던 조나단 메이어의 연구에 따르면, 한 광고 회사인 에픽 마켓플레이스(Epic Marketplace Inc.)가 웹 전반에 걸친 사용자들의 브라우징 이력에 대한 정보를 수집하기 위해 히스토리 스니핑(history sniping)을 사용했다는 것을 발견했습니다.[12][13] 연방 무역 위원회의 후속 조사의 일환으로, 에픽 마켓플레이스는 ESPN과 Papa Jones를 포함한 24,000개 이상의 웹 도메인에서 광고의 일부로 히스토리 스니핑 코드를 사용한 것으로 밝혀졌습니다. 자바스크립트 코드를 통해 Epic Marketplace Inc.는 사용자가 54,000개 이상의 도메인을 방문했는지 추적할 수 있었습니다.[14][15] 이후 에픽 마켓플레이스는 결과 데이터를 사용하여 사용자를 특정 그룹으로 분류하고 사용자가 방문한 웹 사이트를 기반으로 광고를 제공했습니다. 이 조사 결과 연방거래위원회는 에픽마켓플레이스 주식회사에 대해 20년간 어떠한 형태의 온라인 광고와 마케팅도 금지하고, 수집한 데이터를 영구 삭제하라는 명령을 받았습니다.[16][15]
위협모델
히스토리 스니핑의 위협 모델은 피해자를 전적으로 또는 부분적으로 상대의 통제하에 있는 악의적인 웹 사이트로 유도할 수 있는지 여부에 달려 있습니다. 공격자는 이전에 양호한 웹 페이지를 손상시키거나, 사용자를 웹 페이지로 피싱하여 공격자가 임의 코드를 로드할 수 있도록 하거나, 안전한 웹 페이지에 악의적인 광고를 사용하여 이를 달성할 수 있습니다.[8][17] 대부분의 히스토리 스니핑 공격은 사용자 상호 작용을 필요로 하지 않지만, 특정 변형 공격은 사용자가 버튼, 브라우저 게임, 캡차 및 기타 그러한 요소로 위장될 수 있는 특정 요소와 상호 작용해야 합니다.[4]
현대의 변종
2010년에 부분적으로 완화되었음에도 불구하고, 역사적 냄새는 여전히 해결되지 않은 문제로 여겨집니다.[8] 2011년, 카네기 멜론 대학의 연구원들은 모질라가 제안한 방어는 장 등이 발견한 것과 같은 대부분의 비대화식 공격을 막기에 충분하지만, 대화식 공격에는 효과가 없다는 것을 보여주었습니다. 사용자가 특정 웹사이트를 방문했을 때만 자신을 드러낼 수 있는 겹쳐진 문자, 숫자 및 패턴을 사용자에게 보여줌으로써 연구원들은 307명이 넘는 참가자들을 속여 히스토리 스니핑을 통해 잠재적으로 그들의 브라우징 이력을 드러낼 수 있었습니다. 이것은 패턴 풀이 문제, 체스 게임, 캡차 등의 형태로 활동 내용을 제시함으로써 이루어졌습니다.[18][4]
2018년 샌디에고 캘리포니아 대학의 연구원들은 모질라가 도입한 완화 조치를 우회할 수 있는 타이밍 공격을 시연했습니다. CSS 페인트 API를 남용하고 브라우저의 바이트 코드 캐시를 대상으로 함으로써 연구원들은 특정 링크를 페인트하는 데 걸린 시간을 시간으로 측정할 수 있었습니다. 따라서 방문한 웹 사이트를 식별하기 위한 확률론적 기술을 제공할 수 있었습니다.[19][20]
최근 몇 년 동안 브라우저가 제공하는 다양한 새로운 기능을 대상으로 하는 여러 히스토리 스니핑 공격이 발견되었습니다. 2020년 Sanchees-Rolla et al. 에서는 서버가 요청에 응답하는 데 걸리는 시간을 쿠키로 측정한 다음 이를 쿠키 없이 서버가 응답하는 데 걸리는 시간과 비교함으로써 웹 사이트가 히스토리 스니핑을 수행할 수 있음을 보여주었습니다.[21] 2023년에 Ali et al.은 새로 도입된 브라우저 기능이 히스토리 스니핑을 수행하는 데에도 남용될 수 있음을 보여주었습니다. 특히 주목할 만한 사례 중 하나는 사용자 추적을 방지하기 위한 의도로 구글의 개인 정보 보호 샌드박스 이니셔티브에 따라 도입된 최근 도입된 기능인 프라이빗 토큰 API가 사이트 간 유출 공격에 사용되는 것과 유사한 기술을 사용하여 사용자가 브라우징 데이터를 유출할 수 있다는 점입니다.[22]
참고문헌
- ^ "WorldWideWeb: Proposal for a HyperText Project". www.w3.org. Archived from the original on 2023-06-29. Retrieved 2023-11-15.
- ^ "Why are hyperlinks blue? The Mozilla Blog". blog.mozilla.org. Archived from the original on 2023-11-15. Retrieved 2023-11-15.
- ^ "EMail Msg". ksi.cpsc.ucalgary.ca. Archived from the original on 2023-11-15. Retrieved 2023-11-15.
- ^ a b c d Weinberg, Zachary; Chen, Eric Y.; Jayaraman, Pavithra Ramesh; Jackson, Collin (2011). "I Still Know What You Visited Last Summer: Leaking Browsing History via User Interaction and Side Channel Attacks". 2011 IEEE Symposium on Security and Privacy. IEEE. pp. 147–161. doi:10.1109/SP.2011.23. ISBN 978-1-4577-0147-4. S2CID 10662023. Archived from the original on 2022-12-24. Retrieved 2023-10-30.
- ^ "JavaScript 1.0 – 1995". www.webdesignmuseum.org. Archived from the original on 2020-08-07. Retrieved 2020-01-19.
- ^ "Welcome to Netscape Navigator Version 2.0". netscape.com. 1997-06-14. Archived from the original on 1997-06-14. Retrieved 2020-02-16.
- ^ "Netscape 3.0 Handbook – Advanced topics". netscape.com. Archived from the original on 2002-08-08. Retrieved 2020-02-16.
Navigator version 2.02 and later automatically prevents scripts on one server from accessing properties of documents on a different server.
- ^ a b c d Van Goethem, Tom; Joosen, Wouter; Nikiforakis, Nick (2015-10-12). "The Clock is Still Ticking: Timing Attacks in the Modern Web". Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. CCS '15. New York, NY, USA: Association for Computing Machinery. pp. 1382–1393. doi:10.1145/2810103.2813632. ISBN 978-1-4503-3832-5. S2CID 17705638.
- ^ "Bugtraq: CSS visited pages disclosure". seclists.org. Archived from the original on 2023-11-16. Retrieved 2023-11-16.
- ^ Jang, Dongseok; Jhala, Ranjit; Lerner, Sorin; Shacham, Hovav (2010-10-04). "An empirical study of privacy-violating information flows in JavaScript web applications". Proceedings of the 17th ACM conference on Computer and communications security. CCS '10. New York, NY, USA: Association for Computing Machinery. pp. 270–283. doi:10.1145/1866307.1866339. ISBN 978-1-4503-0245-6. S2CID 10901628.
- ^ "privacy-related changes coming to CSS:visited – Mozilla Hacks – the Web developer blog". Mozilla Hacks – the Web developer blog. Archived from the original on 2023-06-07. Retrieved 2023-11-16.
- ^ "Tracking the Trackers: To Catch a History Thief". cyberlaw.stanford.edu. Archived from the original on 2023-11-16. Retrieved 2023-11-16.
- ^ Goodin, Dan. "Marketer taps browser flaw to see if you're pregnant". www.theregister.com. Archived from the original on 2023-11-16. Retrieved 2023-11-16.
- ^ "FTC Final Order Prohibits Epic Marketplace From "History Sniffing"". JD Supra. Archived from the original on 2023-11-16. Retrieved 2023-11-16.
- ^ a b "FTC Settlement Puts an End to "History Sniffing" by Online Advertising Network Charged With Deceptively Gathering Data on Consumers". Federal Trade Commission. 2012-12-05. Archived from the original on 2023-11-16. Retrieved 2023-11-16.
- ^ Gross, Grant (2012-12-05). "US FTC bars advertising firm from sniffing browser histories". Computerworld. Archived from the original on 2023-11-16. Retrieved 2023-11-16.
- ^ Sanchez-Rola, Iskander; Balzarotti, Davide; Santos, Igor (2020-12-22). "Cookies from the Past: Timing Server-side Request Processing Code for History Sniffing". Digital Threats: Research and Practice. 1 (4): 24:1–24:24. doi:10.1145/3419473.
- ^ Kikuchi, Hiroaki; Sasa, Kota; Shimizu, Yuta (2016). "Interactive History Sniffing Attack with Amida Lottery". 2016 10th International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing (IMIS). IEEE. pp. 599–602. doi:10.1109/IMIS.2016.109. ISBN 978-1-5090-0984-8. S2CID 32216851. Archived from the original on 2018-06-06. Retrieved 2023-10-30.
- ^ Haskins, Caroline (2018-11-02). "Old School 'Sniffing' Attacks Can Still Reveal Your Browsing History". Vice. Retrieved 2023-10-30.
- ^ Smith, Michael; Disselkoen, Craig; Narayan, Shravan; Brown, Fraser; Stefan, Deian (2018). "Browser history {re:visited}". Offensive Technologies. Usenix Workshop. 12th 2018. (Woot'18). S2CID 51939166.
- ^ Sanchez-Rola, Iskander; Balzarotti, Davide; Santos, Igor (2020-12-22). "Cookies from the Past: Timing Server-side Request Processing Code for History Sniffing". Digital Threats: Research and Practice. 1 (4): 24:1–24:24. doi:10.1145/3419473. S2CID 229716038.
- ^ Ali, Mir Masood; Chitale, Binoy; Ghasemisharif, Mohammad; Kanich, Chris; Nikiforakis, Nick; Polakis, Jason (2023). "Navigating Murky Waters: Automated Browser Feature Testing for Uncovering Tracking Vectors (ABTUTV)". Proceedings 2023 Network and Distributed System Security Symposium. Reston, VA: Internet Society. doi:10.14722/ndss.2023.24072. ISBN 978-1-891562-83-9. S2CID 257502501.