[go: nahoru, domu]

Jump to content

History sniffing: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
No edit summary
Line 2: Line 2:
'''History sniffing''' is a class of web vulnerabilities and attacks that allow a website to track a user's [[web browsing history]] activities by recording which websites a user has visited and which the user has not. This is done by leveraging long-standing [[information leakage]] issues inherent to the design of the web platform, one of the most well known of which includes detecting CSS attributes changes in links that have already been visited by the user.
'''History sniffing''' is a class of web vulnerabilities and attacks that allow a website to track a user's [[web browsing history]] activities by recording which websites a user has visited and which the user has not. This is done by leveraging long-standing [[information leakage]] issues inherent to the design of the web platform, one of the most well known of which includes detecting CSS attributes changes in links that have already been visited by the user.


Despite being known about since 2002, history sniffing is still considered an unsolved problem. In 2010, researchers revealed that multiple high profile websites had used history sniffing to identify and track users. Shortly afterwards, Mozilla and subsequently other all other major web browser implemented defenses against history sniffing. However, recent research has shown that these mitigations are ineffective against certain variants of the attack and history sniffing can still occur both via visited links and newer browser features.
Despite being known about since 2002, history sniffing is still considered an unsolved problem. In 2010, researchers revealed that multiple high profile websites had used history sniffing to identify and track users. Shortly afterwards, Mozilla and subsequently all other major web browser implemented defences against history sniffing. However, recent research has shown that these mitigations are ineffective against certain variants of the attack and history sniffing can still occur both via visited links and newer browser features.


== Background ==
== Background ==

Revision as of 13:35, 16 November 2023

History sniffing is a class of web vulnerabilities and attacks that allow a website to track a user's web browsing history activities by recording which websites a user has visited and which the user has not. This is done by leveraging long-standing information leakage issues inherent to the design of the web platform, one of the most well known of which includes detecting CSS attributes changes in links that have already been visited by the user.

Despite being known about since 2002, history sniffing is still considered an unsolved problem. In 2010, researchers revealed that multiple high profile websites had used history sniffing to identify and track users. Shortly afterwards, Mozilla and subsequently all other major web browser implemented defences against history sniffing. However, recent research has shown that these mitigations are ineffective against certain variants of the attack and history sniffing can still occur both via visited links and newer browser features.

Background

Early browsers such as Mosaic and Netscape Navigator were built on the model of the web being a set of statically linked documents known as pages. In this model, it made sense for the user to know which documents they had previously visited and which they hadn't, regardless of which document was referring to it.[1] Mosaic, one of the earliest graphical web browser, would use purple links to show that a page has been visited and blue links to show pages that had not been visited.[2][3] This paradigm stuck around and was subsequently adopted by all modern web browsers.[4]

Over the years, the web evolved from its original model of static content towards favouring more dynamic content. In 1995, employees at Netscape added a scripting language, Javascript, to its flagship web browser, Netscape Navigator. This addition allowed users to add interactivity to the web page via executing Javascript programs as part of the rendering process.[5][6] However, this addition came with a new security problem, that of these Javascript programs being able to access each other's execution context and being able to gain access to sensitive information about the user. As a result, shortly afterwards, Netspace Navigator introduced the same-origin policy. This security measure prevented Javascript from being able to arbitrarily access data in a different web page's execution context.[7] However, while the same-origin policy was subsequently extended to cover a large variety of features introduced before it's existence, it was never extended to cover the hyperlinks since it was perceived to hurt the user's ability to browse the web.[4] This innocuous omission would manifest into one of the well known and earliest forms of history sniffing known on the web.[8]

History

One of the first publicly disclosed reports of a history sniffing exploit was made by Andrew Clover from Purdue University in a mailing list post on BUGTRAQ in 2002. The post detailed how a malicious website could use Javascript to determine if a given link was of a specific colour, thus revealing if the link had been previously visited.[9] While this was initially thought of to be a theoretical exploit with little real-world value, later research by Jang et al. in 2010 revealed that much high profile website were using this technique in the wild to reveal user browsing data.[10] As a result of the publication of this research multiple lawsuits were filed against the websites that were found to have used history sniffing alleging a violation of the Computer Fraud and Abuse Act of 1986.[8]

In the same year, L David Baron from Mozilla Corporation developed a defence against the attack that all major browsers would later adopt. The defences included restrictions against what kinds of CSS attributes could be used to style visited links. The ability to add background images and CSS transitions to links was disallowed. In addition to this, visited links would be treated identically to standard links, with Javascript APIs returning the same attributes for a visited link as those for non-visited links. This ensured that malicious websites could not simply infer a person's browsing history by querying the colour changes.[11]

