白帽汇安全研究院近期在外网上发现一起npm大型开源项目被恶意篡改事件。此事件是由于项目管理出现问题,导致攻击者往项目中引入了窃取特定电子钱包的恶意代码,可能导致使用该开源项目且使用特定电子钱包的用户的数字货币遭到盗窃,遭受经济损失。
EventStream是知名的node.js开源项目,用于简化数据流的创建和管理工作。据其官方数据显示,其周下载量达到了200万,github上星数达到了1800个,有34个贡献者。
在上周11月20日时,用户@FallingSnow表示,项目原管理者@dominictarr把项目的管理权限给了一个不知名人士@right9ctrl。而此人往项目中引入了一个以前从未使用过的flatmap-stream项目,这个项目也是由@right9ctrl维护,并且他在三个月前往该项目上提交攻击代码。
github上用户对项目管理的质疑
flatmap-stream项目的攻击代码会扫描用户的nodemodlues目录,一旦发现了特定模块(猜测copay模块),就会注入恶意代码,从而盗取使用了copay.io钱包用的户的电子货币。
存
在问题的代码,关键payload用AES进行了加密
而原管理者表示自己管理这个项目时在义务劳动,既然有人想接手,自己也乐于转交给他人。
原管理者对此事的回应,表示是对方先找到他
最后@FallingSnow表示,大家可以通过命令行 npm ls event-stream flatmap-stream 查看自己是否被影响。并且版本event-stream@3.3.4是安全的,大家可以放心使用。npm已紧急将这个含有恶意代码的 flatmap-stream 项目删除。
存在flatmap-stream则说明有问题
据悉,项目原管理员@dominictarr是义务维护着几百个开源项目的专家,可能是实在无法长期坚持下去,再加上@right9ctrl利用社会工程学等让管理员相信了他的诚意,所以才把项目给他管理。这也提醒我们,开源项目也处处存在着危险,维护开源项目巨大的精力消耗不仅时刻考验着项目管理者,也可能攻击者渗透的新角度。
项目地址:https://github.com/dominictarr/event-stream/issues/116