腾讯科技讯,据外媒报道,根据谷歌零项目组(GPZ)的说法,三星试图通过修改内核代码来防止 Galaxy 手机受到攻击,结果导致 Android 面临更多的安全漏洞。因此,谷歌警告三星不要随便改动 Linux 内核代码。
GPZ 研究员詹恩-霍恩(Jann Horn)表示,像三星这样的智能手机制造商通过添加下游定制驱动程序来直接访问 Android 的 Linux 内核,结果造成了更多的安全漏洞。他还称,智能手机供应商最好使用 Linux 内核中已经存在的安全功能。
霍恩在三星 Galaxy A50 的 Android 内核中发现了这种类型的错误。这种错误就是,在下游的 Linux 内核代码中添加上游内核开发人员未审阅的代码。但正如他指出的那样,三星的所作所为在所有智能手机供应商中相当普遍。
尽管这些下游定制代码旨在增加设备的安全性,但是它们可能会带来新的安全漏洞。例如,三星原本准备增强内核安全的代码结果带来了内存损坏漏洞,谷歌在去年 11 月已向三星通报了这一漏洞。
在三星在 2 月份发布的 Galaxy 手机更新程序中,这个漏洞得以堵塞。该漏洞影响到了三星的名为 PROCA 或 Process Authenticator 的额外安全子系统。
三星将该漏洞,代号为 SVE-2019-16132,描述为一个并不严重的问题。它由 PROCA 中的 Use-After-Free 和 Double-Free 漏洞组成,这些漏洞允许黑客在一些运行 Android 9.0 和 10.0 的 Galaxy 手机上“执行任意代码”。
顺便说一句,2 月份的更新程序还包括一个针对“TEEGRIS 设备”中严重缺陷的补丁。TEEGRIS 设备指的是搭载三星专有 TEE 操作系统的较新 Galaxy 手机上的可信执行环境(TEE)。Galaxy S10 就是 TEEGRIS 设备之一。
但霍恩的新博文关注的是 Android 为此所做的努力,这些努力旨在减少智能手机供应商向内核添加独特代码带来的安全影响。
“Android 已经通过锁定哪些进程可以访问设备驱动程序来降低此类代码的安全影响。这些设备驱动程序通常是针对特定智能手机供应商的。”霍恩解释说。
例如,较新的 Android 手机通过 Android 中专用的助手进程——统称为硬件抽象层(HAL)——访问硬件。但霍恩说,智能手机供应商修改 Linux 内核代码的工作方式会破坏“锁定攻击面”的努力。
相反,他建议手机制造商使用 Linux 已经支持的直接硬件访问功能,而不是定制 Linux 内核代码。
霍恩说,三星增加的一些定制功能是“不必要的”,如果它们被删除了,也不会影响设备的安全性。
他推测,PROCA 旨在限制已经获得内核读写访问权限的攻击者。但他认为,三星可以通过引导工程资源,从一开始就阻止攻击者获得这种访问权限,从而提高效率。
霍恩解释说:“我认为,特定设备的内核修改最好上移到用户空间驱动程序中,因为在用户空间驱动程序中,它们可以用更安全的编程语言和/或沙箱来执行,同时不会使更新的内核版本复杂化。”(腾讯科技审校/乐学)