Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Hoda Naghibijouybari、Ajaya Neupane、Zhiyun Qian、Nael Abu-Ghazaleh作者晓坤、思源参与

GPU 不再安全!研究员首次成功发起 GPU 旁路攻击

加州大学河滨分校的研究人员发现了三种可能被黑客利用 GPU 来攻破用户安全与隐私防线的方法。这些技术可用于监视浏览器活动、窃取密码,以及向基于云端的应用程序发起攻击。研究报道中描述的第一项指出 GPU 旁路攻击导致的渲染不安全:「计算机科学家们认为这是可行的,并且描述了他们如何通过对 Nvidia GPU 进行反向工程,将图形渲染和计算机堆栈都拉下水」。 论文原标题为《渲染也不安全:GPU 旁路攻击是可行的》(Rendered Insecure: GPU Side Channel Attacks are Practical)。其声称,这是人们首次成功地对 GPU 发起旁路攻击。当然,执行这类攻击,也有着几项前提:首先,受害设备上必须被安装了间谍软件程序,这种恶意代码可以通过嵌入某个无害的应用程序进入设备。其次,攻击者必须拥有可以分析 GPU 内存分配机制的机器学习方法。

图形处理单元(GPU)是大多数现代计算设备的必要组成,用于优化图形和多媒体处理的性能。GPU 也越来越多地用于加速多种应用,包括安全、计算机视觉、计算金融学、生物信息学等领域,这些都可能涉及敏感数据。

尽管 GPU 安全才刚开始得到探索,人们已经发现了很多种脆弱性。其中 Luo 等人展示了来自 CPU 的计时通道用于计时 GPU 操作。在另一个案例中,攻击者需要运行 GPU 上的加密内核,并在其自身的进程(CPU side)上测量整个内核执行时间,这和我们的探索 GPU 上的两个并发 app 之间的旁路(side channel)威胁模型是完全不同的。这些论文都没有展示一般的旁路攻击,而这正是这篇论文所关注的主题。

这篇论文探索了在 GPU 上的旁路攻击是否可行。GPU 通常处理和图形工作负载(渲染屏幕并可以导出用户信息和活动)以及计算工作负载(可能包括处理敏感数据的应用或算法)相关的敏感数据。如果可能,这种攻击将成为新型的、危险的威胁载体。基于不同的计算模型、并行度、服务器托管、共享特性以及攻击者可测量的 GPU 堆栈通道,有几种不同层面的 GPU 旁路攻击。研究者表明旁路是存在的并且可利用,还展示了在多种英伟达 GPU 上的攻击,涉及图形和计算软件堆栈和应用。

架构旁路攻击的一个先决条件是资源空间中攻击者和受害者的服务器托管,从而攻击者可以创建和测量 contention。研究者对称地特征化了间谍可以对受害者进行服务器托管和测量旁路行为,其中受害者位于英伟达 GPU 家族的图形和计算堆栈中。在 OpenGL 工作负载的案例中,研究者发现内核(着色器程序)可以被并发地预定,表明有足够的资源可以支持它们。最后,当工作负载源于 CUDA 和 OpenGL 时,它们以更低的并发粒度交错使用 GPU(在计算内核粒度交错)。研究者讨论了每种攻击类型的服务器托管(co-location)可能性。

结合服务器托管的知识,研究者展示了一系列攻击,其中间谍可以和受害者交错执行来提取旁路信息。研究者探索了利用(1)内存分配 API;(2)GPU 性能计数器;和(3)时间测量作为可能的泄露来源。研究者表明所有三种来源都会泄露用户行为的旁路信息。研究者成功地建立了三种在多代英伟达 GPU 上的可行以及危险的端到端攻击。

为了展示在图形应用上的攻击,研究者实现了一个网站指纹攻击,其能以很高的准确率识别用户浏览网站。研究者展示了这种攻击的扩展,其最终可以监测用户在网站上的活动,并捕捉键盘敲击时序。研究者还展示了在计算工作负载上的攻击,表明间谍通过 GPU 的性能计数器收集旁路信息,能以很高的准确率重构一个神经网络的内部结构。

