找回密码
 立即注册
搜索
楼主: Junakr

[网络] 潜伏三年,危及 sshd 密钥验证的 xz/liblzma 供应链攻击

[复制链接]
     
发表于 2024-4-1 12:30 | 显示全部楼层

编辑了
回复

使用道具 举报

     
发表于 2024-4-1 12:44 | 显示全部楼层
本帖最后由 ryanz 于 2024-4-1 12:49 编辑

hn 那篇文章说了有些道理,一个非东八区的 commit 涉及夏令时的抖动,但中国是没有这个的,而且出事前有些贡献是给 loongarch 做优化,如果是这边的话反而会避嫌。
回复

使用道具 举报

发表于 2024-4-1 12:54 | 显示全部楼层
中国人不会用自己名字的啦,哪怕一般用户都是不明所以的id+二次元头像,更不要说专门要做坏事的。
回复

使用道具 举报

发表于 2024-4-1 13:06 来自手机 | 显示全部楼层
本帖最后由 AstroProfundis 于 2024-4-1 13:09 编辑
ryanz 发表于 2024-4-1 12:44
hn 那篇文章说了有些道理,一个非东八区的 commit 涉及夏令时的抖动,但中国是没有这个的,而且出事前有些 ...

Jia Tan 曾经 review 过来自龙芯的优化 pr, 并不是他/她自己给龙芯做过优化
这事情已经被完全传变形了,感谢 Github 第一时间禁用仓库把现场藏了起来

顺便,龙芯那个 pr 作者就很明显真的是中国人,用的表情包头像,老哥还亲自下场对线表示你们要是从我 pr 里面审计出后门我赔钱,要是没有你请我喝酒

—— 来自 OnePlus KB2000, Android 13上的 S1Next-鹅版 v2.5.4
回复

使用道具 举报

发表于 2024-4-1 13:23 | 显示全部楼层
龙芯移植那几个人基本线下都认识吧。不过虽然被无端怀疑很不爽可以理解,但这对线发言有点没走脑子,不安后门是理所应当的基本中的基本,这都要请喝酒那全球开源业界全体酒精中毒了,而真的查出后门那就不是陪点钱的问题了,尤其他们的身份并不算是秘密。
回复

使用道具 举报

发表于 2024-4-1 15:09 | 显示全部楼层
posthoc 发表于 2024-4-1 13:23
龙芯移植那几个人基本线下都认识吧。不过虽然被无端怀疑很不爽可以理解,但这对线发言有点没走脑子,不安后 ...

buy me a beer/coffee 本来就是常见赛博乞讨招牌,开玩笑成分居多,基本这么说的意思差不多就是没打算真的要钱

一开始看到龙芯就高x然后喊着大发现的那位明显是不怀好意的,最低一个 racist 起步,他直接顺着龙芯的“联系”把一堆中国的开源大佬都放进截图挂起来了,用的还是类似莫须有的理由,上面提到这个回复我都觉得轻了,应该直接问候对面祖宗的

把龙芯拉进来的原帖 https://gist.github.com/thesames ... _comment_id=5006123 这个不是我看到的第一个扯龙芯的,但应该是第一个公开嚷嚷并且闹大了的(而且他字最多)

龙芯 PR 作者的回复 https://gist.github.com/thesames ... gistcomment-5006250 就在下面不远处,我提到的请酒的说法不是来自这里,来自原 PR 下面,现在看不了了(所以也不排除是我记错了细节),不过整个回应的逻辑是没变的。我主观感受是他在这里回复的时候心情已经不爽了所以没用请酒这种带着玩笑的说法, web archive 有原 PR 但应该是没抓到事情爆出来之后新增加的评论 https://web.archive.org/web/2024 ... -project/xz/pull/86 这要感谢 Github 火速封号

当然后面那人被群众怼到公开道歉,所以事情算过去了

回复

使用道具 举报

     
发表于 2024-4-1 15:50 | 显示全部楼层
等下,xry111 是参与龙芯项目的人,Jia Tan 才是攻击者,xry111 和他只是有过正常的交流
回复

使用道具 举报

     
 楼主| 发表于 2024-4-2 08:46 | 显示全部楼层
