1 5 月, 2024

Eddiba Sports

从亚洲的Eddiba获取最新的亚洲新闻:重大新闻,专题报道,分析和特别报道以及来自亚洲大陆的音频和视频。

我们对几乎席卷全球的 xz Utils 尾门的了解

我们对几乎席卷全球的 xz Utils 尾门的了解
放大 / 恶意软件检测到具有二进制代码的 3D 数字概念的警告屏幕

盖蒂图片社

研究人员周五透露,发现了一个故意植入 xz Utils 中的后门,xz Utils 是一个开源数据压缩实用程序,几乎所有 Linux 和其他类 Unix 操作系统都可以使用。 这个项目背后的一个或多个人可能已经花费了数年的时间来研究它。 当一位目光敏锐的开发人员发现了一些可疑的情况时,他们可能非常接近看到后门更新集成到两个最大的 Linux 发行版 Debian 和 Red Hat 中。

软件和密码工程师 Filippo Valsorda 表示:“这可能是我们所见过的公开描述的执行得最好的供应链攻击,这是一个噩梦般的场景:恶意、高效且在广泛使用的库中获得授权。” 他说 这一努力非常接近成功。

研究人员花了整个周末收集证据。 这是迄今为止我们所知道的。

xz 实用程序是什么?

xz Utils 在 Linux 中几乎无处不在。 它在几乎所有类 Unix 操作系统(包括 Linux)上提供无损数据压缩。 xz Utils 提供了在所有类型的操作期间压缩和解压缩数据的重要功能。 xz Utils 还支持旧版 .lzma 格式,这使得该组件更加重要。

发生了什么?

Anders Freund 是一名开发 Microsoft PostgreSQL 产品的开发人员和工程师,他最近正在对 Debian 使用 SSH 遇到的性能问题进行故障排除,SSH 是通过 Internet 远程登录计算机最常用的协议。 具体来说,SSH 登录消耗了太多的 CPU 周期,并且导致计算机内存监控实用程序 valgrind 出现错误。

凭借纯粹的运气和 Freund 敏锐的眼光,他最终发现问题是对 xz Utils 进行更新的结果。 周五,弗罗因德在开源安全菜单上透露,这些更新是有人故意在压缩软件中植入后门的结果。

后门有什么作用?

xz Utils 版本 5.6.0 和 5.6.1 中已添加恶意代码,以修改程序在执行与 lzma 压缩或解压缩相关的操作时的行为方式。 当这些功能涉及SSH时,它们允许恶意代码以root权限执行。 该令牌允许任何拥有预定义加密密钥的人通过 SSH 登录后端系统。 从现在起,此人将拥有与任何授权管理员相同级别的控制权。

这个后门是怎么来的呢?

看来这个后门已经建设多年了。 2021 年,一个用户名为 JiaT575 的人创建了自己的帐户 第一个已知提交 到一个开源项目。 之后, 它改变 libarchive项目是可疑的,因为它用一个长期以来被认为不太安全的变量替换了Safe_fprint函数。 当时没有人注意到。

第二年,JiaT575 在 xz Utils 邮件列表上提交了一个补丁,几乎立即,一位名叫 Jigar Kumar 的看不见的参与者加入了讨论,并认为长期 xz Utils 维护者 Lasse Collin 并没有经常更新软件.经常或足够快。 库马尔在丹尼斯·因斯和其他几位此前未出现在名单上的人的支持下,游说科林引入一名额外的开发商来维护该项目。

2023年1月,JiaT75制造 第一个承诺 到 xz 实用程序。 在接下来的几个月里,JiaT75(化名Jia Tan)越来越多地参与xz Utils的事务。 例如,Tan 在微软的 oss-fuzz 项目中用自己的联系信息替换了柯林斯的联系信息,该项目扫描开源软件是否存在恶意迹象。 Tan 还要求 oss-fuzz 在测试期间禁用 ifunc 功能,这一更改使他无法检测到 Tan 很快将对 xz Utils 进行的恶意更改。

今年 2 月,Tan 发布了 xz Utils 5.6.0 和 5.6.1 版本的提交。 实施后门更新。 在接下来的几周内,Tan 或其他人恳求 Ubuntu、Red Hat 和 Debian 开发人员将更新集成到他们的操作系统中。 最终,这两个更新之一出现在后续版本中, 根据 防御保安公司:

您能详细说明一下这个后门的作用吗?

简而言之,它允许任何拥有正确私钥的人劫持 sshd(负责建立 SSH 连接的可执行文件),并从那里执行恶意命令。 尾门是通过五级装载机实现的,它使用一系列简单但巧妙的技术来隐藏自己。 它还提供了无需重大更改即可交付新有效负载的方法。

