现代 GPU 容易受到新 GPU.zip 侧通道攻击

news2024/11/17 23:54:16

来自四所美国大学的研究人员开发了一种新的 GPU 侧通道攻击,该攻击利用数据压缩在访问网页时泄露现代显卡中的敏感视觉数据。

研究人员通过 Chrome 浏览器执行跨源 SVG 过滤器像素窃取攻击,证明了这种“ GPU.zip ”攻击的有效性。

研究人员于 2023 年 3 月向受影响的显卡制造商披露了该漏洞。但是,截至 2023 年 9 月,尚未有受影响的 GPU 供应商(AMD、Apple、Arm、NVIDIA、高通)或 Google (Chrome) 推出补丁来解决该问题。

德克萨斯大学奥斯汀分校、卡内基梅隆大学、华盛顿大学和伊利诺伊大学厄巴纳-香槟分校的研究人员在一篇论文中概述了这一新缺陷,并将在第 45 届 IEEE 安全与隐私研讨会上发表。 

通过压缩泄漏

一般来说,数据压缩会产生不同的数据相关 DRAM 流量和缓存利用率,这可能会被滥用来泄露机密,因此软件在处理敏感数据时会关闭压缩。

GPU.zip 研究人员解释说,所有现代图形处理器单元,尤其是集成的 Intel 和 AMD 芯片,即使没有明确要求,也会执行软件可见的数据压缩。

现代 GPU 遵循这种冒险的做法作为优化策略,因为它有助于节省内存带宽并在无需软件的情况下提高性能。

这种压缩通常没有记录并且是特定于供应商的,研究人员已经找到了一种利用它来泄漏 GPU 视觉数据的方法。

具体来说,他们演示了一种通过各种设备和 GPU 架构上的 Web 浏览器提取单个像素数据的攻击,如下所示。

各种系统上的测试结果

概念验证攻击演示了从维基百科 iframe 窃取用户名的过程,在 Ryzen 上可以在 30 分钟内完成,在 Intel GPU 上可以在 215 分钟内完成,准确率分别为 97% 和 98.3%。

检索用户名

iframe 托管一个跨源网页,其像素被隔离并转换为二进制,这意味着它们被转换为两种可能的颜色。

接下来,这些像素被放大,并应用专门的 SVG 滤镜堆栈来创建可压缩或不可压缩的纹理。通过测量纹理渲染所需的时间,研究人员可以推断出目标像素的原始颜色/状态。

GPU.zip 攻击概念

我们最近看到应用 SVG 过滤器来诱导数据相关的执行,并使用 JavaScript 来测量计算时间和频率,以辨别“热像素”攻击中的像素颜色。

Hot Pixels 在现代处理器上利用了数据相关的计算时间,而 GPU.zip 则依靠未记录的 GPU 数据压缩来实现类似的结果。

GPU.zip 严重性

GPU.zip 影响几乎所有主要 GPU 制造商,包括 AMD、Apple、Arm、Intel、Qualcomm 和 NVIDIA,但并非所有卡都受到同样的影响。

事实上,没有一家受影响的供应商决定通过优化其数据压缩方法并将其操作限制在非敏感情况来解决该问题,这进一步增加了风险。

尽管 GPU.zip 可能会影响全球绝大多数笔记本电脑、智能手机、平板电脑和台式电脑,但对用户的直接影响会受到执行攻击所需的复杂性和时间的影响。

此外,拒绝跨源 iframe 嵌入的网站不能用于通过这种或类似的旁路攻击泄露用户数据。

“大多数敏感网站已经否认被跨源网站嵌入。因此,它们不易受到我们使用 GPU.zip 发起的像素窃取攻击,”研究人员在该团队网站上的常见问题解答中解释道。

最后,研究人员指出,Firefox 和 Safari 并不满足 GPU.zip 工作所需的所有标准,例如允许跨源 iframe 加载 cookie、在 iframe 上渲染 SVG 过滤器以及将渲染任务委托给 GPU。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1047219.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JVM】第五篇 垃圾收集器G1和ZGC详解

导航 一. G1垃圾收集算法详解1. 大对象Humongous说明2. G1收集器执行一次GC运行的过程步骤3. G1垃圾收集分类4. G1垃圾收集器参数设置5. G1垃圾收集器的优化建议6. 适合使用G1垃圾收集器的场景?二. ZGC垃圾收集器详解1. NUMA与UMA2. 颜色指针3. ZGC的运作过程4. ZGC垃圾收集器…

mysql面试题2:说一说MySQL的架构设计?一条 MySQL 语句执行的步骤?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一说MySQL的架构设计? MySQL的架构设计主要包括以下几个组件: 连接器(Connector):负责与客户端建立连接,并进行身份验证和授权。 查询缓存…

文件的随机读写函数:fseek

目录 函数介绍: fseek: 原型: 参数说明: int origin: 举例: 文件内容展示: 正常的使用fgetc函数: 结果: 使用了fseek之后: SEEK_SET :从开始位置进行…

VBA技术资料MF60:从二维变体数组中删除一列数据

【分享成果,随喜正能量】如果一个人能看破红尘,特别是如果能看破贪欲的本质,他的身心一定会非常自在,外在的气色会很好,内心也会非常安乐。如果一个人总是贪执某人,那他的戒律肯定不会清净,他的…

渗透测试之打点

请遵守中华人民共和国网络安全法 打点的目的是获取一个服务器的控制权限 1. 企业架构收集 (1)官网 (2)网站或下属的子网站,依次往下 天眼查 企查查 2. ICP 备案查询 ICP/IP地址/域名信息备案管理系统 使用网站…

