当前位置: 首页 > news >正文

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

SBOM情报概述

Summary

近日(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数字供应链安全情报预警服务通过对全球数字供应链投毒情报、漏洞情报、停服断供情报等进行实时动态监测与溯源分析,可为用户智能精准预警“与我有关”的数字供应链安全情报,提供情报查询、情报订阅、可视化关联分析等企业级服务。

相关文章:

  • Docket Desktop 安装redis 并设置密码
  • 【c++】【线程池】线程池概述
  • CPU安装pytorch(别点进来)
  • 番茄工作法html实现
  • 大模型知识蒸馏技术(5)——在线蒸馏
  • Linux·spin_lock的使用
  • ClickHouse分布式高可用实战:ReplicatedMergeTree引擎深度解析与代码实践
  • 毕设 - 眼镜店供销系统(vue+springboot)项目分享
  • 亚远景-ISO PAS 8800:2024与其他道路车辆安全标准有何不同?
  • Android 布局系列(一):LinearLayout 使用指南
  • 空字符串““、空白字符串“ “和 null 三者的区别
  • 零基础学python------第四节:Python的序列(seq):字符串+列表+元祖
  • 政安晨的AI大模型训练实践 九 - 熟悉LLaMA Factory的详细参数含义-基本概念理解一下
  • 【知识】深度学习中,应该先zero_grad还是先backward?
  • go io.Pipe
  • 【拜读】Tensor Product Attention Is All You Need姚期智团队开源TPA兼容RoPE位置编码
  • 三、动规_子数组系列
  • python学智能算法(一)|模拟退火算法:原理解释和最小值求解
  • Python内置函数详解
  • 《论系统需求分析方法》写作心得 - 系统分析师
  • 上海地铁:9号线因雨天打滑,佘山往九亭方向部分列车限速运行
  • 夜读丨永不掉电的陪伴
  • 欧阳娜娜等20多名艺人被台当局列入重要查核对象,国台办回应
  • 十大券商看后市|A股指数有望进一步缓步推高,淡化短期波动
  • 广东缉捕1名象牙走私潜逃非洲“红通”逃犯
  • 美国新泽西客运公司遭遇罢工:40年来首次,35万人受影响