“开源”坏掉了!

资讯 2年前 (2021) admin
751 0 0
作者:Christine Xe是一名全栈工程师,其在GitHub上的链接是https://github.com/Xe。中文版由云头条编译。

或者换句话说,除非你付钱给我,否则为何我要编写有用的软件?

近日Java生态系统一个至关重要的软件包log4j2曝出了一个严重的安全漏洞,对整个互联网构成了严重的威胁。一旦完全沦为了武器,该漏洞让攻击者就可以胁迫Java服务器执行从LDAP(轻型目录访问协议)服务器获取的任意代码。

我认为这起事件是一个完美的缩影,揭露了“开源”软件方面存在的所有主要的生态系统问题。对此我确实有几点想法要一吐为快,因为我认为log4j2是一个堪称完美的例子,表明了这方面面临的最糟糕的情况之一。与该问题有关的所有人都完全有理由声称自己提供有效的方案完全出于解决实际问题这个目的,但也在这个过程中造成了一个巨大的漏洞。

“开源”坏掉了!
XKCD漫《Dependency》描绘了所有现代化数字化基础设施被内布拉斯加州一个费力不讨好的匿名人士开发的某个随机项目所阻碍。

所有软件都是站在巨人的肩膀上开发而成的。不妨考虑像在Linux内核上运行SSH服务器这么基本的事情。就这个组合而言,你将至少面对10家供应商(假设使用默认配置下的精简版Alpine Linux系统),这就意味着至少有10家独立的组织仍然需要用真金实银来支付账单,无论有多少数量的用户在使用它们免费赠送的软件。Alpine Linux也是表明该问题的一个典例,因为它经常在Docker语境下使用,在实际的生产环境下为许多公司提供支持。你认为这些公司中有多少家资助Alpine Linux项目?你认为这些公司中有多少家甚至考虑过资助Alpine Linux项目?

我以前与别人探讨过此类话题,但令我感到惊讶的是,大家对此有很大的抵抗力:切实确保真正使公司企业运转起来的零星自愿开发者能够支付房租。现在盛行的是这种陋习:从开源那里获取利益,而不给予回馈。好像开发依赖项的那些人的问题无关紧要。

“开源”坏掉了!
基于Tim &Eric“这是免费资源”模板的文化基因,一方面是由热情的开发人员维护开源软件,另一方面是一味获取而不给予的做法,形成了鲜明对比。

众所周知,GitHub 星(star)无法用于支付租金。这方面的一个例子是闹得沸沸扬扬的core-js乌龙事件。core-js是一个JavaScript库,它为JavaScript的标准库提供了许多的核心原语(primitive),这些核心原语可以让你无需使用其他库。但这个库同样臭名昭著,原因是每当你在CI中安装它,就可以知道项目作者在寻找工作。你可能已经在你的CI中看到该消息已有上千次:

“开源”坏掉了!

感谢您使用 core-js(https://github.com/zloirock/core-js)以polyfill(填充)JavaScript 标准库!
该项目需要您的帮助!请考虑在 Open Collective或Patreon网站上支持core-js:
> https://opencollective.com/core-js
> https://www.patreon.com/zloirock

此外,core-js(https://github.com/zloirock)的作者正在寻找一份好工作 :-)

该项目的作者要么因车辆过失杀人罪而仍在坐牢,要么刚被释放出来。core-js是React的一个依赖项。你们中又有多少人实际为这个项目捐过款?尤其是如果你平常使用React?

现在我们不妨把目光转向log4j2。该项目实际上在标准库中,供Java用户使用。这个库在现代Java中是如此地根深蒂固,以至于你会以为它的开发人员会资金充裕,除了那个库之外不需要专注于其他任何事情,是不是?

并非如此。

“开源”坏掉了!
“开源”坏掉了!


没有人付钱给log4j2维护者!?
整整有一页内容来描述Apache软件基金会“项目管理委员会”的职责……却没有人付钱给他们?
开源社区需要成长起来。昨天。

Log4j维护者一直在通宵达旦地开发缓解措施、修正版、文档、CVE、回复咨询及处理其他事务。可是没有什么阻止人们因为我们分文报酬未得的工作,因为我们都不喜欢却因向后兼容顾虑而需要维护的某项功能而炮轰我们。

这是修复了导致数至少百万美元损失的漏洞的维护者。
“我在业余时间开发维护Log4j”
“始终梦想着能专职从事开源工作”
“3个赞助人资助@rgoers的工作:Michael、Glenn和Matt”
大伙儿瞧瞧我们所做的工作。

我现在是Apache软件基金会的成员,也是Apache Commons、Apache Flume、Apache Logging Services和Apache Maven的项目管理委员会(PMC)成员。我开发了Apahe Log4j 2的初始版本,继续把我的大部分精力投入在这方面上,以提供支持和改进,从而设法使Apache Log4j 2成为Java开发人员眼里最出色的日志框架。
我目前有一份专职工作:软件架构师。我在业余时间开发Log4j及其他开源项目,因此我通常处理我最感兴趣的那些问题。我始终梦想着能全职从事开源工作,希望能得到您的支持,以便这个梦想成真。


到昨天为止,这个人的项目总共也就3个赞助商。没错,总共就3个。

到今天为止,这个数字现在增加到了14个,然而这不是借口。这个人获得的资金数量应该与使用log4j2在整个生态系统的重要程度相匹配。这点不容置辩。这个人在业余时间出于爱好所搞的项目居然影响到半个互联网的运作。容易受到该问题影响的公司包括苹果、谷歌、我的手机运营商以及基本上在默认配置中使用JavaEE的每家公司。

如果log4j2关系到贵公司的成功,你在道义上就有义务向费力不讨好地创建这个库的人捐款。

我的一个朋友长期以来一直在费力不讨好地维护一家在线广播电台的技术堆栈。他受到了其用户不公正的对待。用户们会在小费罐中投入5 美元,然后如果他没有扔下手头的所有工作、立马解决用户异常具体的问题,用户就会非常生气。他曾试图在一些地方找到工作,但每当对方老是试图逼他放弃维护自己的项目,他不得不拒绝这些工作。与此同时,收入来源减少的现象仍在继续。

这就是为什么我在下面这一点上很小心谨慎:如果没有任何可靠的方法让我可以为自己付出的努力获得报酬,我不轻易开发“有用”的软件,并将其发布给全世界。我根本不想到头来落入这种境地:我出于热情作为一个副业项目开发的软件将许多人的公司紧密地联系在一起。这就是我开发软件以及把软件开发到何种程度的方式或原则。没有冒犯他人之意,但我真的不想白白付出我的努力。现有的寄生虫文化将“开源”视为免费劳动力池,因而我很难想让自己的副业项目像log4j2那么真正有用,除非你付钱给我。

长话短说:如果你想让我为你开发有用的软件,那就付钱给我。如果你使用别人在业余时间开发的软件,觉得它很有用,那就付钱给他们。这个观点应该不会有大的争议。这应该不是什么新鲜事。这应该已经是行业现状,眼看着开发的项目确保我们的软件正常运行的那些人忍饥挨饿、乞求捐赠,确实很糟糕。

原文链接:https://christine.website/blog/open-source-broken-2021-12-11

原文始发于微信公众号(云头条):“开源”坏掉了!

版权声明:admin 发表于 2021年12月12日 下午2:28。
转载请注明:“开源”坏掉了! | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...