几天前有人在github创建了一个issue:
https://github.com/dominictarr/event-stream/issues/116
标题为:”I don’t know what to say.”,翻译过来大概就是“我无语了”。因为 event-stream 包突然多出了一个名为 flatmap-stream 的依赖项,而这个依赖项正在窃取用户的数字货币。
event-stream 被很多的前端流行框架和库使用,每月有几千万的下载量。作为最流行的前端框架之一,在 Vue 的官方脚手架 vue-cli 中也使用了这个依赖,作为最流行的前端框架之一,这个影响还是挺大的,这个影响还是挺大的。而 React 则躲过了。
flatmap-stream 中的恶意代码会扫描用户的 nodemodules 目录,因为所有从 npm 下载的模块都会放在此目录。如果发现了在 nodemodules 存在特定的模块,则将恶意代码注入进去,从而盗取用户的数字货币。
COPAY钱包因为引用了event-stream库,它在今年9、10、以及11月27日之前发布的所有版本都受到了感染,COPAY是bitpay旗下的开源钱包,市场占有率不可小觑;下面这个链接进行了分析,使用被感染钱包的用户很有可能被窃取私钥:
https://github.com/bitpay/copay/issues/9346
COPAY紧急发布了5.2.2修正版本:
https://github.com/bitpay/copay/pull/9348
使用COPAY钱包的人,请立即升级新版本,并且生成新的钱包,把老钱包里面的币转走。
这个恶意模块更可怕之处,在于背后的骇客是个深谋远虑、精于社工的人。
这个人的github账号叫做right9ctrl,他应该是精心分析了COPAY引用的所有模块,发现event-stream有机可乘。于是给event-stream的创始人-dominictarr
发去了邮件,承诺会自愿维护这个项目。
dominictarr
是一个高产的开发者,他维护着多个NPM包,有人能自愿分担他的工作,他自然是高兴之至,于是将这个模块的仓库控制权移交给了right9ctl
。
刚开始的时候,right9ctl
非常小心的进行着常规的维护。一段时间后,即在 3 个月前,黑客在 GitHub 上新建了一个 flatmap-stream 仓库(内含恶意代码),并在这个项目中引用了自己的仓库。
直到几天前这个有漏洞的仓库才被发现,然后 npm 紧急将这个含有恶意代码的 flatmap-stream 模块删除了。
这个模块的攻击行为也很隐蔽,首先他只有引用了 event-stream 这个库,并且依赖引用了 flatmap-stream,用户在编译自己的项目时,才会感染恶意代码。
感染恶意代码的程序,也不会全部发作。只有COPAY钱包运行时,他才会悄悄的窃取用户信息,并发送到下面这几台服务器:
1 2 3 4 |
|
我不知道截止到现在黑客获取了多少币,但整个事件非常惊悚。而且这个漏洞刚刚被发现,我认为还会持续有消息不灵通的受害者。
另外,如果想查看自己的项目是否受到影响,可以运行:
1
|
|
如果在输出里面包含了 flatmap-stream 则说明你也可能被攻击。
如果使用 yarn 则可以运行:
1
|
|
区块链历史中的传奇HACK手段
我在以前的文章中多次感叹所谓的区块链技术出来后,简直是黑客的黄金年代!大概从2011年开始,精彩的HACK事件层出不穷,如果要全部整理出来,可能会是一部让所谓的区块链专家
和区块链投资者
冷汗直流,后怕不已的手册。
撇开这几天的市场动荡,币价大跌不提,单单从技术上评估,能有多少人意识到他们所谓的投资的技术风险!
我随意的说几件印象非常深刻的HACK事件。
整个国家DNS 流量劫持事件
我记得大概是2015年,巴西的骨干网DNS整个被黑客劫持了,导致当时的blockchain.info 在线钱包有几个小时的流量完全被导向了钓鱼网站,这次事件导致的丢币数目不可统计。
但是给你一个启示,当利益足够大的时候,任何设施,包括国家设施都是不可信、不安全的。结合这两天发现的jd.com流量返利劫持,你就知道:网络世界里,有的组织或者个人,完全可以劫持一个国家的网络流量,这不是天方夜谭。
官方域名劫持事件
今年二月份的时候,有人花大价钱买了”electrumltc.org”这个域名,仿照”https://electrum-ltc.org/”官网,精心炮制了一个以假乱真的网站,然后把下载链接改成了恶意钱包,并且做了Google SEO,把自己的骗子网站搜索结果推到了第一名;有人因此丢了2399个LTC,那个时候可是不少钱。
很讽刺的是,恰恰是因为真正的开发者买不起这个域名,才搞了一个山寨的域名发布自己的软件,让骇客有机可乘。
讽刺吧,原作者辛辛苦苦开发,却因为没钱买域名不得已搞个屌丝网站,骇客财大气粗,直接买下第一官方域名然后钓鱼,并且真的获取巨大收益。
这种钓鱼手法在多个钱包、多个网站上面一再重演,受害小白不计其数!
杀人放火金腰带,修桥补路无尸骸。
这个世界就是这样。
整个事件回顾:
https://github.com/pooler/electrum-ltc/issues/176
~~~~
这么罗列下去,我可以轻易列举出更多的涉及上亿美元的hack事件。每个事件说起来好像天方夜谭一样,不明技术的小白可能会惊叹:怎么可能有这种事情?!
但是事实就是这样,而且将来这样的悲剧会一再重复下去,说再多也没用,人的安全意识总敌不过懒惰、贪婪等等等等,可悲的人性啊。