导语:GPU中一种以前未知的压缩侧信道可以暴露被认为私密的图像。
四所美国大学的研究人员在周二发表的一篇论文中演示表明,六家主要供应商的GPU都容易受到一种新发现的攻击,这种攻击让恶意网站可以读取其他网站显示的用户名、密码及其他敏感的可视化数据。
跨源攻击允许来自一个域(比如example.com)的恶意网站有效地读取来自example.org或另一个不同域的网站显示的像素,然后,攻击者可以重新构建像素,让他们可以查看后一个网站显示的单词或图像。这种泄漏违反了一个关键的安全原则,该原则构成了保护互联网的最基本的安全边界之一,这个原则就叫同源策略(same origin policy),它要求托管在一个网站域上的内容与所有其他网站域隔离开来。
优化带宽是有代价的
GPU.zip(这种概念验证攻击的名称)始于一个恶意网站,该网站将一个指向它想要读取的某个网页的链接放在iframe中,而iframe是一种常见的HTML元素,允许网站嵌入广告、图像或托管在其他网站上的其他内容。通常情况下,同源策略会阻止任何一个网站查看另一个网站的源代码、内容或最终的可视化产品。研究人员发现,内部GPU和独立GPU都用来提高性能的数据压缩充当了侧信道,他们可以滥用这条侧信道绕过限制,逐个窃取像素。
GPU.zip若要奏效,必须将恶意页面加载到Chrome或Edge浏览器中。当这些浏览器处理攻击页面时,Firefox和Safari在工作方式方面的底层差异阻止攻击得逞;另一个要求是,在iframe中链接的页面不能被配置为拒绝被跨源网站嵌入。
当HTML被嵌入到恶意网站上的iframe中时,可能导致安全威胁,这是十多年来公开的秘密。大多数网站通过X-Frame-Options或Content-Security-Policy标头限制跨源嵌入显示用户名、密码及其他敏感内容的页面,然而并非所有网站都这么做。维基百科就是一个例子,它显示账户登录者的用户名,如果一个人在访问一个他不信任的网站时想要保持匿名,而如果该网站包含的iframe含有指向https://en.wikipedia.org/wiki/Main_Page的链接,可能会被拒绝。
图1. 对用户去匿名化处理的像素窃取概念验证(PoC),运行时打开的其他标签播放视频。“Ground Truth”是受害者iframe(以“Yingchenw”登录维基百科)。“AMD”是在Ryzen 7 4800U上30分钟后的攻击结果,准确率为97%。“Intel”是在i7-8700上215分钟后的攻击结果,准确率高达98%。
研究人员表明了GPU.zip如何允许他们为PoC创建的一个恶意网站逐个窃取用户维基百科用户名的像素。攻击适用于苹果、英特尔、AMD、高通、Arm和英伟达提供的GPU。在AMD的Ryzen 7 4800U上,GPU.zip花了约30分钟来渲染目标像素,准确率达到了97%,在运行英特尔i7-8700的系统上显示时,攻击需要215分钟才能重建像素。
研究人员分析的所有GPU都使用专有的压缩形式来优化PC、手机或显示目标内容的其他设备的内存数据总线中的可用带宽。压缩方案因厂商而异,没有文档记录,因此研究人员对每种压缩方案进行了逆向工程处理,从而获得的一种方法使用SVG(可缩放矢量图形)图像格式,在存在压缩的情况下最大化黑白目标像素之间的DRAM流量差异。虽然论文讨论了GPU.zip,因为它适用于iGPU或内部GPU,但这种技术同样适用于独立或离散GPU。
研究人员在论文中写道:我们演示了攻击者可以利用基于iGPU的压缩信道,在使用SVG过滤器的浏览器(截至2023年4月的最新版Google Chrome)中执行跨源像素窃取攻击,即使SVG过滤器是在恒定时间实施的。原因在于,攻击者可以根据浏览器中的单个秘密像素,创建高度冗余或高度非冗余的模式,由于这些模式由iGPU处理,它们不同程度的冗余导致无损压缩输出依赖秘密像素,依赖数据的压缩输出直接转换为依赖数据的DRAM流量和依赖数据的缓存占用。
因此我们表明,即使在最被动的威胁模型下(攻击者只能使用浏览器中的粗粒度计时器观察模式的粗粒度冗余信息,并且缺乏自适应选择输入的能力),单个像素也可能被泄露。我们的概念验证攻击在一系列设备(包括电脑和手机)上得逞,这些设备来自众多硬件厂商,采用不同的GPU架构(英特尔、AMD、苹果和英伟达)。令人惊讶的是,我们的攻击在离散GPU上也得逞了,我们的初步结果表明这些架构上还存在软件透明压缩。
现在是个威胁?可能不是,但是……
数据压缩是提高软硬件性能的一项常见特性。它使用复杂运算来表示文件或数据块中的冗余,并缩减其拥有的位数,压缩也是一种常见的侧信道,成为过去十年中几次攻击的原因,比如用于解密一些HTTPS流量的CRIME(压缩比信息泄露变得容易)漏洞,针对HTTPS加密的另一种攻击BREACH(全称通过超文本自适应压缩进行的浏览器侦察和泄露),2018年名为VORACLE的攻击,以及在2021年针对存储器压缩的实用时序侧信道攻击。
如前所述,GPU.zip仅在恶意攻击者网站被加载到Chrome或Edge中时有效。原因是:要使攻击有效,浏览器必须:
1.允许跨源iframe与cookie一同被加载
2.允许在iframe上渲染SVG过滤器
3.将渲染任务委托给GPU
谷歌的代表没有表明该公司是否计划改变Chrome的行为以回应研究结果。
与此同时,英特尔的代表在一封电子邮件中表示,这家芯片制造商“评估了研究人员提供的发现结果,确定根本原因不在我们的GPU上,而在第三方软件上。”
眼下,GPU.zip更多的是一种好奇而不是真正的威胁,但前提是Web开发人员适当地限制敏感页面不被跨源网站嵌入。如果最终用户想要检查页面是否实施了此类限制,应该查找源头中的X-Frame-Options或Content-Security-Policy标头。为此:
1.打开网页
2.打开开发者控制台
3.重新加载网页
4.进入到网络标签,检查主文档请求
5.查看X-Frame-Options或Content-Security-Policy是否在这里被设置
检查www.gmail.com可以看到X-Frame-Options被设置为SAMEORIGIN(同源)。
然而,检查https://en.wikipedia.org/wiki/Main_Page却发现没有设置这样的标头。
明年5月在旧金山将举行第45届IEEE安全与隐私研讨会,虽然GPU.zip目前构成的威胁很小,但研究和令人惊讶的发现对设计软硬件的人来说仍然很重要。
文章翻译自:https://arstechnica.com/security/2023/09/gpus-from-all-major-suppliers-are-vulnerable-to-new-pixel-stealing-attack/如若转载,请注明原文地址