关于几乎感染全球的xz Utils后门,我们所知道的情况

事件概述

一名微软开发者在周五揭露了一个被故意植入 xz Utils 的后门,xz Utils 是一个几乎在所有 Linux 和其他类 Unix 操作系统上广泛使用的开源数据压缩工具。这一后门几乎成功被合并到 Debian 和 Red Hat 这两大 Linux 发行版中,但最终被一名细心的开发者发现。

xz Utils 简介

xz Utils 是 Linux 系统中几乎无处不在的工具,提供无损数据压缩功能,支持包括 Linux 在内的几乎所有类 Unix 操作系统。它还支持传统的 .lzma 格式,因此在系统中扮演着关键角色。

事件经过

微软的 PostgreSQL 开发者 Andres Freund 在排查 Debian 系统的 SSH 性能问题时,意外发现这些问题源于 xz Utils 的更新。经过进一步调查,他确认这些更新是有人故意在压缩软件中植入的后门。

后门的功能

恶意代码被添加到 xz Utils 的 5.6.0 和 5.6.1 版本中,修改了软件的功能。后门操纵了 sshd(用于建立远程 SSH 连接的可执行文件),允许持有特定加密密钥的人在任何 SSH 登录证书中嵌入并执行任意代码。

后门的实现机制

xz Utils 通过 liblzma 库与 sshd 建立联系,从而控制 sshd 的内部运作。OpenSSH 本身并不链接 liblzma 库,但 Debian 和其他 Linux 发行版通过 systemd 程序将 sshd 与 liblzma 链接起来,使得 xz Utils 能够对 sshd 施加控制。

后门的形成过程

这一后门的形成历时数年。自 2021 年起,一个名为 JiaT75 的用户开始在开源项目中提交代码。2023 年,JiaT75(化名 Jia Tan)开始主导 xz Utils 的开发,并在 2024 年 2 月发布了包含后门的 5.6.0 和 5.6.1 版本。随后,Tan 等人成功说服了多个 Linux 发行版合并这些更新。

后门的复杂性

后门通过一个五阶段的加载器实现,使用了一系列巧妙的技术来隐藏自己。它利用 glibc 中的 IFUNC 机制在运行时劫持 OpenSSH 的认证流程,允许攻击者在认证前执行任意命令。

关于 Jia Tan

目前对 Jia Tan 的了解非常有限,尚不清楚这是一个真实存在的人还是一个完全虚构的身份。Jia Tan 在过去几年中参与了许多其他开源项目。

CVE 编号

该后门的 CVE 编号为 CVE-2024-3094。

如何检测后门

用户可以通过 Binarly 提供的工具或 xzbot 项目来检测系统中是否存在后门。这些工具可以自动检测 IFUNC 的实现,并分析是否存在类似的后门。

总结

这一事件展示了供应链攻击的复杂性和潜在危害,强调了开源软件安全审查的重要性。尽管后门最终被发现并阻止,但其接近成功的实施过程仍然令人担忧。

阅读 10
0 条评论