据bleepingcomputer 报导,11 月 4 日,流行的 npm 库“coa” 被劫持,其中注入了恶意代码,短暂地影响了世界各地的 React 管道。
“coa”是 Command-Option-Argument 的缩写:Node.js 项目的命令行选项解析器。这个库每周在 npm 上的下载量约为 900 万次,被 GitHub 上近 500 万个开源存储库使用。
该项目的最后一个稳定版本 2.0.2 于 2018 年 12 月发布。但是,在 npm 上突然出现了几个可疑版本 2.0.3、2.0.4、2.1.1、2.1.3 和 3.1.3,这些恶意版本破坏了依赖于“coa”的 React 包:
目前这些恶意版本已被 NPM 删除。
相似的攻击方式
10 月,我们报导了另一个 流行的 npm 库“ ua-parser-js ”遭到劫持, 而这次被黑的 “coa” 版本中包含的恶意 混淆的 JavaScript 代码 ,与上次被劫持的 ua-parser-js 版本几乎相同,可能两起事件背后的威胁参与者建立了一些联系。
而它的 batch 脚本内容,又跟我们报导的假的 Noblox npm 包里面的 .bat 脚本风格非常相似:在受感染的机器上安装勒索软件和账号密码窃取程序,甚至连变量扩展 ( variable expansion)这种 加密方法都一模一样:
而 coa 最后释放的 恶意软件,是 Windows 的 Danabot 密码窃取木马,它会盗取这些数据并发送给攻击者:
- 从各种网络浏览器窃取密码,包括 Chrome、Firefox、Opera、Internet Explorer 和 Safari。
- 从各种应用程序窃取密码,包括 VNC、应用程序、FTP 客户端和邮件帐户。
- 窃取存储的信用卡。
- 截取活动屏幕的屏幕截图。
- 记录按键。
出于这类供应链攻击的广泛影响,强烈建议 “coa” 库用户检查自己的项目是否有恶意软件,包括检查 compile.js、 compile.bat、sdd.dll 这些文件是否存在。 如果确认已经受感染,请更改设备上的密码、密钥和令牌,同时将 coa 的 npm 版本固定到稳定版本“2.0.2”。