漏洞详情
近期天翼安全科技有限公司与复旦大学系统软件与安全实验室联合进行软件供应链安全研究,监测到XZ Utils恶意后门,并对漏洞根因、影响范围处置建议进行深入分析,以帮助相关用户及时进行供应链安全治理。
1.1 XZ Utilѕ简介
XZ是一种通用的数据压缩格式,由Tukaani项目开发,其具有高压缩率和相对较快的解压速度,XZ Utilѕ压缩工具被广泛应用于各种Linux发行版本中。liblzma是XZ Utils依赖的一个压缩库,它提供了类似于zlib的编程接口,用于实现LZMA算法。
1.2 漏洞描述
2024年3月29日,开发人员Andres Freund在安全邮件中报告了他在调查SSH性能问题的过程中,意外发现了涉及XZ包的供应链攻击,进一步溯源发现SSH所使用的上游liblzma库已经被植入了后门代码。这些恶意代码可以修改liblzma库中的函数,从而导致与XZ库链接的任何软件都可能受到影响,攻击者可以拦截和修改与该库一起使用的数据,从而对系统造成潜在的安全威胁。
1.3 安全评分
影响范围
(10)Alpine edge。
漏洞成因分析
XZ官方仓库(https://github.com/tukaani-project/xz)目前已经不能使用了,可以从一些镜像仓库中找到XZ的仓库(http://download.openpkg.org/components/cache/xz/)。分析发现,攻击者可以在编译阶段注入恶意代码,这个过程主要包含以下三个步骤:
(3)提取还原后的xz字节流。
3.2 通过Bash脚本,提取和合并恶意数据
(2)接下来,执行一个由多个步骤组成的函数i,通过eval $i调用。这个函数主要是一系列的命令,用来处理数据流,要么提取数据的特定部分,要么跳过数据的特定部分。在数据处理的开始会跳过一些数据,比如忽略文件的前1024字节。这个过程反复进行,交替跳过和提取数据直到文件结束。如果文件的开始部分是由重复的字符构成,之后是一些二进制数据,使用这种方式就可以去除空白区域,合并包含实际数据的区域。
3.3 修改编译过程,插入恶意代码
good-large_compressed.lzma文件中的代码会被继续执行,其主要功能是检测环境是否合适,在合适的情况下(是Linux系统、有IFUNC、可以编译动态库、是x86_64等条件),会继续提取./tests/files/下包含特定签名的文件,这一过程脚本可以定位并执行隐藏于这些文件中的额外脚本或代码。这允许攻击者在不直接修改原始有效payload携带文件的情况下,增加新的恶意功能。攻击者需要替换./tests/files/下的中间过程文件(liblzma_la-crc64-fast.o或liblzma_la-crc32_fast.o),最后就可以将恶意代码插入到XZ Utils的库文件Liblzma中。
漏洞自检
4.1 命令行自检
(1)在Ubantu、macOS等系统中,可以通过执行“xz --version”命令检查系统的XZ版本:
Ubantu系统上还可以使用“which xz”命令进行自检:
(2)在Kali系统上,可以通过执行“apt-cache policy liblzma5” 命令检查是否安装了易受攻击的版本:
4.2 通过检查xz版本的自检脚本
1.#!/bin/bash
2.
3.# Check if xz-utils package is installed
4.if command -v xz &> /dev/null; then
5. echo "xz-utils package is installed."
6. # Get the version of xz-utils
7. xz_version=$(xz --version | grep "xz (XZ Utils)")
8. # Check if xz version is vulnerable (e.g., 5.6.0 or 5.6.1)
9. if [[ "$xz_version" =~ 5.6.[01] ]]; then
10. echo "System is vulnerable to CVE-2024-3094 (xz backdoor)."
11. else
12. echo "System is not vulnerable to CVE-2024-3094 (xz backdoor)."
13. fi
14.else
15. echo "xz-utils package is not installed. System is not vulnerable to CVE-2024-3094 (xz backdoor)."
16. exit 0
17.fi
4.3 通过尝试触发漏洞的自检脚本
Openwall上发布了一个自检脚本,它可以检查系统是否被该后门漏洞攻击。
1.#! /bin/bash
2.
3.set -eu
4.# find path to liblzma used by sshd
5.path="$(ldd $(which sshd) | grep liblzma | grep -o '/[^ ]*')"
6.
7.# does it even exist?
8.if [ "$path" == "" ]
9.then
10. echo probably not vulnerable
11. exit
12.fi
13.
14.# check for function signature
15.if hexdump -ve '1/1 "%.2x"' "$path" | grep -q f30f1efa554889f54c89ce5389fb81e7000000804883ec28488954241848894c2410
16.then
17. echo probably vulnerable
18.else
19. echo probably not vulnerable
fi
4.4 文件IOC
IOC(Indicator of Compromise,威胁指标)是一种指示系统可能已经遭受到攻击或已经被入侵的标志,它可以帮助安全人员识别系统中是否存在与已知恶意活动相关的文件或行为。目前掌握的IOC信息如下:
MD5 | 文件名 |
---|---|
4f0cf1d2a2d44b75079b3ea5ed28fe54 | x86_64-linux-gnu-liblzma.so.5.6.0 |
d26cefd934b33b174a795760fc79e6b5 | liblzma_la-crc64-fast-5.6.1.o |
d302c6cb2fa1c03c710fa5285651530f | usr/lib/liblzma.so.5 |
212ffa0b24bb7d749532425a46764433 | 00000001.liblzma_la-crc64-fast.o |
53d82bb511b71a5d4794cf2d8a2072c1 | liblzma.so.5.6.1 |
35028f4b5c6673d6f2e1a80f02944fb2 | bad-3-corrupt_lzma2.xz |
9b6c6e37b84614179a56d03da9585872 | bad-3-corrupt_lzma2.xz |
540c665dfcd4e5cfba5b72b4787fec4f | good-large_compressed.lzma |
89e11f41c5afcf6c641b19230dc5cdea | good-large_compressed.lzma |
处置建议
相关链接
(1)https://blog.51cto.com/u_15634773/10295772
(2)https://build.opensuse.org/request/show/1163302
(3)https://bugzilla.suse.com/show_bug.cgi?id=1222124
(5)https://github.com/amlweems/xzbot
(6)https://github.com/karcherm/xz-malware
(7)https://gynvael.coldwind.pl/?lang=en&id=782
(8)https://lists.debian.org/debian-security-announce/2024/msg00057.html
(9)https://lists.freebsd.org/archives/freebsd-security/2024-March/000248.html
(10)https://security-tracker.debian.org/tracker/CVE-2024-3094
(11)https://twitter.com/infosecb/status/1774595540233167206
(12)https://www.redhat.com/en/blog/urgent-security-alert-fedora-41-and-rawhide-users
(13)https://www.cisa.gov/news-events/alerts/2024/03/29/reported-supply-chain-compromise-affecting-xz-utils-data-compression-library-cve-2024-3094
(14)https://www.openwall.com/lists/oss-security/2024/03/29/4
(15)https://www.darkreading.com/vulnerabilities-threats/are-you-affected-by-the-backdoor-in-xz-utils
(16)https://cn-sec.com/archives/2622058.html
(17)https://repology.org/project/xz/versions
(18)https://www.tenable.com/blog/frequently-asked-questions-cve-2024-3094-supply-chain-backdoor-in-xz-utils
(19)https://www.vicarius.io/vsociety/vulnerabilities/cve-2024-3094
(20)https://xeiaso.net/notes/2024/xz-vuln/
(21)https://www.theregister.com/2024/03/29/malicious_backdoor_xz/
点亮“在看”,你最好看
原文始发于微信公众号(中国电信SRC):【漏洞分析】XZ Utilѕ工具库恶意后门植入漏洞(CVE-2024-3094)漏洞分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论