XZ Utils 后门 — 你需要了解的一切以及你可以做什么

2024-08-24 03:44
文章标签 需要 了解 utils 后门 xz

本文主要是介绍XZ Utils 后门 — 你需要了解的一切以及你可以做什么,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景故事

XZ Utils 及其底层库 liblzma 是实现 lzma 压缩和解压缩的开源项目。它们包含在许多 Linux 发行版中,开箱即用,深受开发人员欢迎,并在整个 Linux 生态系统中得到广泛使用。

大约两年前,一位名叫 Jia Tan 的开发人员加入了该项目,并开始为各种错误修复或改进打开拉取请求。到目前为止,没有什么异常;这就是开源世界的运作方式。最终,在建立信任和信誉后,Jia Tan 开始获得存储库的权限 - 首先是提交权限,最终是发布管理员权限。

似乎为了获得这些权限,Jia Tan 使用了一种有趣的社会工程学形式:他们使用虚假账户发送大量功能请求和有关错误的投诉,以向原始维护者施压,最终导致需要在存储库中添加另一个维护者。

在为代码贡献了大约两年后,2023 年,Jia Tan 对 XZ 进行了一些更改,这些更改包含在 5.6.0 版本中。这些更改中包括一个复杂的后门。

后门

该后门相当复杂。首先,你不会在 xz GitHub 存储库(目前已被禁用,但这不是重点)中找到它。似乎是为了避免被发现,恶意维护者没有将后门的部分内容推送到公共 git 存储库,而是仅将其包含在源代码 tarball 版本中。这导致后门的部分内容保持相对隐蔽,但仍在依赖项目的构建过程中使用。

该后门由多个提交引入的部分组成:

  • 在构建过程中使用 IFUNC,恶意软件会利用该 IFUNC 来劫持符号解析函数
  • 包括隐藏在测试文件中的模糊共享对象
  • 在库的构建过程中运行一组脚本,提取共享对象(不包含在存储库中,仅在发布中,但已添加到.gitignore)

这篇关于XZ Utils 后门 — 你需要了解的一切以及你可以做什么的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1101358

相关文章

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

PHP: 深入了解一致性哈希

前言 随着memcache、redis以及其它一些内存K/V数据库的流行,一致性哈希也越来越被开发者所了解。因为这些内存K/V数据库大多不提供分布式支持(本文以redis为例),所以如果要提供多台redis server来提供服务的话,就需要解决如何将数据分散到redis server,并且在增减redis server时如何最大化的不令数据重新分布,这将是本文讨论的范畴。 取模算法 取模运

Weex入门教程之1,了解Weex

【资料合集】Weex Conf回顾集锦:讲义PDF+活动视频! PDF分享:链接:http://pan.baidu.com/s/1hr8RniG 密码:fa3j 官方教程:https://weex-project.io/cn/v-0.10/guide/index.html 用意 主要是介绍Weex,并未涉及开发方面,好让我们开始开发之前充分地了解Weex到底是个什么。 以下描述主要摘取于

Java了解相对较多!

我是对Java了解相对较多,而对C#则是因工作需要才去看了一下,C#跟Java在语法上非常相似,而最初让我比较困惑的就是委托、事件部分,相信大多数初学者也有类似的困惑。经过跟Java的对比学习,发现这其实跟Java的监听、事件是等同的,只是表述上不同罢了。   委托+事件是观察者模式的一个典型例子,所谓的委托其实就是观察者,它会关心某种事件,一旦这种事件被触发,这个观察者就会行动。   下

Vue2电商项目(二) Home模块的开发;(还需要补充js节流和防抖的回顾链接)

文章目录 一、Home模块拆分1. 三级联动组件TypeNav2. 其余组件 二、发送请求的准备工作1. axios的二次封装2. 统一管理接口API----跨域3. nprogress进度条 三、 vuex模块开发四、TypeNav三级联动组件开发1. 动态展示三级联动数据2. 三级联动 动态背景(1)、方式一:CSS样式(2)、方式二:JS 3. 控制二三级数据隐藏与显示--绑定styl

使用WebP解决网站加载速度问题,这些细节你需要了解

说到网页的图片格式,大家最常想到的可能是JPEG、PNG,毕竟这些老牌格式陪伴我们这么多年。然而,近几年,有一个格式悄悄崭露头角,那就是WebP。很多人可能听说过,但到底它好在哪?你的网站或者项目是不是也应该用WebP呢?别着急,今天咱们就来好好聊聊WebP这个图片格式的前世今生,以及它值不值得你花时间去用。 为什么会有WebP? 你有没有遇到过这样的情况?网页加载特别慢,尤其是那

初步了解VTK装配体

VTK还不太了解,根据资料, vtk.vtkAssembly 是 VTK库中的一个重要类,允许通过将多个vtkActor对象组合在一起来创建复杂的3D模型。 import vtkimport mathfrom vtk.util.colors import *filenames = ["cylinder.stl","sphere.stl","torus.stl"]dt = 1.0renW

插件maven-search:Maven导入依赖时,使用插件maven-search拷贝需要的依赖的GAV

然后粘贴: <dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId>    <version>8.0.26</version> </dependency>