明尼苏达大学 Linux 内核“伪君子提交”研究人员发表公开信

2021-04-25 19:04


就如我们之前报道的,因为对 Linux 内核提交了一些作用不明的补丁,并疑似以 Linux 内核作为其研究论文的试验场,Linux 内核社区决定撤销该大学所有近 200 个补丁贡献,并将明尼苏达大学“拉黑”。

此事件曝光并发酵之后,引来了全球技术社区的大量关注、抨击和一些反思。之后,明尼苏达大学计算机科学系表示暂停该研究项目,而陷入此事件的三位研究人员更是一时之间处于风口浪尖,招致了大量批评甚至谩骂。

此事件中的主要负责人 Kangjie Lu 助理教授昨日发表了一篇英文公开信进行澄清,我们将其翻译并点评如下,如有表达不到位或误解之处,敬请参照原文

这封信是由此事件中三位研究人员联合署名发表的:

Kangjie Lu, Qiushi Wu, and Aditya Pakki
University of Minnesota

其中 Kangjie Lu 是负责该项目的助理教授,而 Qiushi Wu 和 Aditya Pakki 都是 Lu 助理教授带的博士生,其中 Qiushi Wu 是那篇论文《论通过伪装提交在开源软件中隐蔽地引入漏洞的可行性》的一作,而 Aditya Pakki 不是该论文的作者,但是是引发这场争议的补丁提交者。

信件开头首先对 Linux 内核社区致歉:

亲爱的社区成员:

我们为我们的研究小组对 Linux 内核社区造成的任何伤害真诚地道歉。我们的目标是找出修补过程中的问题以及解决这些问题的方法,我们非常抱歉,在“伪君子提交”论文中使用的方法是不恰当的。正如许多观察家向我们指出的那样,我们犯了一个错误,在进行这项研究之前没有找到咨询社区并获得许可的方法;我们这样做是因为我们知道我们不能向 Linux 的维护者征求许可,否则他们会对伪装者的补丁进行监视。虽然我们的目标是提高 Linux 的安全性,但我们现在明白,让社区成为我们研究的对象,并在社区不知情或未经其许可的情况下浪费其精力审查这些补丁,是对社区的伤害。

我们只想让你知道,我们绝不会故意伤害 Linux 内核社区,也绝不会引入安全漏洞。我们的工作是抱着最好的目的进行的,都是为了寻找和修复安全漏洞。

然后介绍了该研究项目的情况,并进行了澄清:

“伪君子提交”的工作是在 2020 年 8 月进行的;它的目的是提高 Linux 中修补程序的安全性。作为项目的一部分,我们研究了 Linux 打补丁过程中的潜在问题,包括问题的原因和解决这些问题的建议。

按 Lu 助理教授的解释,这个“伪君子提交”的研究已经于 2020 年 12 月结束,并且用于研究而提交的三个补丁也只是在邮件列表讨论中进行的,从未获得进入 Linux 内核的机会。而且,Linux 内核社区是知道这件事的。

  • 这项工作并没有在 Linux 代码中引入漏洞。三个不正确的补丁是在 Linux 留言板的交流中讨论和停止的,从未提交到代码中。在提交论文之前,我们向 Linux 社区报告了这项工作的发现和结论(不包括不正确的补丁),收集了他们的反馈,并将其纳入论文中。

Lu 助理教授还提到,这次事件发酵而招致 Linux 内核负责人 GKH 全部撤销的 190 个历史补丁,是和该项目无关的,是出于善意和服务提交的。但是这个事情发展到现在,按照 GKH 的说法,要对这 190 个补丁进行重新审核,不过这个工作是在 GKH 自己的仓库内进行,无论审核结果如何,目前这 190 个补丁并没有在 Linux 主线内核中发生变更。

  • 所有其他 190 个被撤销和重新评估的补丁都是作为其它项目的一部分和对社区的服务而提交的;它们与 “伪君子提交”论文无关。
  • 这 190 个补丁是对代码中真正的错误的回应,并且在我们提交时都是正确的 —— 就我们所能辨别的而言。

对于“伪君子提交”所涉及的三个研究性的补丁,正在努力进行披露:

  • 我们理解社区希望获得并检查这三个错误的补丁的愿望。这样做会暴露在留言板上对这些补丁做出反应的社区成员的身份。因此,我们正在努力在披露这些补丁之前获得他们的同意。

