编译:奇安信代码卫士团队

宝马、西门子和两所德国大学的研究人员发现,他们可以在Linux 内核修复方案发布之前检测到这些方案,而这些信息可导致攻击者开发并部署exploit代码。

另外,研究人员发现维护人员会定期绕过公开审计和讨论添加 Linux 内核补丁,这一行为至少在理论上存在后门代码的风险。

研究人员发布论文《沉默的声音:从开源项目机密集成渠道中挖掘安全漏洞》,说明了如何通过数据挖掘,利用开源漏洞的披露流程发动侧信道攻击。

他们说明了解决 L1TF漏洞的过程。该漏洞可被用于发动侧信道推断性执行攻击,可导致攻击者从基于 Intel 的服务器的虚拟机中获取数据。论文指出,“和普通的补丁不同,这些补丁并未提前通过Linux的公开沟通渠道(如邮件列表)进行讨论和开发。然而,补丁并未公开讨论也无济于事:我们将说明如何在补丁进入公共库之后立即检测到它们。”

L1TF 缺陷的CVE条目在2017年12月提交,但直到2018年8月14日才披露。Debian 9.2在披露五天后才发布补丁。因此提前知道该缺陷的攻击者有数月的时间设计并部署 exploit 代码。

合理性

The Register 媒体曾在2018年2月发现Linux 和 Windows 在漏洞计划披露日期之前修复 Spectre 和 Meltdown 处理器漏洞,这些研究人员所做的事情和 The Register并没有太多不同。The Register 通过从网络聊天和不含细节的补丁讨论中发现漏洞修复行为,而这次研究人员展示的是,对 Linux 公开邮件列表信息和代码 commit开展系统数据挖掘可能是获取未披露缺陷信息更为有效的方法。

从本质上来讲,Linux内核代码提交和邮件列表公开讨论之间的差别指向在发布之前,敏感代码补丁所揭示出的安全问题。研究人员在 Linux 5.4(官方在2019年11月24日发布)发布的7个月之前就应用了这种技术。论文指出,“我们发现了解决12个漏洞的29个 commit。我们的方法争取到2到179天的时间优势,在漏洞公开披露和修复方案发布之前,我们可以设计 exploit。”

论文作者联系 commit 的作者,证实了这些变化是为了解决未披露的缺陷。研究人员还发现了针对“基于 ARM64 的 Cavium 系统的拒绝服务 exploit”的补丁。将这个补丁集成到 Ubuntu Bionic 花了两个月的时间,而 Debian Buster 和2.19 Linux LTS 树中仍未修复这个缺陷。

提交 commit 的问题

研究人员还探讨了另外一个潜在问题:在未进行审计或公开讨论的情况下提交代码 commit。他们指出,Linus Torvalds 在2019年5月至12月期间提交了40个此类 commit,但不具有任何安全含义。其他受信任的维护人员的做法类似,主要是些无关紧要的样式修复。尽管如此,不受信任的代码可能会通过此流程间隙进入 Linux 内核的可能性令研究人员担心。

研究人员指出,“这类渠道的存在表明,可信任的个体能够轻易渗透到该项目中并秘密地引入恶意工件。这类 commit 的存在和开源开发模型的一个关键前提背道而驰。”

Linux 基金会尚未置评。

研究人员在论文中表示,Linux 内核社区已经意识到这个问题但尚未决定如何处理。他们还发现,虽然研究人员的分析主要着眼于Linux内核开发,但其技术适用于其它系统级别的开源项目如 GCC、QEMU、U-Boot、LLVM、busybox 等。

更多详情请见:https://arxiv.org/pdf/2009.01694.pdf

原文链接

https://www.theregister.com/2020/09/04/linux_kernel_flaws/

声明:本文来自代码卫士,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。