LWN:为了写论文而提交的错误commit

Linux News搬运工

共 5202字,需浏览 11分钟

 ·

2021-05-01 21:06

关注了就能看到更多这么棒的文章哦~

Intentionally buggy commits for fame—and papers

By Jake Edge
April 21, 2021
DeepL assisted translation
https://lwn.net/Articles/853717/

4 月初发布在 linux-kernel 邮件列表上的一个错误 patch,显然成为了让 Greg Kroah-Hartman 再也受不了的最后一根稻草,进而导致回退了一大堆 commit,这些 commit 的共同点是:它们都来自明尼苏达大学(UMN)。对 NFSv4 autorization 机制提供的 patch 受到了两位 NFS 开发者的质疑,但这并不是一个善意错误。根据 Kroah-Hartman 的说法,大学里一些学术研究,一直在进行某种类型的攻击。为了确保这些有意为之的 bug(很多都有安全隐患)不会继续困扰 Linux,他正在努力将那些来自于 umn.edu 电子邮件地址的 commit 都 revert 掉。

4 月 6 日,Aditya Pakki 提出了这个有缺陷的 patch,第二天被 J. Bruce Fields 质疑,第三天被 Trond Myklebust 给出了 NACK 评价。4月 20 日,Kroah-Hartman 以明显非常不高兴的方式给出了回应:

Please stop submitting known-invalid patches. Your professor is playing around with the review process in order to achieve a paper in some strange and bizarre way.

This is not ok, it is wasting our time, and we will have to report this, AGAIN, to your university…

Fields 询问更多的细节,Leon Romanovsky 给他介绍了一些信息。明尼苏达大学的 Qiushi Wu 和 Kangjie Lu 的一篇论文详细介绍了如何在内核中引入 use-after-free bug,试图说明这样做是能行得通的,并且提交了一篇论文。Romanovsky 继续说:"昨天,我看了一下从 Aditya [Pakki]那里接受的 4 个 patch,其中 3 个增加了各种严重的安全'漏洞'。"

内核开发者本来就有足够多的问题了,基本上都是不小心加入的 bug,所以这些故意造成 bug 的 patch 显然是不受欢迎的。Kroah-Hartman 说,所有来自这些开发者的 patch 都需要被 revert,因为 "他们所做的是故意的恶意行为,是不可接受的,完全不道德的"。他找出了 190 个 patch,做了 revert,他说这些很 "容易" 处理。还有 68 个额外的 patch 需要人工 review 才能确定如何处理。他说:"其中一些是无法 revert 的,因为它们之前就已经被 revert 了,或者用后续 patch 修复了,因为它们确定是无效的。这证明这些提交的内容几乎全都是错误的"。

他要求各位 maintainer 再 review 一下这 190 个 revert 动作,看是否有一些真的 bug fix 被误杀了。到目前为止,已经有一小部分被确定为是真正的 fix 或者无害的。至少,真正的 fix 将保留在代码树中。不过,鉴于这种情况,Kroah-Hartman 对维护者提出了警告:

[…] but [maintainers] should be aware that future submissions from anyone with a umn.edu address should be by default-rejected unless otherwise determined to actually be a valid fix (i.e. they provide proof and you can verify it, but really, why waste your time doing that extra work?)

当然,受这些可疑 patch 影响的不仅仅是 mainline。正如 Sudip Mukherjee 所指出的,有些 patch 已经进入了 stable kernel。Kroah-Hartman 说这些也需要 revert。

这引出了一个问题,这类研究是否符合道德。Abhi Shelat 说:"学术研究不应该浪费社区的时间"。他建议向 UMN 的审查委员会(review board)报告这一行为,毕竟他们应该负责确保 UMN 的研究是符合道德水准的,具体来说,任何可能被认为是对人类进行实验(human experimentation)的都应该由该委员会进行预先审查。虽然报告给审查委员会可能也是会进行的,但内核开发者有一个更直接的 "解决方案",正如 Romanovsky 所指出的:"我们的解决方案就是忽略所有@umn.edu 的贡献,这种做法对受够了这些研究人员的开发者来说更可靠。"

