XZ恶意代码潜伏三年,差点引发核末日?后门投毒黑客身份成谜
原标题:XZ恶意代码潜伏三年,差点引发核末日?后门投毒黑客身份成谜
导读:
发行商宣布终焉之莉莉骑士寂夜销量已超过万份本作于年月发售在年月销量突破百万此外其续作终焉之玛格诺利亚现已以抢先体验的形式在平台推出新智元报道编辑好困新智元导读这个周末开源软件后...
发行商BinaryHazeInteractive宣布,《终焉之莉莉:骑士寂夜》销量已超过140万份。本作于2021年6月发售,在2023年2月销量突破百万。此外,其续作《终焉之玛格诺利亚:BloomintheMist》现已以抢先体验的形式在PC平台推出。
新智元报道
编辑:好困 Aeneas
【新智元导读】这个周末,开源软件xz后门事件,直接引发了安全界地震!一段恶意代码被悄悄植入了,险些波及各大Linux系统。好在,或许是因为攻击者疏忽了,目前并未造成严重后果。但如果后门没被及时发现 ,结果将是灾难性的……
整个周末,开源软件xz被植入后门事件,引发了安全界的轩然大波。
研究人员惊恐地发现,在包括Red Hat和Debian在内的多个广泛使用的Linux版本中,一款压缩工具被悄悄植入了恶意代码!
微软的安全研究员Andres Freund首次报告了这件事。
他发现,在这款名为xz Utils的工具的5.6.0和5.6.1版本中,都含有恶意代码。
而且,这段恶意代码极其复杂难解。
扒着扒着人们发现,这段代码是由一位名为Jia Tan的用户(JiaT75),通过四次代码变更(也即在GitHub上「提交」)的方式,植入到了Tukaani项目中。
这样,攻击者即使没有有效账号,也可以直接从SSHD访问系统了。
(SSHD是一个关键的二进制文件,负责SSH连接的工作。)
目前,GitHub已经禁用XZ Utils代码库,且还未收到漏洞被利用的报告
好在,这个后门已经及时被发现了。目前GitHub已经以违反服务条款为由,禁用了Tukaani项目维护的XZ Utils代码库。
然而可怕的是,如果这个后门的漏洞很巧妙,技术很高超,那么xz被广泛引入各Linux发行版后,这些Linux系统就会轻易被入侵!
这件事情可能导致的可怕后果,让安全社区对此掀起了经久不息的讨论。
一场灾难被避免了
好在证据显示,这些软件包只存在于Fedora 41和Fedora Rawhide中,并不影响Red Hat Enterprise Linux (RHEL)、Debian Stable、Amazon Linux以及SUSE Linux Enterprise和Leap等主流Linux版本。
但Red Hat和Debian已经报告称,最近发布的测试版中的确使用了这些被植入后门的版本,特别是在Fedora Rawhide和Debian的测试、不稳定及实验版本中。
同样,Arch Linux的一个稳定版本也受到了影响,不过,该版本也并未应用于实际生产系统中。
另外还有一些读者报告称,macOS的HomeBrew包管理器中包含的多个应用,都依赖于被植入后门的5.6.1版本xz Utils。目前,HomeBrew已经将该工具回滚至5.4.6版本。
安全公司Analygence的高级漏洞分析师Will Dormann表示,「这个问题实际上并没有对现实世界造成影响」。
但这主要是因为恶意行为者疏忽了,导致问题被发现的时机很早。就如同上文所提,如果后门没被及时发现,后果将是灾难性的。
Jia Tan是谁?
既然事情解决了,那么问题的焦点就集中在了——Jia Tan究竟是谁?
这位Jia Tan,是xz Utils项目的两位主要开发者之一,对该项目贡献良多。
Freund其报告中指出,「考虑到这几周内的活动情况,这位提交者要么是直接涉及,要么其系统遭受了严重的安全威胁。」
不幸的是,种种迹象表明,后一种可能性似乎并不大。
所以,这次xz被植入后门事件,很可能就是Jia Tan的主观恶意行为。
上周四,有人冒用了这位开发者的名字,在Ubuntu的开发者社区中请求将含后门的5.6.1版本纳入正式发布,理由是它修复了一个导致Valgrind工具出错的问题。
还有人发现,近几周这位开发者也向他们提出了类似的请求,希望在Fedora 40的测试版本中使用这个带有后门的工具版本。
「我们甚至还帮助他解决了Valgrind的问题(而现在看来,这个问题正是由他加入的后门引起的),」Ubuntu的维护人员说。
「他已经在xz项目中工作了两年,添加了各种各样的测试文件,鉴于这种复杂的操作,我们对xz的早期版本也持怀疑态度,直到后来,它们被证明是安全的。」
后门技术分析
简单来说,CVE-2024-3094引入的这个后门,是为了在受害者的OpenSSH服务器(SSHD)中注入恶意代码,从而让远程攻击者(持有特定私钥)能够通过SSH发送任意代码,并在认证步骤之前执行,进而有效控制受害者的整台机器。
尽管具体的内容仍在分析当中,但初步分析表明,它的设计相当复杂:
后门代码被注入到OpenSSH服务器(sshd进程),因为liblzma(含有恶意代码)是某些OpenSSH版本的依赖项。
后门劫持了RSA_public_decrypt函数,这个函数原本用于验证RSA签名。
恶意代码会检查RSA结构中传入的公共模数(「N」值),这个模数完全受到攻击者控制。
恶意代码使用硬编码的密钥(采用ChaCha20对称加密算法)对「N」值进行解密。
解密后的数据通过Ed448椭圆曲线签名算法进行有效性验证。由于这是一种非对称签名算法,后门只包含了公钥,这意味着只有攻击者能够为后门生成有效载荷。此外,这个签名与主机的公钥绑定,因此一个主机上的有效签名不能在其他主机上使用。
如果数据有效,该有效载荷将以shell命令的形式被执行。
如果数据无效(有效载荷格式不正确或签名无效),则会透明地恢复到RSA_public_decrypt的原始实现。这意味着,除了攻击者之外,是无法通过网络发现易受攻击的机器的。
「卧薪尝胆」三年
这次最令人印象深刻的,是攻击者超乎寻常的耐心和决心。
攻击者花费了两年多的时间,通过参与各种开源软件项目并提交代码,逐步建立起作为一个可信任维护者的形象,以此来避免被发现。
2021年,一个名为Jia Tan(GitHub用户名:JiaT75)的用户创建了GitHub账户,并开始为多个项目做出贡献。
在那一年,Jia Tan共提交了546次代码,其中对libarchive项目的一次提交尤其引起了人们的关注。
2022年2月6日,Jia Tan在XZ项目中做出了他的第一次正式提交,这次提交增加了对LZMA和LZMA2编码器的参数验证功能。
2023年6月27日至28日,Jia Tan对XZ Utils项目进行了一系列关键的更改,从而为后续的攻击做好了准备。
特别是,项目中的一个文件crc64_fast.c,新增了对一种名为ifunc的技术的支持。
根据安全研究员Andres Freund的分析,引入的这种ifunc技术可能是潜在后门功能的一部分,显示了攻击者可能利用的一种手段。
此外,值得注意的是,这个重要更新是由项目的原始维护人Lasse Collin引入的,并且他特别提到了另一位贡献者Hans Jansen对这一更新的贡献。
2023年7月8日,JiaT75在oss-fuzz项目中提交了一个请求,该项目负责对XZ等多个开源软件项目进行自动错误检测。这个请求实际上关闭了一种特定的错误检测方式,从而防止oss-fuzz发现XZ项目中潜藏的恶意代码。
2024年2月15日,JiaT75通过修改XZ项目的配置文件,加入了一个规则来忽略特定的脚本文件build-to-host.m4。
很快,这个脚本就被包含在了项目的正式发布版本中——它会在构建过程中执行,并植入一段负责在受害者电脑上安装后门的恶意代码。
2024年2月23日,JiaT75在XZ项目的测试文件夹中加入了两个含有隐藏后门的测试文件。
2024年2月24日,JiaT75发布了包含恶意脚本文件的新版本5.6.0,也就是说任何使用了这个版本及以后版本的XZ都存在安全风险。
2024年2月27日,这个带有安全隐患的版本被Fedora采纳。
2024年3月9日,JiaT75更新了后门程序,发布了版本5.6.1,Fedora同样更新了这个版本。
2024年3月29日,安全研究员Andres Freund在oss-security邮件列表上公布了他对XZ项目中发现的恶意行为的详细分析。
还有更多受害者
虽然恶意代码仅在XZ项目中被检测到,但攻击者账户的其他代码贡献目前也在调查中。
截至今日,一些项目已经被发现添加了可疑代码:
libarchive
2021年,JiaT75向libarchive代码库提交了一个名为「在使用bsdtar解压时添加错误提示文本」的合并请求,乍看之下似乎没什么问题。
但仔细一看,这个合并请求中的代码把原本安全的函数safe_fprintf()换成了更危险的fprintf()函数,这一改动可能会导致字符逃逸的安全漏洞。
oss-fuzz
2023年初,JiaT75把XZ项目在Google的oss-fuzz工具上注册的主邮箱改为了他个人的Gmail邮箱。
这一行为似乎暗示,他们想要第一时间接收到XZ项目中发现的漏洞报告,以此来及时知晓自己的恶意操作被揭露的情况。
2023年末,他们提交了一个新的合并请求(Pull Request),目的是在XZ项目的fuzzer配置中禁用「间接函数支持(Indirect function support)」。
这一操作似乎可以防止被fuzzer探测到,从而为在XZ项目中植入的后门做好铺垫。
参考资料:
https://arstechnica.com/security/2024/03/backdoor-found-in-widely-used-linux-utility-breaks-encrypted-ssh-connections/
https://jfrog.com/blog/xz-backdoor-attack-cve-2024-3094-all-you-need-to-know/
https://mastodon.social/@AndresFreundTec/112180083704606941
- 版权所属:王牌阁
- 本文地址:http://line.uexe.cn/14765.html
- 版权声明:原创文章,转载时必须以链接形式注明原始出处及本声明。