为了研究,可以在 Linux 内核中植入漏洞吗?
编译:奇安信代码卫士
Linux 内核的开发和维护团队负责人之一 Greg Kroah-Hartman 颁发禁令,禁止美国明尼苏达大学向 Linux 内核贡献任何工作。该大学明知补丁有问题而将其引入 Linux 内核。
明尼苏达大学的两名研究员发布了名为《论通过伪造 commit 在开源软件中静默引入漏洞的可行性》的论文。显然,这里指的“开源软件”就是 Linux 内核,研究人员悄悄将释放后使用漏洞引入以测试 Linux 的敏感性。到这一步,大家可能认为无可厚非,因为这一举动可是做道德实验。
然而,明尼苏达大学以“一款新型静态分析工具”的形式向内核发送另一轮“明显不正确的补丁”,最终引起 Greg Kroah-Hartman 的反感并导致后者最终决定禁止该大学未来向内核贡献任何代码。
明尼苏达大学计算机科学工程学院的博士生 Aditya Pakki 和 Greg Kroah-Hartman 之间的邮件往来如下。
Pakki 写道:
Greg,您好!我谨请您停止并制止近乎于诽谤的无端指责。
这些补丁是我编写的新静态分析工具的一部分,它的敏感性显然并不高。我发送补丁是为了获得反馈。我们并非 Linux 内核方面的专家,我们已经多次重申这一点。
显然,这一步迈错了,但您以强烈的先入为主的偏见,提出了毫无根据的指控,且并未给我们做任何无罪推定。鉴于这种态度非但不友善而且会让新手和非专业人士敬而远之,因此我们决定不再发送任何补丁。
Greg Kroah-Hartman 回信称:
您,以及您所在的小组,公开承认要发送含已知漏洞的补丁以检测内核社区如何响应并基于此发布论文。
现在,您再次提交了新一轮明显不正确的补丁,那您以为我应当如何看待这件事情?
这些补丁显然并非由任何智能静态分析工具创建,因为它们源自完全不同的模式,而显然这些模式根本不会修复任何问题。那么,除了认为您和所在小组继续通过发送这些愚蠢荒唐的补丁对内核社区开发人员进行实验外,我应该持有什么想法?
提交由工具创建的补丁时,所有人都会附加诸如“由XXX工具发现,但我们不确定是否正确,请提出您的建议“这样的话语。但你们并没有这样做。你们并未提出任何帮助请求,而是声称它们是合法的修复方案,但你们早已知道补丁是不正确的。
任何人只要了解C语言,几分钟就能判断出你们的提交没有发挥任何作用,因此,认为补丁由工具创建所以是合法“修复方案“,是你们而不是我们的疏忽。你们才是过错方,成为你们所创建工具的测试主体并不是我们的工作职责所在。
我们的社区欢迎希望提供帮助并增强 Linux 安全性的开发人员。而你们显然没有这样做,所以请不要捏造。
我们社区不喜欢成为实验对象,也不喜欢成为没有任何目的或故意引入漏洞的补丁的实验对象。如果您执意这样做,我建议另寻他人,这里不欢迎您。
因此,我现在将不得不禁止您所在大学在未来对社区做出任何贡献,同时将淘汰你们之前提交的所有贡献,因为这些贡献显然是怀着恶意目的以期造成问题的意图提交的。
Linux 内核社区证实确实将删除并将明尼苏达大学提交的贡献恢复原状。
明尼苏达大学的系副主任 Loren Terveen 表示将暂停该研究项目,调查该研究中采用的研究方法以及研究获准的流程问题,并将采取恰当的补救措施防止类似事件再次发生。另外还将尽快向Linux 内核社区反馈调查结果。
随后研究人员对此做出澄清称,一直重视 Linux 内核的安全,发现并修复了1000多个漏洞,既是安全研究员又是开源贡献者。论文的目的是为了发现并解决修复开源软件过程中遇到的问题,而且所收集的138个有问题的补丁并非他们引入。他们基于这些补丁的模式,了解了这些补丁为何难以被发现,且提出了解决方案。他们并未引入或有意在 Linux 内核中引入任何 bug 或漏洞。Linux 用户并不会受到任何影响,并未泄露用户和维护人员的任何个人信息,且Linux 社区已知悉内核存在不正确补丁的情况。另外,研究员对浪费维护人员的精力表示歉意,并指出该研究使学术界和行业之间的关系紧张的担忧由误会造成。
另外,研究人员提供了改进打补丁流程的建议:开源项目应更新行为准则,如“我同意无意通过提交补丁引入bug“;我们需要通过自动化工具测试并验证补丁;开源维护团队人手不足;希望可能引入bug的补丁事件能引起记者和维护人员的重视,同时可开发相关工具,用于检查“不成熟漏洞”。
有人对研究人员的行为提出批评,认为这种行为浪费了 Linux 内核社区维护人员的时间,增加了他们的工作量。认为该研究项目的监督人员应该对此做出解释,这种行为是对开源的滥用。
也有人认为任何系统均应经受检验,而且研究人员已提前告知并非出于恶意目的,而且这些不正确的补丁并非被合并。另外,删除明尼苏达大学之前提交的贡献这种集体惩罚不仅树立了不好的榜样,而且也存在巨大的安全风险。认为两边的做法均欠妥,当前的决定均由情绪推动,缺乏理智。
无论如何,开源软件的安全都值得我们重视。通过软件物料清单了解开源软件资产有哪些,利用治理工具检测并解决其中可能存在的漏洞,避免造成更大的安全风险和影响至关重要。
你怎么看?欢迎讨论。
谷歌Linux基金会等联合推出开源软件签名服务 sigstore,提振软件供应链安全
Linus Torvalds 警告:勿用 Linux 5.12 rc1,担心供应链攻击?
Linux 内核修复5个高危漏洞
https://www.neowin.net/news/linux-bans-university-of-minnesota-for-sending-buggy-patches-in-the-name-of-research/
https://www-users.cs.umn.edu/~kjlu/papers/clarifications-hc.pdf
题图:Pixabay License
转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的
产品线。