近年来,随着视频渲染和人工智能系统的发展,对图形处理单元(GPU)的需求激增。尽管最明显的短缺大多与PC和服务器芯片有关,但移动图形处理器却是每个智能手机用户每天都在使用的版本。因此,这些芯片或其实现方式中的漏洞可能会产生实际影响。这正是谷歌Android漏洞挖掘红队将目光投向高通这家芯片巨头广泛使用的开源软件的原因,该软件常用于实现移动GPU。
在周五于拉斯维加斯举行的Defcon安全会议上,三名谷歌研究人员展示了他们在高通的Adreno GPU中发现的九个以上漏洞(现已修复)。Adreno GPU是一套用于协调高通动力手机上的GPU和操作系统(如Android)之间的软件。“驱动程序”对于任何计算机的设计都至关重要,它们在操作系统的内核中具有深度权限,以协调硬件外设和软件。攻击者可以利用研究人员发现的漏洞完全控制设备。
多年来,工程师和攻击者都最关注计算机中央处理单元(CPU)中的潜在漏洞,并优化了GPU的效率,依赖它们提供原始处理能力。但随着GPU在设备所做的一切中变得越来越核心,两端的黑客都在研究如何利用GPU基础设施。
“与庞大的Android生态系统相比,我们的团队规模很小,范围太大,我们无法涵盖所有内容,所以我们必须找出影响最大的方面,”谷歌Android红队经理Xuan Xing表示。“那么,我们为什么要关注这个案例中的GPU驱动程序呢?这是因为不受信任的应用程序访问GPU驱动程序不需要任何权限。这一点非常重要,我认为会吸引很多攻击者的注意。”
Xing指的是Android手机上的应用程序可以直接与Adreno GPU驱动程序通信,“没有沙箱,没有额外的权限检查”。这本身并不会让应用程序变得恶意,但它确实使GPU驱动程序成为操作系统常规部分(其中数据和访问都受到严格控制)和系统内核之间的桥梁,而系统内核对整个设备(包括其内存)具有完全控制权。“GPU驱动程序具有各种强大的功能,”Xing说。“攻击者希望获得内存中的这种映射,这是一种强大的原始功能。”
研究人员表示,他们发现的漏洞都是由于GPU驱动程序必须驾驭的复杂互连和错综复杂而产生的,以协调所有内容。为了利用这些漏洞,攻击者首先需要建立对目标设备的访问权限,可能是通过诱骗受害者侧载恶意应用程序。
“有很多活动部件,而且没有访问限制,所以GPU驱动程序几乎对每个应用程序都是可访问的,”Android红队技术负责人Eugene Rodionov表示。“真正让问题变得棘手的是实现的复杂性,这是导致许多漏洞的一个因素。”
高通已向使用高通芯片和软件制造Android手机的“原始设备制造商”(OEM)发布了针对这些漏洞的补丁。“关于Android安全红队披露的GPU问题,我们已于2024年5月向OEM提供了补丁,”高通发言人告诉《连线》杂志。“我们鼓励最终用户在设备制造商发布安全更新时立即应用。”
Android生态系统很复杂,补丁必须从高通等供应商传递给OEM,然后由各个设备制造商进行打包,并交付给用户的手机。这种逐级传递的过程有时意味着设备可能会暴露,但谷歌多年来一直在投资改进这些流程并简化沟通。
然而,这一发现再次提醒人们,GPU本身及其支持软件有可能成为计算机安全领域的关键战场。
正如Rodionov所说,“实现的高复杂性与广泛的可访问性相结合,使其成为攻击者非常感兴趣的目标。”