昨晚亲历 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 ,都可以提一下,这些依赖用的人太多了!

9107 次点击
所在节点    信息安全
64 条回复
kitty7030
1 天前
浏览器钱包 这么容易被劫持吗
kyokaka
1 天前
针对开发者的钓鱼和水坑攻击效率太高了
Mithril
1 天前
@kyokaka 主要是 NPM ,或者说 JS 的包依赖关系过于复杂,导致这种供应链攻击防不胜防。

前端生态就是这样,依赖树越复杂,某个节点被干掉的概率就越高,你换什么包管理都没办法。
ybz
1 天前
这种投毒相当于人家直接在你程序里面写代码了,再加上 js 方法属性随便替换的,劫持可太容易了。
stinkytofux
1 天前
@kitty7030 #1 浏览器插件是我比较担心的地方, 我不确定是不是真的能被劫持, 尤其是 Bitwarden 插件, 上面记录的不仅仅有密码, 还有我的各种命根子.
belin520
1 天前
扫码登录
lisongeee
1 天前
《这个开发者账号泄密的原因是因为被钓鱼邮件迷惑了,点击了邮件里面的链接》

点进链接也没事,肯定是点击链接之后再输入了密码之类
deepbytes
1 天前
@lisongeee 主要还是安全意识的问题,不要有侥幸心理
deepbytes
1 天前
@kyokaka 企业管理开源组件也是任重道远
crocoBaby
1 天前
又学到一个财务自由小技巧
Meteora626
1 天前
@kitty7030 我的小狐狸钱包啥都没干,电脑上都没助记词 0 。3eth 不知道咋就没了
jaff
1 天前
使用 JS 生态来开发原生应用就是个笑话啊,这应该不是第一次了。
MyBules
1 天前
这个攻击手段,像我之前遇到的粘贴板病毒,也是替换目标钱包地址。https://joessem.com/archives/paste-virus.html
deepbytes
1 天前
@MyBules !我也遇到过,导致后面每次操作都怀疑会不会有其他的 0day 存在,都谨慎一些,对比确认后再点转账按钮!
这就是人教人教不会,事教人一次就行
levelworm
1 天前
@deepbytes #14
这些小玩意很有意思啊,顿时觉得学习 Windows 系统编程有动力了!
newaccount
1 天前
想把这转给公司的傻逼经理们看看
时不时想让人解决钓鱼邮件的问题
我特么要是能解决的了还在这受你这份憋屈气!
deepbytes
1 天前
Stay safe:
✓ Verify recipient/amount on wallet screen
✓ Check if addresses change after pasting
✓ Review recent transactions
✓ Use hardware wallets for high-value ops
以上,共勉! web3 迷雾重重,佬们护好钱袋子!
dcsuibian
1 天前
所以说 npm 实在是垃圾中的垃圾
看看谁都踩一脚的 Java 。Maven 的设计实在是好了不止一个次元。maven central 发布包要审核,不能 unpublish 已有的包,gav 命名空间隔离,也不搞什么没用的语义化版本控制。
真搞不懂前端怎么抄都不会抄
deplives
1 天前
前端真有意思,要么 npm 上传武林外传,要么 npm 投毒
darksword21
1 天前
前端真有意思,要么 npm 上传武林外传,要么 npm 投毒

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

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

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

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

© 2021 V2EX