供应链攻击瞄准加密开发者:Injective SDK事件深度解析
近期一起针对区块链开发工具的供应链攻击引发了行业关注。安全研究团队发现,Injective生态系统中的一个核心开发工具包——@injectivelabs/sdk-ts的npm版本被植入了恶意代码。
攻击手法:从账户入侵到数据窃取
攻击者首先通过某种方式获得了该项目一名开发者的GitHub账户访问权限。利用这一权限,他们向该软件包的代码库提交了恶意更新。这些被添加的代码功能明确:在应用程序运行时,秘密搜寻并收集受害者的加密钱包私钥和助记词。
为了掩盖行踪,窃取到的敏感数据会被编码,然后悄然发送到一个伪装成Injective正规网络服务器的外部地址。这种手法使得恶意流量在初期检查中更难被识别。
影响范围远超想象
这个SDK并非边缘项目。数据显示,它每周的下载量大约在5万次左右,是许多基于Injective构建应用的开发者的基础依赖。
更严峻的问题是依赖链的传染性。 恶意版本(1.20.21)不仅本身有问题,还被“锁定”在了Injective Labs名下的其他17个软件包中。这意味着,即使开发者没有直接安装这个特定的SDK,但只要引用了那17个包中的任何一个,恶意代码就有可能被间接引入到项目中,极大地扩大了潜在的攻击面。
事件响应与持续风险
Injective联合创始人Eric Chen在事件被披露后回应称,问题已经得到修复,受影响的版本已被标记为弃用,并强调区块链网络本身的资金是安全的。然而,根据安全公司的统计,在修复前,这个包含后门的软件包已经被下载了超过310次。
安全研究人员指出,这种供应链攻击的遏制非常困难。由于恶意代码可能已经通过依赖关系潜入到众多下游应用和项目中,完全清除其影响需要时间,攻击活动可能仍未停止。这次事件为所有加密生态的开发者敲响了警钟:对第三方依赖,尤其是核心工具链的安全性审查,必须提升到最高级别。
给开发者的安全建议
- 锁定依赖版本: 在 package.json 中使用确切的版本号或版本锁文件(如 package-lock.json, yarn.lock),避免自动安装最新的次要版本或补丁版本。
- 审查依赖变更: 定期审计项目依赖,特别是核心库的更新。关注安全公告,对任何间接依赖保持警惕。
- 使用安全工具: 集成能够扫描代码依赖中已知漏洞和安全问题的自动化工具。
- 最小权限原则: 为开源项目的贡献者账户和发布密钥设置严格的双因素认证和访问权限控制。