"); //-->
以下文章来源于数据实战派 ,作者林檎
作者 | 林檎
来源 | 数据实战派
近日,一位开源开发者的故意破坏,再次引发了机构依赖开源库的争议。这一类开源库往往由维护者义务工作而支撑。
被破坏的开源库是 Marak Squires 开发的 color.js 库和 faker.js 库。这两个库被广泛使用,其中不乏企业和商业客户。因此,有数千个大型项目受此影响出现了停止运行,包括亚马逊 AWS 的 CloudDevelopment Kit。
目前 Color.js 现在似乎可以工作了,但 Faker.js 仍然受到影响。用户需要降级到之前的版本才能再次使用。
Marak 在 color.js 库的 v1.4.44-liberty-2 版本中给新的美国国旗模块加入了无限循环,依赖 color.js 的项目会在控制台看到不停打印的非 ASCII 字符。faker v6.6.6 版本的情况类似,他将这两个搞破坏的版本推送到 GitHub 和 npm。
数据显示,有近 19000 个项目依赖 color.js 库;faker 的周下载量超过 280 万次,有超过 2500 个项目依赖它。
Marak 的破坏行为是引入恶性提交,增加了个新的美国国旗模块,被破坏的版本导致应用程序无限地输出奇怪的字母和符号,开头是三行“自由,自由,自由”的文本。另外,faker.js 自述文件也被改成了“Aaron Swartz 到底发生了什么?” Swartz 是一位杰出的开发者,他帮助建立了知识共享、RSS 和 Reddit。2011 年,Swartz 被指控从学术数据库 JSTOR 窃取文件,后来在 2013 年自杀。Marak 提到 Swartz 可能是指围绕他的死亡的阴谋论。
reddit 上的热门帖子表示,Marak 破坏库代码是因为缺乏资金和被滥用开源项目。
事实上,在此次事件之前,这位开发者就曾公开批评,指责使用了这些库的企业对社区没有任何回馈。2020 年 11 月,他曾警告说,自己将不再义务工作支持大企业:“恕我直言,我不会再免费工作来支持《财富》500 强(Fortune 500)公司(以及其他规模较小的公司)了。趁这个机会,你可以发给我一份年薪六位数的合同,或者把这个项目分掉,让别人来做”。
在将这一错误更新推送到 fake .js 的两天后,Marak 发布了一条推文,指出他的账号已被 GitHub 暂停使用,尽管他为该网站上贡献了大量项目。
“NPM 已经恢复到以前版本的 fake .js 包,Github 已经暂停了我对所有公共和私人项目的访问。我有上百个项目。”推文中如此说道。
有安全专家批评 Marak 这种行为不负责任。GitHub 平台暂时封禁了 Marak Squires 的账号(已解封),此举也引发了对 GitHub 如何更好地管理开源项目的争议。
Marak 的大胆举动引起了人们对开源开发的道德和经济冲突的关注,这可能也是他这次行动的目标。
随着互联网行业的高速发展,大量网站、软件和应用程序依赖开源开发人员的工作来创建基本工具和组件。比如,按照使用的性质不同,软件就可以大概分为商业软件、试用软件、公有软件、开源软件。数据显示,不管是手机,还是电脑,平均每个程序都要依赖 150 个开源组件。
在开源这种模式下,所有服务都是免费的。这也意味着开发人员得不知疲倦地修复其开源软件中的安全问题。例如 2014 年影响 OpenSSL 的 Heartbleed恐慌以及最近在 log4j 中发现的涉及大量修复工作的 Log4Shell 漏洞。可是,当越来越多的开源软件和平台被融入到商业机构的服务体系中,不少公司以此获利颇丰却不支付费用,也不对开源社区做出相应的回馈,矛盾便日益凸显甚至激化了。
以此次的事件为案例,许多人曾认为“开源软件可以永久免费使用”、“开源软件使用无任何义务”等,这些固有的认知必须有所改变了。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。