大家好,又见面了,我是你们的朋友全栈君。
整理 | 郑丽媛
出品 | CSDN(ID:CSDNnews)
写过论文的人都知道,论文内容必须要有可靠的事实依据,或通过查阅书籍,或通过反复试验,总之不可能凭空捏造。
那么大家看看下面这篇论文的标题:《论通过假意提交代码在开源软件中偷偷引入漏洞的可行性》。(论文地址:https://github.com/QiushiWu/QiushiWu.github.io/blob/main/papers/OpenSourceInsecurity.pdf)
如果想完成这篇论文,论文作者该怎么做?真的往开源软件中偷偷加漏洞?
从论文内容看来,来自明尼苏达大学的 Kangjie Lu 和 Qiushi Wu 确实完成了这项实验:论文描述了作者是如何通过提交所谓的“颠覆性代码贡献”,把恶意代码或者不安全的补丁通过隐蔽的方式引入 Linux 内核。
Kangjie Lu 和 Qiushi Wu 得到了他们想要的结果,这篇论文被 2021 年 IEEE 安全与隐私研讨会接受,并将在 5 月份展示这项研究。
他们原本想通过这项实验,研究“如果向开源软件以提交代码的方式注入漏洞,开源社区将如何处理”,而 Linux 内核维护者之一的 Greg Kroah-Hartman 在发现这项研究后,给了他们处理结果:禁止明尼苏达大学(UMN)继续参与 Linux 内核开发,并将之前所有由 @umn.edu 邮箱提交的代码全部重置(revert)。
前因后果
其实严谨来说,这次让明尼苏达大学被 Linux 封杀的导火索是 Kangjie Lu 导师所在的研究小组中的一名博士生 Aditya Pakki。
在 Kangjie Lu 和 Qiushi Wu 完成论文后,Aditya Pakki 在 4 月 6 号又向 Linux 提交了新一批带有漏洞的补丁。
乍看之下,这个补丁似乎没什么问题。
Signed-off-by: Aditya Pakki <pakki001@umn.edu>
---
net/rds/message.c | 1 +
net/rds/send.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/net/rds/message.c b/net/rds/message.c
index 071a261fdaab..90ebcfe5fe3b 100644
--- a/net/rds/message.c
+++ b/net/rds/message.c
@@ -180,6 +180,7 @@ void rds_message_put(struct rds_message *rm)
rds_message_purge(rm);
kfree(rm);
+ rm = NULL;
}
}
EXPORT_SYMBOL_GPL(rds_message_put);
diff --git a/net/rds/send.c b/net/rds/send.c
index 985d0b7713ac..fe5264b9d4b3 100644
--- a/net/rds/send.c
+++ b/net/rds/send.c
@@ -665,7 +665,7 @@ static void rds_send_remove_from_sock(struct list_head *messages, int status)
unlock_and_drop:
spin_unlock_irqrestore(&rm->m_rs_lock, flags);
rds_message_put(rm);
- if (was_on_sock)
+ if (was_on_sock && rm)
rds_message_put(rm);
}
但 4 月 19 日 Linux 资深内核贡献者 Al Viro 指控 Aditya Pakki 提交了一个“没有修复任何东西的补丁”。
对此,怀疑 Aditya Pakki 的“无用补丁”很可能又是论文研究一部分的 Greg Kroah-Hartman,面对 Aditya Pakki 提交的另一个补丁:
}
- gss_release_msg(gss_msg);
+ if (gss_msg)
+ gss_release_msg(gss_msg);
}
他忍不住回复道:
如果你看过代码你就知道这有多离谱了。 请停止提交明知是无效的补丁,你的教授还在为了发论文在审查过程中捣鬼。
这样不行,这是在浪费我们的时间,我们将必须再次向你们的大学报告此事……
Linux 内核开发者 Leon Romanovsky 对此解释道:“它们(Aditya Pakki 提交的补丁)故意引入内核漏洞。昨天,我查看了来自 Aditya 的 4 个补丁,其中 3 个添加了各种严重的安全漏洞。”
Greg Kroah-Hartman 在推特上也控诉道:“Linux 内核开发人员不喜欢被试验,我们还有许多实际工作要做。”
本以为经过 Greg Kroah-Hartman 的“提点”后,Aditya Pakki 或许会意识到问题的严重性从而改过,可他不仅没有意识到这个问题,还“怼”了回去:
Greg,我恭敬地请求你停止那种近乎诽谤的疯狂指控。
这些补丁是我的一个新静态分析器生成的,显然它的灵敏度不是很好。我发送这些补丁是希望得到反馈。我们不是 Linux 内核的专家,你反复说出这些话很令人厌恶。
很明显,这是错误的一步,但你太过先入为主,以至于让你做出毫无根据的指控。
我将不再发送任何补丁,因为你这不仅是不欢迎的态度,而且也恐吓到了新手和非专业人士。
收到这番回复的 Greg Kroah-Hartman 这时才真正的“翻脸”了。
他向 Aditya Pakki 回复了很长的邮件:
“你和你的团队已经公开承认发送了已知的错误补丁,以查看内核社区对它们的反应,并发表了一篇基于此的论文。
现在你又提交了一系列明显错误的补丁,我该怎么看待这种事情呢?
它们显然不是由具有任何智能的静态分析工具创造的,因为它们是完全不同模式的结果,而且所有这些模式显然都没有修复任何东西。那么,除了你和你的团队正在继续通过发送这些毫无意义的补丁来测试内核社区开发人员之外,我还能想到什么呢?
当提交由工具创建的补丁时,每个人都会以“发现由工具 XXX 生成的补丁,我们不确定这是否正确,请给出建议。”这样的备注来提交。可你没有,你是在声称这些是合法的修复,而你明知这是错的。
只要花几分钟和那些对 C 语言有一定了解的人交流,你就会发现你提交的东西没有任何用处。你是有错,因为我们的工作不是做你创造的工具的测试对象。
我们的社区欢迎那些希望帮助和增强 Linux 的开发者。明显这不是你在这里想要做的。
我们的社区并不欢迎通过提交已知的错误补丁来进行实验,这些补丁要么根本没用,要么故意引入 Bug。如果你想做这样的工作,我建议你找一个不同的社区来做你的实验,我们这里不欢迎。
因此,我现在必须禁止你们大学今后的所有 Commits,并删除你们之前的Commits,因为很明显你们的 Commits 是恶意代码,是为了制造内核问题。”
自此,事情真正地闹大了,整个明尼苏达大学都被 Linux “拉黑”。
目前,明尼苏达大学对此进行了回应:“我们对这种情况极为重视,并已经立即暂停了这项研究。我们将调查该研究方法和批准该研究方法的过程,确定适当的补救措施,并在需要时预防未来的问题。我们将尽快向社会报告我们的调查结果。”
被 IRB 通过的论文?
这件事看下来,如果说 Aditya Pakki 提交的错误补丁是导火索,那么 Kangjie Lu 和 Qiushi Wu 的论文就是之前埋下的炸弹。
正如 Greg Kroah-Hartman 在最后一封回复信开头提到的那样,由于之前为了完成论文 Kangjie Lu 和 Qiushi Wu 已经对 Linux 内核提交过错误补丁,因此 Aditya Pakki 这次雷同的举止导致 Greg Kroah-Hartman 不得不多想。
而起初 Greg Kroah-Hartman 所提到的“Aditya Pakki 导师为发论文在审查过程中捣鬼”所指的也是这篇论文。
本来呢,在操作系统中找 Bug 的论文是不需要经过 IRB 审查(内部评级法,学术界传统上涉及到道德的问题,都以 IRB 的审查为准)的,但这篇论文的研究对象是开源软件的维护者,是通过观察他们的行为来得出结论,不能说与伦理毫无关系。
可是据 Kangjie Lu 和 Qiushi Wu 主张,他们的这篇论文是经过了学校的 IRB 审查,而明尼苏达的 IRB 给出的结果是:不属于人类研究(human research),因此不进行伦理审查。
这个结果令 Greg Kroah-Hartman 很不满,也就是他所说的“捣鬼”。
或许是错误把这篇论文判定为非人类研究,证实明尼苏达的 IRB 缺乏审查计算机研究的经验;也或许是他们故意反复向 Linux 内核提交漏洞,总之,Greg Kroah-Hartman 选择暂时不再信任这所大学了。
各方看法
Linux 拉黑一所大学的决定在开发者圈子引起了巨大的反响,许多人都发表了对于这件事的看法。
除了大多数 Linux 内核开发人员和程序员都赞同 Greg Kroah-Hartman 的做法,美国东北大学(Northeastern University)计算机科学副教授 Abhi Shelat 也表示:“学术研究不应浪费社区的时间。”他还敦促 Linux 社区成员向明尼苏达大学的 IRB 提出质疑,以确定该实验是否已得到适当的审查。
但谷歌软件工程师 Filipo Valsorda 却表示了不同的看法:“这可能是不受欢迎的观点,但我觉得“只有在验证实物有效之后才合并”应该是世界上最常用的软件的默认策略。”
Luta Security 的首席执行官 Katie Moussouris 也认同这个看法,并表示 Greg Kroah-Hartman 的“拉黑”行为是“情绪上的过度反应”,而那篇论文从国家安全的角度来看,调查结果是很有价值的。
这件事无论对明尼苏达大学还是对接受这篇论文的 IEEE 安全与隐私研讨会都带来了负面的影响,也在国内外引起热议。
那么对此,你有什么看法吗?请在评论区留言。
参考链接:
-
https://lore.kernel.org/linux-nfs/YH%2FfM%2FTsbmcZzwnX@kroah.com/
-
https://www.zdnet.com/article/greg-kroah-hartman-bans-university-of-minnesota-from-linux-development-for-deliberately-buggy-patches/
-
https://cse.umn.edu/cs/statement-cse-linux-kernel-research-april-21-2021
60+专家,13个技术领域,CSDN 《IT 人才成长路线图》重磅来袭!
直接扫码或微信搜索「CSDN」公众号,后台回复关键词「路线图」,即可获取完整路线图!
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/163602.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...