热门npm 库 “coa” 被劫持并被注入恶意代码,影响全球所有的 React 管道。“coa” 库的全称是 ”命令-选项-参数“,每周的下载量约为900万次,用于 GitHub 上近500万个开源库中。几小时后,另外一个常用的npm组件 “rc” 也遭劫持,”rc”库的每周下载量达到1400万次。
恶意代码被注入 “coa” 发布
今天,全球所有的开发人员都会吃惊:npm 库 “coa” 竟然发布了新版本,要知道这个项目已经有数年没有人动过,今天突然出现在npm库中。“coa” 是 Node.js 项目的命令行选项解析器。该项目的最新稳定版 2.0.2 在2018年12月发布。但就在几个小时前,npm 上出现了可疑版本 2.0.3、2.0.4、2.1.1、2.1.3和3.1.3,导致依赖于 “coa” 库的 React 程序包崩溃。
一名 React 开发人员 Roberto Wesley Overdijk 指出,”我不确定发生了什么,但10分钟前发现一个发布版本(尽管GitHub 上的最后一次更新是在2018年)。这个发布版本导致互联网崩溃。“另外一名昵称为 ElBidouilleur 的GitHub 用户发现其中一个 “coa” 版本2.1.3 使其build 崩溃:
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! coa@2.1.3 preinstall:start /B node compile.js & node compile.js
npm ERR!Exitstatus1
npm ERR!
npm ERR!Failedat the coa@2.1.3 preinstall script.
npm ERR! Thisis probablynot a problemwith npm. Thereis likely additionalloggingoutput above.
npm ERR! Acompletelogof this run can befoundin:
npm ERR! /home/mboutin/.npm/_logs/2021-11-04T14_01_45_544Z-debug.log
多名开发人员加入讨论,证实了自己在 “coa” 新版本发布后,build 出现各种问题。
不久后另外一个热门的npm库 “rc” 也被劫持,npm 中出现了恶意版本1.2.9、1.3.9和2.3.9。
恶意软件类似于被黑的 “ua-parser-js” 和虚假 Noblox 包
上个月,另外一个流行的热门 npm 库 “ua-parser-js” 被黑。该库用于 Facebook、微软、亚马逊、Reddit 和其它科技巨头。
据 Bleeping Computer 分析,被黑的 “coa” 版本中所含的恶意软件和被劫持的 “ua-parser-js” 版本中的代码十分相似,可能说明这两起事件背后的威胁行动者之间存在关联。
分析指出,被黑的 “coa” 版本 2.0.3、2.1.3和其它版本中仅包含可疑的 preinstall 脚本:
"preinstall":"start /B node compile.js & node compile.js"
但从2.0.4版本中才发现完整的恶意代码。预装脚本引用的 “compile.js” 在 coa:2.0.4中存在并运行。“compile.js” 文件中包含混淆的 JavaScript 代码。
该 JavaScript 文件之后启动 Batch 文件,即 “coa” npm 文档中包含的 “compile.bat”。该 Batch 脚本虽然未再次混淆,但在上周发现的虚假 Noblox npm typosquat 中,它将在受感染机器上安装勒索软件和凭据窃取工具。它应用的是混淆的“变量扩展“概念。
该 Batch 文件下载并运行 pastorcryptograph[.]at 的 “sdd.dll”,它和被劫持的 “ua-parser-js” 版本时访的 “sdd.dll” 并不相似。而”rc”恶意版本释放的 “sdd.dll” 和这两个从校验和角度来看又有所不同。但所有的DLLs都植入了相同的恶意软件。
如下是未混淆的 Batch 文件。
从现有的分析和信息来看,该恶意软件很可能是 Windows 版本的 Danabot 密码窃取木马。通过 regsvr32.exe 加载时,它最终会再次使用具有多种参数的 rundll32.exe 启动来执行不同的恶意行为。
加载时,Danabot 将执行多种恶意活动,包括:
从多种 web 浏览器中窃取木马,包括 Chrome、Firefox、Opera、IE 和 Safari。
从多款应用中窃取木马,包括VNC、在线赌博应用、FTP客户端和邮件账户
窃取存储的信用卡
截取活跃屏幕
记录键击
所有被盗数据之后被发送回给威胁行动者,从而攻陷受害者的其它账户。
COA 用户如何应对?
鉴于该供应链攻击的影响广泛,强烈建议所有的 “coa” 库和 “rc” 库用户检查自己的项目中是否存在恶意软件,如检查是否存在 compile.js、compile.bat、sdd.dll,如存在则删除。
由于该 “sdd.dll” 变体在 VirusTotal 中被检测为木马,而 “ua-parser-js” 释放的时凭据窃取工具,因此受感染用户应当假定自己的设备已被完全攻陷并更改密码、密钥并刷新令牌,因为它们可能遭攻陷并被发送回给威胁行动者。
Overdijk 表示,”NPM 已删除被攻陷版本,如我理解正确,应该拦截了临时发布的新版本,同时恢复了对该软件包的访问权限。由于已删除受影响版本,因此无需任何修复方案。“他表示,以防万一,建议仅使用2.0.2稳定版,直到问题完全解决。
对于“rc”库而言,安全版本是1.2.8。npm 项目组表示,”从调查结果来看,我们实时发现了包含类似于’coa’程序包中恶意软件的 ‘rc’ 程序包。’rc’恶意版本立即从注册表中删除,我们已发布安全公告“。
Npm 表示该事件是由失陷的某 npm 账户造成的,建议npm维护人员使用双因素认证,阻止此类攻击。
原文链接
https://www.bleepingcomputer.com/news/security/popular-coa-npm-library-hijacked-to-steal-user-passwords/
声明:本文来自代码卫士,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。