几天前 发生了一件不寻常的事件,这震动了Linux内核社区,那就是 Linus Torvalds 下令立即暂停 Kees Cook 在 kernel.org 上的帐户。在检测到该开发人员的 Git 存储库中存在被操纵的提交后。
基斯·库克, 因其领导能力而受到认可 在 Ubuntu 安全团队中,维护十多个与安全相关的内核子系统, 在澄清事实期间被暂时禁止提交修改。
Kees Cook 存储库中的作者和签名被更改
该问题源于变更合并请求。s 到 6.16 内核分支, Linus 在其中识别了对存储库的引用 包含 提交被操纵 尽管他本人并未做过这些事,但他仍以他的名字作为作者和确认者。 最严重的例子之一是存在重复提交,其内容与原始提交相同,但 SHA1 哈希值不同,其中错误地包含了 Linus Torvalds 的签名。
这些变化 不能简单地归咎于意外错误l 在 git rebase 操作期间, 因为它们涉及大规模的修改 敏感信息,包括超过 6.000 次重写的提交,其中 330 次以 Linus 的名字作为作者。
托瓦兹的反应:怀疑有人故意操纵
Linus Torvalds 毫不掩饰他的担忧 并将这些事件描述为潜在的恶意事件:
“一两次重写可能是错误。但成千上万次重写,其中很多都有我伪造的签名,就不是错误,”他宣称。
鉴于这些变化的规模以及对官方内核树完整性的风险, Torvalds 询问 Konstantin Ryabitsev, kernel.org 基础设施管理员,q阻止 Kees Cook 的访问,直到情况明朗为止。
作为回应, Kees Cook 解释说他最近遇到了技术问题 这可能引发了此次事件。他说, 您的 SSD 驱动器在复制操作期间出现错误,导致损坏 在多个存储库中。出现这些错误后,他尝试使用 git rebase 和各种自动化工具来恢复存储库的状态。
然而,这些操作是在关键分支上执行的,例如 for-next/hardening 和 for-linus/hardening,这导致了存储库历史记录的意外修改,包括提交作者身份的更改。 尽管做出了解释,莱纳斯仍然持怀疑态度。:
“我不明白意外超车怎么会发生,更不用说进行如此大规模的改动了。”
真正的罪魁祸首:git-filter-repo 和 b4 预告片
在后来的一条消息中, Kees Cook 确定了错误的可能来源:两种工具的结合使用, git-filter-repo 和 b4 尾部,用于操纵提交历史 以及提交中的尾部(如 Signed-off-by: 之类的标签)。
这种不正确的使用 利润 会导致数千次提交被自动重写,包括用默认值替换作者(在本例中为 Linus Torvalds), 当时 Kees 并没有注意到这个错误b4工具的作者康斯坦丁·里亚比采夫证实了这一理论,并坚称库克并非出于恶意。事实上,系统此前已经发出警告,但都被库克忽略了。
情况澄清后,Kees Cook 对 kernel.org 的访问权限已恢复。 作为一项预防措施,已宣布该工具 b4 将包括新的安全检查, 这将阻止修改与当前用户身份不匹配的提交。此举旨在防止类似错误发生,并保护内核源代码的完整性。
基斯则承诺重建受影响的树枝。 从各个补丁中深入分析导致错误的步骤。虽然 此事导致球队内部关系紧张 内核开发,也强调了谨慎使用历史重写工具的重要性,特别是在像 Linux 内核这样重要的项目中。
最后,值得一提的是,Linus Torvalds 和 Kees Cook 之间的这次事件是对操纵提交历史的危险性的警告, 由于迅速干预 来自 kernel.org 的负责人和流程透明度, 局势已得到控制.
最后,如果您有兴趣了解更多信息,可以查看以下详细信息 链接。