首页 > 其他分享 >他潜伏三年想插它后门,最终还是输给了另一个他

他潜伏三年想插它后门,最终还是输给了另一个他

时间:2024-04-03 09:57:05浏览次数:20  
标签:后门 输给 Jia 维护者 开源 Lasse 潜伏 Tan liblzma

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

标签:后门,输给,Jia,维护者,开源,Lasse,潜伏,Tan,liblzma
From: https://www.cnblogs.com/ryanyangcs/p/18112000

相关文章

  • liblzma/xz被植入后门,过程堪比谍战片!
    事件概述xz是一种几乎存在于所有Linux发行版中的通用数据压缩格式。从5.6.0版本开始,在xz的上游tarball包中被发现了恶意代码,通过一系列复杂的混淆手段,liblzma的构建过程从伪装成测试文件的源代码中提取出预构建的目标文件,然后用它来修改liblzma代码中的特定函数。这导致生成了一......
  • 2024年Flutter的沉默:淘汰还是潜伏?揭秘未来发展与学习新机遇
    前言在2024年的今天,当我们谈论起跨平台开发时,Flutter这个名字似乎不再频繁出现在技术头条。这个曾经令开发者们激动不已的框架,如今似乎陷入了一段沉默期。但在这个看似沉默的背后,Flutter真的被淘汰了吗?还是它正在为下一次的爆发蓄力?让我Flutter自推出以来,以其出色的性能......
  • 20212217刘恒谦-Exp2 后门原理与实践
    实践过程记录使用netcat获取主机操作Shell,cron启动​ ncat即Netcat,可以收发传输层数据,由攻击者使用。cron是Linux中用于按计划执行脚本的工具,在网络对抗中让受害者连接不稳定时,重连攻击者,由受害者启动。​ 既然如此,受害者需要是Linux,否则没有cron命令,我购买了一台阿里云Ubuntu......
  • Windows粘滞键后门
    Windows粘滞键后门原理:把sethc.exe粘滞键功能替换成cmd.exe的shell窗口,连续按5次shift键即可呼出cmd。①粘滞键替换成cmd的基本应用1、找到粘滞键应用所在的位置。在C:/Windows/System32这个目录(系统进程的目录)下可找到粘滞键sethc这个应用程序(系统进程)。2、备份要用到的文件......
  • 通达信牛股潜伏选股指标公式源码副图
    {通达信牛股潜伏选股指标公式源码副图}X_1:=CLOSE>REF(CLOSE,1)*1.097;X_2:=COUNT(X_1,12);X_3:=REF(X_2,1)>=1;X_4:=(3*CLOSE+LOW+OPEN+HIGH)/6;X_5:=(20*X_4+19*REF(X_4,1)+18*REF(X_4,2)+17*REF(X_4,3)+16*REF(X_4,4)+15*REF(X_4,5)+14*REF(X_4,6)+13*REF(X_4,7)+12*RE......
  • 利用.user.ini文件隐藏后门
    0x00前言在PHP中有个很有趣的东西叫.user.ini,有点类似.htaccess文件,PHP会在每个目录下扫描INI文件,我们可以通过.user.ini文件来实现隐藏后门的效果官方手册地址:传送门通过阅读手册,我们知道在.user.ini中可以识别PHP_INI_PERDIR和PHP_INI_USER模式的INI设置关于PHP_INI_*一......
  • 供应链投毒预警 | 恶意NPM包利用Windows反向shell后门攻击开发者
    概述​本周(2024年02月19号),悬镜供应链安全情报中心在NPM官方仓库(https://npmjs.com)中发现多起NPM组件包投毒事件。攻击者利用包名错误拼写方式(typo-squatting)在NPM仓库中连续发布9个不同版本的恶意包,试图通过仿冒合法组件(ts-patch-mongoose)来攻击潜在的NodeJS开发者。开发者......
  • 在sequence 中 通过后门方式调用task
     可以使用void‘($cast(slaver_drv_use,uvm_top_find("xxxx")));在sequence中调用svt_axi_slave_agent(component) 的task。代码示意 svt_axi_slave_agent   slaver_drv_use;声明句柄void‘($cast(slaver_drv_use,uvm_top_find("uvm_test_top.te_env_inst.amba_s......
  • 通达信妖王潜伏选股指标公式源码副图
    {股票指标}XG:REF(CLOSE,1)/REF(CLOSE,2)>1.095AND((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>9.9AND(CLOSE-REF(CLOSE,3))/REF(CLOSE,3)*100<31AND(CLOSE-REF(CLOSE,4))/REF(CLOSE,4)*100<40)ANDCLOSE<16ANDREF(vol/CAPITAL*100,1)<25ANDma(CLOS......
  • 通达信机构潜伏源码副图
    {股票指标}X_1:=1501230;X_2:=HHV(vol,5);X_3:=OPEN>CLOSE;X_4:=CLOSE>OPEN;X_5:=CLOSE=OPEN;X_6:=SUM(VOL,5)/X_2;X_7:=IF(X_6>0.3,1,0);X_8:=IF(X_3ANDX_7,VOL,0);X_9:=IF(X_4ANDX_7,VOL,0);X_10:=SUM(X_9,10);X_11:=ma(X_10,9)/50000000;X_12:=SUM......