IT之家 5 月 27 日消息,据 Neowin 报道,Project Zero 是 Google 的团队,负责发现不同产品中的安全漏洞,然后私下将它们报告给相应的供应商。并提供了 90 天的最后期限,以便在问题公开之前对其进行修补。在某些情况下,也可能会提供 14 天的宽限期。
Google Project Zero 此前曾报告过 Google 自己的产品以及属于其他产品的重大问题,例如 Windows、iPhone、Qualcomm Adreno GPU、GitHub 等。现在,在相关团队未能在规定的 90 天内修复之后,该团队公开披露了 Chrome OS 中的一个错误 Bug。
问题涉及 Chrome OS 在设备锁定时如何处理 USB 设备。本质上,Chrome OS 使用 USBGuard 为 USB 设备配置允许列表和阻止列表。但是,此框架的错误配置可能导致未经身份验证的 USB 设备能够访问 PC 的内核和存储。
正如 Google Project Zero 安全研究员 Jann Horn 所描述的那样,Chrome OS 中的 USBGuard 有一个阻止列表,它不会在锁定的屏幕上使用特定的类接口描述符来验证 USB 设备。但是,在此验证之后,将允许所有其他接口。
这意味着,虽然未经身份验证的 USB 设备将在锁定屏幕上被正确阻止,但其他设备可以模拟大容量存储设备,修改攻击者内核使其不显示为 USB 设备,并通过身份验证。这是因为 USB 类对内核无关紧要,因此它也允许从看似经过身份验证的设备进行修改。Jann Horn 指出:
“除了不属于这些 USB 接口类设备的驱动程序中存在大量攻击面的问题之外,这种方法还有另一个问题:内核通常不关心设备声称属于哪个 USB 类。USB 驱动程序倾向于工作的方式,即使对于标准化协议,驱动程序以低优先级指定它希望使用适当的 USB 接口类绑定到符合标准的设备,但也以高优先级指定它希望根据 Vendor ID 和 Product ID 绑定到特定的 USB 设备,而不关心它们的 USB 接口类。
[...] 如果我们使用具有适当硬件的 Linux 设备(我使用的是 NET2380 开发板,但你也可以使用解锁的 Pixel 手机或 Raspberry Pi Zero W 或类似的东西)来模拟 USB 大容量存储设备,使用 (this),并在攻击者内核中修补一行,使其声称是广告牌,而不是存储设备。”
此问题被标记为高危严重性漏洞,并于 2 月 24 日私下向 Chrome OS 团队报告。然而,在对该漏洞进行分类后,该团队将其指定为低严重性漏洞,并在 3 月 1 日表示将通过匹配来解决问题基于驱动程序而不是类接口描述符。5 月 11 日,Chrome OS 团队提供了进度更新,但由于无法在规定的 90 天内修复该漏洞,该问题于 5 月 24 日被公开曝光。
目前尚不清楚补丁何时推出,但需要注意的是,这是一个本地漏洞,需要攻击者手动插入 USB 来篡改设备及其内核,不能被远程利用。