In 2011, research by then Stanford graduate student Jonathan Mayers found that a advertising company Epic Marketplace Inc. had used history sniffing to collect information about the browsing history of users across the web.[12][13] As a part of a subsequent investigation by the Federal Trade Commision, it was revealed that Epic Marketplace had used history sniffing code as a part of advertisments in over 24000 web domains, such as the likes of ESPN, Papa Johns etc. The Javascript code allowed Epic Markteplace Inc. to track if a user has visited any of over 54000 domains.[14][15] The resulting data was subsequently used by Epic Marketplace to categorize users into specific groups and serve advertisements based on the websites the user had visited. As a result of this investigation, the Federal Trade Commission banned Epic Marketplace Inc. from conducting any form of online advertising, marketing, etc, for over twenty years. In addition to this, Epic Marketplace Inc. was ordered to permanently delete and destroy the data it had collected over the years of users' browsing data.[16][15]

Threat model

The threat model of history sniffing relies on the adversary being able to direct the victim to a malicious website entirely or partially under the adversary's control. The adversary can accomplish this by compromising a previously good web page, by phishing the user to a web page allowing the adversary to load arbitrary code, or by using a malicious advertisement on an otherwise safe web page.[8][17] While most history sniffing attacks do not require user interactions, specific variants of the attacks need users to interact with particular elements which can often be disguised in the form of buttons, browser games, CAPTCHA's etc.[4]

Modern variants

Despite being partially mitigated in 2010, history sniffing is still considered an unsolved problem.[8] In 2011, researchers at Carnegie Mellon University showed that while the defences proposed by Mozilla were sufficient to prevent most non-interactive attacks, such as those found by Jang et al., they were ineffective against interactive attacks. By showing users overlayed letters, numbers and patterns, which would only reveal themselves if a user had visited a specific website while solving CAPTCHAs, playing chess games or guessing letter combinations, the researchers could show that history sniffing was still viable via interactive attacks.[18][4]

In 2018, researchers in University of California, San Deigo demonstrated timing attacks that could bypass the mitigations introduced by Mozilla. By abusing the CSS paint API and targeting the byte-code cache of the browser, the researchers were able to time the amount of time it took to paint specific links. They thus were able to provide probabilistic techniques for identifying visited websites.[19][20]

In recent years, multiple attacks have been found targeting various newer features provided by browsers. In 2020, Sanchez-Rola et al. demonstrated that by measuring the time a server takes to respond to a request with cookies and then comparing it to how long it took for a server to respond without cookies, a website could perform history sniffing.[21] In 2023, Ali et al. demonstrated that newly introduced browser features could be abused also to perform history sniffing. One particularly notable example highlighted was the fact that a recently introduced feature, the Private Tokens API, introduced under Google's Privacy Sandbox initiative with an intension to prevent user tracking, could allow malicious actors to exfiltrate a users browsing data by using techniques similar to those used for cross-site leak attacks.[22]

References

  1. ^ "WorldWideWeb: Proposal for a HyperText Project". www.w3.org. Retrieved 2023-11-15.
  2. ^ "Why are hyperlinks blue? | The Mozilla Blog". blog.mozilla.org. Retrieved 2023-11-15.
  3. ^ "EMail Msg". ksi.cpsc.ucalgary.ca. Retrieved 2023-11-15.
  4. ^ 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. Retrieved 2023-10-30.
  5. ^ "JavaScript 1.0 - 1995". www.webdesignmuseum.org. Retrieved 2020-01-19.
  6. ^ "Welcome to Netscape Navigator Version 2.0". netscape.com. 1997-06-14. Archived from the original on 1997-06-14. Retrieved 2020-02-16.
  7. ^ "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.
  8. ^ 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: 1382–1393. doi:10.1145/2810103.2813632. ISBN 978-1-4503-3832-5.
  9. ^ "Bugtraq: CSS visited pages disclosure". seclists.org. Retrieved 2023-11-16.
  10. ^ 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: 270–283. doi:10.1145/1866307.1866339. ISBN 978-1-4503-0245-6.
  11. ^ "privacy-related changes coming to CSS:visited – Mozilla Hacks - the Web developer blog". Mozilla Hacks – the Web developer blog. Retrieved 2023-11-16.
  12. ^ "Tracking the Trackers: To Catch a History Thief". cyberlaw.stanford.edu. Retrieved 2023-11-16.
  13. ^ Goodin, Dan. "Marketer taps browser flaw to see if you're pregnant". www.theregister.com. Retrieved 2023-11-16.
  14. ^ "FTC Final Order Prohibits Epic Marketplace From "History Sniffing"". JD Supra. Retrieved 2023-11-16.
  15. ^ 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. Retrieved 2023-11-16.
  16. ^ Gross, Grant (2012-12-05). "US FTC bars advertising firm from sniffing browser histories". Computerworld. Retrieved 2023-11-16.
  17. ^ 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.
  18. ^ 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. Retrieved 2023-10-30.
  19. ^ Haskins, Caroline (2018-11-02). "Old School 'Sniffing' Attacks Can Still Reveal Your Browsing History". Vice. Retrieved 2023-10-30.
  20. ^ 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.
  21. ^ 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.
  22. ^ 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". 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.