XZ实用程序后门

2024年3月29日，软件开发者Andres Freund报告称，liblzma库在2024年2月发布的5.6.0和5.6.1版本中，包含的Linux实用程序xz含有一个恶意引入的后门。

虽然大多数Linux发行版都安装有xz，但后门仅针对基于Debian和RPM的x86-64架构系统。在发现时，后门版本尚未被广泛部署。

如果拥有特定的Ed448私钥，攻击者能够使用此后门在受感染的Linux系统上执行远程代码。CVSS评分为10.0分，为最高分。

背景
微软员工、PostgreSQL开发人员Andres Freund在对Debian Sid进行性能回归测试时发现了该后门。Freund注意到SSH连接产生了寻常的高CPU使用率，并且使内存调试工具Valgrind报错。Freund将他的发现报告给了Openwall Project开源安全邮件列表，引起了各大软件供应商的注意。有证据表明，攻击者将单次意图拆解进多个阶段，尽力混淆攻击代码。

一旦恶意版本被整合进操作系统，它就会借助systemd库篡改OpenSSH SSH服务器，使攻击者窃得等同于管理员的访问权限。据Red Hat分析，该后门可以“使恶意行为者能够攻破sshd身份验证，并获得对整个系统的远程未经授权的访问”。

随后的调查发现，在XZ实用程序项目中插入后门是一位昵称JiaT75、名为“Jia Tan”的用户在大约三年的时间内，获取该项目信任的结果。在操纵明显是马甲的帐号施加压力后，创始人和首席维护者向“Jia Tan”移交了项目的控制权，作为联合维护者的“Jia Tan”签名发布了5.6.0版本引入后门，而5.6.1版本修复了操作系统软件测试期间可能出现的一些异常行为。疑似傀儡帐号包括“Jigar Kumar”、“krygorin4545”和“misoeater91”。有人怀疑“Jia Tan”这个名字以及所谓的代码作者“Hans Jensen”（针对版本5.6.0和5.6.1）只是该活动参与者编造的假名。除了在该活动的短短几年外，两个帐号在软件开发领域都没有可见的公开活动。该后门因其复杂程度，及犯罪者在努力获得信任地位的同时展现的长期高水平行动安全而引人注目。美国安全研究员戴夫·艾特尔（Dave Aitel）认为，该攻击符合APT29的攻击模式。APT29是一个高级长期威胁执行机构，据信为俄罗斯SVR工作。

机制
据了解，恶意代码存在于XZ实用程序版本5.6.0和5.6.1中。漏洞将一直处于潜伏状态，直到SSH服务器打上了特定的第三方补丁。在适当的情况下，恶意行为者可破坏sshd身份验证过程，并远程获取对整个系统的未经授权的访问。该恶意机制由包含恶意二进制代码的两个测试压缩文件组成。这些文件储存在git存储库中，但除非提取并注入到程序中，否则将保持休眠状态。该代码使用glibc IFUNC机制，将OpenSSH中名为的函数替换为恶意版本。OpenSSH通常不会加载liblzma，但多个Linux发行版常使用的第三方补丁会使其加载libsystemd，进而加载lzma。GitHub上上传的发行tar文件中包含了的修改版本，该文件会释放对进行实际注入的脚本。这个修改过的m4文件并不存在于git存储库中，它只能从维护者独立于git发布的tar文件中获取。似乎只有在x86-64 Linux系统、使用glibc和GCC、通过dpkg或rpm编译软件包时，该脚本才会执行注入。

反应
补救措施
负责网络安全和基础设施的美国联邦机构CISA发布了一份安全公告，建议受影响的设备回滚至未受感染的版本。Red Hat、SUSE和Debian等Linux软件供应商复制了CISA的公告，并撤回了受影响的软件更新。GitHub已禁用了xz存储库的镜像。

大众回应
计算机科学家Alex Stamos认为，“这可能是有史以来植入软件产品中最广泛、最有效的后门”，并指出，如果该后门未被发现，它将“为其创建者提供全球数亿台运行 SSH 计算机的万能钥匙”。此外，该事件还引发了一场关于让关键网络基础设施依赖无偿志愿者的可行性的讨论。

参考

外部链接

 Andres Freund's report to the Openwall oss-security mailing list 

Category:2024年3月
Category:保全漏洞
Category:互联网安全
Category:社会工程学