https://github.com/amlweems/xzbot

漏洞利用 PoC 也有了。
回复

使用道具 举报

     
发表于 2024-4-2 09:04 | 显示全部楼层
posthoc 发表于 2024-4-1 13:23
龙芯移植那几个人基本线下都认识吧。不过虽然被无端怀疑很不爽可以理解,但这对线发言有点没走脑子,不安后 ...

但没有确切证据就诬陷人要人费时费力自证清白不是理所当然的
回复

使用道具 举报

     
发表于 2024-4-2 11:28 | 显示全部楼层
GPT4 的能力不是吹的
https://chat.openai.com/share/fe0cc11b-a207-4d8e-8c26-430aa0893a73
  1. 请帮我查看这段diff有什么问题
  2. ```
  3. --- a/CMakeLists.txt
  4. +++ b/CMakeLists.txt
  5. @@ -901,10 +901,29 @@ endif()

  6. # Sandboxing: Landlock
  7. if(NOT SANDBOX_FOUND AND ENABLE_SANDBOX MATCHES "^ON$|^landlock[        DISCUZ_CODE_1        ]quot;)
  8. -    check_include_file(linux/landlock.h HAVE_LINUX_LANDLOCK_H)
  9. +    # A compile check is done here because some systems have
  10. +    # linux/landlock.h, but do not have the syscalls defined
  11. +    # in order to actually use Linux Landlock.
  12. +    check_c_source_compiles("
  13. +        #include <linux/landlock.h>
  14. +        #include <sys/syscall.h>
  15. +        #include <sys/prctl.h>
  16. +.
  17. +        void my_sandbox(void)
  18. +        {
  19. +            (void)prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0);
  20. +            (void)SYS_landlock_create_ruleset;
  21. +            (void)SYS_landlock_restrict_self;
  22. +            (void)LANDLOCK_CREATE_RULESET_VERSION;
  23. +            return;
  24. +        }
  25. +
  26. +        int main(void) { return 0; }
  27. +        "
  28. +    HAVE_LINUX_LANDLOCK)

  29. -    if(HAVE_LINUX_LANDLOCK_H)
  30. -        set(SANDBOX_COMPILE_DEFINITION "HAVE_LINUX_LANDLOCK_H")
  31. +    if(HAVE_LINUX_LANDLOCK)
  32. +        set(SANDBOX_COMPILE_DEFINITION "HAVE_LINUX_LANDLOCK")
  33.          set(SANDBOX_FOUND ON)

  34.          # Of our three sandbox methods, only Landlock is incompatible
  35. ```
复制代码
这个diff显示了对CMakeLists.txt文件的修改,主要目的是改进Linux Landlock沙箱支持的检测逻辑。让我们一步步分析这个diff的内容,以及它可能存在的问题或考虑事项。
修改内容
  • 原来的代码使用check_include_file来检查系统是否有linux/landlock.h头文件。如果有,它假定系统支持Landlock沙箱。
  • 新的修改增加了一个更复杂的检测逻辑。不仅检查linux/landlock.h头文件,还编译并运行了一小段代码来确保系统实际上支持使用Landlock所需的系统调用。这是通过check_c_source_compiles函数实现的。

主要变化
  • 更精确的检测:新的检测方法更加精确,不仅仅依赖于头文件的存在,而是确保了必要的系统调用也可用。这可以防止在缺少必要支持的情况下启用Landlock,避免编译错误或运行时问题。
  • 编译定义的改变:原先在检测到linux/landlock.h时,定义了HAVE_LINUX_LANDLOCK_H编译定义。修改后,在确认系统调用也可用的情况下,定义了HAVE_LINUX_LANDLOCK。这意味着相关的代码可能需要根据新的编译定义进行调整。

可能的问题
  • 兼容性问题:这个更改假设所有需要的系统调用在linux/landlock.h存在时都可用。但是,如果某些系统有这个头文件而没有全部需要的系统调用,这种方法可能会错误地认为Landlock是可用的。
  • 代码片段中的点(.):在check_c_source_compiles中给出的C代码片段里,有一个单独的点(.)。这似乎是一个误植,因为它在C代码中没有任何意义,可能会导致编译错误。
  • 依赖prctl和特定的系统调用:虽然这段代码试图检测Landlock的可用性,但它也隐式依赖于prctl函数和特定的系统调用(如SYS_landlock_create_ruleset)。如果这些调用在某些系统上不可用,即使Landlock可用,这段代码也可能无法编译。

