当前位置: 首页 > news >正文

开源项目生存现况:xz投毒事件引发的思考与GNU tar维护挑战

(首发地址:学习日记 https://www.learndiary.com/2024/04/xz-tar/)
嗨,大家好!我是来自淘宝网“学习日记小店”的 learndiary,专注于 Linux 服务领域。今天我要和大家谈谈近期备受瞩目的 XZ 供应链投毒事件,并借此引申到开源世界中小型基础软件项目的生存困境。本文基于“通义千问”归纳视频字幕生成文本修改。视频演示:【开源项目生存现况:xz投毒事件引发的思考与GNU tar维护挑战】 https://www.bilibili.com/video/BV1Nm411r76N/

开源项目生存现况:xz投毒事件引发的思考与GNU tar维护挑战

最近热议的焦点在于 JiaT75 这位开发者,在一个开源项目中潜伏长达三年,试图植入后门。这起事件引发了我对开源社区中小型基础项目如 xz 的生存状况的关注。Deepin Linux 社区论坛上的一个转贴(见参考链接1)揭示了 xz 项目的原唯一维护者 Lasse Collin 早已不堪重负,仅能应对修复已知bug,无力进行新功能开发。这种情况使得 JiaT75 能够险些成功地在其代码中注入恶意内容,而这与小软件项目因资源有限而面临的挑战紧密相关。

我自己也曾亲历过相似的开源项目困境,这次是针对 Linux 下常用的归档工具 GNU tar。我发现 GNU tar 当时无法正确恢复通过 chattr 设置的不可更改文件属性(见参考链接2)。当我向 tar 的邮件列表提问该功能是否存在时,得到了明确答复:目前 GNU tar 不具备恢复此类属性的功能,且短期内也没有将其纳入开发计划。尽管 tar 的维护者认可这是一个有价值的特性,但可能由于时间和精力有限,暂时无法着手实施。

此外,另一位程序员用户提交了另一个 tar 的补丁,但他也被告知维护者们正忙于其他事务,尚未对此补丁进行全面评估和整合。这些迹象表明,GNU tar 项目似乎也面临着与 xz 类似的维护难题。我分析是随着 Linux 使用人数的增长,对软件维护的需求增加,而小型基础软件的维护压力也随之增大,尤其是在缺少充足人力和长期专注维护的情况下。

回顾 OpenSSL 曾经爆发的“心脏出血”漏洞事件(参考链接3),我们可以看出开源社区在面对危机时展现出的自我修复能力和生命力。尽管 OpenSSL 曾面临严重的管理问题和资金短缺,但在事件曝光后不久,Linux 基金会迅速采取行动,通过成立核心基础设施联盟(CII)等方式筹集资金并加强关键开源项目的维护力度。这证明了即使在面临重大挫折时,开源模式依然能够凭借其透明性和广泛参与的优势找到解决问题的办法。

因此,我认为我们不应因这次 xz 供应链投毒事件而否定开源模式的价值。开源本质上倡导的“我为人人,人人为我”的理念有助于构建一个更加安全、公平和美好的信息社会,避免陷入互相伤害的恶性循环。同时,开源还能有效缩小数字鸿沟,削弱数字霸权的影响。

总结来说,尽管诸如 xz 和 GNU tar 这样的基础开源软件可能会遭遇维护困境,但只要我们坚定开源立场,积极寻求解决方案,一定能够改善它们的生存状态,确保开源世界健康有序的发展。让我们共同期待并努力营造一个更加繁荣、安全、公正的开源生态环境。再次感谢大家的关注,希望这些分享能引起更多人对开源项目可持续发展问题的重视。下次再见!

参考链接:

  1. 【转载】从 xz 后门事件看开源项目维护者和用户关系 https://bbs.deepin.org/post/270171
  2. Linux tar 保留文件特殊属性使用小结 https://www.learndiary.com/2024/03/gnu-tar/
  3. 开源软件和OpenSSL的真实故事到底是什么样的? https://www.geekpark.net/news/212283

相关文章:

开源项目生存现况:xz投毒事件引发的思考与GNU tar维护挑战

(首发地址:学习日记 https://www.learndiary.com/2024/04/xz-tar/) 嗨,大家好!我是来自淘宝网“学习日记小店”的 learndiary,专注于 Linux 服务领域。今天我要和大家谈谈近期备受瞩目的 XZ 供应链投毒事件…...

前端开发语言有哪些

随着互联网的迅猛发展,前端开发已经成为了一个炙手可热的职业。对于初学者来说,了解前端开发所使用的语言是非常重要的。那么,前端开发语言有哪些呢?本文将为您一一介绍。 一、HTML HTML(HyperText Markup Language&…...

速盾:cdn加速https额外收费吗?

CDN(内容分发网络)是一种通过在全球各地部署服务器来提供高速互联网内容传输的技术,它可以加速网站的访问速度,提高用户体验。而HTTPS(超文本传输安全协议)是一种通过加密技术保护网站数据传输安全的协议。…...

【蓝桥杯嵌入式】13届程序题刷题记录及反思

一、题目分析 考察内容: led按键(短按)PWM输出(PA1)串口接收lcd显示 根据PWM输出占空比调节,高频与低频切换 串口接收(指令解析)【中断接收】 2个显示界面 led灯闪烁定时器 二…...

C++类 单例模式

例子 请看如下的类和调用: 在您提供的代码片段中,CPathPlanMan 类使用了一个单例模式,这意味着这个类只需要一个实例,并且提供了全局访问点来获取这个实例。这通常用于控制对一个类实例的访问,尤其是在创建实例代价昂…...

prompt 工程案例

目录 prompt 工程是什么? 案例 vllm 推理加速框架 prompt 工程是什么? prompt:提示词,也就是我们使用网页版输入给大模型的内容就叫 prompt,那什么是 prompt 工程呢? 简单理解其实就是利用编写的 prom…...

燃气管网安全运行监测系统功能介绍

燃气管网,作为城市基础设施的重要组成部分,其安全运行直接关系到居民的生命财产安全和城市的稳定发展。然而,随着城市规模的不断扩大和燃气使用量的增加,燃气管网的安全运行面临着越来越大的挑战。为了应对这些挑战,燃…...

正则表达式(2)

文章目录 专栏导读1、贪婪与非贪婪2、转义匹配 专栏导读 ✍ 作者简介:i阿极,CSDN 数据分析领域优质创作者,专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫实战教学》,本专栏针对大学生、初级数据分析工程师精…...

xv6源码分析 001

xv6源码分析 001 我们先看看xv6这个项目的基本结构(只看代码部分) 主要就是两个目录kernel 和 user。 user是一些用户程序,也就是我们平时在shell上面执行的命令,每执行一个命令就会创建一个新的用户进程来执行这个命令 在user目…...

90天玩转Python—03—基础知识篇:Python和PyCharm(语言特点、学习方法、工具安装)

目录 摘要...

JS代码小知识(个人向)

JS 对象转数组 let obj {0:"a",1:"b",length:2 //加上这个就能转了 }; console.log(Array.from(obj)); // ["a", "b"] 数组的拼接 let a ["a","b"] let b ["c","d"] let c [...a , …...

MC34119

这份文件是关于MC34119线性集成电路的产品规格说明书,由Unisonic Technologies Co., Ltd生产。MC34119是一款低功耗音频放大器IC,主要用于电话应用,如扬声器电话。以下是该文件的核心内容概要: 产品描述: MC34119是一款…...

RabbitMQ3.13.x之十_流过滤的内部结构设计与实现

RabbitMQ3.13.x之十_流过滤的内部结构设计与实现 文章目录 RabbitMQ3.13.x之十_流过滤的内部结构设计与实现1. 概念1. 消息发布2. 消息消费 2. 流的结构1. 在代理端进行过滤2. 客户端筛选3. JavaAPI示例4. 流过滤配置5. AMQP上的流过滤6. 总结 3. 相关链接 1. 概念 流过滤的思…...

Node爬虫:原理简介

在数字化时代,网络爬虫作为一种自动化收集和分析网络数据的技术,得到了广泛的应用。Node.js,以其异步I/O模型和事件驱动的特性,成为实现高效爬虫的理想选择。然而,爬虫在收集数据时,往往面临着诸如反爬虫机…...

Python如何解决“滑动拼图”验证码(8)

前言 本文是该专栏的第67篇,后面会持续分享python爬虫干货知识,记得关注。 做过爬虫项目的同学,或多或少都会接触到一些需要解决验证码才能正常获取数据的平台。 在本专栏之前的文章中,笔者有详细介绍通过python来解决多种“验证码”(点选验证,图文验证,滑块验证,滑块…...

MongoDB 启动异常

Failed to start up WiredTiger under any compatibility version. 解决方案: 删除WiredTiger.lock 和 mongod.lock两个文件,在重新启动。回重新生成新的文件。...

mysql 常见数据处理 dml

学习完,mysql正则表达式查询,把常见的数据处理,做一个汇总,便于查看。 数据操纵语言(Data Manipulation Language, DML)。 1,新增数据: 1,单个插入: insert…...

课时86:流程控制_函数基础_函数退出

2.1.2 函数退出 这一节,我们从 基础知识、简单实践、小结 三个方面来学习。 基础知识 简介 我们可以将函数代码块,看成shell脚本内部的小型脚本,所以说函数代码块也会有执行状态返回值。对于函数来说,它通常支持两种种状态返回…...

【Python】无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案

【Python】无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案 大家好 我是寸铁👊 总结了一篇【Python】无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案✨ 喜欢的小伙伴可以点点关注 💝 前言 今天寸铁…...

9(10)-1(2)-CSS 布局模型+CSS 浮动

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 一、CSS 布局模型1 流动模型(标准流) 二、CSS 浮动1 浮…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异&#xff…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

HTML前端开发:JavaScript 获取元素方法详解

作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...

DBLP数据库是什么?

DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...