由于对 xz Utils 进行了恶意更新, 最近发现的后门事件几乎感染了整个世界。此次影响可能会造成与 2020 年SolarWinds 攻击类似的破坏,那次攻击让俄罗斯黑客得以侵入许多美国政府机构的核心。
据 Ars Technica 报道,这次攻击“非常接近”成功,软件和密码工程师 Filippo Valsorda 将其描述为迄今为止观察到的“执行最彻底的供应链攻击”。
互联网上许多众包代码很容易受到恶意行为者和民族国家的渗透。《经济学人》报道称,开源软件是“互联网的核心”,主要由少数志愿者维护,这对企业和政府来说都是一个重大的安全风险。开源软件因其成本低廉而广泛部署在数字基础设施中。该基础设施嵌入整个数字世界,正受到各种敌对民族国家的攻击。
2024 年 3 月 29 日,微软软件工程师 Andres Freund 发现“Linux 操作系统软件中隐藏着一个后门”。这个后门来自 xz Utils 的源代码,该源代码已被篡改,允许未经授权访问使用受影响版本的系统。被泄露的源代码是 Linux 系统中的xz Utils 开源数据压缩实用程序。《纽约时报》写道,这位工程师阻止了一次“可能具有历史意义的网络攻击”。
由于 xz Utils 是开源软件,任何人都可以看到其公开的代码以及当时所做的更改。
一位名叫贾坦 (Jia Tan) 的开发人员开始为该项目贡献有用的代码,并逐渐赢得信任。然后随着时间的推移,这个坏人偷运了恶意软件。被怀疑是此次攻击幕后黑手的俄罗斯对外情报机构 SVR 正是 SolarWinds 攻击背后的情报机构。
开放源代码安全基金会 (OSSF) 警告称,xz Utils 攻击可能并非孤立事件。有人发现不法分子使用类似的社会工程手段试图接管其他项目,例如OpenJS Foundation的 JavaScript 项目。
开源软件专家 Ryan Ware 在接受 Frontsight 媒体采访时解释了其中存在的巨大风险:
“我们的数字基础设施非常脆弱,”Ware 表示。“迄今为止,已发布的 CVE 有 177,914 个。为了便于讨论,我们假设开源代码有 10 亿行代码(实际数量要多得多,但我们以后再讨论这个问题)。为了便于讨论,我们假设这些 CVE 中有一半是开源代码(90,000 是一个不错的整数)。这意味着对于开源代码,我们每 11,111 行代码中只发现一个漏洞,”他说。
“公司会不惜一切代价让代码变得如此干净,以至于每 11,000 行代码中只有一个漏洞,”“此外,虽然目前编写的开源软件数量有所下降,但编写的代码数量仍处于历史最高水平,”Ware 解释道。他描述了这样一种情况,即每发现一个漏洞,还需要再发现 5-10 个漏洞,才能使代码变得完好无损。
XZ Utils 的险情清楚地提醒了我们众包软件的脆弱性以及对故障安全安装的迫切需要,正如 Ware 进一步解释的那样:
“我们绝对知道民族国家希望破坏软件的安全性。你需要做的就是查看现有的APT列表。”Ware 进一步解释说,“从历史上看,这些威胁行为者一直专注于使用零日漏洞来实现他们的目标。”然而,他还指出,“在操作上,这些威胁行为者不会只是找到零日漏洞然后立即利用它。他们会囤积零日漏洞(通过自己的研究发现或购买),然后在需要满足其操作目标的漏洞时利用它们。”
与此同时,Ware 指出,漏洞存在与软件开发人员修补系统之间的时间间隔很长。随着修复延迟的持续,威胁行为者可以长期囤积漏洞。
长期以来,民族国家行为者操纵软件的行为一直不为人所知。“整个 xz 事件为了解其中的一些情况提供了一点窗口,包括展示了这些民族国家可以利用哪些资源,”Ware 说。然而,xz 事件并不是唯一一个证明这种复杂的社会工程手段已被尝试的证据。“老实说,我担心的是民族国家在开源软件和商业软件领域做了什么,而我们现在还不知道,”Ryan 强调道。
当被问及 SolarWinds 事件是否已从最近的记忆中淡去时,在 Ware 看来,这取决于你问谁:
“我认为 SolarWinds 的教训并没有被政府官员遗忘。OpenSSF(如 SLSA 和 GUAC)中围绕软件供应链安全开展的大部分工作都是因为 CISA 希望看到该领域的解决方案,”他说。
“我认为它肯定已经从公众意识中消失了,但与此同时,我不知道它在多大程度上渗透到了公众意识中,”韦尔补充道,强调了一种对普通业余软件开发人员有影响的观点,他们往往是“公众意识”的一员。