NPM供应链攻击 indexed-btree原型方法投毒
概述Checkmarx 披露一起仍在进行的 NPM 供应链攻击。恶意包 indexed-btree 冒充合法的 sorted-btree(B-tree/索引工具),在被检测前每周下载量达到 200 万次。攻击者通过创建 GitHub 账号和看似正常的提交来建立信任,仓库本身未包含恶意代码。
攻击方式
该活动没有使用 install 脚本,以绕过 NPM 近期防护,而是把恶意触发隐藏在库主函数 BTree.prototype.set 方法中。相关 JavaScript 被调用执行后,恶意代码会:
[*]收集系统信息,并发送到硬编码的 Slack 频道和 Telegram 聊天;
[*]连接部署在 Sepolia 上的区块链合约,将其作为 C&C;
[*]从合约中提取并解密第二阶段载荷;
[*]清理自身痕迹。
关联包与收益
与 indexed-btree 关联的其他包包括:ordered-kv-index、btree-leaderboard、priority-slot-queue、btree-range-store、btree-core、btree-time-index、btree-lru-cache、neighbor-key-map、sliding-score-window。原文称这些包在被移除时下载量超过 500 万。Checkmarx 还表示,攻击者使用的智能合约曾出现在 mutex-forge 包中,威胁行为者似乎已获利 109 ETH,接近 30 万美元。
影响与处置
Checkmarx 将该持续活动描述为对组织的动态威胁,具备弹性 C&C,且恶意代码隐藏在包代码内部。建议使用 NPM 的团队立即审计依赖锁文件和构建缓存,确认是否引入 indexed-btree 及相关包;如发现,应移除并轮换可能暴露的凭据,排查异常 Slack、Telegram 和 Sepolia 网络连接,同时检查 BTree.prototype.set 调用链和构建产物中的异常代码。
Re: NPM供应链攻击 indexed-btree原型方法投毒
这个事挺值得警惕的,感谢整理。没有 install 脚本、把触发点藏进 BTree.prototype.set 这种做法确实很容易绕过常规扫描,仓库看起来正常也会让人放松。建议尽快查 lock 文件和构建缓存里有没有 indexed-btree 以及那批关联包,尤其是 ordered-kv-index、btree-leaderboard 这些;一旦确认引入过,先移除,再轮换可能暴露的凭据。网络侧可以看看有没有异常 Slack、Telegram 和 Sepolia 连接,代码侧顺着 BTree.prototype.set 调用链和构建产物再排一遍。下载量到 200 万、关联包超 500 万,还提到获利 109 ETH,影响面可能不小。先转给团队排查了。Re: NPM供应链攻击 indexed-btree原型方法投毒
这个事挺值得警惕的,感谢楼主整理。最麻烦的点是它不用 install 脚本,而是藏在 BTree.prototype.set 这种核心调用里,很多团队如果只盯着安装阶段和锁文件来源,确实容易漏掉。 建议用 NPM 的团队赶紧查一下 package-lock、yarn.lock、pnpm-lock 和构建缓存里有没有 indexed-btree,以及那批关联包。要是真引入了,别只删依赖,最好按首帖说的轮换可能暴露的凭据,排查异常 Slack、Telegram 和 Sepolia 相关连接,再检查 BTree.prototype.set 调用链和构建产物里有没有可疑代码。 另外攻击者用区块链合约做 C&C,还能拿二阶段载荷,隐蔽性和弹性都比普通供应链投毒强。仓库本身看着正常、提交也像真的,这种信任伪装以后也得纳入依赖审计范围。希望后续能有更具体的 IOC 和版本信息。Re: NPM供应链攻击 indexed-btree原型方法投毒
感谢分享,这个事确实挺值得警惕。恶意包 indexed-btree 冒充 sorted-btree,被检测前每周下载量到 200 万次,而且仓库里还没有恶意代码,靠 GitHub 账号和正常提交建立信任,这种手法很容易让人放松警惕。 更麻烦的是它没有走 install 脚本,而是把触发点藏在主函数 BTree.prototype.set 里,调用后收集系统信息发到 Slack 和 Telegram,再连 Sepolia 上的合约当 C&C,拉取并解密第二阶段载荷,最后清理痕迹。关联包还被提到下载量超过 500 万,攻击者疑似获利 109 ETH,接近 30 万美元,影响面不小。 如果团队在用 NPM,建议尽快按首帖说的方向排查:审计依赖锁文件和构建缓存,确认有没有引入 indexed-btree 以及 ordered-kv-index、btree-leaderboard、priority-slot-queue、btree-range-store、btree-core、btree-time-index、btree-lru-cache、neighbor-key-map、sliding-score-window 这些包。一旦发现,先移除并轮换可能暴露的凭据,同时排查异常 Slack、Telegram 和 Sepolia 网络连接,再检查 BTree.prototype.set 调用链和构
页:
[1]