Nvidia遭爆GPU存在旁路攻击漏洞,黑客能取得CUDA应用程序内部参数

加州大学研究发现,在许多场景中,GPU计算资源允许被以精细的粒度在多个应用程序间分享,而间谍应用程序则能趁机监控旁路(Side Channel),并尝试推测出受害者行为。研究人员表示,这是第一次GPU被发现存在一般旁攻击漏洞,而Nvidia将会发布补丁,让管理员禁止用户程序访问性能计数器。

GPU常与计算设备集成,以强化性能以及处理工作负载的能力,而且数据中心和云计算也通常提供GPU运算服务,以解决数据密集的运算工作,但这些运算应用不少需要处理敏感数据,尤其是计算金融以及生物信息领域,对安全性和隐私的要求更高,也更容易受到GPU堆栈的安全漏洞影响。

加州大学研究人员探讨了GPU旁路攻击的真实可行性,而这类攻击代表着一种新颖的威胁载体。由于不同的计算模型以及高度的并行性,特殊的共址和资源共享属性,GPU堆栈有可侧量的可攻击信道,使其GPU应用存在许多独特可被间谍程序利用部分。

当多个应用程序以高精细粒度共享GPU时,允许间谍应用程序间通过旁路推测受害者的行为,像是OpenGL和WebGL以帧层级的粒度,将工作负载发送到GPU,而这将能让攻击者交错使用GPU,并通过性能计数器或其他资源关注API,对受害者计算进行测量。

要构架出旁路攻击的先决条件,就是攻击者和受害者在资源空间中共址,以便攻击者创建和量测争夺。研究人员实例出了间谍程序,可以在Nvidia的GPU图形与计算堆栈中,共同定位和测量受害者旁路行为。在OpenGL中,只要系统提供足够的资源,应用程序就能够同时调度着色器程序(Shader Programs),而在CUDA工作负载也有相同的情况。

加州大学研究人员展示了漏洞的这两种应用,第一个基于OpenGL的间谍程序,利用图形应用程序,研究人员实施了网站指纹(Web-Fingerprinting)攻击,借以获取网站精确的特征,关注用户在网站的活动,甚至可以精准推测出密码输入框被点击的时间。

第二个应用,研究人员则展示了CUDA间谍应用获取另一个CUDA应用程序,其神经网络模型内部所使用的参数,这说明了对计算应用的攻击,攻击者可以通过GPU上的性能计数器收集旁路消息,高精度重建神经网络的内部结构,而这也突显出GPU在云计算构架的安全性威胁,

加州大学这个对GPU安全性的研究,展示了图形和计算GPU工作负载之间实际的攻击行为,研究人员提到,这是GPU一般旁路攻击的第一份研究报告。通过GPU内的资源竞争打开了GPU旁路攻击的可行性,在对Nvidia GPU模型进行反向工程后,萃取出可用于GPU旁路攻击的参数和测量API。

研究人员也提到,通过限制易受攻击的API调度速路和精确度,将能缓解这类攻击,在通报Nvidia后,官方将会发布补丁,供系统管理员禁止用户程序访问性能计数器。