前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >紧急提醒!Xz/liblzma 被植入源码级后门

紧急提醒!Xz/liblzma 被植入源码级后门

作者头像
FB客服
发布2024-04-01 14:25:08
8370
发布2024-04-01 14:25:08
举报
文章被收录于专栏:FreeBuf

谁也没想到, Xz/liblzma会被植入后门程序,据说微软连夜加班处理本次后门事件,主流云厂商们也都在加急排查风险和安全修复。

3月29日,微软公司的开发人员Andres Freund在调查SSH性能问题时,发现了xz软件包中一个涉及混淆恶意代码的供应链攻击。进一步溯源发现SSH使用的上游liblzma库被植入了后门代码,恶意代码可能允许攻击者通过后门版本的SSH非授权获取系统的访问权限。恶意代码修改了liblzma代码中的函数,该代码是XZ Utils软件包的一部分,链接到 XZ 库的任何软件都可以使用此修改后的代码,并允许拦截和修改与该库一起使用的数据。

目前迹象表明,后门作者有选择性地针对 linux 发行版下手。但这个 liblzma 可不只Linux上用。比如目前流行的iOS越狱环境,大部分 tweak 包还是以 .deb 格式发行,比较新的版本就用到了 lzma 作为压缩。

后门事件回顾

xz是一种通用的数据压缩格式,几乎存在于每个Linux发行版中,无论是社区项目还是商业产品发行版。本质上,它有助于将大型文件格式压缩(然后解压缩)成较小、更易于管理的尺寸,以便通过文件传输共享。

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

xz 5.6.0和5.6.1版本库中存在的恶意注入只包含在tarball下载包中。Git发行版中缺少触发恶意代码构建的M4宏。注入期间构建时使用的第二阶段工件存在于Git存储库中,以防存在恶意的M4宏。如果不合并到构建中,第二阶段文件是无害的。在发现者的演示中,发现它干扰了OpenSSH守护进程。虽然OpenSSH没有直接链接到liblzma库,但它以一种使其暴露于恶意软件的方式与systemd通信,因为systemd链接到了liblzma。

恶意构建会通过systemd干扰sshd的认证。SSH是一种常用的协议,用于远程连接系统,而sshd是允许访问的服务。在适当的情况下,这种干扰有可能使恶意行为体破坏sshd认证,并远程未经授权访问整个系统。

后门漏洞信息

Red Hat 现正跟踪这一供应链安全问题,将其命名为 CVE-2024-3094,并将其严重性评分定为 10分,同时在 Fedora 40 测试版中恢复使用 5.4.x 版本的 XZ。

哪些版本受影响

目前已知XZ Utils版本5.6.0和5.6.1受到影响,恶意代码还不存在于XZ的Git发行版中,仅存在于完整的下载包中。可能包括的发行版 / 包管理系统有:

以下发行版确认受影响:

  • Fedora Rawhide https://www.redhat.com/en/blog/urgent-security-alert-fedora-41-and-rawhide-users Fedora Rawhide是Fedora Linux的开发版本。
  • Fedora 41 https://www.redhat.com/en/blog/urgent-security-alert-fedora-41-and-rawhide-users
  • Debian testing、unstable和 experimental版 5.5.1alpha-0.1到5.6.1-1
  • https://lists.debian.org/debian-security-announce/2024/msg00057.htm
  • lUbuntu 24.04 LTS
  • 目前受影响的库已经从Ubuntu 24.04 LTS预发布构建中移除。

以下Linux发行版确认不受影响:

  • Fedora Linux 40 https://www.redhat.com/en/blog/urgent-security-alert-fedora-41-and-rawhide-users RedHat建议用户降级到5.4版XZ作为预防措施。
  • 红帽企业版Linux(RHEL) https://www.redhat.com/en/blog/urgent-security-alert-fedora-41-and-rawhide-users 所有RHEL版本均不受影响。
  • Debian
  • https://lists.debian.org/debian-security-announce/2024/msg00057.html 所有Debian稳定版均未知受影响。

自检与缓解措施

用户可通过以下脚本进行检测:

代码语言:javascript
复制
#! /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

缓解措施

  1. 降级到5.6.0以下版本
  2. 更新到官方最新版5.6.4

攻击者潜伏了整整三年

整个后门故事非常精彩,攻击者为此整整潜伏了三年,只差一点点就可以往众多 Linux发行版的 sshd 注入后门,可用于绕过密钥验证,后果不堪设想。

省流概括:

1.攻击者 JiaT75 (Jia Tan) 于2021年注册了 GitHub 账号,之后积极参与xz项目的维护,并逐渐获取信任,获得了直接 commit 代码的权利。

2.JiaT75 在最近几个月的一次 commit 中,悄悄加入了 bad-3-corrupt lzma2.xz和good-large compressed.lzma 两个看起来人畜无害的测试用二进制数据,然而在编译脚本中,在特定条件下会从这两个文件中读取内容对编译结果进行修改,致使编译结果和公开的源代码不一致。

3.目前初步的研究显示,注入的代码会使用glibc的IFUNC 去 HookOpensSH的 RSA public decrypt 函数,致使攻击者可以通过构造特定的验证数据绕过 RSA 签名验证。(具体细节还在分析中)

4.只要是同时使用了 liblzma和 OpenSsH的程序就会受到影响,最直接的目标就是 sshd,使得攻击者可以构造特定请求,绕过密钥验证远程访问。

5.受影响的 xz-utils 包已经被并入 Debian testing 中进行测试,攻击者同时也在尝试并入 fedora 和 ubuntu。

6.幸运的是,注入的代码似乎存在某种 Bug,导致特定情况下 sshd 的 CPU占用飙升。被一位安全研究人员注意到了,顺藤摸瓜发现了这个阴谋并报告给 oss-security,致使此事败露。如果不是因为这个 Bug,那么这么后门有不低的概率被并入主流发行版的stable 版本,恐怕会是一件前所未有的重大安全事件。

另外从一些细节能看出来攻击者非常用心:

攻击者抢在 ubuntu beta freeze 的几天前才尝试让新版本并入,以期望减少在测试期间被发现的时间。

xz-utils 项目的原维护者 Lasse Colin(Larhzu),有着定期进行internetbreaks的习惯,而且最近正在进行,导致这些变动他并没有review的机会,即使到现在也没能联系上他本人。这可能也是攻击者选定xz-utils 项目的原因之一。

更多的细节还在被分析中,目前 GitHub 已经关停了整个 xz项目。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 缓解措施
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档