潜伏开源项目3年,混成核心开发者,竟然只为加一个后门
共 3066字,需浏览 7分钟
·
2024-05-05 09:19
往期热门文章:
1、就因为开发环境用了 Docker,就被开除了 2、有人问我数据库ER图为什么这么好看? 3、我用这10招,能减少了80%的BUG 4、突发!特斯拉大量毁约应届生offer… 5、警报炸锅了,FastJson 又立功了。。
步步为营的过程
始作俑者 JiaT75 (Jia Tan) 在 2021 年注册了 GitHub 账号,之后积极参与 xz 项目的维护,并逐渐获取项目组高层信任,最终获得了直接 commit 代码的权利。他用的名字非常像中国人名,并且提交代码的时区是东八区,有意制造出自己是个中国人的假象。但是黑客肯定是不会傻到使用真名的,所以这个身份应该是假的。
JiaT75 在最近几个月的一次 commit 中,悄悄加入了 bad-3-corrupt_lzma2.xz 和 good-large_compressed.lzma 两个测试用二进制数据,这两个测试数据看起来再正常不过了,然而在编译脚本中,在特定条件下会从这两个文件中读取内容对编译结果进行修改,致使编译结果和公开的源代码不一致。并且测试数据在直接源代码编译的时候还不会调用,只有在打包编译上才会调用。
据初步研究显示,注入的代码会使用 glibc 的 IFUNC 去 Hook OpenSSH 的 RSA_public_decrypt 函数,致使攻击者可以通过构造特定的验证数据绕过 RSA 签名验证。
所以,只要是同时使用了 liblzma 和 OpenSSH 的程序就会受到影响,最直接的目标就是 sshd,使得攻击者可以构造特定请求,绕过密钥验证远程访问。
目前,受影响的 xz 包已经被并入 Debian testing 中进行测试,攻击者同时也在尝试并入 fedora 和 ubuntu。这位黑客故意在ubuntu beta freeze 的几天前才提交并入,应该是为了减少测试时间,以免被发现。
百密一疏,还是被发现了
最后
往期热门文章:
1、一个小公司的技术开发心酸事(已倒闭) 2、JetBrains 如何看待自己的软件在中国被频繁破解? 3、程序员因Bug被要求归还4万多年终奖,网友:不还! 4、一套万能通用的异步处理方案 5、微服务全做错了!谷歌提出新方法,成本直接降9倍! 6、IntelliJ IDEA 2024 首个大版本发布,好用到爆! 7、Web 后端的一生之敌:分页器 8、ObjectMapper,别再像个二货一样一直new了! 9、表设计的18条军规,你违反了几条?
10、还在用Xshell?你out了,推荐一个更现代的终端连接工具