Injective 开发者使用的一款软件工具的恶意版本被设计用于收集钱包私钥和恢复短语,引发了人们对通过受影响版本处理敏感钱包信息的应用程序的担忧。黑客入侵了 Injective 区块链开发者用于构建钱包和应用程序的软件包,添加了能够秘密收集加密钱包凭证的代码。
安全公司 Socket 在 @injectivelabs/sdk-ts 的 1.20.21 版本中发现了恶意代码,该软件包有助于应用程序连接 Injective 并管理钱包相关功能。该软件包通常每周约有 50,000 次下载,尽管该数字包含所有版本,并不代表受此事件影响的人数。
Socket 表示,受感染的版本被下载了约 310 次。然而,下载并不自动意味着钱包密钥已泄露。危险代码需要在应用程序处理私钥或恢复短语时运行。目前尚未公布受影响钱包的确切数量,也没有公开证据表明资金被盗。
此次事件并未涉及 Injective 区块链本身的 breaches。相反,攻击者针对的是开发者使用的可信软件组件,这种方法通常被称为软件供应链攻击。
开发者通常依赖现成的软件包,而不是从头编写应用程序的每个部分。这些软件包可以处理诸如连接区块链、创建钱包和签署交易等任务。在这种情况下,恶意代码被植入官方 Injective 软件包中,旨在当应用程序处理敏感钱包信息时激活。Socket 表示,它可以捕获私钥或助记词恢复短语,并试图将数据发送出去,同时将活动伪装成普通的技术报告。
私钥赋予持有者对相关加密钱包的控制权。恢复短语可用于在另一台设备上恢复同一钱包。与普通账户密码不同,这些凭证一旦泄露无法简单重置。
私钥泄露已成为最具破坏性的加密攻击形式之一,因为犯罪分子无需破解底层区块链即可直接控制钱包。最近的一项安全审查发现,在其检查的数据集中,私钥事件约占记录损失的 40%。Injective 事件也显示了为什么攻击者越来越多地针对用户已经信任的软件和平台。熟悉的软件包名称、既定的开发者账户或公认的应用程序可以使恶意活动看起来合法,并降低用户质疑的可能性。
Socket 表示,未经授权的更改是通过一位有向 Injective 项目贡献历史的开发者的 GitHub 账户提交的。真正的账户所有者后来发现了该活动并撤销了更改。现有报告未指明攻击者身份,也未解释账户是如何被访问的。
窃取钱包的代码位于主 Injective SDK 软件包的 1.20.21 版本中。然而,Injective npm 集合中的其他 17 个软件包发布时链接到了同一个受影响版本。这意味着一些开发者可能间接接收了受感染的软件。应用程序可能安装了一个 Injective 软件包,而该软件包在后台自动引入了受影响的 SDK。
因此,此次事件不应被描述为 18 个单独感染的软件包。现有证据显示,主 SDK 包含恶意功能,而 17 个相关软件包直接或间接依赖于该版本。Socket 表示,在发现入侵并发布干净版本后,受影响的版本被标记为弃用。然而,在 Socket 发布报告时,受感染版本尚未从 npm 完全移除,相关发布材料仍可通过 GitHub 获取。
关于事件的确切日期,报道也存在差异。Socket 发布的时间线指向 6 月 8 日,而一些次要报道则将活动定在 7 月。由于月份尚未独立核实,确切日期应归因于来源,而非作为无可争议的事实陈述。
建议直接使用或通过其他 Injective 软件包使用 1.20.21 版本的开发者,假设受该软件处理的钱包凭证可能已泄露。
建议采取的措施包括:
如果凭证已被复制,仅更新软件包可能无法保护钱包。一旦另一方获得私钥或恢复短语,旧钱包就不应再被视为安全。钱包用户还必须审查他们批准的权限。在另一起案件中,受害者在签署恶意权限请求后,攻击者窃取了约 92,000 美元的 Tether Gold,这表明犯罪分子并不总是需要直接获取种子短语才能窃取资产。
虽然该案件使用了不同的技术,但它突出了同样的更广泛问题:加密安全不仅取决于区块链,还取决于围绕钱包的软件、批准和服务。目前没有证据表明 Injective 区块链被黑客攻击,每个 Injective 钱包都面临风险,或有确定数量的加密货币被盗。已知危险仅限于安装了受感染软件包并通过其处理钱包凭证的应用程序。