轮廓检测及透视变换

文章目录 注:代码来自b站:阿头目G # 导入工具包 import numpy as np import argparse import cv2# # 设置参数 # ap argparse.ArgumentParser() # ap.add_argument("-i", "--image", required True, # help "Path to the i…

flutter GetMaterialAPP unknownRoute 失效

这个问题。。。找了半天,最后去了 官网的ISSu找到了答案,分享给同样困惑的小伙伴们 为了让unknownRoute能成功工作, 你的initialRoute一定不能是/, 否则当有未定义的导航时, Get只会跳到initialRoute页面去了. GetPage 里面不要把root设置为“/” 页面&a…

支付宝支付模块开发

生成二维码 使用Hutool工具类生成二维码 引入对应的依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.5</version> </dependency><dependency><groupId>com.go…

Oracle表锁了怎么办?

最近同事在开发过程中&#xff0c;由于网络或电脑卡顿导致PLSQL执行 update 语句操作一直无响应。随后同事就将PLSQL关闭重新打开再次执行 update 语句。来来回回操作了多次。最终导致了表被锁定。 解决问题 1、查看锁表情况 ---1、查看那些表被锁住 select b.owner, b.objec…

学之思项目第一天-完成项目搭建

一、前端 拉下前端代码执行 npm i 然后执行npm run serve就行了 二、后端 搭建父子模块 因为这个涉及到前台以及后台管理所以使用父子模块 并且放置一个公共模块&#xff0c;放置公共的依赖以及公共的代码 2.1 搭建父子工程 这个可以使用直接一个个的maven模块&#xff…

【网络协议】UDP

UDP协议与TCP协议都是传输层协议&#xff0c;应用层把数据拷贝到传输层&#xff0c;后续动作由下层自行决定。 UDP协议端格式 16位 UDP 长度 , 表示整个数据报 (UDP 首部 UDP 数据 ) 的最大长度 ;&#xff08;也就是65535字节&#xff09; 如果校验和出错 , 就会直接丢弃 ; …

湖南软件测评公司简析:软件功能测试和非功能测试的联系和区别

一、软件功能测试   软件功能测试旨在验证软件是否按照需求规格说明书的要求正常工作。具体而言&#xff0c;功能测试会对软件的所有功能进行测试&#xff0c;以确保其满足用户的需求和预期。在进行功能测试时&#xff0c;根据需求规格说明书编写测试用例&#xff0c;并在测试…

初识Java 11-1 函数式编程

目录 旧方式与新方式 lambda表达式 方法引用 Runnable 未绑定方法引用 构造器方法引用 函数式接口 带有更多参数的函数式接口 解决缺乏基本类型函数式接口的问题 本笔记参考自&#xff1a; 《On Java 中文版》 函数式编程语言的一个特点就是其处理代码片段的简易性&am…

从零开始之了解电机及其控制(10)空间矢量理论

与一维数字转子位置不同&#xff0c;电流和电压都是二维的。可以在矩形笛卡尔平面中考虑这些尺寸。 用旋转角度和幅度来描述向量 虽然电流命令的幅度和施加的电压是进入控制器的误差项的函数&#xff0c;它们施加的角度是 d-q 轴方向的函数&#xff0c;因此也是转子位置的函数。…

目标追踪学习经验总结

标题目标追踪算法学习经验总结   最近对目标追踪算法进行了学习&#xff0c;以下是我的学习经验&#xff0c;如有不对之处&#xff0c;欢迎大家指正。 1、简介 1.1 定义 目标跟踪是通过分析视频图片序列&#xff0c;对检测出的各个候选目标区域实施匹配&#xff0c;定位出这…

架构设计师

一、软件架构 .特定领域软件架构(Domain Specific Software Architecture,DSSA) &#xff08;1&#xff09;垂直域。定义了一个特定的系统族,导出在该领域中可作为系统的可行解决方案的一个通用软件架构。 &#xff08;2&#xff09;水平域。定义了在多个系统和多个系统族中功…

pt28django教程

缓存 缓存是一类可以更快的读取数据的介质统称&#xff0c;读取硬盘、较复杂的计算、渲染都会产生较大的耗时。数据变化频率不会很高的场景适合使用缓存。使用缓存场景&#xff1a;博客列表页、电商商品详情页、缓存导航及页脚。 Django中设置缓存 Django中提供多种缓存方式…

解决 MyBatis-Plus 中增加修改时,对应时间的更新问题

问题&#xff1a;在添加修改时&#xff0c;对应的 create_time 与 insert_time 不会随着添加修改而自动的更新时间 第一步&#xff1a;首先在对应的属性上&#xff0c;加上以下注解 如果只添加以下注解&#xff0c;在增加或者修改时&#xff0c;可能对应的 LocalDateTime 会出…

大学生登记国家证书软件著作权提升就业资质

大学生登记国家证书软件著作权提升就业资质 随着信息技术的快速发展&#xff0c;软件行业成为了许多大学生就业的热门选择之一。然而&#xff0c;在竞争激烈的就业市场中&#xff0c;除了掌握专业知识和技能外&#xff0c;如何提升自己的就业资质也显得尤为重要。其中&#xff…

【数据结构】冒泡排序,快速排序的学习知识总结

目录 1、冒泡排序 1.1 算法思想 1.2 代码实现 方式一&#xff1a;顺序表 方式二&#xff1a;链表 2、快速排序 2.1 算法思想 2.2 代码实现 2.3 例题分析 1、冒泡排序 1.1 算法思想 冒泡排序是一种简单的排序算法&#xff0c;它的基本思想是从数组的第一个元素开始…