昨晚亲历 qix 开发者账号泄露导致 NPM 超大规模投毒事件
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 ,信任硬件钱包,不信任浏览器网页的显示、插件的显示。最终点击前,自己在硬件钱包确认,😑,终究还得提高安全意识
我们先看一段Javascript的代码,如下所示:(你能看出来这是干什么的?) [javascript]($=[$=[]][(__=!$+$)[_=-~-~-~$]+({}+$…
去年买的铁威马 6 盘位硬盘柜,插了 2 块机械硬盘+1 块固态,今天早上起来发现,2 块机械硬盘全部挂掉了(变为未分配状态)。 硬盘柜刚买的时候就出现过一次类似的问题,但当时…
搞了个 rocketmq 分支,做了 10W+的可读性优化,对应的书也开始周更,有没有一起研究 MQ 的呀? RocketMQ 功能足够,我们主要是做了一些可读性的优化 巨类…