微软研究员 Andres Freund 偶然发现了可以破解 sshd 身份验证的恶意代码。如果没有被发现,它可能会对 Linux 构成严重威胁。开源社区对这一事件作出了反应,肯定了这一发现的偶然性,以及它是如何幸运地在对更广泛的 Linux 社区构成重大风险之前被及早发现的。
微软的PostgreSQL开发人员安德烈斯-弗罗因德(Andres Freund)在进行一些例行的微基准测试时,注意到 ssh 进程出现了 600 毫秒的小延迟。
一波未平一波又起,Freund 最终偶然发现了一种供应链攻击,其中涉及 XZ 软件包中被混淆的恶意代码。他将这一发现发布在开源安全邮件列表上,开源社区从此开始关注这一事件。
开发社区迅速揭露了这一攻击是如何被巧妙地注入 XZ utils 的,XZ utils 是一个小型开源项目,至少自 2009 年以来一直由一名无偿开发人员维护。与违规提交相关的账户似乎玩起了长线游戏,慢慢赢得了 XZ 开发人员的信任,这让人们猜测恶意代码的作者是一个老练的攻击者,可能隶属于某个国家机构。
该恶意代码的正式名称为 CVE-2024-3094,CVSS 评分为最高的 10 分。红帽公司报告说,恶意代码修改了 liblzma 中的函数,这是一个数据压缩库,是 XZ utils 软件包的一部分,也是几个主要 Linux 发行版的基础部分。
然后,任何与 XZ 库链接的软件都可以使用这些修改过的代码,并允许截取和修改与该库一起使用的数据。据 Freund 称,在某些条件下,这个后门可以让恶意行为者破坏 sshd 身份验证,从而允许攻击者访问受影响的系统。Freund 还报告说,XZ utils 5.6.0 和 5.6.1 版本也受到影响。
Red Hat 在 Fedora 41 和 Fedora Rawhide 中发现了存在漏洞的软件包,建议用户停止使用,直到有更新可用,但 Red Hat Enterprise Linux (RHEL) 仍未受到影响。SUSE 已发布 openSUSE(Tumbleweed 或 MicroOS)的更新。Debian Linux 稳定版是安全的,但测试版、不稳定版和实验版由于软件包受损,需要 xz-utils 更新。在 3 月 26 日至 3 月 29 日期间更新的 Kali Linux 用户需要再次更新以获得修复,而在 3 月 26 日之前更新的用户不受此漏洞影响。
不过,正如许多安全研究人员指出的那样,情况仍在发展中,可能会发现更多漏洞。目前还不清楚其有效载荷是什么。美国网络安全和基础设施安全局建议人们降级到未被破坏的 XZ utils 版本,即早于 5.6.0 的版本。安全公司还建议开发人员和用户进行事件响应测试,查看是否受到影响,如果受到影响,则向 CISA 报告。
幸运的是,这些受影响的版本似乎并没有被纳入任何主要 Linux 发行版的生产版本中,但安全公司 Analygence 的高级漏洞分析师 Will Dormann 告诉 Ars Technica,这次发现可谓千钧一发。他说:"如果没有被发现,这将给世界带来灾难。"