开源最前线(ID:OpenSourceTop) 猿妹编译

链接:https://www.zdnet.com/article/google-to-samsung-stop-messing-with-linux-kernel-code-its-hurting-android-security/

近日,Google Project Zero(GPZ)团队表示,三星试图通过修改内核代码来避免Galaxy手机被攻击,但这样做反而暴露出更多的安全漏洞。

GPZ研究员霍恩(Jann Horn)表示:三星等智能手机制造商通过增加下游定制驱动程序来直接访问Android的Linux内核,这样会制造更多的安全漏洞,而且供应商最好还是使用Linux内核中已经存在的安全功能。




Android13内核config修改 手机内核修改_帮助程序


Horn在Galaxy A50的Android 内核中发现此类型的Bug,他表示,三星的这种做法在所有智能手机厂商中相当普遍,即向下游的Linux内核代码添加上游内核开发人员没有检查的代码。

这些下游厂商的初中是想提高设备的安全性,但他们没想到的是,这样做也会引入新的Bug。


Android13内核config修改 手机内核修改_Android_02


三星在2月刚刚发布的针对 Galaxy 手机的更新中进行了修复,其中一项Bug (SVE-2019-16132)是谷歌在去年11月份向三星报告的。

此外,三星2月补丁中还包括一个针对TEEGRIS设备重大漏洞的修复。该漏洞指的是包含三星新款Galaxy机上的可信执行环境(Trusted Execution Environment, TEE)。而 Galaxy S10就是其中设备之一。

Horn的新博文关注的是,如何在Android中尽量减少供应商向内核添加代码,从而造成不必要的安全隐患。

例如,较新的Android手机通过专用的辅助进程访问硬件,在Android中统称为硬件抽象层(HAL)。但Horn表示,供应商修改Linux内核核心部分的工作方式,破坏了原有的攻击锁定性能。

相反,他建议手机制造商使用Linux已经支持的直接硬件访问功能,而不是定制Linux内核代码。

目前,一些Android手机通过专用的帮助程序来访问硬件,这些帮助程序在Android中统称为硬件抽象层(HAL)。但在Horn看来,手机厂商修改Linux内核核心部分的工作方式反而破坏了其原有的攻击锁定性能。

因此,他建议手机制造商使用Linux已经支持的直接硬件访问功能,而无需再自定义Linux内核代码。就像三星,某些被添加的自定义功能是不必要的,完全可以删去,而且不会对设备产生任何影响。

Horn认为:特定设备的内核修改最好是升级或者移入用户控件驱动程序中去,在那里它们可以用更安全的编程语言和/或沙箱实现,同时不会使更新的内核版本的更新变得复杂。”