上游Linux内核是Linux内核的核心开发版本,具有最新的功能和安全性修补。它由全球社区驱动,广泛应用于多个领域。然而,在企业环境中,很多用户仍依赖供应商内核,以获得更好的稳定性和特定支持。因此,存在一个在安全性和稳定性之间找到平衡点的问题。越来越多的研究和讨论(如CIQ的白皮书)建议持续性地从上游稳定内核更新,以尽量减少安全风险。这给企业用户提出了增强系统安全的一个重要途径。
在一份新发布的名为《供应商内核、漏洞与稳定性》白皮书中,基础设施软件和Rocky Linux公司CIQ提出了一个重量级观点:所有Linux供应商的内核都不安全,这是因为追溯修补的流程存在缺陷。
尽管这一点可能会让一些人感到震惊,但在Linux社区中,这已经是一个公开的秘密。Greg Kroah-Hartman,Linux稳定内核维护者和内核安全团队的重要成员,最近指出:“要确保安全,应该始终使用最新的长期稳定内核。” 这里的关键词是 “最新”。仅仅使用一个 LTS(长期支持)版本是不够的。您必须使用最新的发布版本来尽可能地保持安全性。
遗憾的是,很少有人会这样做。然而,就像谷歌的Linux内核工程师Kees Cook所阐述的那样,“那么一个Linux供应商应该怎么做呢?答案很简单:如果为此感到痛苦,无论是主线还是稳定版,最好去不断的更新最新版本的系统内核。”
为什么?Kroah-Hartman解释道,“在内核层面,任何漏洞都有可能成为安全问题。”
Linux内核开发人员兼LWN主编Jonathan Corbet表示同意:“在内核中,如果你足够聪明,几乎任何bug都可以被利用来破坏系统。内核位于系统中的一个独特位置.……它把很多普通的bug变成了漏洞。“
CIQ工程师Ronnie Sahlberg、Jonathan Maple和Jeremy Allison通过具体数据支持了这一观点。他们的研究表明,目前的工程实践中,几乎所有供应商的内核都存在固有安全问题,而且对这些内核进行单独加固难以实现。
这是因为在特定Linux版本的基础上创建了供应商Linux内核,并在上游代码树发生变更时仅仅选择性地实施追溯修补。这种方法,在当时外部设备驱动程序很普遍的时候所设计,目的是通过选择性地追溯修补来提高稳定性和安全性。这篇论文通过分析Red Hat Enterprise Linux (RHEL) 8.8、内核版本为4.18.0-477.27.1的变化率和bug数量,来探讨这一做法在实践中的工作方式,并将其与kernel.org上的上游内核进行对比。
尽管程序员们专门研究了RHEL 8.8,这是一个普遍的问题。要是检查类似SUSE、Ubuntu或Debian Linux这样的系统,他们也会得到相同的结果。滚动发布的Linux发行版(如Arch、Gentoo和OpenSUSE Tumbleweed)不断发布最新的更新,但它们并没有应用于商业发行的Linux版本中。
他们对RHEL 8.8内核的分析显示了在变更日志中有111,750个独立提交记录。这份数据尽管没有详细说明每次提交的内容或大小,但它们为理解追溯修补过程提供了一个一般性的了解。起初,后向兼容性的速度保持稳定,但到了2021年11月和2022年11月,这种趋势分别减缓,并且在RHEL 8.5和RHEL 8.7的发布时显著减缓。他们认为,这种模式反映了随着主要版本更新周期的推进,更加倾向于保守的内核修补以增强稳定性。
他们的检查发现了RHEL 8.6中有5,034个未修补的bug;RHEL 8.7中有4,767个未修补的bug;以及RHEL 8.8中有4,594个未修补的bug。
这些数字表示的是已知的上游内核已修补,但尚未被追溯修补到RHEL中的缺陷。RHEL 8.6和8.7相较于8.8更早地停止了追溯修补,这导致了更多未修补的缺陷。红帽不公布完整的源代码变更的做法增加了复杂性,这可能导致CIQ处理的数据中出现可能的假阳性和假阴性。尽管存在这些限制,CIQ报告称,手动检查表明在识别缺失修补方面具有高准确性。
与众人推测相反,即使错误在源头迅速修补,许多问题仍然持续存在很长一段时间才得到解决。这段延迟对内核质量产生影响,因为缓慢的后补更新导致出现了越来越多的已知但未修补的漏洞,这最终削弱了内核的稳定性和安全性。
自Linux内核开发人员接管管理Linux的通用漏洞暴露(CVEs)以来,2024年3月报告了270个新的CVE,2024年4月报告了342个。这些问题已经在稳定的Linux内核git分支中得到修补。
尽管如此,庞大的数量强调了使用稳定上游内核以提高安全性的重要性。新CVE的数量以及补丁的无限制发布,要求组织在评估和解决这些漏洞时采取积极主动的态度。
此外,尽管红帽企业版Linux 8.8自2022年底以来没有积极开发,但仍受大约10%的新发现的漏洞的影响。RHEL 8.8的最后一次主要漏洞修补是在2023年5月。其他较旧的(但仍受支持的)企业Linux发行版也是如此。更令人不安的是,根据CIQ的说法:“我们经过审查发现,一些尚未被修复的安全漏洞已经被明确地公开,而这些漏洞可以被攻击者在普通用户权限的环境下利用。“
因此,CIQ团队认为,传统供应商内核的选择性修补模式存在缺陷。越来越多的已知的、未修补的缺陷统计表明,供应商内核的安全性低于上游的稳定内核。该团队主张转向使用kernel.org的稳定内核分支,以获得更好的安全性和缺陷管理。
作者指出,这对于关心安全的用户而言提供了一个强大的动力,促使他们选择稳定的内核而不是Linux供应商专有的内核。他们坚信,为了确保用户的系统更安全,最实际可行且行之有效的方式是采用稳定的内核分支。
本文并非是批评那些专注的Linux供应商的内核工程师。相反,它是在邀请业界支持kernel.org的稳定内核作为理想的长期解决方案。这种转变可以让工程师更加专注于修补特定客户的错误和增强功能,而不是费力劳神的去搞追溯修补补丁。
因此,他们得出了四个关键结论:
所以,供应商会这样做吗?尽管有各种各样的安全原因需要转向上游稳定的内核,但也有反对的观点。这些观点归根结底是:如果你总是升级到最新的内核,你也可能会遇到稳定性问题。一个与4.18.0-477.27.1内核完美运行的程序可能不会与4.18.0-477.27.1.el8_8版本的内核兼容。当然,在那种特定情况下,更新的内核修补了一个重要的安全漏洞。
这一切都归结为安全与稳定之间的微妙权衡。一些顶级的Linux内核开发人员和CIQ都站在安全这一边。针对这个问题,你怎么看?请在评论区留言。
* 本文为陈发明编译,原文地址:https://www.zdnet.com/article/are-all-linux-vendor-kernels-insecure-a-new-study-says-yes-but-theres-a-fix/
图片均来源于网络,无法联系到版权持有者。如有侵权,请与后台联系,做删除处理。
更多推荐
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...