研究者探索了针对这种攻击的可能缓解方法。通过特别分配 GPU 上的 contention 或改变设计可以限制泄露,但可能不太实际。因此,研究者聚焦于限制攻击者测量泄露的能力。研究者表明用于干涉测量准确率的行为可以显著限制泄露并干扰攻击者提取敏感信息的能力。

本论文的研究贡献如下:

  • 研究者探索了基于 GPU 内部的资源 contention,实现 GPU 旁路攻击的可行性。

  • 研究者逆向工程了一系列的英伟达 GPU 模型,并提取可用于 GPU 旁路攻击的内部调度参数和测量 API。

  • 研究者展示了在图形和计算 GPU 工作负载上的实际攻击,以及交叉攻击。

  • 研究者讨论和评估了基于限制脆弱 API 的调用率或精度的攻击缓解方法。

攻击场景

基于间谍和受害者的位置,研究者定义了三种攻击场景。在所有三种场景中,都存在一个只有普通用户权限的恶意程序,其目标是侵入受害者的程序。

  • 图形侵入图形受害者(Graphics spy Graphics):来自图形的攻击侵入图形工作负载(图 3 左)。由于台式机或笔记本电脑默认安装图形库和驱动程序,这种攻击可以很容易利用图形 API(例如 OpenGL)来测量服务器托管的图形应用(例如网页浏览器),它们的泄露可以用来推断敏感信息。

  • CUDA 间谍侵入被攻击 CUDA(CUDA spy CUDA):来自 CUDA 间谍应用的攻击者入侵通常在云端上进行(图 3 中),其中安装了 CUDA 库和驱动器。

  • CUDA 间谍侵入被攻击图形(CUDA spy Graphics)(交叉攻击):在安装了 CUDA 的用户系统上,来自 CUDA 间谍的攻击侵入图形应用是可能的(图 3 右)。

图 3:三种威胁场景。

在第一种威胁场景中,研究者假设攻击者利用了使用 API 的图形堆栈(例如 OpenGL、WebGL)。在第二种和第三种威胁场景中,研究者假设攻击者可以访问 GPU 来使用 CUDA 或 OpenCL。

Graphics spy Graphics 场景涉及两种攻击。第一种,具备间谍软件和机器学习程序的条件才可以利用现有的图形 API(如 OpenGL 或 WebGL)发起攻击。换言之,一旦用户打开了恶意应用程序,它就会调用 API 来分析 GPU 正在呈现的内容,比如网页信息。GPU 的存储器和性能计数器被其所监视,并馈送给机器学习算法,以解释数据和创建网站的指纹。加州大学河滨分校指出,鉴于渲染对象数量和尺寸的不同,每个网站在 GPU 内存利用率方面都会留下独特的痕迹。在多次加载同一个网站时,这个信号的样式几乎时一致的,而且不受缓存的影响。研究人员称,通过这种『网站指纹识别方法』,他们已经能够实现很高的识别准确率。借助这项技术,黑客可监控受害者的所有网络活动。

图 4:网站的 GPU 内存分配,(a) Google、(b) Amazon 和 (c) Facebook。

表 2:基于内存 API 的网站指纹性能:F-measure (%)、 Precision (%) 和 Recall (%)。

第二种,更糟糕的是,这一漏洞还允许攻击者从 GPU 数据中提取密码。当用户键入密码字符时,整个文本框会被发送到 GPU 进行渲染。每一次的击键,都会发生这样的数据传递。如此一来,凭借完善的密码学习技术,只需监控 GPU 内存中持续的分配事件、并参考间隔时间,理论上攻击者就可以做到这点。

图 5:美国银行网站的用户活跃度内存追踪 (a) 为登录、(b) 为开户:Checking & Saving。

表 3:基于内存 API 的用户活跃度检测性能:F-measure (%)、 Precision (%) 和 Recall (%)。

