“ 他潜伏三年想插它后门,最终还是输给了另一个他 火爆 ”
3月29日,微软公司的开发人员 Andres Freund 在调查 SSH 性能问题时,发现了 xz 软件包中一个涉及混淆恶意代码的供应链攻击。进一步溯源发现 SSH 使用的上游 liblzma 库被植入了后门代码,恶意代码可能允许攻击者通过后门版本的 SSH 非授权获取系统的访问权限。恶意代码修改了 liblzma 代码中的函数,该代码是 XZ Utils 软件包的一部分,链接到 XZ 库的任何软件都可以使用此修改后的代码,并允许拦截和修改与该库一起使用的数据。 在互联网的世界里,有这样一群默默无闻的英雄,他们凭借着对技术的热爱和对开源事业的执着,为我们日常使用的软件默默贡献着自己的力量。这些人就是开源软件的维护者。 今天这篇文章要从 Lasse Collin 开始讲起。Lasse 是 xz/liblzma 项目的维护者。这是个不起眼的小项目,但对于 Lasse 来说,它承载了自己多年的心血。 XZ 是一种通用的数据压缩格式,几乎存在于每个 Linux 发行版中。XZ Utils 是一个命令行工具,包含 XZ 文件和 liblzma 的压缩和解压缩功能,而 liblzma 是一种用于数据压缩的类似 zlib 的 API,并且还支持旧版。lzma 格式。 作为一名兼职的开源贡献者,Lasse 需要在有限的业余时间里处理各种琐碎的维护工作修复 bug、开发新功能、回复用户问题,他几乎是一个人撑起了整个项目。虽然工作量不小,但看到项目在自己手中一点点成长、完善,Lasse 还是感到无比欣慰。 然而,现实的压力开始向 Lasse 袭来。长期高强度的义务劳动让他身心俱疲,再加上现实生活的重重困扰,Lasse 感到自己已经到了极限。“也许,是时候找个接班人了。” 他无奈地在社区里发出了这样的呼声。 就在这时,一个名叫 Jia Tan 的开发者出现在 Lasse 面前,表示愿意帮助维护项目。Jia Tan 在私下里也给了 Lasse 不少支持和鼓励。“太好了,终于有人能分担一些工作了。” Lasse 心里的石头落了地。
可好景不长,一些 “索取党” 用户开始对 Lasse 发起了猛烈的攻势 文档怎么还不更新? 这个 bug 都过去一周了,什么时候才能修? 新功能开发太慢了,你行不行啊?
面对铺天盖地的质疑和要求,Lasse 感到无比委屈“大家要理解,我也有自己的本职工作和生活啊,这个项目只是我的业余爱好。” 在 “索取党” 的不断締逼下,Lasse 的维护热情迅速消磨殆尽。他开始怀疑自己是否真的能胜任这个角色。正当 Lasse 处于人生的低谷时,Jia Tan 再次向他伸出了 “援手”“不如把项目交给我吧,我会好好打理的。” 最终,在内忧外患的双重打击下,Lasse 选择了放手。Jia Tan 如愿接管了 xz/liblzma 项目。至此,这似乎是一个皆大欢喜的结局Lasse 卸下了沉重的包袱,Jia Tan 得到了梦寐以求的机会,用户们也有了新的维护者。
然而,悲剧的一幕出现了。Jia Tan 在掌控项目后不久,竟然在代码中植入了一个严重的安全漏洞!这一切,原来都是精心策划的阴谋。而那些不断对 Lasse 施压的 “索取党”,无疑也要背负一定的责任。 这里不仅有技术层面的漏洞,还有人性的弱点。这位 Jia Tan 通过细致入微的社会工程学手法,攻击者一步步骗取了原维护者的信任 首先,他通过两年来高质量的代码贡献,塑造了技术过硬、品行端正的正面形象,消除了他人的戒心。 接着,他敏锐地察觉到原维护者正处于倦怠期,主动提出分担工作,给予支持和鼓励,借机拉近关系。 同时,他还利用其他用户对原维护者的不满情绪,暗示自己可以接替其位置,渐渐把持项目。 这一环扣一环的心理操纵过程,正是社会工程学的典型应用。 当攻击者试图说服其他维护者采用有问题的代码库时,他可能使用了以下话术和策略反复强调新版本的诸多 “优秀特性”,引诱对方上钩对提出质疑的人轻描淡写,让对方觉得是自己多虑了表现出真诚、耐心、乐于助人的一面,让人难以生疑。 这是社会工程学中 “制造权威”、“利用从众心理” 等常见手法。 这操作手法,是不是和那位在百度贴吧潜伏5年只是为了复仇的勇士很像?
更牛逼的是,这位兄台的 ID 也很讲究Jia Tan 这像什么?很明显是中国人名字的汉语拼音啊!心机太深了,顺便还黑了一把中国人。 目前 GitHub 官方已经将 xz 仓库给封了
Lasse 的悲剧,只是开源江湖中维护者群体的一个缩影。他们默默无闻却身负重任,常常要独自面对来自方方面面的压力用户的苛责、生活的重担、项目的困境……在这些重压之下,即便是最有激情的维护者,也难免会心力交瘁。正是他们的付出,才撑起了整个开源软件的生态,但他们的处境却常常被忽视。 反思这个故事,我们不难发现一些让人警醒的细节。首先,“索取党” 用户的不当言行,往往会成为压垮维护者的最后一根稻草。诚然,提需求本身并无不妥,但过分苛刻、不近人情的要求只会适得其反。其次,项目的安全问题不容小觑。当维护者精疲力竭时,往往就是不法分子伺机而动的时候。最后,开源生态的良性发展,离不开所有参与者的共同努力。用户要学会体谅和支持,企业要主动承担社会责任,而平台方更要为维护者提供必要的保障措施。
Lasse 的故事还在继续,无数像他一样的开源英雄仍在默默耕耘。他们或许没有鲜花和掌声,但正是有了他们的奉献,我们才能享受到如此丰富多彩的开源世界。作为开源社区的一员,我们应该心存感激,多一些理解和包容,少一些指责和催促。 Hacker News 讨论帖https://news.ycombinator.com/item?id=39865810
推荐阅读
每日一言
"<!doctype html> <html lang="Zh-cn"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="robots" content="noindex,nofollow"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/> <meta name="renderer" content="webkit"> <title>您请求的文件不存在!</title> <link type="text/css" rel="stylesheet" href="https://www.oick.cn/css/404.css" /> <link rel="shortcut icon" href="http://www.oick.cn/favicon.ico" type="image/x-icon" /> </head> <body> <div id="wrap"> <div> <img src="https://www.oick.cn/imgs/404.png" alt="404" /> </div> <div id="text"> <strong> <span></span> <a href="javascript:history.back()">返回上一页</a> </strong> </div> </div> <div class="animate below"></div> <div class="animate above"></div> </body> </html>"