谷歌警告三星:不要瞎改 Linux 内核代码
The following article is from 技术最前线 Author 技术最前线
(给程序员的那些事加星标)
今天在 Hacker News 看到一则消息:
Google 警告三星:不要瞎改(Android 的)Linux 内核代码,会影响 Android 安全。
这到底是怎么一回事呢?
据 ZDNet 报道,根据 Google Project Zero (GPZ)的说法,三星试图通过修改内核代码来阻止对 Galaxy 智能手机的攻击,结果却暴露出更多的安全漏洞。
GPZ 研究员 Jann Horn 说,三星等智能手机制造商通过下游定制驱动程序,来直接访问 Android 的 Linux 内核,这带来了更多的安全漏洞。
Horn 在三星 Galaxy A50 的安卓内核中发现了这种类型的漏洞。但他也指出,三星的做法,在所有智能手机厂商中都相当普遍。
从下游往 Linux 内核改代码,上游的内核开发者没检查。即便下游的定制改动,是要提高手机设备的安全性,但也会引入安全性 bug。
2019 年 11 月,Google 发现三星内核安全缓解措施引入了一个内存损坏 bug,这个问题影响了三星额外的安全子系统 PROCA(Process Authenticator)。谷歌后来和三星提了这个 bug。
2020 年 2 月,在三星新发布的 Galaxy 手机更新补丁中,修复了该 Bug (SVE-2019-16132)。
此外,三星 2 月补丁中还包括一个针对「TEEGRIS 设备」重大漏洞的修复。该漏洞指的是包含三星新款 Galaxy 手机上的可信执行环境(Trusted Execution Environment, TEE)。而 Galaxy S10 就是其中设备之一。
Google 工程师 Horn 的新博文关注的是,如何在 Android 中努力减少手机制造商向内核添加代码对安全的影响。
Horn 解释说:「 Android 通过锁定哪些进程可以访问设备驱动程序,来降低这些代码的安全影响。」
例如,较新的 Android 手机通过专用的辅助进程访问硬件,在 Android 中统称为硬件抽象层(HAL)。但 Horn 表示,厂商修改 Linux 内核核心部分的工作方式,破坏了「锁定攻击表面 / lock down the attack surface」的努力。
他建议手机制造商使用 Linux 已经支持的直接硬件访问功能,而不是定制修改 Linux 内核代码。三星增加的一些自定义功能完全没必要,移除这些自定义功能,并不会影响设备。
他推测 PROCA 是为了限制已经获得内核读写权限的攻击者。但他认为,三星可以更有效地利用工程资源,从一开始就阻止攻击者获得这种访问权限。
Horn 解释:「我认为设备特定的内核修改,最好是升级或转移到用户空间驱动程序中,在那里可以用更安全的编程语言和/或沙箱实现,同时又不会使内核版本的更新变得复杂。」
谷歌员工担心 Chrome 扩展监视,改用其他浏览器
从流水线工人,到谷歌上班的程序媛
关注「程序员的那些事」加星标,不错过圈内事
圈内事,我在看❤️