FAVICONS和缓存:浏览器中的持久跟踪
2021-01-21 09:00:00 Author: mp.weixin.qq.com(查看原文) 阅读量:164 收藏

原文作者:Konstantinos Solomos, John Kristoff, Chris Kanich, Jason Polakis
原文标题:Tales of FAVICONS and Caches: Persistent Tracking in Modern Browsers
原文链接:https://www.cs.uic.edu/~polakis/papers/solomos-ndss21.pdf
发表会议:Network and Distributed Systems Security (NDSS) Symposium 2021
笔记作者:cherry@SecQuan

介绍

论文介绍了一种新颖的跟踪机制,该机制利用了一个通用的浏览器功能:网站图标(favicons),使网站可以通过favicon缓存中条目的唯一组合来创建和存储唯一的浏览器标识符,并可以通过一系列子域相应地重定向用户,从而跟踪用户在整个浏览会话中的活动。同时,由于favicon的特有属性:持久性(不受用户清除浏览器缓存影响)、无损性(在后续访问中重建标识符不会改变缓存条目的现有组合)、未隔离性(不受无痕模式影响),使得追踪变得更加强大。
论文主要贡献:

  • 引入了一种新颖的追踪机制。
  • 对提出的攻击和优化技术进行了广泛评估,证明了攻击的实用性。
  • 提出了相应的解决策略。

攻击方法

论文将不同的网站图标与不同的域或基本域的路径相关联,从而将唯一的持久标识符与单个浏览器相关联。用一个二进制数(ID)表示为一组子路径,其中每个位代表域的特定路径。根据攻击者在用户规模方面的需求,可以为内部ID的长度配置适当的ID。具体攻击方法如下:
攻击的第一阶段是写入和存储,当用户首次访问页面时,会向服务器请求favicon,系统将以写入模式运行并生成一个新的N位ID,该ID映射到特定的路径重定向链。重定向链将转换为查询字符串,并作为URL参数传递,之后每个页面会包含JS代码用于解析URL参数并快速执行实际的重定向。

攻击的第二阶段是在后续用户访问时重建浏览器ID。由于用户二次访问不会再发送favicon请求,攻击服务器将处于读取模式,响应除favicon请求之外的所有请求,对favicon请求返回404。同时攻击网站通过JS强制重定向使用户访问所有可用子路径并捕获请求。最后服务器通过记录浏览器发出的全部请求,遵循完整的重定向链重建ID(未请求favicon的子路径编码为1,其他编码为0)。

攻击优化策略

论文同时提出了改进标识符分配策略、自适应的重定向阈值、利用不变的浏览器指纹等方法进一步提升攻击的性能。

实验与评估

不同设备攻击性能

不同ID算法攻击性能
不同浏览器攻击性能

对策

  • 在无痕浏览模式下为用户创建单独的favicon缓存。
  • 当用户删除Cookie或其他本地存储和缓存时,清除favicon缓存。
  • 只允许浏览器在用户启用网站导航时请求获取favicon。

安全学术圈招募队友-ing, 有兴趣加入学术圈的请联系secdr#qq.com


文章来源: http://mp.weixin.qq.com/s?__biz=MzU5MTM5MTQ2MA==&mid=2247485389&idx=1&sn=21dd5645511497955d387a925b96aeb8&chksm=fe2ef846c9597150a5df4ee107bdc8822a30986b8763ba46cee4f621adc5c0f28f4874632baf#rd
如有侵权请联系:admin#unsafe.sh