新的浏览器攻击允许在禁用JavaScript的情况下在线跟踪用户

研究人员发现了一个新的副通道,他们说可以可靠地利用它从web浏览器中泄露信息,然后利用它跟踪用户,即使JavaScript完全禁用。
“这是一种侧通道攻击,不需要运行任何JavaScript,”研究人员说。“这意味着脚本拦截器无法阻止它。即使你去掉了网页浏览体验中所有有趣的部分,攻击也会起作用。这使得在不修改操作系统深层部分的情况下很难阻止。”
为了避免JavaScript,侧通道攻击在体系结构上也是不可知的,从而导致微体系结构网站指纹攻击,这种攻击可以跨硬件平台工作,包括Intel Core、AMD Ryzen、三星Exynos 2100和Apple M1 CPU—;这是iPhone制造商基于ARM的新芯片组遭受的第一次已知的侧通道攻击。
这些结果来自于本·古里安大学、密歇根大学和阿得雷德大学的一群学者,将在8月份的USENIX安全研讨会上发表。
侧通道攻击通常依赖于时间、声音、功耗、电磁辐射、振动和缓存行为等间接数据来推断系统上的秘密数据。具体来说,微体系结构侧通道利用处理器组件在不同保护域中执行的代码之间的共享使用来泄漏密钥等机密信息。
此外,之前的研究还证明了“Rowhammer.js”等全自动攻击只依赖带有恶意JavaScript的网站触发远程硬件故障,从而获得对网站访问者系统的无限制访问。

虽然这些泄漏的侧通道可以通过域隔离技术有效地堵塞,但浏览器供应商已经加入了防御措施,通过降低时间测量功能的精度来提供对定时攻击和指纹识别的保护,此外还增加了对使用NoScript等加载项完全禁用JavaScript的支持。
然而,本周发布的最新研究旨在绕过这种基于浏览器的缓解措施,实施一种称为“CSS Prime+Probe”的侧通道攻击,该攻击仅使用HTML和CSS构建,即使在Tor、Chrome Zero、,以及完全禁用JavaScript或限制计时器API分辨率的。

“这些方法的一个共同趋势是,它们是有症状的,无法解决泄漏的根本原因,即微体系结构资源的共享,”研究人员概述道。“相反,大多数方法试图通过修改浏览器行为来防止泄漏,在安全性和可用性之间达成不同的平衡。”
首先,一个关于基于缓存的侧通道的小入门:与Flush+重载攻击不同,间谍可以使用缓存刷新指令(例如x86中的clflush)刷新特定的缓存线,并确定受害者是否通过重新访问同一内存线并为命中(数据返回缓存)或未命中(未被受害者访问)的访问计时来访问该数据,Prime+Probe要求攻击者填充整个共享缓存,以便从缓存中驱逐受害者的数据,然后在它填满缓存后对自己的访问进行计时—;缓存未命中表明受害者访问了相应的缓存线,导致间谍的数据被删除。
尽管这些方法利用了CPU缓存中的隐蔽计时通道,但Ben Gurion研究人员设计的新攻击针对的是现代web浏览器中基于缓存的侧通道。
具体来说,CSS Prime+Probe技术的关键在于呈现一个包含覆盖整个缓存的长HTML字符串变量的网页(例如,类名包含200万个字符的<;div>;元素),然后搜索文本中不存在的短子字符串,反过来,强制搜索扫描整个字符串。在最后一步中,执行此探测操作的时间将发送给攻击者控制的服务器。
“攻击者首先在CSS中包含来自攻击者控制的域的元素,从而强制DNS解析,”研究人员解释道。“恶意DNS服务器记录传入DNS请求的时间。然后,攻击者设计一个HTML页面,从CSS中调用字符串搜索,有效地探测缓存。该字符串搜索之后是对需要恶意服务器解析DNS的CSS元素的请求。最后,连续DNS和equests对应于执行字符串搜索所需的时间,这[…]是缓存争用的代理。"
为了评估通过网站指纹攻击的方法的有效性,研究人员使用上述侧通道等,在加载不同网站时收集缓存使用的痕迹—;包括Alexa百强网站—;使用“记忆图谱”训练深层神经网络模型,以识别目标访问的一组特定网站。
尽管与CSS Prime+Probe相比,基于JavaScript的缓存占用攻击在所有平台上的准确率都高达90%以上,但该研究指出,后者实现的准确率足以泄漏数据,从而允许恶意方识别和跟踪用户。
“那么,有安全意识的用户如何访问网络呢?”研究人员总结道。“这个概念的一个复杂因素是,web浏览器利用缓存之外的其他共享资源,例如操作系统的DNS解析器、GPU和网络接口。缓存分区似乎是一种很有前途的方法,或者使用基于缓存着色的空间隔离,或者使用基于操作系统的时间隔离。”n、 "