开源软件由于其公开性,能够被大量开发人员验证,所以一向被认为是安全的。
但即便是如「空气」一般无所不在的linux,也不见得是完全安全的!
来自明尼苏达大学的研究者就成功向开源社区(主要是Linux)提交了多个看似是修正补丁的漏洞。
这种研究方法引来Linux维护人员的愤怒,Linux 内核社区撤销了之前他们提交的所有 Linux 内核代码。除了禁止明尼苏达大学对上游内核的贡献之外,Greg Kroah-Hartman还计划回滚所有umn.edu的补丁,涉及到190个历史补丁代码。
这项研究的主要人员Kangjie Lu, Qiushi Wu和Aditya Pakki于4月24日晚在Linux社区发表公开信,信中表示他们已经认识到了这项研究的危害性,继续重申其他明尼苏达大学研究人员的补丁是真诚无害的,和本次项目无关。
公开信除了道歉还有什么
信中首先表示「hypocrite commits」论文中的研究方法是不合适的,浪费了开源社区的资源,并且没有事先征得Linux维护人员的同意。
hypocrite commits 这项工作从 2020 年 8 月开始研究,主要目的是提升Linux补丁的安全性,这项研究主要的贡献在于找到现在风险的原因并解决他们。
作者认为这项工作并没有大众认为的危害性:
1、没有引入有危害的代码。三个错误的补丁也只是在社区中进行讨论,并且在论文发表前已经向Linux社区报告过这些问题。
2、190个无辜的补丁并没有参与到我的工作中,他们确实是为了解决linux存在的bug而提交的。
3、最新的补丁是2021年4月提交的,并没有在hypocrite commits项目中,而是一个新的项目,用来自动找到其他人提交补丁中的bug用的。
作者也表示在学术研究方面被「上了一课」。
最后作者希望能够与Linux社区重建良好的关系,并且研究的出发点确实是想要为开源社区的安全性做贡献,只是没想到事情发展成这样。
对于这封公开信,GKH也表示在明尼苏达大学采取行动之前,无需更多的讨论。
为何会引发众怒
开源项目的维护建立在信任的基础上,开发者与维护者秉持着对程序的热爱来开发维护。
对于Linux内核来说,维护者相信开发者的动机是改善Linux kernel的质量,而开发者也需要说明自己确实是改善了内核。
如果没有了这种信任,那么每一次对kernel的提交都要进行完善的安全审查,对于类似Linux kernel这样庞大的,维护人员又不多的项目来说几乎是不现实的。
而明尼苏达的研究项目在未经他们同意的情况下,耗费了维护人员大量的时间,只是为了证明「这种信任很脆弱」。
Linux kernel维护人员GKH警告研究人员停止提交已知无效的补丁,并认为他们是在以一种玩弄评审人员的方式来完成论文。这是错误的,浪费了维护人员的时间,我们要和明尼苏达大学报告此事。
但研究人员Aditya Pakki回应称「我要求你停止进行近乎诽谤的疯狂指责。我发送补丁的目的是希望得到反馈。我们不是Linux内核方面的专家,反复发表这些言论让人听了很反感。显然,这个步骤是错误的,但你的先入为主的偏见是如此强烈,以至于你提出的指控毫无根据,也不给我们辩解(无罪推定)的任何机会。这种态度不仅不受欢迎,而且对新手和非专家也是一种恐吓,因此我将不会再发送任何补丁。」
因此,这也不难理解为什么GKH如此愤怒,以至于要把明尼苏达的所有研究人员的提交都删除。