聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士

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 内核社区维护人员的时间,增加了他们的工作量。认为该研究项目的监督人员应该对此做出解释,这种行为是对开源的滥用。

也有人认为任何系统均应经受检验,而且研究人员已提前告知并非出于恶意目的,而且这些不正确的补丁并非被合并。另外,删除明尼苏达大学之前提交的贡献这种集体惩罚不仅树立了不好的榜样,而且也存在巨大的安全风险。认为两边的做法均欠妥,当前的决定均由情绪推动,缺乏理智。

无论如何,开源软件的安全都值得我们重视。通过软件物料清单了解开源软件资产有哪些,利用治理工具检测并解决其中可能存在的漏洞,避免造成更大的安全风险和影响至关重要。

你怎么看?欢迎讨论。

推荐阅读

三个已存在15年的 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)

国内首个专注于软件开发安全的

产品线。

 觉得不错,就点个 “在看” 或 "赞” 吧~

为了研究,可以在 Linux 内核中植入漏洞吗?相关推荐

  1. 论文中文翻译——Double-Fetch情况如何演变为Double-Fetch漏洞:Linux内核中的双重获取研究

    本论文相关内容 论文下载地址--Web Of Science 论文中文翻译--How Double-Fetch Situations turn into Double-Fetch Vulnerabil ...

  2. linux做预警机制,预警通告:Linux内核中TCP SACK机制远程DoS

    漏洞描述 2019年6月18日,RedHat官网发布报告:安全研究人员在Linux内核处理TCP SACK数据包模块中发现了三个漏洞,CVE编号为CVE-2019-11477.CVE-2019-114 ...

  3. linux 信号量锁 内核,Linux内核中锁机制之信号量、读写信号量

    在上一篇博文中笔者分析了关于内存屏障.读写自旋锁以及顺序锁的相关内容,本篇博文将着重讨论有关信号量.读写信号量的内容. 六.信号量 关于信号量的内容,实际上它是与自旋锁类似的概念,只有得到信号量的进程 ...

  4. 大话Linux内核中锁机制之原子操作、自旋锁【转】

    转自:http://blog.sina.com.cn/s/blog_6d7fa49b01014q7p.html 多人会问这样的问题,Linux内核中提供了各式各样的同步锁机制到底有何作用?追根到底其实 ...

  5. Linux 内核中的数据结构:双链表,基数树,位图

    Linux 内核中的数据结构 rtoax 2021年3月 1. 双向链表 Linux 内核自己实现了双向链表,可以在 include/linux/list.h 找到定义.我们将会从双向链表数据结构开始 ...

  6. linux内核中锁有哪些,Linux内核中有哪些锁

    Linux内核中的各种锁 在LInux操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问.尤其是在多处理器系统上,更需 ...

  7. TCP/IP协议栈在Linux内核中的运行时序分析

    本文主要是讲解TCP/IP协议栈在Linux内核中的运行时序,文章较长,里面有配套的视频讲解,建议收藏观看. 1 Linux概述 1.1 Linux操作系统架构简介 Linux操作系统总体上由Linu ...

  8. linux 内核flush,armv8(aarch64)linux内核中flush_dcache_all函数详细分析

    /* *  __flush_dcache_all() *  Flush the wholeD-cache. * Corrupted registers: x0-x7, x9-x11 */ ENTRY( ...

  9. 【CXL】cxl-cli、ndctl、daxctl管理linux内核中NVDIMM设备子系统

    Intel不断在存储器这边布局: Intel于 2019 年 4 月发布了傲腾持久性内存(Optane DC persistent memory),这是目前市场上唯一商用的持久性内存(Pmem)存储设 ...

最新文章

  1. 构建自己的PHP框架--构建缓存组件(1)
  2. Linux下task_struct详解
  3. python 常用PEP8规范
  4. webservice 的datetime不能为null_用.net发布一个简单的webservice
  5. NewCode----求数列的和
  6. Android Camera TakePicture過程分析
  7. html验证用户名长度,JQuery表单字符串长度验证
  8. vue-cli 外部引入vue-router报错 Uncaught TypeError: Cannot redefine property: $router
  9. FFMPEG结构体分析:AVFrame
  10. Android Studio全局搜索Ctrl+Shift+F占用解决
  11. 网易云音乐数仓模型设计实践
  12. java swing界面设计_java swing界面设计
  13. java.lang.IllegalStateException: Could not find method onClick(View) in a parent or ancestor Context
  14. PHP留言并展示_php留言簿功能实现
  15. mongoDB 高级查询(一)
  16. JavaScript-常见数组内置方法
  17. PHP设计模式之观察者模式
  18. python locust api_性能测试工具--Locust官方文档(API)解读(全)
  19. MongoDB4.0 配置文件
  20. 智能5G网络发展概述

热门文章

  1. 记一次mongdb搭建复制集的小故障
  2. javascript 滚动+停留 代码
  3. 解决Android编译so库出错问题
  4. centos7 svn自动更新至web目录
  5. numpy 中的axis轴问题
  6. hibernate中多对多关系映射时的xml文件
  7. 使用webpack.require优化vue项目的路由
  8. wiki迁移方法操作步骤
  9. Cocos2d-x 3.x:如何进行合理的内存分配(使用AutoreleasePool 来合理的管理内存)
  10. 系统技巧之如何巧妙的整理磁盘碎片