许多对更新进行逆向工程的人对后门有很多话要说。

由开发者 Sam James 介绍 本概述

该后门有几个组件。 高层次上:

  • 上游发布的 tarball 版本不包含与 GitHub 中相同的代码。 这在 C 项目中很常见,因此下游消费者不需要记住如何运行自动工具和自动会议。 tarball 中的 build-to-host.m4 版本与 GitHub 上的原始版本有很大不同。
  • git 存储库内的tests/ 文件夹中也有构建的测试文件。 这些文件位于以下提交中:
  • build-to-host.m4 调用的脚本会解压此恶意测试数据并使用它来修改构建过程。
  • IFUNC 是 glibc 中允许间接函数调用的机制,用于执行 OpenSSH 身份验证过程的运行时绑定/重定向。 IFUNC 是一种通常用于合法用途的工具,但在本例中,它被用于此攻击路径。

上游通常发布与 GitHub 中自动生成的 tarball 不同的 tarball。 在这些修改后的 tarball 中,包含 build-to-host.m4 的恶意版本,用于在构建过程中执行脚本。

该脚本(至少在版本 5.6.0 和 5.6.1 中)检查各种条件,例如设备架构。 以下是 build-to-host.m4 反编译的恶意脚本的摘录以及对其作用的解释:

if ! (echo "$build" | grep -Eq "^x86_64" > /dev/null 2>&1) && (echo "$build" | grep -Eq "linux-gnu$" > /dev/null 2>&1);then
  • 如果 amd64/x86_64 是构建目标
  • 如果目标使用名称 linux-gnu (主要检查 glibc 的使用)

它还检查使用的工具链:

if test "x$GCC" != 'xyes' > /dev/null 2>&1;then
exit 0
fi
if test "x$CC" != 'xgcc' > /dev/null 2>&1;then
exit 0
fi
LDv=$LD" -v"
if ! $LDv 2>&1 | grep -qs 'GNU ld' > /dev/null 2>&1;then
exit 0

如果您正在尝试构建 Debian 或 Red Hat 软件包:

if test -f "$srcdir/debian/rules" || test "x$RPM_ARCH" = "xx86_64";then

因此,此攻击似乎针对使用源自 Debian 或 Red Hat 的发行版运行 glibc 的 AMD64 系统。 其他系统此时可能容易受到攻击,但我们不知道。

在一次在线采访中,开发人员兼逆向工程师 HD Moore 证实了 Sam James 的怀疑,即后门针对的是 Debian 或 Red Hat 发行版。

READ  Stadia 去世后,副总裁 Phil Harrison 离开了 - Ars Technica

“这种攻击是偷偷摸摸的,因为如果您在 AMD64(Intel x86 64 位)上构建库并且您正在创建 Debian 或 RPM 软件包(而不是将其用于本地安装),那么它只会执行后门的最后一步。 ” ,“ 他写了。

他继续解释了研究人员的观察结果,他们花了整个周末共同分析了恶意更新:

在验证 SSH 公钥时,如果公钥与给定的指纹函数匹配,则在实际验证公钥之前,将使用预共享密钥对密钥内容进行解密。 然后解密的内容将直接传递到系统。

如果指纹不匹配或解密的内容与某种格式不匹配,则返回到正常的密钥验证,没有人知道。

后门非常隐蔽。 使用 glibc 的未知功能来绑定函数。 仅当受影响发行版之一上的 /usr/bin/sshd 进程加载后门 xz 库时,它才会运行。 可能还有很多其他的后门,但是大家所说的后门是用一个无方向性的函数来添加hook的。 有效负载在伪造的 xz 测试文件中加密,并有效地作为 shellcode 运行,更改 SSH RSA 密钥验证代码,以便神奇的公钥(在正常身份验证期间发送)将允许攻击者访问

他们的宏伟计划是:

1) 为发布球设置隐形后门,但不为源代码设置后门

2)使用Sockpuppet帐户说服各个Linux发行版拉取并打包最新版本

3)一旦这些发行版发布,它们就可以接管任何用户/公司系统/等

其他技术分析可从 多于 来自瓦尔索达的蓝天线, 研究员凯文·博蒙特弗罗因德周五透露

关于贾坦,我们还了解哪些?

现在,这还很少,特别是对于负责监督像 xz Utils 这样广泛且敏感的软件的人来说。 在过去的几年里,这位开发者的个性已经接触过数十种其他开源软件。 目前尚不清楚该用户名背后是否有真人,或者贾坦是否完全是捏造的个人。