遭到挫败的 XZ Utils 供应链攻击酝酿多年,线索表明APT组织是插入恶意代码的幕后黑手。
软件供应链攻击是一种日益常见的黑客技术,它将恶意代码隐藏在广泛使用的合法程序中,可以采取多种形式。黑客可以渗透更新服务器来传播恶意软件,甚至可以闯入开发软件的网络,从源头破坏软件。或者,对于一位名叫贾坦(Jia Tan)的特别阴险的软件供应链攻击者来说,他们可以花两年的时间礼貌而热情地自愿提供帮助。
上周末,网络安全和开源软件社区震惊于这样的消息:XZ Utils的一个相对较新的实验版本(一种集成到许多流行的 Linux 发行版中的压缩实用程序)包含一个后门,可以让黑客拥有一个特定的私钥连接到后门系统并以管理员身份运行自己的命令。
只有一位 Microsoft 工程师 Andres Freund 进行的一些偶然的侦探工作——他发现了 Linux 变体 Debian 版本中远程连接协议 SSH 的运行方式出现了奇怪的延迟——在间谍伎俩最终被曝光之前,他发现了这一点,威胁全球数百万个系统。
现在已经很清楚,XZ Utils 后门的插入者不是别人,正是 XZ Utils 的首席开源管理员,一位名叫 Jia Tan 的开发人员。后门被发现后,科技界仍然存在一个谜团:Jia Tan 是谁,他或她——或者很可能——真正为谁工作?
Jia Tan 利用开源软件的众包方法进行编码,任何人都可以对 GitHub 等代码存储库上的程序提出更改建议,这些更改在集成到软件中之前会由其他编码人员进行审核。
回顾 Jia Tan在开源编程世界中的记录历史可以发现,他们首次出现于 2021 年 11 月,使用 GitHub 用户名 JiaT75,然后使用 Jia Tan(有时称为 Jia Cheong Tan)这个名字为其他开源项目做出了超过 1 年的贡献,开始提交对 XZ Utils 的更改之前的一年。
到 2023 年 1 月,Jia Tan 的代码已集成到 XZ Utils 中。在接下来的一年里,他们从最初的维护者 Lasse Collin 手中接管该项目,这一变化部分是由少数用户向 Collin 发送的抱怨更新缓慢的电子邮件推动的。
(这些用户是否是不知情的同谋,或者实际上与 Jia Tan 合作说服 Collin 放弃控制权,目前还不得而知。没有一个用户回复《连线》的评论请求。)最后, Jia Tan 将他们的秘密后门添加到了 XZ 的一个版本中在今年二月实施。
这种非人性的超级有耐心的做法,加上后门本身的技术特点和复杂性,让网络安全界的许多人相信,Jia Tan 是由国家资助的黑客操纵的,而且是非常优秀的黑客。“这种持续多年的行动非常狡猾,植入的后门具有令人难以置信的欺骗性。”
去年开始担任俄罗斯网络安全公司卡巴斯基高级研究员兼全球研究和分析团队负责人的 Costin Raiu 说。“我想说,这是一个由国家支持的组织,有着长期目标,有能力投资于开源项目的多年渗透。”
至于哪个国家, Raiu 说,现在确定真正的罪魁祸首还为时过早。“有一点是肯定清楚的。”他补充道。“这比我之前见过的所有软件供应链攻击都更加狡猾。”
一个非常私密、非常忙碌的程序员
自上周五 XZ Utils 后门曝光以来,围绕 Jia Tan 的审查不断加强,研究人员指出,该角色具有非常良好的操作安全性。
独立安全记者布莱恩·克雷布斯 (Brian Krebs)写道,即使在搜索了被破坏的数据库之后,他也可以在 Jia Tan 发送给其他开源贡献者的消息之外找到 Jia Tan 电子邮件地址的“零痕迹”。Jia Tan 似乎还通过具有新加坡 IP 地址的 VPN路由他们的所有通信。
SANS 的讲师威尔·托马斯 (Will Thomas) 表示,缺乏与 Jia Tan 相关的任何其他在线存在,表明该帐户是一个“单一目的的虚构角色”,并表明开发后门需要多么复杂、耐心和思考。
自从后门被发现后,Jia Tan 的角色就消失了,《连线》杂志发送到与其关联的 Gmail 地址的电子邮件也没有得到回复。公司发言人告诉《连线》杂志,Jia Tan 的 GitHub 帐户已被暂停。
事实上,Jia Tan 留下的唯一真正的足迹似乎是他们对开源开发社区的贡献,他们是一个多产的贡献者:令人不安的是,Jia Tan 的第一个代码更改是“libarchive”压缩库,这是另一个非常广泛的代码库,使用开源组件。
开发人员 Evan Boehs 在其详细的 Jia Tan 时间表中指出,第一个更改将一个功能替换为不太安全的替代方案,可能会尝试另一次恶意代码更改,尽管问题已得到解决。
网络安全公司 NetRise 的联合创始人迈克尔·斯科特 (Michael Scott) 表示,2021 年至 2024 年 2 月期间,Jia Tan 总共对至少 7 个项目进行了 6,000 次代码更改,他曾在美国网络司令部下属的海军陆战队网络战小组工作。Scott 说,确定这些变化的所有分支影响几乎是不可能的。
由于这些更改(称为“提交”)通常会通过称为“压缩提交”的过程分批合入,因此并不总是很清楚 Jia Tan 进行了哪些具体更改。追踪像 libarchive 这样的库的多个版本中的哪个版本最终导致软件增加了另一层混淆的难度。“拉动这条线索并试图找出所有这些东西的最终结果将会有点混乱。”Scott 说。
Scott 指出,在这段时间里,Jia Tan 也一直在与其他贡献者发送电子邮件,用一种“非常简洁、非常枯燥”的方式写作,但斯科特将其与 ChatGPT 的输出进行比较,语气并不不友好。“你们俩都干得很好,已经实现了这个功能。”Jia Tan 曾写道。
在另一处:“如果有机会,请告诉我你对这些补丁的想法:)”Jordi Mas 是一位为 XZ Utils 做出贡献的开发者,他通过电子邮件发送了 Jia Tan 的“反馈”,回想起来,该帐户转到了额外的级别来建立对角色的信任。
最终,Scott 认为,这三年的代码更改和礼貌的电子邮件很可能不是用来破坏多个软件项目的,而是建立了可信度的历史,为特别是 XZ Utils 以及未来可能的其他项目的破坏做好准备。“他只是从未走到这一步,因为我们很幸运,找到了他的东西。”Scott 说。“所有这一切已经被毁了,他将不得不回到原点。”
技术刻度和时区
前卡巴斯基首席研究员 Raiu 认为,尽管 Jia Tan 是一个个体,但他们多年的准备工作是一个组织良好、国家资助的黑客组织的标志。Jia Tan 添加的 XZ Utils 恶意代码的技术特征也是如此。Raiu 指出,乍一看,代码确实看起来像一个压缩工具。
“它是以一种非常具有颠覆性的方式写成的。”他说。Raiu 表示,这也是一个“被动”后门,因此它无法连接到可能有助于识别后门操作者的C2服务器。相反,它等待操作员通过 SSH 连接到目标计算机并使用私钥进行身份验证(私钥是由称为 ED448 的特别强大的加密函数生成的)。
Raiu 指出,后门的精心设计可能是美国黑客所为,但他认为这不太可能,因为美国通常不会破坏开源项目,如果这样做,国家安全局可能会使用抗量子密码功能,而 ED448 则没有。Raiu 表示,这使得非美国组织有供应链攻击的历史,例如 APT41、Lazarus Group和俄罗斯的 APT29。
乍一看,Jia Tan 确实看起来像亚洲人——或者说本来就是这样。Jia Tan 提交的时区是 UTC+8:这是中国的时区,距离朝鲜的时区只有一个小时。然而,两位研究人员Rhea Karty 和 Simon Henniger 的分析表明,Jia Tan 可能只是在每次提交之前将计算机的时区更改为 UTC+8。事实上,一些提交是通过将计算机设置为东欧或中东时区进行的,也许是当 Jia Tan 忘记进行更改时。
分别就读于达特茅斯学院和慕尼黑工业大学的学生卡蒂和亨尼格表示:“另一个表明他们不是来自中国的迹象是,他们在中国的重要节日期间工作。”他们指出,Jia Tan 也没有在圣诞节或新年提交新代码。开发商 Boehs 补充说,对于东欧或中东时区,大部分工作从上午 9 点开始,下午 5 点结束。“提交的时间范围表明这不是他们在工作之外完成的项目。”博斯说。
前美国国家安全局黑客、网络安全公司 Immunity 创始人戴夫·艾特尔 (Dave Aitel) 认为,尽管伊朗和以色列等国家仍有可能,但大多数线索都指向俄罗斯,特别是俄罗斯的 APT29 黑客组织。
Aitel 指出,APT29(人们普遍认为它为俄罗斯外国情报机构工作)以技术谨慎而闻名,而其他黑客组织很少有这样的表现。APT29 还实施了Solar Winds 攻击,这可能是历史上协调最巧妙、最有效的软件供应链攻击。相比之下,该操作与 XZ Utils 后门的风格相匹配,远胜于 APT41 或 Lazarus 的更原始的供应链攻击。
“很可能是其他人。”Aitel 说。“但我的意思是,如果你正在寻找地球上最复杂的供应链攻击,那将是我们 SVR (俄罗斯外国情报机构)的好朋友。”
安全研究人员至少一致认为 Jia Tan 不太可能是一个真人,甚至不太可能是一个单独工作的人。相反,很明显,该角色是一个组织良好的新组织的新策略的在线体现——这一策略几乎奏效了。这意味着我们应该期待 Jia Tan 以其他名字回归:看似礼貌而热情的开源项目贡献者,在代码提交中隐藏政府的秘密意图。
本文于美国东部时间 2024 年 4 月 3 日中午 12:30 更新,以指出以色列或伊朗参与的可能性。