Linux 中的 XZ Utils 后门指向了更广泛的供应链安全问题,我们需要的不仅仅是社区精神来阻止它的出现

发表于 2024 年 4 月 11 日
作者:Pieter Danhieux
案例研究

Linux 中的 XZ Utils 后门指向了更广泛的供应链安全问题,我们需要的不仅仅是社区精神来阻止它的出现

发表于 2024 年 4 月 11 日
作者:Pieter Danhieux
查看资源
查看资源

在发现一个阴险的软件供应链漏洞后,网络安全行业再次进入高度警戒状态。该漏洞影响到主要 Linux 发行版中的 XZ Utils 数据压缩库,被记录在 CVE-2024-3094 下,归结起来就是一个曾被信任的志愿系统维护者故意插入的后门。

值得庆幸的是,在恶意代码进入稳定的 Linux 版本之前,另一位维护者发现了这一威胁,但它仍然给那些已经开始运行作为 Fedora Rawhide 一部分的 XZ Utils 5.6.0 和 5.6.1 版本的用户带来了问题,并敦促企业将其作为紧急优先级打补丁。如果没有及时发现,其风险状况将使其成为有史以来最具破坏性的供应链攻击之一,甚至可能使 SolarWinds 黯然失色。

对社区志愿者维护关键系统的依赖已被广泛记录在案,但在像此次事件这样具有重大影响的问题浮出水面之前,却很少被讨论。虽然他们的不懈努力对开源软件的维护至关重要,但这也凸显了在开发人员层面认真强调安全技能和意识的必要性,更不用说加强对软件仓库的访问控制了。

XZ Utils 后门是什么,如何缓解?

3 月 29 日,红帽发布紧急安全警报,通知 Fedora Linux 40 和 Fedora Rawhide 用户,最新版本的 "XZ "压缩工具和库包含恶意代码,似乎是专门为未经授权的第三方访问提供便利而构建的。这个人花费了无数的时间来赢得其他维护者的信任,在两年多的时间里为 XZ Utils 项目和社区做出了合法的贡献,在多个 sockpuppet 账户削弱了志愿者项目所有者 Lasse Collin 的信心之后,最终赢得了 "可信维护者 "的地位:

贾诞作为项目的贡献者加入。资料来源:Mail Archive:邮件档案

原维护者工作过度。Jia Tan 获得了更多的社区信任,可以接手了。 资料来源:Mail Archive:邮件档案

这个不寻常的场景是一个典型的例子,说明技术高超的人仍然会成为通常用来对付那些不那么精明的人的策略的受害者,这说明需要进行精确的、基于角色的安全意识培训。微软软件工程师兼 PostgreSQL 维护者安德烈斯-弗罗因德(Andres Freund)好奇心强、思维敏捷,才发现了这个后门,并将其版本回滚,从而阻止了可能成为近期最具破坏性的供应链攻击。

NIST 的注册表中,该后门本身被正式列为严重程度最高的漏洞。最初,该漏洞被认为可以绕过 SSH 身份验证,但进一步调查发现,它可以在易受攻击的 Linux 系统(包括 Fedora Rawhide、Fedora 41、Kali Linux、openSUSE MicroOS、openSUSE Tumbleweed 和某些版本的 Debian)上执行未经身份验证的远程代码。

Jia Tan 似乎不遗余力地混淆恶意软件包,当在构建过程中触发该软件包构建自身时,它会通过 systemd 妨碍 SSHd 的身份验证。正如红帽公司详细说明的那样,在适当的情况下,这种干扰可能会让攻击者破解 SSHd 身份验证,并在未经授权的情况下远程访问整个系统。

Jia Tan 在 libarchive 代码库中的首次提交。 函数 fprintf()代替 safe_fprintf()。现阶段的意图可能并非恶意,但不可忽视的是,这一改动有可能引入字符转义漏洞。来源:GitHubGitHub.



微软等公司已经发布了全面的指南,指导用户扫描系统中的漏洞实例并减轻其影响。CISA建议立即采取的行动是,受影响的开发人员和用户应将 XZ Utils 降级到未受攻击的版本,如 XZ Utils 5.4.6 Stable。