当然,这种修复方法是种相当激烈的做法。肯定有一些拥有 umn.edu 地址的人并没有参与这个研究,他们也不是故意把 bug 塞进内核。事实上,Pakki 在给 Kroah-Hartman 和 mailing list 的电子邮件中声称不是故意这样做的。Pakki 说,这些 patch 是基于他写的一个新的静态分析器(static analyzer)的产物,但显然其 "灵敏度很不好"。然而,Kroah-Hartman 并不相信这种解释:

Our community welcomes developers who wish to help and enhance Linux. That is NOT what you are attempting to do here, so please do not try to frame it that way.

Our community does not appreciate being experimented on, and being "tested" by submitting known patches that are either do nothing on purpose, or introduce bugs on purpose. If you wish to do work like this, I suggest you find a different community to run your experiments on, you are not welcome here.

当然,我们估计其他社区也不希望他们的时间被浪费在这些已知有缺陷的 patch 上。事实上,对于其他项目,尤其是高知名度的项目来说,可能确实有必要对过去一两年中来自 UMN 的 patch 进行彻底 review。当然,"研究人员" 如果使用其他电子邮件地址发送这些 patch 的话,我们确实没有什么办法了,所以 umn.edu 域名至少提供了一个表面上的方法。从个人邮件地址向内核引入安全漏洞与试图对内核进行后门攻击几乎没有区别,这可能算是一种犯罪行为。此外,一个 maintainer 收到来自.edu 域名的电子邮件的时候,对于那些看起来像是简单的 bug fix 的 patch,很可能不太会深入 review。

这些研究人员不仅损害了他们自己的声誉,还损害了整个大学的声誉,对于 CMU 其他人来说,被牵连显然是不公平的,但实际上没有任何可行的办法。人们已经尝试了一些方法希望能减小损害,但公开的声明与实际做的内容并不相符。在论文作者之一 Lu 的主页上,有一个说明以及一个链接,可以看到关于该论文条目的有三页长的解释[PDF]。他说:

The experiment did not introduce any bug or bug-introducing commit into OSS. It demonstrated weaknesses in the patching process in a safe way. No user was affected, and IRB exempt was issued. The experiment actually fixed three real bugs.

研究者继续以同样的方式在澄清,声称该研究使用的代码并没有进入内核;但它也指出,"不幸的是" 维护者的时间在这个过程中确实被浪费了。但是,各个内核版本中都已经发现有些 bug 是由这类可疑 commit 所引入的。事实上,Guenter Roeck 在回复 Lu 的一封来自个人邮箱地址的邮件时,指出了 Lu 所写的一个 commit 已经引入了一个问题。Roeck 在他的回复中可能说出了很多人的想法:

It might be worthwhile to have a discussion at the upcoming maintainers summit on how to handle contributions from untrusted sources in the future, and how to identify trusted contributors. Quite obviously the paradigm has finally changed from "assume the contribution is well-intended" to "assume the contribution is malicious". I guess that was prone to happen, but it is sad to experience it anyway.

For my part, congratulations (in a negative sense): You made me much less inclined to accept minor bug fixes from people I don't know in the future.

UMN 现在已经意识到了这些问题。计算机科学系发表了一份声明,表示理解内核社区所表达的担忧,并将进行调查:

We take this situation extremely seriously. We have immediately suspended this line of research. We will investigate the research method and the process by which this research method was approved, determine appropriate remedial action, and safeguard against future issues, if needed. We will report our findings back to the community as soon as practical.

这个混乱局面非常可怕,看起来似乎是由那些不太关心他们的研究会对其他人带来多少影响的那些研究人员所带来的。虽然 Linux 开发者几乎没有义务去做这些额外工作,但由此产生的对新的 patch 的 "格外仔细" 的 review 会是有益的。确切地说,可能很难将其视为一线生机,而更像是一个可悲但必要的产物。这正如 Roeck 所说是不可避免的。这一事件也应该成为对研究人员们,至少希望如此:我们的社区不是游乐场。虽然我们的代码是自由和开放的,但不是给其他滥用的。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~



浏览 10
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报