最近,谷歌零项目(GPZ)团队警告三星,如果三星修改Galaxy系列手机的内核代码,将暴露更多的安全漏洞。
手机厂商造成的安全漏洞
据了解,GPZ研究员Jann Horn发现三星Galaxy A50安卓内核有错误。Jann Horn指出,三星等智能手机厂商会通过添加下游定制驱动直接访问Android的Linux内核,导致更多的安全漏洞。
同时,Jann Horn也表示,三星的做法在所有智能手机厂商中相当普遍。——,即手机厂商在Linux内核中添加了未经过上游内核开发者审核的下游代码,增加了与内存损坏相关的安全错误。
虽然这些下游自定义代码是为了增加设备的安全性而设计的,但它们可能会带来新的安全漏洞。例如,三星最初打算增强内核安全性的代码导致了内存损坏漏洞。2019年11月,谷歌将此漏洞通知三星。
雷锋网注:来源三星
据报道,此漏洞影响三星的附加安全子系统,称为PROCA或Process Authenticator。随后在2020年2月,三星表示已经修复了手机更新程序中的漏洞。
此外,值得一提的是,三星在2月份的手机系统更新中,也包含了针对“TEEGRIS设备”严重缺陷的补丁。据报道,TEEGRIS设备是指搭载三星专有TEE操作系统的较新Galaxy手机上的可信执行环境(TEE);Galaxy S10是TEEGRIS设备之一。
在三星的描述中,SVE-2019- (雷锋网按:三星对该漏洞的代号)是一个并不严重的问题,是由 PROCA 中的 Use-After-Free 和 Double-Free 漏洞组成,允许黑客在一些运行 Android 9.0 和 10.0 的 Galaxy 手机上“执行任意代码”。
但在Jann Horn看来,他更关心的是Android如何减少智能手机厂商在内核中加入独特代码所带来的安全问题。Jann Horn补充道:
Android通过锁定哪些进程可以访问设备驱动程序,降低了此类代码的安全影响。这些设备驱动程序通常特定于特定的智能手机供应商。
比如较新的安卓手机通过安卓中的特殊助手进程——访问硬件,统称为硬件抽象层(HAL)——。然而,Jann Horn认为,智能手机供应商修改Linux内核代码的方式将破坏这些努力。
不仅如此,Jann Horn还表示,手机厂商应该使用Linux已经支持的直接硬件访问功能,而不是定制Linux内核代码。同时,Jann Horn还指出,三星增加的一些定制功能是不必要的,如果删除,也不会影响设备的安全性。
根据Jann Horn的推测,PROCA是为了限制已经获得内核读写权限的攻击者。但他认为,三星可以通过引导工程资源,从一开始就阻止攻击者获得此类访问权限,从而提高效率。
Jann Horn解释道:
我觉得最好把特定设备的内核修改移到用户空间驱动,因为在用户空间驱动中,可以用更安全的编程语言执行,沙盒化,不会让更新的内核版本复杂化。