软件供应链攻击已在近年成为不可忽视的威胁,Checkmarx安全研究团队最近发现了一种新类型,将区块链技术用于软件供应链的新形态攻击方法。该攻击使用以太坊(Ethereum)区块链智能合约作为指挥与控制(C2)服务器的中介,通过NPM组件传播跨平台恶意软件。这种使用区块链的攻击手段,不仅提升了攻击的隐蔽性,也使攻击架构更难被阻断,成为软件供应链的新威胁。
该攻击行动通过NPM生态系中的仿冒组件jest-fet-mock启动,该组件伪装成为合法的JavaScript测试工具。攻击者利用Typosquatting技术仅修改fetch单词拼法,在NPM中发布仿冒组件,而该组件在安装过程会执行预安装脚本以自动加载恶意程序代码,并进行下一步攻击程序。
不仅针对Windows平台,该攻击同时也影响Linux与macOS开发环境。研究人员指出,这种跨平台攻击策略可对各种操作系统的开发基础设施产生影响,而且因为开发人员通常拥有更高的系统权限,开发组件也会集成至CI/CD工作管线,因此对开发环境和构建系统带来高安全性风险。
而之所以这个攻击值得注意,其最大的特点在于智能合约的使用方式,攻击者在Ethereum上部署了一个智能合约,存储指挥与控制服务器的地址,并通过公开交易查询的形式,让受感染的系统自动获取最新的指挥与控制服务器地址。
这样的设计存在两大优势,第一是利用区块链的不可更改特性,使攻击架构更加稳定难以移除,第二则是通过更新智能合约的方式,攻击者便能够更换服务器地址,使攻击能够持续进行,并且绕过传统的防护措施。
研究团队认为这种攻击方式,突破了传统软件供应链的框架。过去攻击者通常直接将指挥与控制服务器的地址嵌入到恶意软件中,而只要服务器遭到封锁攻击便会终止,但是通过智能合约的分布式架构,攻击者可即时更新攻击指令,恶意软件就可持续发挥作用,难以轻易移除。
其他安全公司Phylum与Socket也发现连接至同一个攻击行动的其他NPM组件。Checkmarx研究人员判断这是一个持续进行中的攻击活动。要防止受到这类型的软件供应链攻击,研究人员建议开发者在引入外部组件时,应该仔细确认真实性与来源,并谨慎评估安全风险。