专栏名称: 合天网安实验室
为广大信息安全爱好者提供有价值的文章推送服务!
目录
相关文章推荐
浙江大学  ·  校友可以用浙大版DeepSeek!智能体迭代更新 ·  21 小时前  
兰州大学萃英在线  ·  榜样力量 | ... ·  昨天  
四川大学本科招生  ·  高考倒计时100天 | ... ·  2 天前  
四川大学本科招生  ·  高考倒计时100天 | ... ·  2 天前  
浙江大学  ·  浙大人,毕业去哪儿了? ·  3 天前  
51好读  ›  专栏  ›  合天网安实验室

liblzma/xz被植入后门,过程堪比谍战片!

合天网安实验室  · 公众号  ·  · 2024-03-30 18:15

正文

事件概述

xz 是一种几乎存在于所有 Linux 发行版中的通用数据压缩格式。从5.6.0版本开始,在 xz 的上游 tarball 包中被发现了恶意代码,通过一系列复杂的混淆手段, liblzma 的构建过程从伪装成测试文件的源代码中提取出预构建的目标文件,然后用它来修改 liblzma 代码中的特定函数。这导致生成了一个被修改过的 liblzma 库,任何链接此库的软件都可能使用它,从而拦截并修改与此库的数据交互。

3月29日,微软 PostgreSQL 开发人员 Andres Freund 在调试 SSH 性能问题时,在开源安全邮件列表中发帖称,他在 XZ 软件包中发现了一个涉及混淆恶意代码的供应链攻击。据 Freun d和 RedHat 称, Git XZ 中没有恶意代码,只有完整下载包中存在。但是这个代码的提交人两年前就加入了项目维护,暂时不能确定之前的版本有没有问题。

xz 5.6.0 5.6.1 版本库中存在的恶意注入只包含在 tarball 下载包中。 Git 发行版中缺少触发恶意代码构建的 M4 宏。注入期间构建时使用的第二阶段工件存在于 Git 存储库中,以防存在恶意的 M4 宏。如果不合并到构建中,第二阶段文件是无害的。在发现者的演示中,发现它干扰了 OpenSSH 守护进程。虽然 OpenSSH 没有直接链接到 liblzma 库,但它以一种使其暴露于恶意软件的方式与 systemd 通信,而 systemd 链接到了 liblzma 。恶意构建会通过 systemd 干扰 sshd 的认证。在一定的情况下,这种干扰有可能使恶意行为体破坏 ssh 认证,并远程未经授权访问整个系统。

截至日前(3月30日),暂未观察到利用此后门代码的行为。

image-20240330165828337

影响的系统范围

xz liblzma 5.6.0~5.6.1 版本,可能包括的发行版 / 包管理系统有:

  • • Fedora 41 / Fedora Rawhide

  • • Debian Sid

  • • Alpine Edge

  • • x64 架构的 homebrew

  • • 滚动更新的发行版,包括 Arch Linux / OpenSUSE Tumbleweed

如果你的系统使用 systemd 启动 OpenSSH 服务,你的 SSH 认证过程可能被攻击。非 x86-64 架构的系统不受影响。

if ! (echo "$build" | grep -Eq "^x86_64" > /dev/null 2>&1) && (echo "$build" | grep -Eq "linux-gnu$" > /dev/null 2>&1);then

你可以在命令行输入 xz --version 来检查 xz 版本,如果输出为 5.6.0 5.6.1 ,说明你的 xz-utils 已被植入后门。

$ xz --version
xz (XZ Utils) 5.6.1
liblzma 5.6.1

目前迹象表明,后门作者有选择性的针对 linux 发行版下手。但这个 liblzma 可不只 Linux 上用。比如目前流行的 iOS 越狱环境,大部分 tweak 包还是以 .deb 格式发行,比较新的版本就用到了 lzma 作为压缩。除此之外,近期有在 macOS 上使用 brew 安装过 xz 这个包也受影响,暂时不能证明有恶意行为:

image-20240330170102458

过程精彩如谍战片

这可能是最大胆的信息安全事件之一。“最大胆”表明这起事件在手法、规模、影响等方面都超出了我们以往对于攻击的认知,可能是一个全新的安全威胁模型。

"最大胆"一词还隐含着对攻击者心理和技术实力的一种评价。做出如此"大胆"之举的,肯定是心理素质极强、技术水平极高、准备极其缜密的黑客团伙,绝非一般的脚本小子可以企及。

1、一个不知名团伙注意到 OpenSSH 依赖一个名为 liblzma(xz) 的小众开源压缩库。

2、他们虚构了一个名为"Jia Tan"的开发者身份,从2021年10月开始为 xz 项目积极做贡献,逐渐获得信任,并最终接管了维护工作。

3、2024年2月,"Jia"在构建脚本中引入了一个复杂隐蔽的后门,该后门似乎针对 OpenSSH 的身份验证前加密功能,可能添加了"主密钥"让攻击者随意访问受影响服务器。

4、 "Jia"联系 Linux 发行版维护者,试图让带后门的 xz 库被打包分发给用户,直到微软员工 Andres Freund 因调查 SSH 延迟问题发现了此事。

这可能是一次有外国政府支持的职业行动,而非业余爱好者所为。更根本的是, xz 后门不是一个技术问题,可能也不能单靠技术来解决。归根结底,这是一个反情报挑战——完全属于政府和少数拥有生态系统范围监控能力的商业实体的能力范畴。这尤其包括谷歌和微软。事实上,这里有一个有趣的想法:也许他们已经知道了很长一段时间。我们能分辨出这是为了掩盖"手段和来源"而精心设计的披露,还是偶然发现的吗?

检测和解决方法

解决方法:

  • • 降级到5.6.0以下版本

  • • 更新到官方最新版5.6.4

检测脚本:

#! /bin/bash

set -eu

# find path to liblzma used by sshd
path="$(ldd $(which sshd) | grep liblzma | grep -o '/[^ ]*')"

# does it even exist?
if [ "$path" == "" ]
then
    echo probably not vulnerable
    exit
fi

# check for function signature
if hexdump -ve '1/1 "%.2x"' "$path" | grep -q f30f1efa554889f54c89ce5389fb81e7000000804883ec28488954241848894c2410
then
    echo probably vulnerable
else
    echo probably not vulnerable
fi






请到「今天看啥」查看全文