近期开源圈 xz Utils 安全事件让业内震惊,当前幕后黑手仍然没有查明。
简单来说,xz Utils 入侵者在潜伏两三年时间中,通过社会工程的方式,先获得了项目的高级权限,进而执行一系列错综复杂的操作。
(完整攻击时间线查看:

https://www.oschina.net/news/286008/xz-timeline
可以看到,在这个过程中,入侵者首先急于实现的是提权,这个门槛是较大的,所以可以看到他们在开源项目中一边用真实的代码贡献去付出,一边以此为 “筹码”,将自己在项目中的身份提高,同时不断变着法一而再再而三去催促要接管项目权限。
这样的事情其实在开源项目中并不是孤例,这两天 OpenSSF 和 OpenJS 基金会也呼吁所有开源维护者对这样的社会工程渗透接管模式保持警惕,识别早期出现的威胁模式,并采取措施保护开源项目。
OpenJS 基金会跨项目委员会收到了一系列可疑的电子邮件,这些电子邮件恳求 OpenJS 采取行动更新其 JavaScript 项目,以 “解决任何严重漏洞”,但没有提及具体细节。
电子邮件作者希望 OpenJS 指定他们作为该项目的新维护者,尽管他们之前几乎没有参与过该项目。
OpenJS 团队还在另外两个项目中发现了类似的可疑模式,并立即向各自的 OpenJS 领导人以及美国国土安全部 (DHS) 下属的网络安全和基础设施安全局 (CISA)。
以下社会工程接管中的可疑模式值得关注:
  • 社区中相对不知名的成员对维护者或其托管实体(基金会或公司)友好、积极和持续的渴求
  • 请求由新人或未知人员提升为维护者状态
  • 来自社区中其他未知成员的认可,他们也可能使用虚假身份,也称为 “sock puppets”(白手套)。
  • 包含 blob 作为制品的 PR。例如,XZ 后门是一个精心设计的文件,作为测试套件的一部分,与源代码相反,该文件不是人类可读的。
  • 故意混淆或难以理解源代码
  • 安全问题逐渐升级。例如,XZ 问题一开始是用 fprintf () 相对无害地替换 safe_fprintf (),看看谁会注意到。
  • 偏离典型的项目编译、构建和部署实践,可能允许将外部恶意负载插入 blob、zip 或其他二进制制品中。
  • 错误的紧迫感,尤其是当隐含的紧迫性迫使维护者降低审查的彻底性或绕过控制时。
这些社会工程攻击正在利用维护者对项目和社区的责任感来操纵它们,需要注意互动给你带来的感受,能够让你产生自我怀疑、不足感、对项目做得不够等的互动,可能此时你正在被社会工程攻击。

References

https://openjsf.org/blog/openssf-openjs-alert-social-engineering-takeovers
https://www.oschina.net/news/286008/xz-timeline
继续阅读
阅读原文