2023年1月5日,著名开源项目 AFFiNE 发推提醒大家,有一个名为 chalk-next
(chalk 的复制品,赝品) 的包文件中含递归删除本地配置代码。随后,该包被 npm 安全团队证实含恶意代码并下架。
而 chalk-next
的作者建了许多诸如"chalk-next"的库,用来检测授权的,该作者在自己的收费项目里引用这个包,引用后会上报密钥信息,如果是没花钱就使用的话,会被这个包检测出来然后报复性删除文件。简单来说就是个报复性的后门。
chalk 是一个可以修改终端输出字符样式的 npm 包。
由于起名太过敏感,"-next"一般用于大版本更新,于是有好心人出于更新包的目的在其他开源项目中提 PR 更新包,也就出现了这次的“投毒”事件。
深挖下去,发现 chalk-next
的作者正是臭名昭著的 vue-admin-beautiful
的作者,而 vue-admin-beautiful
是一个打着开源旗号的收费项目。
chalk-next
再一次引发众怒,引起了社区的广泛关注和讨论。以下为事件过程整理。
1. AFFiNE 发推提醒
2023年1月5日,AFFiNE 联合创始人 @ewind1994 (也是后文提到的雪碧)发推提醒:
2023年1月6日,该包被 npm 安全团队证实含恶意代码并下架。
2. 始作俑者 vue-admin-beautiful
chalk-next
NPM 地址为: https://www.npmjs.com/package/chalk-next,其NPM 帐号: https://www.npmjs.com/~vabjs。
网友顺藤摸瓜,发现其作者是为 chu1204505056
,正是 vue-admin-beautiful 前端项目的作者。
而 vue-admin-beautiful
在 V2ex 上引起了广泛的讨论,被定性为打着开源旗号的割韭菜项目。
3. vue-admin-beautiful 营销套路
2020年9月26日,vue-admin-beautiful
的作者 @chu1204505056 在 V2ex 发贴宣传。
V友并不买账,提出了 star
增长太快的疑问,issue
也很少。
看大家不买账,紧接着 @chu1204505056
又发了一篇文章,👷👷👷一个开源项目走向商业化的一些感悟 - V2EX
同时, @chu1204505056
语出惊人:
就是因为不容易找到差异,issues 全部删掉,才能引导大家消费,如果能轻易解决了,谁还愿意付费
V友善意的提醒,居然被 @chu1204505056
认为是键盘侠,还在利用开源项目的名义营销。v2er 也不惯着,直接怼。
同样的营销套路,也被 @chu1204505056
在 知乎 上使用。多个匿名账号抨击说实话的网友。
如何评价 vue-admin-beautiful 项目? - 知乎
4. V友实名抵制 vue-admin-beautiful
实名抵制 vue-admin-beautiful - V2EX
有一位 V友 试用了 vue-admin-beautiful,发现其实是一个恶心的收费项目,于是在 V2ex 上发起实名抵制。
5. vue-admin-beautiful 营销式道歉
vue-admin-beautiful 开发者的致歉信 - V2EX
6. 否认投毒,倒打一耙
@chu1204505056
还在 AFFiNE
项目上提Issue,否认投毒,倒打一耙。
https://github.com/toeverything/AFFiNE/issues/676
@chu1204505056
:我好奇的是我们付费的付费产品用来移除盗版的包chalk-next为什么会出现到你们的开源项目。
事实是没人想用。因为 npm 中的 chalk-next
恶意取名引诱用户下载,而且 chalk-next
相对常用库 chalk
无实质更新且会删除用户代码.
如果真要取 next,建议使用 @scope 来区分!
@geminate
:
这里不评论你的收费项目相关问题。就事儿论事儿,就这次这件"npm 投毒"事件来讲,你也是有很大的责任的
1.包命名问题,诸如"XXX-next"的命名方式,常用于官方的大版本更新,而你在起名的时候起了一个极其容易引起混淆的命名。
如果是个人项目专用包,建议使用”xxX@chuzhixin”这种命名。2.包含恶意代码的包无论如何都不应该发到npm公共仓库,这是投毒行为。请参考 npm 的使用守则。
3.不希望别人使用的包请在 Readme 中注明。
7. vue-admin-beautiful 作者精神分裂
czx is dog (@chu1204505056) / Twitter
vue-admin-beautiful
的作者迷之操作也让人感觉精神分裂。
一会骂 雪碧(前文提到的 @ewind1994 ),一会又自称是开发者,掉头抨击vab。
再一次营销式道歉
chuzhixin/chalk-next: http://mtw.so/5Urz9A
关于chalk-next最开始是因为几年前我们的某个付费用户将我们的付费产品开源至github,导致代码在咸鱼低价出售,实在举报不过来了,于是便想出了这个办法,我们从未删除过任何一个开源项目的代码,也从未去主动朝他们仓库投毒,如果真的出现了,那只能说明他们的开源项目盗用了我们的付费产品代码,我们不是无辜的,但攻击我们并拿此事大做文章的人也不见得是个好东西。
-
1、普通项目即使下载这个包也不会被删除任何代码,因为普通的项目不会预留rely-key,只有故意破解且使用了盗版代码才会触发激活服务器,并不是像Twitter上的人说的下载就会删除代码,请有独立思考能力的同学自行去测试,不要被有心之人利用,你可以说我们有违法犯罪的动机,但我们还没有开展违法犯罪的行为,反而那些攻击我们服务器让我们一晚上欠几万块并且翻墙去twiter并发表政治言论的人,去v2ex曝光他人隐私信息,短信轰炸我们,或者去v2ex歪曲事实,编故事造谣我们注册马甲打击报复的人,我们没有马甲,不要总觉得每个和你们这群喷子有相反意见的人都是我们买的水军,我还是建议你去自首,不要整天躲在一个可以匿名还未在中国备案的网站里面咋咋呼呼。
-
2、为什么不使用@scope,原因很简单,私有包每个月要付费,我们当时只是为了报复低价出售的人,并没有想要多花一分钱。
-
3、v2ex,twiter上出现了冒充我们的账号,用户名都是按照我们的名字去注册的,他说的大部分的暴露我们隐私的话有一部分是真实信息加上虚假信息,我很清楚的知道,你是我们熟悉的人,如果有矛盾可以私下解决,我们没有拖欠任何人的工资,对的起那八千多家购买我们产品的用户,即使出了问题我们也会第一时间解决,没必要以我们的名义到处和其他人对线,也没必要暴露他人的家庭信息。
-
4、关于这个事件,我们确实应该反思,为了维护自己的利益,没有考虑到名字起得确实容易引起误会。
-
5、关于那个叫雪碧的人,几年前就一直在攻击我们,说我们star可能是买来的,代码毫无技术含量,当然苍蝇不叮无缝的蛋,我们有我们的问题,希望你也能早点写出一个能买到这么多标星的项目。
-
6、放眼网络,全都是指责,但是你们不知道人性有多么的恶,他们一边骂着你的产品不好,一边到处找盗版然后用到自己的项目中去,然后恶意倒卖,不会去给你付任何使用费,反正你在明他们在暗,举报一下你又没任何损失。
-
7、没有人规定开源就不能做付费项目,也没有人规定文档不能收费,一切都是自愿原则,没有逼迫,我们的产品有这么多家公司用,自然说明有他的市场在,我们不高尚,写项目就是为了挣钱,项目的确很简单,稍微有点水平的程序员都可以靠自己用一两个月的时间写出一个后台模板,但我想说的是两个月的时间3万元的人力成本远远高于我们799的产品定价,所以无论怎样我们的产品都是划算的。
-
8、本公司未在Twitter及v2ex注册过任何账号,也不会傻逼到故意说一堆引起公愤的言论,仅注册过知乎以及掘金,即使真的有证据表明是我公司人员发表的言论,也仅是其个人言论,不代表公司立场。
-
9、关于Twitter公开的姓名 联系方式 家庭住址 以及拖欠工资一事,请勿对我们的开发人员进行攻击,钱他没有多赚,人也已经离职,收入归公司所有,与个人无关,我们对外出售的产品数量,没有网络上宣传的那么夸张,没有卖出多少万套,也没有收割多少韭菜,每一单我们都报了税,谢谢你的监督。
-
10、关于是否通过营销炒作搞付费模板赚到了别墅和保时捷,我想说的是,我们没偷没抢,没碍着任何人,你羡慕你也可以去试试,看看能不能买到或者炒作出一个用户量这么大的付费产品。
关于此事,你怎么看?
欢迎关注我的公众号“码农真经”,原创技术文章第一时间推送。