知名NPM包(faker.js与colors.js)作者删库、注入恶意代码
这是继“Apache Log4j 2 漏洞”发生一月之后的今天,该漏洞还尚未彻底平息,不曾想又发生了一起令许多开发者“头秃”的开源事件:faker.js与colors.js开源库遭开发者恶意破坏, 成千上万个使用了流行开源npm包faker.js和colors.js的项目一夜之间突然“变砖”,不断输出满屏乱码,而“罪魁祸首”竟是项目作者Marak Squires故意为之。
尽管开源项目有着“众人拾柴火焰高”的特性,但也难防有人使坏。

faker.js 和 colors.js 的应用十分广泛,如 AWS CDK 等许多流行工具均在开发过程中使用了这两个库,一直以来也没有意外发生。据 faker.js 的 GitHub 页面显示,该库代码已被全部删除,所有 commit 信息都被改为「endgame」,且 Readme 部分也仅剩下项目作者 Marak Squires 留下的一句话:“What really happened with Aaron Swartz(到底发生了什么)?”
(注:Aaron Swartz 是一名出色的开发人员,曾建立 Creative Commons、RSS 和著名社交网站 Reddit,但在 2011 年被指控非法入侵 MIT 和学术数据库 JSTOR 以窃取文件,后于 2013 年自杀。)
在项目中如果使用了遭到破坏的版本,会导致应用程序无限输出奇怪的字母与符号。从第三行文本开始,上面会呈现“LIBERTY LIBERTY LIBERTY”。
尽管 color.js 看似已更新到新版本,但 faker.js 可能还需再等待一段时间,着急的朋友可尝试降级到先前的 5.5.3 版本。

此外 Bleeping Computer 发现这两个库的开发者(Marak Squires)向 colors.js 引入了恶意提交,添加了所谓的 American flag 模块,并推出了可触发同样破坏性事件的 6.6.6 版 faker.js 库。
由于 faker.js 在 npm 上的每周下载量接近 250 万、colors.js 亦有约 2240 万,本次破坏事件还是给开源项目敲响了安全警钟。深挖之后,有人将问题源头指向了 2020 年 11 月起在 GitHub 上发表的一篇帖子。

Squires 声称不想自己的努力再被财富 500 强(其已其它小企业)白嫖,并希望拿到一份年薪六位数的合同。或者分叉项目,并让其他人参与其中。
针对此次事件,诸多资深开发者也表达出了各自的看法。
资讯安全专家 VessOnSecurity 认为:“这太不负责任了!如果你在发布免费代码时遇到问题,那就不要发布。你破坏自己被广泛使用的项目,不仅伤害了大企业,也伤害了所有使用它的人。这会导致人们害怕更新,因为新版本可能并不安全。”
软件工程师 Sergio Gómez 则认为:“从 GitHub 删除他自己的代码居然违反了他们的服务条款?这是道德绑架!我想我们需要开始分散托管免费软件源码了。”
许多网友也对此各执一词。
@Mike_Walsh:“老实说,这人完全有权破坏自己的工作,尤其是当他利用自己的空闲时间维护这些项目,却没有看到一分红利时。为什么大公司就应该从别人的无偿劳动中赚到一大笔钱,甚至他们还声称这样做是‘出于对开源的热爱’?所以我觉得这样很公平,你对我好我会回报你,但如果你在背后捅了我一刀,也同理。”
@GT500:“就我的理解来看,我认为这个人忘记了开源的精神,只是贪婪罢了。如果他想要别人为他的软件付费,那他就不应该在开源许可下发布它。开源的倡导者花了几十年的时间试图让公司使用开源软件,试图说服他们这是免费的、应该使用它,且永远不必为此付费。而这个人的行为会导致什么?我们可能会回到公司只使用垃圾付费软件的黑暗时光,因为他们会觉得已经不能再信任开源项目了。”
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!