返回文章库

供应链投毒深度剖析:Injective SDK 官方包暗藏私钥窃取逻辑

查找币 漏洞披露 安全研究 Web3安全 区块链安全
供应链投毒深度剖析:Injective SDK 官方包暗藏私钥窃取逻辑

看似正常的官方依赖,却在悄悄搬运你的钱包私钥。

在 Web3 开发中,引入官方 SDK 是再寻常不过的操作。然而,近日一起针对 Injective 生态的供应链攻击事件,再次敲响了警钟:官方源发布的包,也可能携带恶意代码。

经查找币安全团队监控系统捕获并确认,npm 上的 @injectivelabs/sdk-ts 版本 1.20.21 存在严重恶意行为。该版本并非仿冒包,而是被植入了恶意代码的正版构建产物。开发者一旦调用特定钱包接口,助记词或私钥便会在后台被静默外传。

攻击概述:一次“合法”的密钥窃取

@injectivelabs/sdk-ts 是 Injective 链上开发的核心工具库,广泛用于交易构造、链上查询以及钱包密钥管理。正是这样一个高权限组件,成为了攻击者的目标。

恶意行为核心:当开发者调用 PrivateKey.generate()、PrivateKey.fromMnemonic() 或字符串形式的 PrivateKey.fromHex() 时,恶意代码会将助记词或私钥捕获,经过 Base64 编码后,隐藏在 HTTP 请求的 X-Request-Id 头中,外传至攻击者控制的服务器。

技术分析:拆解恶意代码的伪装与触发逻辑

线索一:安装阶段“干净”,迷惑性极强

调查初期,通过对 package.json 的审查(约第 485-500 行),并未发现 postinstall 或 preinstall 等安装后门脚本。这意味着,单纯安装该包不会立即触发恶意行为,传统的依赖安装日志扫描难以发现异常。攻击的触发点被推迟到了运行时,隐蔽性极强。

线索二:伪装成“遥测模块”的密钥收集器

恶意代码被植入在 accounts 构建文件中。为了掩盖其真实目的,攻击者使用了极具迷惑性的注释,如 key-derivation-telemetry、anonymized usage metrics 和 SDK optimization,试图将窃密行为伪装成常规的 SDK 数据统计。

然而,正常的遥测通常只采集方法名或调用耗时等元数据。此处代码却直接接收完整的助记词或私钥原文,未做任何哈希或脱敏处理。这是最核心的逻辑矛盾——注释声称是匿名统计,数据载荷却是用户的根密钥。

线索三:触发路径与关键代码片段

恶意函数的调用点非常精准,主要涉及以下三种密钥派生场景:

  1. 生成新钱包:PrivateKey.generate() 内部生成助记词后,会调用 fromMnemonic()。
  2. 导入助记词:PrivateKey.fromMnemonic(words) 将完整助记词直接传递给 trackKeyDerivation()。
  3. 导入私钥:字符串形式的 PrivateKey.fromHex(privateKey) 会将完整私钥传递给同一记录函数。

注意:fromPrivateKey() 方法并未调用该记录函数,因此并非所有私钥接口都会触发外传。

关键恶意代码逻辑位于 dist/esm/accounts-jQ1GSgaW.js 文件中,核心逻辑如下:

// 恶意代码(逻辑还原)
static fromMnemonic(words, path) {
  trackKeyDerivation("fm", words); // 捕获助记词
  return new PrivateKey(...);
}

static fromHex(privateKey) {
  trackKeyDerivation("fh", typeof privateKey === "string" ? privateKey : "bytes");
  // ...
}

trackKeyDerivation 函数会将捕获的密钥材料推入队列,经 Base64 编码后,作为 X-Request-Id 请求头发送至远程地址。

威胁定性:针对开发者资产的定向打击

此次攻击属于典型的 供应链投毒,其特点是:

防护建议与排查方案

针对此类攻击,查找币安全团队建议开发者立即采取以下措施:

  1. 立即升级版本:请检查项目依赖,将 @injectivelabs/sdk-ts 升级至 1.20.21 之后的修复版本。
  2. 检查历史版本:如果曾使用过受影响版本,需立即检查已生成的助记词或私钥是否已泄露。建议将受影响钱包中的资产全部转移至新生成的安全钱包。
  3. 网络层监控:在开发环境中留意是否存在包含异常 X-Request-Id 头的 POST 请求,尤其是发往未知域名的请求。
  4. 善用安全工具:将依赖扫描纳入 CI/CD 流程。可使用查找币监控系统(Web3 安全监控平台)或相关 CLI 工具对项目依赖进行恶意代码扫描。

IoC 指标

总结

本次事件再次证明,在 Web3 开发中,“官方源”不等于“绝对安全”。对于处理密钥的敏感库,安全团队建议建立多层防御机制,包括但不限于依赖锁定、行为监控以及定期审计。

查找币安全团队将持续监控此类供应链攻击,并通过查找币监控系统提供实时的威胁情报与预警服务。


参考链接:


本文由查找币安全团队整理发布。查找币监控系统(Web3 安全监控与反洗钱平台)提供全面的链上数据监控与威胁情报支持。

前往社区查看和回复