[讨论] 如何减少 Xz Backdoor 类似问题的发生

2024-03-31 17:56:48 +08:00
 xinbaoCode

不知道大家有没有看过这篇帖子关于 xz 被恶意开发者注入,导致 linux 发行版有漏洞,可 ssh 连接用户服务器?🐶 https://boehs.org/node/everything-i-know-about-the-xz-backdoor

今天早上思考了一上午这种 xz 开发者恶意投毒的问题如何解决🤔,目前想到一个方案,去中心化存储,下载别人的发布的系统(例如 linux)需要支付一笔 gas(包含保险费)费,如果有恶意投毒,那么可以要到赔偿,我们将所有知名的项目都开发一条链,允许他们发一些 NFT 等,从而可以赔偿。🐶

这些链的的合约有保险触发机制,当大家投票都认为这个项目是恶意的,那么会自动触发这个项目不停生成 NFT 直到赔偿所有用户的损失,虽然这会导致这个项目的贬值,这样就达到了对开发者约束的目的,从而让他们不得不非常谨慎 review 代码🤔,因为这次 xz 攻击,攻击者看项目方去度假了,以及测试时间不充分。🤔

大家觉得如何?🤔

9320 次点击
所在节点    程序员
76 条回复
mizuhashi
2024-04-01 04:41:09 +08:00
https://www.solidot.org/story?sid=77741

Solidot:
xz 后门事件凸显了维护者在维护一个基本上不会得到多少外界帮助的开源项目时所面临的挑战,当别有用心的人热情提供帮助,你真的难以分辨对方是真心还是假意。对于 xz 项目原唯一维护者 Lasse Collin 邮件列表交流的分析显示,这位维护者早就筋疲力尽了,他承认如果有 bug 会去修,但开发新功能基本上不可能了。这种情况在 JiaT75(Jia Tan)积极提供帮助后发生了变化,Jia Tan 是少数或者可能是唯一一位愿意“帮助”而不是抱怨开发停滞的人。Lasse Collin 表示考虑让 Jia Tan 扮演更重要的角色,甚至让其接手维护。对于不断抱怨和提出要求的用户,他强调这是一个无薪水的业余项目。在“用户”不断的要求之下,Jia Tan 成为了项目的共同维护者。
cnt2ex
2024-04-01 05:32:34 +08:00
@yankebupt #37

各大发行版的官方包维护者已经是类似的机制了。要成为官方的包维护者,必须要得到一个甚至多个 sponsor 的支持才能让你加入。

然而这套方案在开发者身上显然不适用,开发者并没有必要非要让某个软件加入到你信任关系里。更直白一点就是,我写的代码你爱用不用,我又没求你用干嘛还要申请入伙。

这次的问题是,各大发行版的包维护者都无条件地信任了上游的代码,导致带后门的包进入了官方仓库,还好在进入 stable 之前被人发现了,从而限制了影响范围。

真要说解决这类问题的方案,估计也就只能增加包维护者的责任了。但实际上,很多包维护者和开源软件作者一样,本来就是志愿工作。以前成为了某个包的维护者,但是现在没太多精力 review 代码,导致后门悄悄溜进了下游。
levelworm
2024-04-01 08:05:13 +08:00
@0o0O0o0O0o 开源社区早就应该这样了。自己不注意,被别人白嫖就是活该,这就是我的态度。
cr3bit
2024-04-01 08:22:15 +08:00
@xinbaoCode 你是不是忘了 openssl/faker.js&color.js 。有人气可未必等于会有人送钱,往往都是实在受不了掀桌子/出事了才会被关注
Imindzzz
2024-04-01 08:23:00 +08:00
区块链骗子别来沾边了
Lanzhijiang
2024-04-01 08:32:05 +08:00
不是很认同开源就是不求回报,免费的,用爱发电的。开源的出发点可能是这个,而且也有这个心理预期,但是开源要持续下去是不可能一直维持这个状态的。开源只是一种软件开发的方法。
B 圈在理想情况下是建立分布式的可信任系统,实际上是符合开源软件供应链的模型的。
jstony
2024-04-01 08:41:46 +08:00
op 没理解一点,人家本来就是恶意投毒,赔偿什么的无所谓啊。
Dragonphy
2024-04-01 08:42:45 +08:00
本身就是一腔热血,愿意被人白嫖,邮电部诗人了
zbinlin
2024-04-01 09:01:59 +08:00
你这是站在使用者的角度看还是站在开发者的角度看?
shyrock
2024-04-01 09:29:23 +08:00
信任问题,目前似乎是无解的。

