Google Project Zero (GPZ) 团队近日向三星发出警告,表示后者在 Galaxy 系列手机中修改内核代码的行为将会暴露更多的安全 BUG。GPZ 研究员 Jann Horn 表示,以三星为代表的多家智能手机厂商通过添加下游自定义驱动的方式,直接硬件访问 Android 的 Linux 内核会创建更多的漏洞,导致现存于 Linux 内核的多项安全功能失效。
Horn 表示这个问题是在三星 Galaxy A50 的 Android 内核中发现的。不过他表示,这种情况在 Android 手机厂商中非常普遍。也就是说,这些厂商向 Linux Kernel 中添加未经上游(upstream)内核开发者审核的下游(downstream)代码,增加了与内存损坏有关的安全性错误。
即使这些下游定制旨在增加设备的安全性,它们也会引入安全性错误。谷歌于 2019 年 11 月向三星报告了该漏洞,随后在今年 2 月面向 Galaxy 系列手机的更新中修复了这个问题。
该错误影响了三星的 PROCA(过程验证器)安全子系统。三星在其安全网站上将漏洞 SVE-2019-16132 描述为中等问题。它允许在运行 Android 9 和 Android 10 操作系统的某些 Galaxy 智能手机上 “可能执行任意代码”。
Horn 解释说:“Android 通过锁定可以访问设备驱动程序的进程(通常是特定于供应商的)来减少此类代码对安全性的影响。” 一个例子是,较新的 Android 手机通过专用的帮助程序来访问硬件,这些帮助程序在 Android 中统称为硬件抽象层(HAL)。
不过 Horn 表示,手机厂商通过修改 Linux Kernel 核心部分的工作方式,这破坏了 “锁定攻击面” 上做出的努力。Horn 建议智能手机制造商使用 Linux 中已经存在的直接硬件访问功能,而不是更改内核代码。例如,PROCA 旨在阻止已获得对内核的读写访问权限的攻击者,但三星需要花费工程时间来阻止攻击者首先获得该访问权限。