近期,一次可以追溯到2021年12月的NPM供应链攻击使用了几十个包含模糊Javascript代码的恶意NPM模块,并破坏了数百个应用和网站。正如供应链安全公司ReversingLabs的研究人员所发现的那样,这一行动(被称为IconBurst)背后的威胁行为者针对一些开发者使用URL劫持,如gumbrellajs和ionic.io NPM模块。
他们通过非常相似的模块命名方式来诱骗受害者,添加恶意软件包旨在窃取嵌入表单(包括用于登录的表单)的数据到他们的应用程序或网站。例如,该活动中使用的一个恶意NPM软件包(icon-package)有超过17,000次下载,为的就是将序列化的表单数据窃取到多个攻击者控制的域。ReversingLabs的逆向工程师Karlo Zanki说,IconBurst依赖于URL劫持,这些恶意软件包的名称与合法的文件类似。此外,用于泄露数据的域之间的相似性表明,该活动中的各个模块都在同一个参与者的控制之下。
虽然ReversingLabs 团队于2022年7月1日已联系了NPM安全团队,但NPM注册表中仍然存在一些 IconBurst 恶意软件包。“虽然已经从NPM中删除了一些,但在本报告发布时大多数仍然可供下载,”Zanki说,“由于很少有开发组织能够检测开源库和模块中的恶意代码,因此攻击持续了几个月才引起我们的注意。”
尽管研究人员可以编制一份用于IconBurst供应链攻击的恶意软件包列表,但其影响尚未确定,因为无法知道自去年12月以来通过受感染的应用程序和网页窃取了多少数据和凭据。
当时唯一可用的指标是每个恶意 NPM 模块的安装次数,而ReversingLabs的统计数据相当惊人。“虽然目前尚不清楚这次攻击的全部范围,但我们发现的恶意软件包可能被数百甚至数千个下游移动和桌面应用程序以及网站使用。捆绑在NPM模块中的恶意代码正在未知数量的移动和桌面应用程序和网页中运行并被获取大量用户数据,最后,我们团队确定的NPM 模块的总下载量已超过 27,000 次。”