3月29日,微软PostgreSQL开拓职员Andres Freund在调试SSH性能问题时,在开源安全邮件列表中发帖称,他在XZ软件包中创造了一个涉及稠浊恶意代码的供应链攻击。据Freund和RedHat称,Git版XZ中没有恶意代码,只有完全下载包中存在。但是这个代码的提交人两年前就加入了项目掩护,暂时不能确定之前的版本有没有问题。
xz 5.6.0和5.6.1版本库中存在的恶意注入只包含在tarball下载包中。Git发行版中短缺触发恶意代码构建的M4宏。注入期间构建时利用的第二阶段工件存在于Git存储库中,以防存在恶意的M4宏。如果不合并到构建中,第二阶段文件是无害的。在创造者的演示中,创造它滋扰了OpenSSH守护进程。虽然OpenSSH没有直接链接到liblzma库,但它以一种使其暴露于恶意软件的办法与systemd通信,而systemd链接到了liblzma。恶意构建会通过systemd滋扰sshd的认证。在一定的情形下,这种滋扰有可能使恶意行为体毁坏ssh认证,并远程未经授权访问全体系统。
截至日前(3月30日),暂未不雅观察到利用此后门代码的行为。

影响的系统范围
xz和liblzma 5.6.0~5.6.1 版本,可能包括的发行版 / 包管理系统有:
Fedora 41 / Fedora RawhideDebian SidAlpine Edgex64 架构的 homebrew滚动更新的发行版,包括 Arch Linux / OpenSUSE Tumbleweed如果你的系统利用systemd 启动 OpenSSH 做事,你的 SSH 认证过程可能被攻击。非x86-64 架构的系统不受影响。
if ! (echo "$build" | grep -Eq "^x86_64" > /dev/null 2>&1) && (echo "$build" | grep -Eq "linux-gnu$" > /dev/null 2>&1);then
你可以在命令行输入xz --version来检讨xz 版本,如果输出为5.6.0或5.6.1 ,解释你的xz-utils已被植入后门。
$ xz --versionxz (XZ Utils) 5.6.1liblzma 5.6.1
目前迹象表明,后门作者有选择性的针对linux 发行版下手。但这个liblzma 可不但Linux上用。比如目前盛行的iOS越狱环境,大部分tweak 包还是以.deb 格式发行,比较新的版本就用到了lzma 作为压缩。除此之外,近期有在 macOS上利用brew 安装过xz 这个包也受影响,暂时不能证明有恶意行为:
过程精彩如谍战片
这可能是最大胆的信息安全事宜之一。“最大胆”表明这发难宜在手腕、规模、影响等方面都超出了我们以往对付攻击的认知,可能是一个全新的安全威胁模型。
"最大胆"一词还隐含着对攻击者生理和技能实力的一种评价。做出如此"大胆"之举的,肯定是生理本色极强、技能水平极高、准备极其严密的黑客团伙,绝非一样平常的脚本小子可以企及。
1、一个不有名团伙把稳到OpenSSH依赖一个名为liblzma(xz)的小众开源压缩库。
2、他们虚构了一个名为"Jia Tan"的开拓者身份,从2021年10月开始为xz项目积极做贡献,逐渐得到信赖,并终极接管了掩护事情。
3、2024年2月,"Jia"在构建脚本中引入了一个繁芜暗藏的后门,该后门彷佛针对OpenSSH的身份验证前加密功能,可能添加了"主密钥"让攻击者随意访问受影响做事器。
4、 "Jia"联系Linux发行版掩护者,试图让带后门的xz库被打包分发给用户,直到微软员工Andres Freund因调查SSH延迟问题创造了此事。
这可能是一次有外国政府支持的职业行动,而非业余爱好者所为。更根本的是,xz后门不是一个技能问题,可能也不能单靠技能来办理。归根结底,这是一个反情报寻衅——完备属于政府和少数拥有生态系统范围监控能力的商业实体的能力范畴。这尤其包括谷歌和微软。事实上,这里有一个有趣的想法:大概他们已经知道了很长一段韶光。我们能分辨出这是为了粉饰"手段和来源"而精心设计的表露,还是有时创造的吗?
【----帮助网安学习,须要网安学习资料关注我,私信回答“资料”免费获取----】① 网安学习发展路径思维导图② 60+网安经典常用工具包③ 100+SRC漏洞剖析报告④ 150+网安攻防实战技能电子书⑤ 最威信CISSP 认证考试指南+题库⑥ 超1800页CTF实战技巧手册⑦ 最新网安大厂口试题合集(含答案)⑧ APP客户端安全检测指南(安卓+IOS)
检测和解决方法办理方法:
降级到5.6.0以下版本更新到官方最新版5.6.4检测脚本:
#! /bin/bashset -eu# find path to liblzma used by sshdpath="$(ldd $(which sshd) | grep liblzma | grep -o '/[^ ]')"# does it even exist?if [ "$path" == "" ]then echo probably not vulnerable exitfi# check for function signatureif hexdump -ve '1/1 "%.2x"' "$path" | grep -q f30f1efa554889f54c89ce5389fb81e7000000804883ec28488954241848894c2410then echo probably vulnerableelse echo probably not vulnerablefi