基于信任的系统极度高效,同时也极度脆弱。
只要遇到一次恶意攻击,整个系统就可能因为负反馈而轰然崩塌。

想一下 911 导致的全球安检系统永久升级和延长旅客安检时间;
以及部分用户恶意售后导致的厂商售后服务缩水和提高门槛。
都是同类的例证。

然而基于人性根本的自私和猜疑链,这理论上无解。
linhua
2024-04-01 09:39:31 +08:00
提交代码 实名制
Hephaistos
2024-04-01 09:43:48 +08:00
@hez2010 大多用爱发电的一年半载就差不多心凉放弃了,人是需要利益来驱动行为的。正好大厂需要名,开发者需要资金
raptor
2024-04-01 10:01:47 +08:00
这是炒币炒傻了吧?这明显不是解决问题而是制造问题。

反正我从这个事件上得到的感受是:开源还是很安全的。

毕竟这个投毒人为了下手花了两年半的时间,精心规划了这么一条极端路线才能差一点实现。

如果是闭源软件呢?稍微管理不善,混进个坏人,怕是两天半就得手了……
ben666
2024-04-01 10:58:27 +08:00
都从开源项目吸血,没人向开源项目贡献资金,自然就出现人手不足,项目质量只会下降。这就是开源项目本来的弊病,短时间内没有办法。
维护 dperf https://github.com/baidu/dperf/ 深有体会,维护项目主要靠兴趣,花时间,花精力,都是自掏腰包发电,没有稳定的机制来保证项目的稳定发展。
jfcherng
2024-04-01 11:16:25 +08:00
我的某個 php 庫也被在 stackoverflow 上問過安不安全,不過最終我沒上去回答,因為我心裡想的就是 愛用不用 ...
nothingistrue
2024-04-01 11:22:29 +08:00
所有开源协议,第一要素永远都是免责。你搁这搞收费担责,请自己意会各种粗俗的攻击。
lstz
2024-04-01 11:47:07 +08:00
不是针对楼主,只是想说有些闭源软件别来碰瓷

开源软件审查不到位,也只是偶然情况。但不代表闭源软件就很安全不会有同样的情况出现。

除了微软谷歌这种大公司可能会自己造轮子,绝大部分(甚至 100%)的闭源软件都依赖开源生态。也许你会说人家收费了就会负责到底,但很遗憾的是,闭源软件并不都有完整的 cyber security 的概念和流程
jim9606
2024-04-01 12:37:35 +08:00
用闭源软件方便啥都不懂的用户获得虚假的安全感,不知道就是不存在。大团队的产品可能愿意公开透明做安全通报也有内部审计内部质控,小团队的你猜会不会否认三连+堵用户口。

我是个人用户,我就是穷,我相信 review 和使用的人越多的开源软件越可靠,因为更好的安全审计我请不起。而且,能看到公开复盘,那不就说明这套审查机制有用嘛。
mokiki
2024-04-01 13:07:58 +08:00
@Lanzhijiang 并不需要用去中心区块链这么复杂的东西。
就像上面转载的 solidot 说的那样,问题出在原维护者筋疲力尽,没有钱财激励才会如此。
开发名为 finf 的软件,意为:Freedom is not free 。finf 从文件系统的打开读取等调用以及 Linux 系统的包管理的依赖系统分析软件包的使用情况,定时生成报表。用户根据自我感受自由选择整体价格,并且可以调整 finf 报表出具的分成,把分成报表和总价一起发送给开源基金会。开源基金会负责化零为整和收付款整合。
Make Open Source Great Again !
perfectlife
2024-04-01 13:12:59 +08:00
多想想人性 ,问题不是机制,而是人性

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1028563

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX