NEWS
近日,墨菲安全实验室监测发现针对加密货币交易平台的供应链投毒攻击呈上升趋势。
攻击者利用NPM 仓库发布包含交易所名称的恶意组件,通过广撒网、多阶段利用的攻击方式,获取交易所、加密货币相关开发者服务器权限。
此类攻击一旦成功,可能导致交易所核心系统失陷,引发用户资产被盗、服务中断、数据泄露等严重后果,对加密货币交易所的稳定运行构成重大安全威胁。
2025年2月11日开始,有攻击者在NPM官方仓库中发布了针对HTX、Bitget和kucoin等46个加密货币交易平台、超过200个不同版本的投毒组件。
投毒者所使用的NPM账户名称相似(多数以superhotuser
为前缀),且发布时间相近,由同一个投毒者或组织自动化发布的可能性较高。
这批投毒组件目前仍有部分未被NPM官方下架,墨菲安全已向官方报告相关投毒包。
投毒行为分析
以针对 kucoin 相关的投毒包为例,投毒者尝试按照软件开发的常用环境进行组合命名,分别发布了 kucoin-dev
、kucoin-test
、kucoin-internal
、ku
coin-main
、 kucoin-production
五个投毒包。
初步探测
初步探测阶段大部分投毒包发布的是19.4.9版本,以 kucoin-internal 投毒包为例,当用户安装时将自动执行 preinstall 脚本,窃取用户主机的/etc/shadow
文件信息并发送到攻击者可控的服务器地址:
这一阶段只是探测有哪些组件会被Linux服务器使用、具有的用户信息,收集信息用于后续进一步利用。
进一步利用
2025年2月12日开始,有投毒者针对 Dzengi 交易所发布了具有后门的NPM投毒组件dzengi,该组件目前已被NPM官方下架,仍可在国内镜像源中下载。
dzengi在2月13日开始发布了19.5.0到19.5.5等版本,在新版本中加入了更多恶意逻辑。
在19.5.5版本中,仍通过安装时的 preinstall 脚本执行恶意代码,但除了窃取 /etc/passwd
和 /etc/shadow
文件之外,还向攻击者的C2地址建立反向shell连接:
dzengi v19.5.5 的 package.json文件
在其C2服务中,进一步通过echo命令筛选、保持可用的shell连接:
截至2月13日凌晨4点23分该组件被官方下架之后,尚未捕获到该攻击者针对交易平台的进一步投毒。
IOC
-
ihlkoqayjlegsltkrlhf1sg6hpfdbmrgy.oast.fun
-
cumg3keujssjipjc7bngna6ohyp5yde76.oast.fun
-
31.214.157.142
投毒组件
包名 | 版本 | 发布时间 | 交易所 |
bitget-main | 19.4.9 | 2025/2/11 14:16 | Bitget |
bitget-dev | 19.4.9 | 2025/2/11 14:16 | Bitget |
bitget-internal | 19.4.9 | 2025/2/11 14:16 | Bitget |
bitget | 19.4.9 | 2025/2/11 14:15 | Bitget |
upbit-production | 19.4.9 | 2025/2/11 14:15 | Upbit |
upbit-test | 19.4.9 | 2025/2/11 14:15 | Upbit |
upbit-main | 19.4.9 | 2025/2/11 14:15 | Upbit |
upbit-dev | 19.4.9 | 2025/2/11 14:15 | Upbit |
upbit-internal | 19.4.9 | 2025/2/11 14:15 | Upbit |
kucoin-main | 19.4.9 | 2025/2/11 14:20 | KuCoin |
kucoin-dev | 19.4.9 | 2025/2/11 14:20 | KuCoin |
kucoin-internal | 19.4.9 | 2025/2/11 14:19 | KuCoin |
kraken-test | 19.4.9 | 2025/2/11 14:19 | Kraken |
kraken-production | 19.4.9 | 2025/2/11 14:19 | Kraken |
kraken-internal | 19.4.9 | 2025/2/11 14:19 | Kraken |
kraken-dev | 19.4.9 | 2025/2/11 14:19 | Kraken |
kraken-main | 19.4.9 | 2025/2/11 14:19 | Kraken |
kucoin-test | 19.4.9 | 2025/2/11 14:20 | KuCoin |
kucoin-production | 19.4.9 | 2025/2/11 14:20 | KuCoin |
mexc-main | 19.4.9 | 2025/2/11 14:24 | MEXC Global |
mexc-dev | 19.4.9 | 2025/2/11 14:24 | MEXC Global |
mexc-internal | 19.4.9 | 2025/2/11 14:24 | MEXC Global |
mexc | 19.4.9 | 2025/2/11 14:24 | MEXC Global |
bitfinex-main | 19.4.9 | 2025/2/11 14:25 | Bitfinex |
bitfinex-production | 19.4.9 | 2025/2/11 14:26 | Bitfinex |
bitfinex-dev | 19.4.9 | 2025/2/11 14:25 | Bitfinex |
mexc-test | 19.4.9 | 2025/2/11 14:25 | MEXC Global |
bitfinex-test | 19.4.9 | 2025/2/11 14:26 | Bitfinex |
gate-internal | 19.4.9 | 2025/2/11 14:31 | Gate.io |
bingx-internal | 19.4.9 | 2025/2/11 14:33 | BingX |
gate-test | 19.4.9 | 2025/2/11 14:33 | Gate.io |
gate-production | 19.4.9 | 2025/2/11 14:33 | Gate.io |
gate-main | 19.4.9 | 2025/2/11 14:32 | Gate.io |
gate-dev | 19.4.9 | 2025/2/11 14:32 | Gate.io |
bingx-main | 19.4.9 | 2025/2/11 14:36 | BingX |
crypto-dev | 19.4.9 | 2025/2/11 14:36 | Crypto |
crypto-internal | 19.4.9 | 2025/2/11 14:36 | Crypto |
bingx-test | 19.4.9 | 2025/2/11 14:36 | BingX |
bingx-production | 19.4.9 | 2025/2/11 14:36 | BingX |
htx-production | 19.4.9 | 2025/2/11 14:38 | HTX |
htx-main | 19.4.9 | 2025/2/11 14:38 | HTX |
htx-dev | 19.4.9 | 2025/2/11 14:38 | HTX |
htx-internal | 19.4.9 | 2025/2/11 14:37 | HTX |
crypto-main | 19.4.9 | 2025/2/11 14:36 | Crypto |
htx-test | 19.4.9 | 2025/2/11 14:42 | HTX |
bitmart-main | 19.4.9 | 2025/2/11 14:42 | BitMart |
bitmart-production | 19.4.9 | 2025/2/11 14:43 | BitMart |
bitmart-test | 19.4.9 | 2025/2/11 14:43 | BitMart |
bitmart-dev | 19.4.9 | 2025/2/11 14:42 | BitMart |
bitmart-internal | 19.4.9 | 2025/2/11 14:42 | BitMart |
lbank-production | 19.4.9 | 2025/2/11 14:44 | LBank |
lbank-main | 19.4.9 | 2025/2/11 14:43 | LBank |
lbank-internal | 19.4.9 | 2025/2/11 14:43 | LBank |
lbank-dev | 19.4.9 | 2025/2/11 14:43 | LBank |
bitstamp-test | 19.4.9 | 2025/2/11 14:46 | Bitstamp |
bitstamp-internal | 19.4.9 | 2025/2/11 14:45 | Bitstamp |
lbank-test | 19.4.9 | 2025/2/11 14:45 | LBank |
bithumb-internal | 19.4.9 | 2025/2/11 14:46 | Bithumb |
bitstamp-main | 19.4.9 | 2025/2/11 14:46 | Bitstamp |
bitstamp-dev | 19.4.9 | 2025/2/11 14:45 | Bitstamp |
bithumb-main | 19.4.9 | 2025/2/11 14:47 | Bithumb |
bithumb-test | 19.4.9 | 2025/2/11 14:49 | Bithumb |
xt-internal | 19.4.9 | 2025/2/11 14:50 | XT.COM |
xt-main | 19.4.9 | 2025/2/11 14:51 | XT.COM |
xt-dev | 19.4.9 | 2025/2/11 14:51 | XT.COM |
tokocrypto-test | 19.4.9 | 2025/2/11 14:53 | Tokocrypto |
tokocrypto-dev | 19.4.9 | 2025/2/11 14:52 | Tokocrypto |
tokocrypto-main | 19.4.9 | 2025/2/11 14:52 | Tokocrypto |
tokocrypto | 19.4.9 | 2025/2/11 14:52 | Tokocrypto |
tokocrypto-internal | 19.4.9 | 2025/2/11 14:52 | Tokocrypto |
gemini-main | 19.4.9 | 2025/2/11 14:56 | Gemini |
gemini-dev | 19.4.9 | 2025/2/11 14:56 | Gemini |
gemini-internal | 19.4.9 | 2025/2/11 14:56 | Gemini |
bitflyer-test | 19.4.9 | 2025/2/11 14:56 | bitFlyer |
bitflyer-main | 19.4.9 | 2025/2/11 14:55 | bitFlyer |
bitflyer-dev | 19.4.9 | 2025/2/11 14:55 | bitFlyer |
bitflyer-internal | 19.4.9 | 2025/2/11 14:55 | bitFlyer |
gemini-test | 19.4.9 | 2025/2/11 14:57 | Gemini |
deepcoin | 19.4.9 | 2025/2/11 14:58 | Deepcoin |
deepcoin-internal | 19.4.9 | 2025/2/11 14:58 | Deepcoin |
deepcoin-dev | 19.4.9 | 2025/2/11 14:58 | Deepcoin |
ascendex-internal | 19.4.9 | 2025/2/11 14:59 | AscendEX |
ascendex | 19.4.9 | 2025/2/11 14:58 | AscendEX |
deepcoin-test | 19.4.9 | 2025/2/11 14:58 | Deepcoin |
deepcoin-main | 19.4.9 | 2025/2/11 14:58 | Deepcoin |
ascendex-test | 19.4.9 | 2025/2/11 15:00 | AscendEX |
ascendex-main | 19.4.9 | 2025/2/11 15:00 | AscendEX |
biconomy-main | 19.4.9 | 2025/2/11 15:02 | Biconomy |
biconomy-dev | 19.4.9 | 2025/2/11 15:02 | Biconomy |
biconomy | 19.4.9 | 2025/2/11 15:01 | Biconomy |
uzx-test | 19.4.9 | 2025/2/11 15:05 | Unizen |
uzx-main | 19.4.9 | 2025/2/11 15:05 | Unizen |
uzx-dev | 19.4.9 | 2025/2/11 15:05 | Unizen |
uzx-internal | 19.4.9 | 2025/2/11 15:04 | Unizen |
biconomy-test | 19.4.9 | 2025/2/11 15:04 | Biconomy |
coinw-main | 19.4.9 | 2025/2/11 15:07 | CoinW |
coinw-dev | 19.4.9 | 2025/2/11 15:07 | CoinW |
coinw | 19.4.9 | 2025/2/11 15:06 | CoinW |
weex-main | 19.4.9 | 2025/2/11 15:08 | WEEX |
weex-dev | 19.4.9 | 2025/2/11 15:08 | WEEX |
weex-internal | 19.4.9 | 2025/2/11 15:08 | WEEX |
coinw-test | 19.4.9 | 2025/2/11 15:08 | CoinW |
toobit | 19.4.9 | 2025/2/11 15:10 | Toobit |
toobit-main | 19.4.9 | 2025/2/11 15:13 | Toobit |
toobit-dev | 19.4.9 | 2025/2/11 15:13 | Toobit |
toobit-internal | 19.4.9 | 2025/2/11 15:13 | Toobit |
probit | 19.4.9 | 2025/2/11 15:15 | ProBit Global |
toobit-test | 19.4.9 | 2025/2/11 15:14 | Toobit |
probit-main | 19.4.9 | 2025/2/11 15:16 | ProBit Global |
probit-test | 19.4.9 | 2025/2/11 15:16 | ProBit Global |
probit-dev | 19.4.9 | 2025/2/11 15:16 | ProBit Global |
probit-internal | 19.4.9 | 2025/2/11 15:15 | ProBit Global |
digifinex-test | 19.4.9 | 2025/2/11 15:18 | DigiFinex |
p2pb2b-internal | 19.4.9 | 2025/2/11 15:18 | P2B Crypto Exchange |
p2pb2b | 19.4.9 | 2025/2/11 15:18 | P2B Crypto Exchange |
digifinex-main | 19.4.9 | 2025/2/11 15:18 | DigiFinex |
digifinex-dev | 19.4.9 | 2025/2/11 15:17 | DigiFinex |
digifinex-internal | 19.4.9 | 2025/2/11 15:17 | DigiFinex |
p2pb2b-test | 19.4.9 | 2025/2/11 15:18 | P2B Crypto Exchange |
p2pb2b-main | 19.4.9 | 2025/2/11 15:18 | P2B Crypto Exchange |
p2pb2b-dev | 19.4.9 | 2025/2/11 15:18 | P2B Crypto Exchange |
kcex-internal | 19.4.9 | 2025/2/11 15:21 | KCEX |
pionex-dev | 19.4.9 | 2025/2/11 15:26 | Pionex |
kcex-test | 19.4.9 | 2025/2/11 15:25 | KCEX |
kcex-main | 19.4.9 | 2025/2/11 15:25 | KCEX |
kcex-dev | 19.4.9 | 2025/2/11 15:25 | KCEX |
pionex-test | 19.4.9 | 2025/2/11 15:26 | Pionex |
pionex-main | 19.4.9 | 2025/2/11 15:26 | Pionex |
pionex-internal | 19.4.9 | 2025/2/11 15:25 | Pionex |
bitrue | 19.4.9 | 2025/2/11 15:35 | Bitrue |
bvox-test | 19.4.9 | 2025/2/11 15:35 | BVOX |
bvox-main | 19.4.9 | 2025/2/11 15:35 | BVOX |
bvox-dev | 19.4.9 | 2025/2/11 15:35 | BVOX |
bvox-internal | 19.4.9 | 2025/2/11 15:35 | BVOX |
bvox | 19.4.9 | 2025/2/11 15:35 | BVOX |
bitrue-test | 19.4.9 | 2025/2/11 15:36 | Bitrue |
bitrue-main | 19.4.9 | 2025/2/11 15:36 | Bitrue |
bitrue-dev | 19.4.9 | 2025/2/11 15:36 | Bitrue |
bitrue-internal | 19.4.9 | 2025/2/11 15:35 | Bitrue |
fameex-dev | 19.4.9 | 2025/2/11 15:39 | FameEX |
fameex-internal | 19.4.9 | 2025/2/11 15:39 | FameEX |
fameex | 19.4.9 | 2025/2/11 15:39 | FameEX |
orangex-test | 19.4.9 | 2025/2/11 15:39 | OrangeX |
orangex-main | 19.4.9 | 2025/2/11 15:38 | OrangeX |
orangex-dev | 19.4.9 | 2025/2/11 15:38 | OrangeX |
orangex-internal | 19.4.9 | 2025/2/11 15:38 | OrangeX |
fameex-test | 19.4.9 | 2025/2/11 15:39 | FameEX |
fameex-main | 19.4.9 | 2025/2/11 15:39 | FameEX |
bifinance | 19.4.9 | 2025/2/11 15:40 | BiFinance |
bifinance-dev | 19.4.9 | 2025/2/11 15:44 | BiFinance |
bifinance-internal | 19.4.9 | 2025/2/11 15:43 | BiFinance |
bitvavo-dev | 19.4.9 | 2025/2/11 15:45 | Bitvavo |
bitvavo-internal | 19.4.9 | 2025/2/11 15:45 | Bitvavo |
hibt-test | 19.4.9 | 2025/2/11 15:44 | Hibt |
hibt-main | 19.4.9 | 2025/2/11 15:44 | Hibt |
hibt-dev | 19.4.9 | 2025/2/11 15:44 | Hibt |
hibt-internal | 19.4.9 | 2025/2/11 15:44 | Hibt |
bifinance-test | 19.4.9 | 2025/2/11 15:44 | BiFinance |
bifinance-main | 19.4.9 | 2025/2/11 15:44 | BiFinance |
bitvavo-main | 19.4.9 | 2025/2/11 15:47 | Bitvavo |
tapbit-internal | 19.4.9 | 2025/2/11 15:48 | Tapbit |
tapbit | 19.4.9 | 2025/2/11 15:48 | Tapbit |
coincheck-main | 19.4.9 | 2025/2/11 15:48 | Coincheck |
coincheck-dev | 19.4.9 | 2025/2/11 15:48 | Coincheck |
coincheck-internal | 19.4.9 | 2025/2/11 15:47 | Coincheck |
bitvavo-test | 19.4.9 | 2025/2/11 15:47 | Bitvavo |
tapbit-main | 19.4.9 | 2025/2/11 15:49 | Tapbit |
tapbit-dev | 19.4.9 | 2025/2/11 15:49 | Tapbit |
coincheck-test | 19.4.9 | 2025/2/11 15:48 | Coincheck |
tapbit-test | 19.4.9 | 2025/2/11 15:50 | Tapbit |
azbit-main | 19.4.9 | 2025/2/11 15:51 | Azbit |
azbit | 19.4.9 | 2025/2/11 15:51 | Azbit |
bitunix-main | 19.4.9 | 2025/2/11 15:51 | Bitunix |
bitunix-test | 19.4.9 | 2025/2/11 15:51 | Bitunix |
bitunix-dev | 19.4.9 | 2025/2/11 15:51 | Bitunix |
bitunix-internal | 19.4.9 | 2025/2/11 15:51 | Bitunix |
azbit-test | 19.4.9 | 2025/2/11 15:52 | Azbit |
azbit-dev | 19.4.9 | 2025/2/11 15:51 | Azbit |
azbit-internal | 19.4.9 | 2025/2/11 15:51 | Azbit |
latoken-internal | 19.4.9 | 2025/2/11 15:54 | LATOKEN |
whitebit-test | 19.4.9 | 2025/2/11 15:53 | WhiteBIT |
whitebit-dev | 19.4.9 | 2025/2/11 15:53 | WhiteBIT |
whitebit-internal | 19.4.9 | 2025/2/11 15:53 | WhiteBIT |
whitebit | 19.4.9 | 2025/2/11 15:53 | WhiteBIT |
hashkey-internal | 19.4.9 | 2025/2/11 15:55 | HashKey Exchange |
latoken-main | 19.4.9 | 2025/2/11 15:54 | LATOKEN |
latoken-dev | 19.4.9 | 2025/2/11 15:54 | LATOKEN |
whitebit-main | 19.4.9 | 2025/2/11 15:53 | WhiteBIT |
latoken-test | 19.4.9 | 2025/2/11 15:54 | LATOKEN |
coinstore-dev | 19.4.9 | 2025/2/11 15:58 | Coinstore |
coinstore | 19.4.9 | 2025/2/11 15:58 | Coinstore |
coinstore-internal | 19.4.9 | 2025/2/11 15:58 | Coinstore |
hashkey-dev | 19.4.9 | 2025/2/11 15:57 | HashKey Exchange |
coinstore-main | 19.4.9 | 2025/2/11 16:00 | Coinstore |
coinstore-test | 19.4.9 | 2025/2/11 16:00 | Coinstore |
dzengi | 19.4.9 | 2025/2/12 20:59 | Dzengi |
19.5.0 | 2025/2/13 2:37 | ||
19.5.1 | 2025/2/13 3:06 | ||
19.5.2 | 2025/2/13 3:09 | ||
19.5.3 | 2025/2/13 3:24 | ||
19.5.4 | 2025/2/13 3:26 | ||
19.5.5 | 2025/2/13 4:23 |
墨菲安全提供产品可实时拦截针对开源组件的投毒
墨菲安全的私有源网关产品可对npm、pip、maven等中央仓库的投毒事件进行实时的检测和拦截,同时支持对高危漏洞实现基线管理,目前该产品已在蚂蚁、小米、中国电信、中国移动等数十家客户落地应用。
墨菲安全提供实时的开源组件投毒情报预警可订阅
墨菲安全0day漏洞及投毒情报覆盖最新的0day、1day及投毒情报预警,所有情报经过严格的安全专家研判,保障企业获取的第一手的高质量漏洞及投毒情报,更有比CVE漏洞库多25+额外的详细分析字段,目前该产品已在蚂蚁、美团、中国电信等数十家客户落地应用。
以上功能企业可通过以下方式申请试用
一、长按二维码申请:
二、访问申请链接:
https://murphysec.feishu.cn/share/base/form/shrcny75AEBuEJpL8myuAKPfsPe
原文始发于微信公众号(墨菲安全实验室):NPM仓库出现针对多个加密货币交易平台的投毒攻击
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论