SBOM情报预警 | 恶意NPM组件窃取Solana智能合约私钥

近日(2025.02.15 ~ 2025.02.19),悬镜供应链安全情报中心在NPM官方仓库(www.npmjs.com)中捕获多起针对Windows、Linux及Mac平台Solana智能合约用户开展合约私钥窃取的NodeJs组件投毒事件。投毒者(satoshinana11)在npmjs官方源上连续投放4个伪装成Solana智能合约SDK的NPM恶意组件包,并利用代码混淆技术对抗静态安全检测,已有多名NodeJs开发者受到投毒攻击导致合约私钥泄露。

截至目前,这些恶意组件仍正常托管在NPM官方源及国内各大主流镜像源,对于NPM开发者来说存在较大安全隐患。悬镜安全已于第一时间将该系列恶意投毒包的详细技术分析向XSBOM供应链安全情报订阅用户进行推送预警。

solana合约窃密恶意组件列表

根据NPM官方接口统计,该系列Solana合约私钥窃密投毒组件近一个月的总下载量约为455次。

恶意组件月度下载量

投毒分析

Poisoning Analysis

以 serum-anchor-wallet 恶意组件为例,该系列恶意组件将投毒代码经过混淆后嵌入到lib/app.js 代码文件中,并伪装成Solana智能合约SDK。

恶意NPM包 serum-anchor-wallet

1

代码混淆

组件主模块入口 index.js 及 lib/app.js 代码文件如下所示,index.js 负责加载并执行 lib/app.js 文件中的混淆代码。

投毒组件恶意模块代码

对恶意代码文件 lib/app.js 混淆代码进行解码还原后如下所示,其主要功能是调用 child_process 模块读取系统剪切板中缓存的Solana智能合约私钥,并通过 ioredis 模块将窃取的私钥存储到投毒者控制的redis服务中。

恶意文件 app.js 混淆代码还原

2

合约私钥盗取

getQuryResult() 函数中负责针对Windows、MacOS以及Linux系统分别调用外部系统命令powershell Get-Clipboard、pbpaste和xclip读取剪切板数据。恶意代码通过设置定时器,每隔1秒钟调用 getQuryResult() 函数对剪切板进行实时监控。窃取的剪切板数据会进一步利用 isValidSolanaPrivateKey() 函数筛选出Solana智能合约私钥数据。

系统剪切板数据窃取

3

合约私钥外传

投毒代码一旦监控捕获到剪切板中的Solana智能合约私钥,会立即通过 ioredis 模块将私钥数据外传投递到投毒者控制的redis服务器(redis-12193.c259.us-central1-2.gce.redns.redis-cloud.com:12193)。

系统剪切板数据外传

投毒者控制的redis服务器解析IP地址为 34.28.66.214,利用密码可远程连接投毒者redis服务器,并发现多名受害者的合约私钥数据已被窃取。

投毒者redis服务器IP地址

投毒者redis服务器数据

受害者合约私钥数据

4

IoC 数据

本次捕获的Solana合约窃密系列NPM投毒组件包涉及的IoC数据如下表所示:

排查方式

Investigation Method

以 serum-anchor-wallet 恶意组件为例,开发者可通过命令 npm list serum-anchor-wallet 在项目目录下使用查询是否已安装存在恶意投毒的组件版本,如果已安装请立即使用 npm uninstall serum-anchor-wallet 进行卸载。此外还需关闭系统网络并排查系统是否存在异常进程。

此外,也可使用 OpenSCA-cli 工具将受影响的组件包按如下示例保存为db.json文件,直接执行扫描命令(opensca-cli -db db.json -path ${project_path}),即可快速获知您的项目是否受到投毒包影响。

复制代码
[     {         "product": "serum-anchor-wallet",         "version": "[1.0.2, 1.0.3]",         "language": "javascript",         "id": "XMIRROR-MAL45-ED7D46DA",         "description": "恶意NPM组件窃取Solana智能合约私钥",         "release_date": "2025-02-18"     },  {         "product": "raydium-sdk-liquidity-init",         "version": "[1.0.2]",         "language": "javascript",         "id": "XMIRROR-MAL45-CAEF758A",         "description": "恶意NPM组件窃取Solana智能合约私钥",         "release_date": "2025-02-15"     },  {         "product": "gas-fee-saver",         "version": "[1.0.0, 1.0.1, 1.0.2]",         "language": "javascript",         "id": "XMIRROR-MAL45-A80F5C57",         "description": "恶意NPM组件窃取Solana智能合约私钥",         "release_date": "2025-02-13"     },  {         "product": "cors_error_preventor",         "version": "[1.0.0]",         "language": "javascript",         "id": "XMIRROR-MAL45-CC46FBC5",         "description": "恶意NPM组件窃取Solana智能合约私钥",         "release_date": "2025-02-12"     }]

悬镜供应链安全情报中心是国内首个数字供应链安全情报研究中心。依托悬镜安全团队强大的供应链SBOM管理与监测能力和AI安全大数据云端分析能力,悬镜云脉XSBOM数字供应链安全情报预警服务通过对全球数字供应链投毒情报、漏洞情报、停服断供情报等进行实时动态监测与溯源分析,可为用户智能精准预警"与我有关"的数字供应链安全情报,提供情报查询、情报订阅、可视化关联分析等企业级服务。

相关推荐
咪库咪库咪3 小时前
Vue3-生命周期
前端
莪_幻尘3 小时前
你的 AI Skill 越多越蠢?Token 上下文爆炸的求生指南
前端·ai编程
lichenyang4533 小时前
从 has.echo 到异步 API 注册表:一次 ASCF API 回调不触发的排查复盘
前端
林瞅瞅4 小时前
Nuxt3 项目部署 Nginx 防盗链后特定 JS 文件 403 问题修复方案
前端
kyriewen4 小时前
别再每次都 Google 了:我整理了前端日常最常踩的 10 个 Git 坑,附速查表
前端·javascript·git
一颗奇趣蛋4 小时前
Web 视频开发完全指南:从入门到精通
前端
非洲农业不发达5 小时前
windows终端体验大升级,让你拥有macos级别的美化
前端·后端
妙码生花5 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十七):登录接口完善,登录页接口整合,解决跨域
前端·后端·ai编程
唐诗5 小时前
改 3 行配置,我的 Tauri dev 冷启动从 100 秒干到 4 秒
前端·客户端
SmartBoyW5 小时前
深入ECMAScript规范:彻底搞懂JS隐式类型转换与底层ToPrimitive机制
前端·javascript