JavaScript库的维护人员通过植入后门来窃取比特币资产

2018-11-27 10:17:10 0 2879

据报道。一名npm库开发人员通过维护之便,将窃取比特币的恶意代码隐藏在名为Event-Stream的npm包中,一旦使用该库开发虚拟货币的应用程序,其中的恶意代码便启动窃取虚拟资产。且一个叫Copay 的Bitcoin 钱包遭受恶意代码影响最为严重,不过其程序源码现已更新并删除了恶意代码。




一名黑客获得了(合法)访问一个流行JavaScript库的权限,并注入了恶意代码,窃取比特币和存储在BitPay Copay钱包中的比特币现金。

上周发现了这种恶意代码的存在,但直到今天,研究人员才知道这些混淆了的恶意代码实际用途。


加载恶意代码的库名叫Event-Stream,这是一个用于处理Node.js流数据的JavaScript npm包。这是一个非常受欢迎的JavaScript库,在npm.org存储库上每周下载量超过200万。但大约三个月前,由于缺乏时间和兴趣,其原作者将其后续开发交给另一位名为Right9ctrl的程序员。

但据一位上周发现Event-Stream问题的眼尖用户称,Right9ctrl立即用恶意代码毒害了该库。

Right9ctrl发布了包含新依赖关系的Event-Stream 3.3.6 -,其用于Flatmap-Stream库版本0.1.1。Flatmap-Stream库v0.1.1就是恶意代码所在的库。

据Twitter,GitHub和Hacker News上的用户称,这个恶意代码直到被用于比特币支付平台BitPay开发的桌面和移动钱包应用程序Copay的源代码中,它都是处于休眠状态,不被人知晓。

一旦恶意代码被编译并运送到Copay钱包应用程序的毒化版本中,它将窃取用户的钱包信息,包括私钥,并将其发送通过8080端口发送到copayapi.host 。

据说,黑客正在利用这些信息清空受害者的钱包。目前,据估9月、10月和11月发布的所有版本的Copay钱包都被感染。

今早,BitPay团队发布了Copay v5.2.2版本,该版本删除了Event-Stream和Flatmap-Stream依赖项。

npm.org JavaScript包存储库的维护者也在他们的站点做出对应安全措施,并卸载了 Flatmap-Stream库,让通过npm软件所依赖它的所有项目都无法访问它。

恶意的Event-Stream v3.3.6也已从npm.org中删除,但Event-Stream库仍然可用。这是因为Right9ctrl试图隐藏他的恶意代码,发布了不包含任何恶意代码的后续版本的Event-Stream。

建议使用这两个库的项目维护人员将其依赖树更新为可用的最新版本--Event-Stream v4.0.1版本。此链接https://github.com/dominictarr/event-stream/files/2616706/flatmap-deps-list.txt)包含所有3,900+ JavaScript npm软件包的列表,其中Event-Stream作为直接或间接依赖项加载。

此手动更新/删除步骤是必要的,因为某些项目配置是在本地缓存的所依赖项,并且在构建新项目版本时会尝试从npm.org下载不存在的npm包,此时可能会触发通控制台错误。

在过去一段时间,这不是第一个与JavaScript/npm相关的安全问题。

  • 今年7月,一名黑客利用恶意代码破坏了ESLint库,该代码旨在窃取其他开发人员的npm凭据。

  • 2018年5月,一名黑客试图在另一个名为getcookies的流行npm包中隐藏后门。

  • 2017年8月,npm团队删除了38个JavaScript npm软件包,这些软件包从其他项目中窃取环境变量,试图收集项目敏感信息,如密码或API密钥。

关于作者

D_D952761篇文章465篇回复

评论0次

要评论?请先  登录  或  注册