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: www.aikido.dev/blog/npm-debug-and-chalk-packages-compromised

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

jdstaerk.substack.com/p/we-just-found-malicious-code-in-the

这是一个更加详尽的事件追踪,有兴趣的可以关注。有技术的佬,你们的目标是星辰大海!

转自 x@ohyishi
npm 维护者 qix 被精准社工,点了伪造的 2fa 重置邮件导致权限泄露。攻击者随后用他的账号发了带后门的新版本,中招的包括 chalk 、debug 这种顶级基础库。

这次攻击影响面很大。

首先隐蔽性强。前半段保留正常功能,不会立即报错。payload 做了混淆,静态审计也很难发现。黑客甚至 hook 了 fetch 、XMLHttpRequest 、ethereum.request ,连调试工具都能被骗。

其次攻击效果很致命。地址替换不是随便乱换,而是用 levenshtein 距离算出最接近的攻击者地址,用户肉眼几乎分辨不出。它还专门适配了 dex 路由器,大部分 swap 都可能被劫持;返回的还是伪造的成功响应,开发者和用户都会以为交易没问题,其实资金早被转走了。
要不是硬件钱包在最后一跳能二次确认,很多人可能根本不知道钱是怎么没的。

——
这里就看出,硬件钱包的兜底安全保障了,准备入手一个,有佬推荐么

浏览器钱包 这么容易被劫持吗

针对开发者的钓鱼和水坑攻击效率太高了

主要是 NPM ,或者说 JS 的包依赖关系过于复杂,导致这种供应链攻击防不胜防。

前端生态就是这样,依赖树越复杂,某个节点被干掉的概率就越高,你换什么包管理都没办法。

这种投毒相当于人家直接在你程序里面写代码了,再加上 js 方法属性随便替换的,劫持可太容易了。

#1 浏览器插件是我比较担心的地方, 我不确定是不是真的能被劫持, 尤其是 Bitwarden 插件, 上面记录的不仅仅有密码, 还有我的各种命根子.

扫码登录

《这个开发者账号泄密的原因是因为被钓鱼邮件迷惑了,点击了邮件里面的链接》

点进链接也没事,肯定是点击链接之后再输入了密码之类

主要还是安全意识的问题,不要有侥幸心理

企业管理开源组件也是任重道远

又学到一个财务自由小技巧

我的小狐狸钱包啥都没干,电脑上都没助记词 0 。3eth 不知道咋就没了

使用 JS 生态来开发原生应用就是个笑话啊,这应该不是第一次了。

这个攻击手段,像我之前遇到的粘贴板病毒,也是替换目标钱包地址。 joessem.com/archives/paste-virus.html

!我也遇到过,导致后面每次操作都怀疑会不会有其他的 0day 存在,都谨慎一些,对比确认后再点转账按钮!
这就是人教人教不会,事教人一次就行

#14
这些小玩意很有意思啊,顿时觉得学习 Windows 系统编程有动力了!

想把这转给公司的傻逼经理们看看
时不时想让人解决钓鱼邮件的问题
我特么要是能解决的了还在这受你这份憋屈气!

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 迷雾重重,佬们护好钱袋子!

所以说 npm 实在是垃圾中的垃圾
看看谁都踩一脚的 Java 。Maven 的设计实在是好了不止一个次元。maven central 发布包要审核,不能 unpublish 已有的包,gav 命名空间隔离,也不搞什么没用的语义化版本控制。
真搞不懂前端怎么抄都不会抄

前端真有意思,要么 npm 上传武林外传,要么 npm 投毒

前端真有意思,要么 npm 上传武林外传,要么 npm 投毒

没理解你说的硬件钱包是怎么兜底这个问题的?既然产生了肉眼几乎分辨不了的地址,那硬件钱包就算专门弄个屏幕显示出来交易信息,用户也还是会批准啊?

由于地址很长,可以重点核对地址的开头 4-6 位和结尾 4-6 位。这次攻击虽然能生成视觉上相似的地址,但在逐字符比对下,差异是绝对存在的…

硬件钱包,它在被恶意控制的电脑环境之外,提供了一个可信的“信息安全岛”。它给了用户一个机会,在资产离手前的最后一刻,看到这笔交易未经篡改的交易信息。

anyway ,信任硬件钱包,不信任浏览器网页的显示、插件的显示。最终点击前,自己在硬件钱包确认,😑,终究还得提高安全意识