加州大学河滨分校的研究人员,发现了三种可能被黑客利用 GPU、来攻破用户安全与隐私防线的方法。这些技术可用于监视浏览器活动、窃取密码、以及向基于云端的应用程序发起攻击。研究报道中描述的第一项,指出了 GPU 旁路攻击导致的渲染不安全:“计算机科学家们认为这是可行的,并且描述了他们如何通过对 Nvidia GPU 进行反向工程,将图形渲染和计算机堆栈都拉下水”。
英伟达发布的新卡皇(图自:Nvidia 官网)
论文原标题为《渲染也不安全:计算机旁路攻击是可行的》(Rendered Insecure: GPU Side Channel Attacks are Practical)。其声称,这是人们首次成功地对 GPU 发起旁路攻击。
当然,执行这类攻击,也有着几项前提。首先,受害设备上必须被安装了间谍软件程序,这种恶意代码可以嵌入一个无害的应用程序。
其次,攻击者必须拥有可以分析 GPU 内存分配机制的机器学习方法。然后,间谍软件和机器学习程序才可以利用现有的图形 API(如 OpenGL 或 WebGL)发起攻击。
换言之,一旦用户打开了恶意应用程序,它就会调用 API 来分析 GPU 正在呈现的内容(比如网页信息)。GPU 的存储器和性能计数器被其所监视,并馈送给机器学习算法,以解释数据和创建网站的指纹。
加州大学河滨分校指出,鉴于渲染对象数量和尺寸的不同,每个网站在 GPU 内存利用率方面都会留下独特的痕迹。在多次加载同一个网站时,这个信号的样式几乎时一致的,而且不受缓存的影响。
研究人员称,通过这种‘网站指纹识别方法’,他们已经能够实现很高的识别准确率。借助这项技术,黑客可监控受害者的所有网络活动。
研究配图:旁路攻击解析
更糟糕的是,这一漏洞还允许攻击者从 GPU 数据中提取密码。
当用户键入密码字符时,整个文本框会被发送到 GPU 进行渲染。每一次的击键,都会发生这样的数据传递。
如此一来,凭借完善的密码学习技术,只需监控 GPU 内存中持续的分配事件、并参考间隔时间,理论上攻击者就可以做到这点。
论文中描述的第三种技术(攻击基于云端的应用程序),则比上述两种方法要复杂一些。攻击者可以在 GPU 上启动恶意的计算型工作负载,与受害者的应用程序一起运行。
根据神经网络的参数、缓存、内存、以及功能单元上(随时间而不同的)争用强度和模式,可以产生可测量的信息泄露。
攻击者在性能计数器的追踪上使用了基于机器学习的分类,以此提取受害者的私密神经网络结构,如深层神经网络特定层中的神经元数量。
万幸的是,在团队向 Nvidia 通报了他们的研究结果后,该公司表示将向系统管理员推出一个补丁,以便他们可以禁止从用户级进程访问性能计数器。
同时,研究团队还向 AMD 和英特尔安全团队通报了同样的事情,以便它们评估这些漏洞是否会在自家产品上被利用。