Mat*_*att 167
tldr;
天啊!事实证明,事件流包有一个漏洞,允许黑客窃取比特币.
要修复它,您需要更新您的event-stream包.
node_modules文件夹.package-lock.json文件.npm install.这应该将您的软件包更新为安全版本,您应该很高兴.
以下是NPM博客的官方回复:
有关事件流事件的详细信息这是对本周早些时候许多人了解到的事件流事件的分析.npm立即采取行动解决影响我们社区安全的运营问题和问题,但我们通常在讨论事件之前进行更彻底的分析 - 我们知道您一直在等待.
在11月26日上午,npm的安全团队收到了一个恶意软件包的通知,该软件包已经进入事件流,这是一个流行的npm软件包.在对恶意软件进行分类后,npm Security通过从注册表中删除flatmap-stream和event-stream@3.3.6并获取事件流包的所有权来进行响应,以防止进一步滥用.
恶意程序包是flatmap-stream的0.1.1版本.这个包是在2018年9月9日版本3.3.6中由新维护者直接依赖事件流包添加的.事件流包被广泛使用,但恶意代码针对具有非常特定的开发环境设置的公司的开发人员:在任何其他环境中运行有效负载都没有效果.这种特定的定位意味着,即使他们错误地安装了恶意模块,大多数开发人员也不会受到影响.
注入的代码以Copay应用程序为目标.当Copay的开发人员运行其中一个发布版本脚本时,生成的代码会在捆绑到应用程序之前进行修改.该代码旨在从余额超过100比特币或1000比特币现金的账户中收集账户详细信息和私钥.
Copay最初的回应是没有包含此恶意代码的构建版本向公众发布,但我们现在已经从Copay确认"恶意代码已部署在5.0.2到5.1.0版本上".
攻击此攻击始于社会工程攻击.攻击者冒充维护者,接管了事件流模块的维护工作.
技术细节以下是我们了解的一些技术细节,对于您对此感兴趣的人.
注入的代码:
从伪装成测试夹具的文件中读取AES加密数据使用自动设置的环境变量获取导入模块的npm包描述使用包描述作为密钥来解密从伪装文件中提取的数据块解密的数据是模块的一部分,然后在内存中编译并执行.
该模块执行了以下操作:
从伪装文件中解密出另一块数据连接从第一个解密块到第二个解密块结尾的一个小的注释前缀执行次要解码任务,将连接的代码块从无效JS转换为有效JS(我们相信这是通过动态分析工具来逃避检测)将这个已处理的JS块写入存储在依赖关系中的文件中,该文件将由构建脚本打包:写出的代码块是实际的恶意代码,用于运行在Copay最终用户拥有的设备上.
此代码将执行以下操作:
检测当前环境:Mobile/Cordova/Electron检查受害者的共同账户上的比特币和比特币现金余额如果当前余额大于100比特币,或1000比特币现金:收获受害者的账户数据全部收获受害者的自付费私钥将受害者的帐户数据/私钥发送到111.90.151.134上运行的收集服务.对于Copay应用程序的用户,bitpay建议,"如果您使用的是从5.0.2到5.1.0的任何版本,则不应运行或打开Copay应用程序."
对于npm用户,您可以通过运行npm audit来检查您的项目是否包含易受攻击的依赖项.如果您已安装此事件流的受影响版本,我们建议您尽快更新到更高版本.
小智 6
实际上,我们不需要更新所有依赖于event-stream@3.3.6的软件包。
您可以打开package-lock.json,删除所有事件流引用,然后npm install再次调用。会更快。
之后,npm shrinkwrap && mv npm-shrinwrap.json package-lock.json应仅更新事件流引用,而不是整个文件
| 归档时间: |
|
| 查看次数: |
32039 次 |
| 最近记录: |