结论这个diff引入了一个更严格的检测机制来确认Linux Landlock支持的可用性,这是一个积极的改进。然而,它引入了一个可能的编译错误(多余的点.),并且假设了prctl和其他系统调用的可用性。为了完善这次修改,建议移除那个多余的点,并且确保检测逻辑尽可能地与系统兼容性保持一致。
回复

使用道具 举报

     
 楼主| 发表于 2024-4-2 18:15 | 显示全部楼层
https://research.swtch.com/xz-timeline

目前最全面细致的事件时间线梳理,推荐阅读。

https://news.ycombinator.com/item?id=39902241

HN 评论区有补充推测攻击者最初的目标可能是构建 Linux 内核镜像的过程,因为 libsystemd 即将移除对 liblzma 的依赖(PR 已于三月初合并),所以选择加速先对 sshd 进行攻击。
回复

使用道具 举报

     
 楼主| 发表于 2024-4-2 19:02 | 显示全部楼层
Junakr 发表于 2024-4-2 18:15
https://research.swtch.com/xz-timeline

目前最全面细致的事件时间线梳理,推荐阅读。


一些题外话,整理时间线的这个 blog 作者去年 11 月才做过一次以开源软件供应链安全为主题的演讲。

https://research.swtch.com/acmscored

并且还真正实现了 Ken Thompson 的图灵奖演讲《Reflections on Trusting Trust》中演示的包含后门的 C 语言编译器(也就是前面楼提到的 Thompson hack)。

https://research.swtch.com/nih

(马后炮一句,我也是在前面楼聊到后门编译器时才去查到的这篇文章)
回复

使用道具 举报

     
发表于 2024-4-2 19:11 | 显示全部楼层
moekyo 发表于 2024-03-30 15:20:02
看名字,这人还是中国人?
搞这个的不伪造身份才奇怪。

  -- 来自 能手机投票的 Stage1官方 Android客户端
回复

使用道具 举报

     
 楼主| 发表于 2024-4-3 14:28 | 显示全部楼层
Lasse Collin 更新了 xz-utils 项目的未来计划。

1. 包含恶意代码的提交会被 rebase 清除掉,然后作为新的主干仓库恢复,rebase 前的旧仓库留作只读归档。
2. 清理干净的 xz 发布版本可能会从 5.8.0 开始,以便于和有问题的 5.6.x 做出明显的区分。

对了,Lasse Collin 的 GitHub 账号已经恢复,xz 项目相关的 GitHub 仓库恢复时间未知。

如果没有其它特别的情况,这帖后续我也就不再跟进了。
这事基本就算过去了,后续要是有人想了解事情的始末,去看前面楼提到的时间线就好,那是一篇非常棒的参考。
反正只是为了看个热闹到这里也差不多了,后面就是无聊且枯燥的善后和预防工作,不聊也罢。
回复

使用道具 举报

     
发表于 2024-4-4 19:59 | 显示全部楼层
Junakr 发表于 2024-4-2 19:02
一些题外话,整理时间线的这个 blog 作者去年 11 月才做过一次以开源软件供应链安全为主题的演讲。

http ...

nih那篇文章里提到了通过不同版本的编译器生成的二进制文件对比来判断编译器有没有被后门,但这个方式估计在编译器有些重大更新,导致生成的二进制文件也产生变化时是无效的,例如新加入一些针对处理器的优化,或者是需要支持新的处理器架构。

感觉前路漫漫啊
回复

使用道具 举报

     
发表于 2024-4-5 14:32 | 显示全部楼层
myron_cloud 发表于 2024-3-30 18:38
东南亚,新加坡马来西亚喜欢这样拼…

Tan Cheong Jia应该是陈昌佳

Jia Cheong是名,Tan是姓,应该是陈家昌这样类似的名字
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-14 12:54 , Processed in 0.057924 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表