昨晚亲历 qix 开发者账号泄露导致 NPM 超大规模投毒事件

1 天前
 deepbytes

NPM 仓库中多个周下载量超千万的热门组件被投毒,这些组件均为 qix 开发者发布,可能由于其凭证泄漏导致账号被窃取。

昨晚睡前就在 x 上看到各种信息了:

受影响投毒组件被植入恶意的混淆代码 index.js 文件,该恶意代码会劫持浏览器钱包(如 MetaMask )和网络请求( fetch 和 XMLHttpRequest ),拦截 ETH 、BTC 、SOL 、TRX 等加密货币交易,通过替换目标地址将资金转移至攻击者钱包(如 0xFc4a4858bafef54D1b1d7697bfb5c52F4c166976 )

混淆后的恶意代码 index.js:

攻击非常有针对性,是针对 web3 相关用户的大规模攻击.这个 javascript payload 不复杂,使用了 obfuscator.io 或者类似的工具。

这个开发者账号泄密的原因是因为被钓鱼邮件迷惑了,点击了邮件里面的链接,但未验证链接属于正确的官方发布的地址。


目前 VirusTotal 仍无法检测异常。


自检:


brew install rg

rg -uu --max-columns=80 --glob '*.js' _0x112fa8 


参考 hacker news: https://www.aikido.dev/blog/npm-debug-and-chalk-packages-compromised


提醒,以后这种邮件里面的 login ,如果有 pasaword 管理工具,可以自动对比域名,不对的域名不会显示自动填充的下拉框的! v 友还有啥 tips ,都可以提一下,这些依赖用的人太多了!

9050 次点击
所在节点    信息安全
64 条回复
stinkytofux
1 天前
@bigtear #39 锁定超级麻烦, 用的时候还要解锁, 我一般都是重启浏览器才锁定. 平时一直解锁.
bigtear
1 天前
@stinkytofux #41 pin 啊,我一直设定的一个 pin 码解锁,还挺方便的,毕竟安全点
wobuhuicode
1 天前
硬件钱包之前就出过事故了,你以为在里面安全生成的私钥,早就给人记录好的。
deepbytes
1 天前
@wobuhuicode 佬,有更好的办法么?
yurenfeijing
1 天前
@deepbytes #29 除非是浏览器的插件用了这些被投毒的依赖,不然只访问网页,怎么可能读到插件钱包的数据呢。插件能劫持网页的接口,反过来如果网页被投毒了,没法检测插件的接口吧
nkidgm
1 天前
@deepbytes 开源钱包,把经典版本的源码下载下来,自己编译
deepbytes
1 天前
@yurenfeijing 可以了解一下 window.ethereum 对象。
---
理解这个攻击场景的原理:
1 、攻击者没有攻破浏览器的沙箱,也没有读取插件钱包的任何内部数据。
2 、只是在网页自己的地盘上,利用了网页与钱包之间必须存在的、公开的通信接口,进行了一次中间人攻击。它污染的是即将发送给钱包的数据,而不是钱包本身。
3 、网页被投毒后,它不是去“检测”插件,而是去“欺骗”插件。它给插件提供的是伪造的交易请求,而插件本身无法分辨这份请求在到达它之前是否已经被篡改过
duuu
1 天前
意思是交易的时候,把钱包要转账的地址改成了黑客的地址是吗?
如果我是普通的前端开发者,是不是就不会受影响?
kerryeva
1 天前
trezor ?我用了五六年了,第一带版本
fr13ncl5
1 天前
@MyBules 我也遇见过,还分析了一下查涉及到的各个币地址流水发现靠这个都赚了七八十万
sampeng
1 天前
每年固定节目也是没谁了
hongweiliuruige
1 天前
npm lock 文件轻易不要动,升级版本仔细审查,合并冲突认真检查! 然而很少有人或者团队做到,包括很多大公司,无脑升级。。
latifrons
1 天前
从来没相信过硬件钱包,谁知道里面有什么神奇的 5G 芯片呢。况且就算显示了交易信息,很多基于智能合约的交易内容人根本看不懂,硬件钱包最多也只能解析几种最常见的 ERC20 函数签名( transfer,transferFrom ),对于 DeFi 应用根本防不住。
所以目前看还是找一台不联网的老安卓手机装一个 AirGap Vault ,自建硬件钱包比较靠谱。
DefoliationM
1 天前
@stinkytofux 指纹解锁很方便,碰一下就行了。
lhwj1988
1 天前
所以当你进入一个网页后,如果域名对不上,那干嘛还要输入账号密码?
UnluckyNinja
23 小时 19 分钟前
当某个网站在未先由你交互,主动发来一封邮件:
- 如果是消息推送,例如新闻、博文、安全事故报告等:OK ,可以点击链接,开启“只读模式”,只看不输入任何内容,不进行任何风险操作
- 请求用户更新密保 2FA 等,任何需要输入的情况:不要从邮件链接进入相关服务,而是从你的收藏夹或手动输入/浏览器联想进入官方网站或 SNS 帐号,验证官方推送是否确有其事,再继续操作。
galenzhao
20 小时 52 分钟前
用硬件 key 登录,避免账号密码问题。。。。
abcbuzhiming
14 小时 42 分钟前
哎,2025 年了,NPM 还是解决不了安全性问题。。。
ganbuliao
11 小时 11 分钟前
钱包要你签名的时候 就会展示签名信息啊
和硬件钱包有什么关系
LioMore
5 小时 15 分钟前
标题说亲历,我以为楼主也有相关的包。

我为什么要说「也」,因为我也是 color, color-string, color-convert 维护者,不过我只有 GitHub repo 的权限,Qix- 没给我 npm 的权限哈 😅

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1157924

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX