针对NPM的“包混淆”攻击用于诱骗开发人员下载恶意软件

攻击者再次瞄准供应链,部署创新的区块链技术来隐藏命令和控制。


Malware-Warnhinweis umgeben von Code-Schnipseln

应用程序测试公司Checkmarx在发现一种新的攻击后,警告开发人员要警惕恶意的NPM软件包,该攻击使用拼写错误来冒充两个流行的软件包。


作为针对NPM的更大运动的一部分,在一个新的转折中,恶意软件包通过使用以太坊区块链来保存其恶意有效载荷的地址,从而避开了传统的命令与控制(C2)。


该活动针对的是用作Jest JavaScript测试框架一部分的两个流行的NPM(节点包管理器)包“fetch-mock-Jest”和“Jest fetch mock”,使用了一个外观相似的恶意包“Jest-fet-mock”。


攻击者的假设是,至少有一些开发人员会急于注意拼写错误,并下载其中一个恶意软件包。


但这似乎是首次针对NPM的攻击,恶意软件包执行一个例程,在通过以太坊区块链上发布的智能合约接收到服务器地址后下载恶意软件有效载荷。使用区块链来掩盖C2并不是什么新鲜事,但它为攻击者提供了重要的优势。


Checkmarx研究员Yehuda Gelb在分析中指出:“通过这种方式使用区块链,攻击者获得了两个关键优势:由于区块链的不可篡改性,他们的基础设施几乎不可能被拆除,而去中心化的架构使得阻止这些通信变得极其困难。”。


换句话说,没有单一的地址、IP或服务器可以阻止。也就是说,Checkmarx没有提到这项技术的缺点,包括区块链通信缓慢以及公开性。区块链不能轻易编辑或阻止,但一旦发现其作为恶意软件C2的一部分被使用,就可以对其进行跟踪。


尽管过去预测该技术会起飞,但这可能就是为什么使用区块链进行C2仍然是专业恶意软件的实验性保留。


包装混乱

也许故事中更重要的部分是,该技术正被用于针对通过NPM分发的测试工具,NPM是最大的开源JavaScript注册表。针对测试工具是进入特权开发人员测试环境的另一种方式,以及对它们所揭示的CI/CD管道的任何更深入的访问。


NPM已成为寻求渗透供应链的攻击者的反复目标,CSO Online等新闻网站以及Checkmarx本身都记录了这一点。


在这一点上,“jest-fet-mock”只是安全公司Phylum和Socket单独记录的更大的NPM包混淆活动中的一个例子。


据Phylum称,这涉及至少287个恶意软件包,所有这些软件包都部署了拼写错误技术,以针对下载一系列库(包括Puppeteer和Bignum.js)以及加密货币的开发人员。


问题是,考虑到恶意软件包可能会突然出现并且很难被发现,开发人员可以做些什么来保护自己?正如Checkmarx的Gelb所说,“恶意软件的跨平台性质,再加上在撰写本文时没有安全供应商在VirusTotal上将这些文件标记为恶意,使其对开发环境构成了非常危险的威胁。”


情况变得更糟了

除了打字和包装模仿之外,还有更黑暗的可能性。9月,一项大学研究表明,人工智能LLM编码工具可用于对开发人员进行“包幻觉”攻击。


LLM可能会产生一个不存在的包的幻觉,在合法代码中引用它。大多数时候,这将无法编译。但是,如果攻击者在此之前发现了这个虚构包的名称,他们就可以将其存在,并将休眠的恶意软件隐藏在其中。


这将是完美的供应链攻击,即使被发现,也没有简单的缓解措施。这个想法也不是理论:在30个不同的测试中,研究人员发现,他们查看的LLM生成的代码样本中,近20%包含对幻觉包的引用。


安固软件扫码咨询
扫码加微信咨询
免费使用安固软件,规范上网行为,即刻保护企业安全!!