CUDA spy CUDA 场景(攻击基于云端的应用程序)则比上述两种方法要复杂一些。攻击者可以在 GPU 上启动恶意的计算型工作负载,与被攻击者的应用程序一起运行。

根据神经网络参数、缓存、内存、以及功能单元上(随时间而不同的)contention 强度和模式,可以产生可测量的信息泄露。攻击者在性能计数器的追踪上使用了基于机器学习的分类,以此提取受害者的私密神经网络结构,如深层神经网络特定层中的神经元数量。

表 4:在分类中最有用的计数器(特征)。

表 5:神经网络神经元数量检测性能。

CUDA spy Graphics 场景中,间谍可以在被攻击者浏览网页时使用英伟达的分析工具收集性能计数器的值,并使用机器学习方法来识别每个网站的指纹。

表 6:在分类中最有用的计数器(特征)。

表 7:基于性能计数器的网站指纹性能:F-measure (%)、 Precision (%) 和 Recall (%)。

万幸的是,在团队向 Nvidia 通报了他们的研究结果后,该公司表示将向系统管理员推出一个补丁,以便外界被禁止从用户级进程访问性能计数器。同时,研究团队还向 AMD 和英特尔安全团队通报了同样的事情,以便它们评估这些漏洞是否会在自家产品上被利用。

论文:Rendered Insecure: GPU Side Channel A!acks are Practical

论文地址:论文地址:http://www.cs.ucr.edu/~zhiyunq/pub/ccs18_gpu_side_channel.pdf

图形处理单元(GPU)通常与计算机设备集成在一起,它可以增强图形工作负载的性能与能力。此外,鉴于 GPU 强大的并行计算能力,它们越来越多地集成到数据中心和云端中,从而加速数据密集型工作负载。

在很多应用场景下,GPU 可以在多个应用间进行细粒度的共享,因此它允许间谍应用检测旁路并尝试推断计算机用户的主要行为。例如 OpenGL 和 WebGL 能以帧的粒度将工作负载发送到 GPU 中,并允许攻击者交错使用 GPU 来通过性能计数器或其它资源追踪 API 以获取用户计算的副产品。

我们使用了两个应用展示了 GPU 漏洞,首先我们测试了一个基于 OpenGL 的间谍软件,并发现它可以准确采样网站指纹、跟踪网站用户的活动,甚至可以高精度地推断输入密码时的击键时序。第二个应用展示了如何使用 CUDA 间谍应用程序导出另一个使用 CUDA 训练的神经网络内部参数,这说明云平台存在安全威胁。为了对抗这些攻击,本论文建议限制调用率或者返回的细粒度信息。

理论GPU数据安全英伟达
1
相关数据
Amazon机构

亚马逊(英语:Amazon.com Inc.,NASDAQ:AMZN)是一家总部位于美国西雅图的跨国电子商务企业,业务起始于线上书店,不久之后商品走向多元化。目前是全球最大的互联网线上零售商之一,也是美国《财富》杂志2016年评选的全球最大500家公司的排行榜中的第44名。

https://www.amazon.com/
相关技术
英特尔机构

英特尔(NASDAQ: INTC)是全球半导体行业的引领者,以计算和通信技术奠定全球创新基石,塑造以数据为中心的未来。我们通过精尖制造的专长,帮助保护、驱动和连接数十亿设备以及智能互联世界的基础设施 —— 从云、网络到边缘设备以及它们之间的一切,并帮助解决世界上最艰巨的问题和挑战。

http://www.intel.cn/
相关技术
机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

调度技术

调度在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。 进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态,允许多位用户有效地同时共享系统资源,或达到指定的服务质量。 see planning for more details

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

逆向工程技术

逆向工程,又称反向工程,是一种技术过程,即对一项目标产品进行逆向分析及研究,从而演绎并得出该产品的处理流程、组织结构、功能性能规格等设计要素,以制作出功能相近,但又不完全一样的产品。逆向工程源于商业及军事领域中的硬件分析。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

暂无评论
暂无评论~