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

47 天前
 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 ,都可以提一下,这些依赖用的人太多了!

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

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

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