返回文章库

供应链投毒预警:1.3万Fork伪装交易机器人,npm install即触发凭据窃取

查找币 漏洞披露 安全研究 Web3安全 区块链安全
供应链投毒预警:1.3万Fork伪装交易机器人,npm install即触发凭据窃取

查找币安全研究院

链上取证分析 | Web3 风险核验 | Web3 事件响应
以合法授权、证据保全、隐私保护和可复核流程为前提,不要求用户在线提交敏感凭证或非公开材料。

查看研究院 研究报告中心
## 背景:一场针对交易开发者的精准投毒 当你在GitHub上搜索“Binance 期货交易机器人”时,一个看似完整的项目映入眼帘。README要求你填入API Key和Secret,然后执行 `npm install` 安装依赖,最后 `node index.js` 启动。你按部就班地操作——却不知道,`package-lock.json` 中一个名为 `stake-math@3.5.4` 的依赖,正准备在安装阶段自动下载并执行一个专门窃取交易机器人凭据的后门。 这不是假设。近日,**查找币安全团队**通过 **查找币监控系统** 在npm生态威胁狩猎中确认,`stake-math@3.5.4` 是一个伪装成Kelly Stake数学计算工具的恶意npm包。它通过1个精确锁定的版本引用和2个利用语义化版本范围的高危入口,在GitHub上大规模传播。背后牵扯出一个拥有约 **1.3万个仓库** 的批量Fork网络,以及多个覆盖不同交易方向的独立传播账号。 攻击者无需入侵任何正版包——这批包本身就是为伪装成数学工具而创建的恶意依赖。 ## 攻击机制:无需require,安装即执行 该恶意包的攻击链路极为隐蔽且自动化: 1. **触发点**:`postinstall` 生命周期脚本在 `npm install` 完成后自动触发 2. **载荷获取**:从远程JSON配置获取二阶段凭据窃取载荷 `stake-peer.tgz` 3. **隐蔽部署**:下载到隐藏目录 `.peer/` 后再次执行 `npm install` 4. **数据采集**:最终加载 `peer-math.js`,启动对 `.env`、钱包私钥、浏览器扩展、SSH/云凭据和源码密钥的深度采集 **关键风险点**:开发者不需要在代码中 `require` 该包,不需要显式调用任何API——只要执行 `npm install` 且未使用 `--ignore-scripts` 参数,恶意行为即自动触发。 ## GitHub入口分析:三个高危投递渠道 ### 1. 精确命中:donoaccestag/forex-mt5-trading-bot 该仓库声称实现MT5外汇自动交易,README引导用户输入MT5交易账号、密码和交易服务器地址。其 `package-lock.json` 精确锁定了 `stake-math@3.5.4`,并标记 `hasInstallScript: true`。 这是风险最明确的单一入口:lockfile排除了版本解析的不确定性,安装脚本标记直接表明生命周期脚本会被执行。按照项目流程执行 `npm install` 的开发者,将完整触发: - `postinstall` → `install-check.cjs` → 二阶段 `.tgz` 下载 → `.peer/` 解压与二次安装 → `syncSession()` 恶意链路 项目要求配置的MT5交易凭据与二阶段凭据采集能力精确重合。 ### 2. 高风险依赖范围:Binance与Polymarket交易机器人 另外两个仓库虽然同样引入 `stake-math`,但证据形式不同: - **daishangona/binance-futures-trading-bot**:Binance期货交易机器人,`package.json` 声明 `"stake-math": "^3.0.0"` - **Poly-Sports/polymarket-sports-arbitrage-bot**:Polymarket体育赛事套利工具,同样声明 `"stake-math": "^3.0.0"` 两个仓库均未在公开页面观察到lockfile,因此无法直接确认 `npm install` 最终解析出的具体版本。但 `^3.0.0` 允许解析到3.x系列中的任意版本,包括恶意的 `3.5.2`、`3.5.3` 和 `3.5.4`。在恶意版本仍可被npm registry解析的情况下,这两个仓库的依赖声明构成实际安装风险。 ### 3. 为什么交易机器人是高价值投递场景 交易机器人项目天然要求开发者准备高价值Secret: - Polymarket项目需配置Polygon私钥、PolyMarket API Key - Binance项目需配置Binance API Key与Secret - MT5项目需配置交易账号与密码 这些凭据与二阶段窃取器的采集目标高度匹配:`.env` 文件、浏览器扩展、SSH/云凭据、源码密钥等。 ## 1.3万Fork网络:批量投毒的运作模式 本次事件最值得警惕的特征是:攻击者构建了一个约1.3万个仓库的批量Fork网络。这些Fork仓库表面上看起来是独立的交易机器人项目,实则共享相同的恶意依赖结构。攻击者通过以下方式扩大攻击面: - **批量创建Fork**:利用自动化脚本对原始恶意仓库进行大规模Fork - **分散风险**:多个账号、多个仓库、多个交易方向(外汇、期货、体育套利) - **降低警惕**:每个仓库看起来都是独立的、有贡献历史的项目 这种模式使得传统的基于单个仓库的检测手段难以有效覆盖。 ## 技术指标与IoC 以下是查找币安全团队捕获的关键恶意文件哈希: | 文件名 | SHA256 | |--------|--------| | stake-peer.tgz | 85ae9937...c4043c183404161b5ee9e74b76b29af87e3e45faf6a33463c0d2366b3ac4c8b3 | | poly-kelly-3.5.2.tgz | 89f12f0674aef63d39cce312b3e52a14175b0e46e46fd87dfeae65ee30dbdd48 | | log-taker-0.0.8.tgz | 4570c03db5fc7377d56c1728f3110581d56c11d27f7dcf785c6157fab4cdb11b | ## 防护建议 针对此类供应链投毒攻击,查找币安全团队建议开发者采取以下措施: ### 开发者防护 1. **使用 `--ignore-scripts` 参数**:执行 `npm install --ignore-scripts` 可阻止所有生命周期脚本执行 2. **配置全局忽略脚本**:在 `.npmrc` 中添加 `ignore-scripts=true` 3. **审查依赖锁定文件**:定期检查 `package-lock.json` 或 `yarn.lock` 中的异常依赖 4. **使用镜像源并验证完整性**:通过 `npm audit` 或第三方安全工具验证包完整性 5. **警惕README要求输入凭据的项目**:正规交易机器人通常通过配置文件或环境变量管理凭据,而非要求直接输入 ### 企业防护 1. **部署npm代理缓存**:在内部网络中部署npm代理,过滤已知恶意包 2. **启用包签名验证**:使用 `npm audit signatures` 验证包签名 3. **集成供应链安全工具**:使用Snyk、Socket.dev等工具自动化检测依赖风险 4. **建立开发环境隔离**:在沙箱或容器中执行 `npm install`,避免直接暴露生产凭据 ## 查找币安全团队响应 查找币监控系统 已第一时间通过情报推送与客户告警通道同步此风险。我们正在持续追踪该攻击者的基础设施和关联仓库,并将及时更新情报。 **本文由查找币安全团队整理发布** *参考来源:Safedep.io DeFi Infostealer Fake Arbitrage Bot npm 分析报告*
在文章库中查看和回复