黑客上架有问题的NPM组件的攻击活动不时传出,但最近出现新的手法引起了研究人员的注意,因为这种恶意组件的作案手法与众不同,即使开发人员发现中招、将恶意组件移除,也无法完全清理相关威胁。
安全企业ReversingLab披露恶意NPM组件ethers-provider2、ethers-providerz,这两个组件的主要功能是恶意程序下载工具,并隐藏其有效酬载,而且,在攻击链的第二阶段,黑客竟然“修补”了合法的组件ethers,但实际上,他们在这个组件里植入反向Shell。
值得留意的是,研究人员提及在披露这波攻击的时候,ethers-provider2尚未遭到下架。根据他们的调查,此组件黑客是针对热门的NPM组件ssh2进行镜像复制,然后加入恶意元素,因此该恶意组件仍大致具备ssh2相同的功能。
在恶意组件里,黑客变动原本的安装脚本install.js内容,内置利用有效酬载从指定域名下载第2阶段恶意软件的命令。一旦开发人员安装ethers-provider2,计算机就会执行install.js,将上述提及的作案工具下载到临时文件并执行,随后就将这个临时文件删除,并清除相关作案迹象。
ReversingLab提及第2阶段恶意软件相当特别,它会以无限循环的方式检查计算机是否安装名为ethers的组件,假若计算机存在该组件,恶意软件就会篡改其中的provider-jsonrpc.js组件,使得ethers执行的时候,会从恶意域名下载第3阶段的恶意软件。
附带一提的是,第2阶段的恶意软件还会产生另一个文件loader.js,内置与provider-jsonrpc.js相同功能的恶意程序代码。
对于第3阶段的恶意程序,就是用来与攻击者服务器连接的反向Shell,而其中的SSH用户端组件就是来自ethers-provider2,黑客以原本的ssh2为基础进行修改,使得这项组件能够接收额外的消息。