对于引发这次事件的几个由 Aditya Pakki 提交的补丁,是和这 190 个补丁无关,也和“伪君子提交”研究无关,是另外一个项目所产生的。

  • 我们最近在 2021 年 4 月的补丁也不属于“伪君子提交”文件的范围。我们一直在进行一个新的项目,旨在自动识别由其他补丁(不是来自我们)引入的 bug。我们的补丁是为了修复被识别的 bug 而准备和提交的,以遵循责任披露的规则,我们很高兴与 Linux 社区分享这个较新项目的细节。

只是这些补丁看起来质量不佳,按 Aditya Pakki 的说法,“它的灵敏度显然不是很高”。正是由于这些糟糕的补丁,引发了 Linux 内核社区的愤怒,并将其和之前的“伪君子提交”研究联系到一起。

在公开信中,Lu 助理教授等继续认错:

我们是一个研究小组,其成员致力于改善 Linux 内核的工作。在过去的五年里,我们一直致力于寻找和修补 Linux 的漏洞。过去对修补过程的观察促使我们也研究和解决修补过程本身的问题。目前这一事件在 Linux 社区引起了对我们、研究小组和明尼苏达大学的极大愤怒。我们为我们现在认识到的违反开源社区共同信任的行为无条件地道歉,并为我们的错误行为寻求宽恕。

并请求社区原谅:

我们寻求从谦逊的角度重建与 Linux 基金会和 Linux 社区的关系,以创建一个基础,我们希望从这个基础上,我们可以再次为我们的共同目标作出贡献,即提高 Linux 软件的质量和安全性。我们将与我们的院系合作,因为他们为寻求在开源项目、同行生产网站和其他在线社区进行研究的师生开发新的培训和支持。我们致力于遵循合作研究的最佳实践,就我们研究项目的性质与社区领导人和成员进行协商,并确保我们的工作不仅符合 IRB(学术伦理委员会) 的要求,而且符合社区在此事件后向我们阐述的期望。

虽然这个问题对我们来说也很痛苦,我们对 Linux 内核社区所承担的额外工作感到由衷的抱歉,但我们从这次事件中吸取了一些关于与开源社区研究的重要教训。我们可以而且会做得更好,我们相信我们在未来还有很多贡献,并将努力工作以重新获得你们的信任。

我的看法

这件事到此算是告一段落了,如果这封公开信披露的信息属实,而 Linux 内核社区也愿意接受的话,那不失一个还算美好的结局。

就我个人的感受,Lu 助理教授的这封道歉的公开信,算得上谦卑,或许心中有所委屈,但还是就能道歉的地方都低头道歉了。在这个事件发酵后,我们其实看到了很多对这个研究团队的、对这些研究人员个人的谩骂和指责,鲜少能看到理智而独立的看法——这还仅仅只是中文社区的一个小角落。所以,可以想象身处美国的 Lu 助理教授和他的学生们会招致什么样的压力和语言暴力。

事实上,初看到这个新闻时,我也非常愤怒,也为其中两位研究人员是华人而感觉蒙羞。但是,在我仔细梳理了内核社区的邮件列表对话、综合了各处信源之后,得出的结论和看法,是和这份公开信相似的。也许 Lu 助理教授他们在此事件中有些不当,但内核社区的负责人的处置也或许有点过激。那么,社区是否真正能做到公平公正和公开决策?作为知名领袖和多年的社区元老,个人所做的处置和反应带来的影响可能要比预想的更高,在决策前是否应该三思?

另外,从这个事件中,还反映出的一个情况是,Linux 内核社区的管理和审核,似乎还是人治为主,对于来自外部的恶意或无意的破坏,应该具有更有效的反应机制。

好了,对于这件事,你如何看呢?

更新

周六深夜,内核团队的 GKH 回复说:

谢谢你的回应。

如你所知,Linux 基金会和 Linux 基金会的技术顾问委员会在周五向贵校提交了一封信,概述了需要采取的具体行动,以便贵组和贵校能够努力重新获得 Linux 内核社区的信任。

在采取这些行动之前,我们不会就这个问题进一步讨论。

谢谢