防止这种攻击类型的难度极大,尤其是在软件中使用开源组件时,因为供应链的安全性几乎没有保证和透明度。我们已经对付过软件供应链中的意外缺陷,但这种风险已经上升到包括恶意植入的安全漏洞,以破坏开源安全。

大多数开发人员都无法阻止这种性质的攻击,除非他们有强烈的安全意识、健康的安全知识和偏执狂。这几乎是一个需要威胁行为者心态的案例。不过,主要考虑因素应始终围绕内部控制源代码库(即非开源)。只有具备经过验证的相关安全技能的人才能访问这些资源库。AppSec 专业人员可能会考虑类似分支级安全控制的设置,只允许具备安全技能的开发人员向最终主分支提交更改。

志愿维护者是英雄,但维持安全软件需要(应该)全村人的努力

对于软件工程领域之外的人来说,一个由志愿者组成的充满活力的社区在自己的时间里煞费苦心地维护关键系统是一个难以理解的概念,但这正是开源开发的本质,而且对于保护供应链的安全专业人员来说,这仍然是一个存在重大风险的领域。

开源软件几乎是每个企业数字生态系统的重要组成部分,值得信赖的维护者(其中大多数人都是真诚行事的)在无私地追求技术进步和完整性的过程中确实表现出了英雄气概,但让他们孤立地提供服务却是荒谬的。在这个以 DevSecOps 为中心的时代,安全是一项共同的责任,每个开发人员都必须掌握相关知识和合适的工具,以应对工作中可能遇到的安全问题。在软件开发过程中,安全意识和实践技能是不可或缺的,而安全领导者则有责任影响企业层面的变革。

‍今天就在您的组织中 建立蓬勃发展的安全文化 Courses Secure Code Warrior 。

查看资源
查看资源

作者

皮特-丹休

Pieter Danhieux是全球公认的安全专家,拥有超过12年的安全顾问经验,并在SANS担任首席讲师8年,教授如何针对和评估组织、系统和个人的安全弱点的攻击性技术。2016年,他被评为澳大利亚最酷的科技人士之一(Business Insider),被授予年度网络安全专业人士(AISA - 澳大利亚信息安全协会),并持有GSE、CISSP、GCIH、GCFA、GSEC、GPEN、GWAPT、GCIA认证。

想要更多吗?

在博客上深入了解我们最新的安全编码见解。

我们广泛的资源库旨在增强人类对安全编码技术提升的方法。

查看博客
想要更多吗?

获取关于开发者驱动的安全的最新研究

我们广泛的资源库充满了有用的资源,从白皮书到网络研讨会,让你开始使用开发者驱动的安全编码。现在就去探索它。

资源中心

Linux 中的 XZ Utils 后门指向了更广泛的供应链安全问题,我们需要的不仅仅是社区精神来阻止它的出现

发表于 2024 年 4 月 11 日
作者:Pieter Danhieux

在发现一个阴险的软件供应链漏洞后,网络安全行业再次进入高度警戒状态。该漏洞影响到主要 Linux 发行版中的 XZ Utils 数据压缩库,被记录在 CVE-2024-3094 下,归结起来就是一个曾被信任的志愿系统维护者故意插入的后门。

值得庆幸的是,在恶意代码进入稳定的 Linux 版本之前,另一位维护者发现了这一威胁,但它仍然给那些已经开始运行作为 Fedora Rawhide 一部分的 XZ Utils 5.6.0 和 5.6.1 版本的用户带来了问题,并敦促企业将其作为紧急优先级打补丁。如果没有及时发现,其风险状况将使其成为有史以来最具破坏性的供应链攻击之一,甚至可能使 SolarWinds 黯然失色。

对社区志愿者维护关键系统的依赖已被广泛记录在案,但在像此次事件这样具有重大影响的问题浮出水面之前,却很少被讨论。虽然他们的不懈努力对开源软件的维护至关重要,但这也凸显了在开发人员层面认真强调安全技能和意识的必要性,更不用说加强对软件仓库的访问控制了。

XZ Utils 后门是什么,如何缓解?

3 月 29 日,红帽发布紧急安全警报,通知 Fedora Linux 40 和 Fedora Rawhide 用户,最新版本的 "XZ "压缩工具和库包含恶意代码,似乎是专门为未经授权的第三方访问提供便利而构建的。这个人花费了无数的时间来赢得其他维护者的信任,在两年多的时间里为 XZ Utils 项目和社区做出了合法的贡献,在多个 sockpuppet 账户削弱了志愿者项目所有者 Lasse Collin 的信心之后,最终赢得了 "可信维护者 "的地位:

贾诞作为项目的贡献者加入。资料来源:Mail Archive:邮件档案

原维护者工作过度。Jia Tan 获得了更多的社区信任,可以接手了。 资料来源:Mail Archive:邮件档案

这个不寻常的场景是一个典型的例子,说明技术高超的人仍然会成为通常用来对付那些不那么精明的人的策略的受害者,这说明需要进行精确的、基于角色的安全意识培训。微软软件工程师兼 PostgreSQL 维护者安德烈斯-弗罗因德(Andres Freund)好奇心强、思维敏捷,才发现了这个后门,并将其版本回滚,从而阻止了可能成为近期最具破坏性的供应链攻击。

NIST 的注册表中,该后门本身被正式列为严重程度最高的漏洞。最初,该漏洞被认为可以绕过 SSH 身份验证,但进一步调查发现,它可以在易受攻击的 Linux 系统(包括 Fedora Rawhide、Fedora 41、Kali Linux、openSUSE MicroOS、openSUSE Tumbleweed 和某些版本的 Debian)上执行未经身份验证的远程代码。

Jia Tan 似乎不遗余力地混淆恶意软件包,当在构建过程中触发该软件包构建自身时,它会通过 systemd 妨碍 SSHd 的身份验证。正如红帽公司详细说明的那样,在适当的情况下,这种干扰可能会让攻击者破解 SSHd 身份验证,并在未经授权的情况下远程访问整个系统。

Jia Tan 在 libarchive 代码库中的首次提交。 函数 fprintf()代替 safe_fprintf()。现阶段的意图可能并非恶意,但不可忽视的是,这一改动有可能引入字符转义漏洞。来源:GitHubGitHub.



微软等公司已经发布了全面的指南,指导用户扫描系统中的漏洞实例并减轻其影响。CISA建议立即采取的行动是,受影响的开发人员和用户应将 XZ Utils 降级到未受攻击的版本,如 XZ Utils 5.4.6 Stable。

防止这种攻击类型的难度极大,尤其是在软件中使用开源组件时,因为供应链的安全性几乎没有保证和透明度。我们已经对付过软件供应链中的意外缺陷,但这种风险已经上升到包括恶意植入的安全漏洞,以破坏开源安全。

大多数开发人员都无法阻止这种性质的攻击,除非他们有强烈的安全意识、健康的安全知识和偏执狂。这几乎是一个需要威胁行为者心态的案例。不过,主要考虑因素应始终围绕内部控制源代码库(即非开源)。只有具备经过验证的相关安全技能的人才能访问这些资源库。AppSec 专业人员可能会考虑类似分支级安全控制的设置,只允许具备安全技能的开发人员向最终主分支提交更改。

志愿维护者是英雄,但维持安全软件需要(应该)全村人的努力

对于软件工程领域之外的人来说,一个由志愿者组成的充满活力的社区在自己的时间里煞费苦心地维护关键系统是一个难以理解的概念,但这正是开源开发的本质,而且对于保护供应链的安全专业人员来说,这仍然是一个存在重大风险的领域。

开源软件几乎是每个企业数字生态系统的重要组成部分,值得信赖的维护者(其中大多数人都是真诚行事的)在无私地追求技术进步和完整性的过程中确实表现出了英雄气概,但让他们孤立地提供服务却是荒谬的。在这个以 DevSecOps 为中心的时代,安全是一项共同的责任,每个开发人员都必须掌握相关知识和合适的工具,以应对工作中可能遇到的安全问题。在软件开发过程中,安全意识和实践技能是不可或缺的,而安全领导者则有责任影响企业层面的变革。

‍今天就在您的组织中 建立蓬勃发展的安全文化 Courses Secure Code Warrior 。

我们希望得到您的许可,向您发送有关我们产品和/或相关安全编码主题的信息。我们将始终以最谨慎的态度对待您的个人资料,绝不会将其出售给其他公司用于营销目的。

提交
要提交表格,请启用 "分析 "cookies。完成后,请随时再次禁用它们。