一些天前我们注意到 IOTA 暂停了主网,虽然早前我们也知道 IOTA 用户遭遇了盗币攻击,但没想到 IOTA 官方会通过暂停主网方式来进行这次盗币攻击的阻拦与调查,看来问题很严重。随后,2020/02/19,我们深入分析了官方披露在 status.iota.org 上的一些线索,开始独立调查这次严重安全事故的具体原因。
通过对 IOTA 官方钱包 Trinity 新版本发布的分析,我们在其 GitHub 上进行了版本比对,注意到了 MoonPay 这个第三方组件被移除,且我们注意到 Trinitiy 桌面钱包是基于 Electron 开发的,安全经验告诉我们,这可能是个大坑,于是,我们 2020/02/19 时发布了一些推测:
慢雾:IOTA 用户 Trinity 钱包被盗币攻击推测
IOTA 因为近期不少用户的 Trinity 钱包被盗币攻击,为了阻止攻击继续、调查与修复具体原因,主网协调器都暂停运行了。这是一个被低估的经典攻击,官方没披露具体攻击细节,但通过我们的分析,可以做出某些重要推测,首先可以明确的几个点:
慢雾:近期出现假冒UniSat的钓鱼网站,请勿交互:5月13日消息,慢雾首席信息安全官 @IM_23pds 在社交媒体上发文表示,近期有假冒比特币铭文钱包及交易市场平台 UniSat 的钓鱼网站出现,经慢雾分析,假网站有明显的传统针对 ETH、NFT 钓鱼团伙的作案特征,或因近期 BRC-20 领域火热故转而制作有关该领域的钓鱼网站,请用户注意风险,谨慎辨别。[2023/5/13 15:01:11]
不是 IOTA 区块链协议的问题,是 IOTA 的 Trinity 桌面钱包的问题(官方说的,且先相信)
这款桌面钱包基于 Electron(一个使用 JavaScript 为核心构建桌面应用的框架),意味着核心代码是 JavaScript 写的
在做该做钱包新旧版本代码的 diff 分析时,发现去除了之前内置的一个交易所功能模块 MoonPay,这其中关键点是去掉了一段可怕的代码:
慢雾:警惕Web3钱包WalletConnect钓鱼风险:金色财经报道,慢雾安全团队发现 Web3 钱包上关于 WalletConnect 使用不当可能存在被钓鱼的安全风险问题。这个问题存在于使用移动端钱包 App 内置的 DApp Browser + WalletConnect 的场景下。
慢雾发现,部分 Web3 钱包在提供 WalletConnect 支持的时候,没有对 WalletConnect 的交易弹窗要在哪个区域弹出进行限制,因此会在钱包的任意界面弹出签名请求。[2023/4/17 14:08:53]
const script = document.createElement('script');script.src = 'https://cdn.moonpay.io/moonpay-sdk.js';document.write(script.outerHTML);如果这个第三方 JavaScript 链接主动或被黑作恶,那该桌面版钱包就可以认为是完全沦陷了。到这,我们很有理由相信这是个很大的定时炸弹,如果这个定时炸弹是真的炸了,那很吻合官方的一些说辞与解释,如:尽快升级新版本的 Trinity 桌面钱包,尽快改密码,尽快转移资产到安全种子里等等。且看官方的后续披露。
慢雾:Quixotic黑客盗取约22万枚OP,跨链至BNB Chain后转入Tornado Cash:7月1日消息,据慢雾分析,Quixotic黑客盗取了大约22万枚OP(约11.9万美元),然后将其兑换成USDC并跨链到BNB Chain,之后将其兑换成BNB并转入Tornado Cash。[2022/7/1 1:44:55]
今天(2020/02/22),我们注意到了官方披露了一些细节,基本验证了我们的推测。
https://blog.iota.org/trinity-attack-incident-part-1-summary-and-next-steps-8c7ccc4d81e8
重点关注下这段:
The attacker started on November 27th, 2019 with a DNS-interception Proof of Concept that used a Cloudflare API key to rewrite the api.moonpay.io endpoints, capturing all data going to api.moonpay.io for potential analysis or exfiltration. Another longer-running Proof of Concept was evaluated by the attacker one month later, on December 22nd, 2019. On January 25th, 2020, the active attack on Trinity began, where the attacker started shipping illicit code via Moonpay’s DNS provider at Cloudflare.
慢雾:警惕 Terra 链上项目被恶意广告投放钓鱼风险:据慢雾区情报,近期 Terra 链上部分用户的资产被恶意转出。慢雾安全团队发现从 4 月 12 日开始至 4 月 21 日约有 52 个地址中的资金被恶意转出至 terra1fz57nt6t3nnxel6q77wsmxxdesn7rgy0h27x30 中,当前总损失约 431 万美金。
经过慢雾安全追踪分析确认,此次攻击为批量谷歌关键词广告投放钓鱼,用户在谷歌搜索如:astroport,nexus protocol,anchor protocol 等这些知名的 Terra 项目,谷歌结果页第一条看似正常的广告链接(显示的域名甚至是一样的)实为钓鱼网站。 一旦用户不注意访问此钓鱼网站,点击连接钱包时,钓鱼网站会提醒直接输入助记词,一旦用户输入并点击提交,资产将会被攻击者盗取。
慢雾安全团队建议 Terra 链上用户保持警惕不要随便点击谷歌搜索出来的链接或点击来历不明的链接,减少使用常用钱包进行非必要的操作,避免不必要的资损。[2022/4/21 14:37:55]
攻击者利用 MoonPay 的 Cloudflare API Key 完成了后续一系列劫持攻击,预估被盗的 IOTA 达 8.55 Ti(8550000 枚 MIOTA,MIOTA 现在是交易所默认最小交易单元,当前价格 0.267 美金/MIOTA)。根据我们历史经验,如果 Web 服务方使用了 Cloudflare,而其 Cloudflare 账号权限被控制,就可以做到非常完美的中间人劫持攻击,注入恶意 JavaScript。而 Trinity 桌面钱包又是基于 Electron,一个完美的 JavaScript 执行环境就摆在这,不需要任何特别的越权,JavaScript 可以完成用户或 Trinity 钱包可以完成的任何事情,其中就包括密码和种子的盗取等等。
慢雾:BSC项目Value DeFi vSwap 模块被黑简析:据慢雾区情报,币安智能链项目 Value DeFi 的 vSwap 模块被黑,慢雾安全团队第一时间介入分析,并将结果以简讯的形式分享,供大家参考:
1. 攻击者首先使用 0.05 枚 WBNB 通过 vSwap 合约兑换出 vBSWAP 代币;
2. 攻击者在兑换的同时也进行闪电贷操作,因此 vSwap 合约会将兑换的 vBSWAP 代币与闪电贷借出的 WBNB 转给攻击者;
3. 而在完成整个兑换流程并更新池子中代币数量前,会根据池子的 tokenWeight0 参数是否为 50 来选择不同的算法来检查池子中的代币数量是否符合预期;
4. 由于 vSwap 合约的 tokenWeight0 参数设置为 70,因此将会采用第二种算法对池子中的代币数量进行检查;
5. 而漏洞的关键点就在于采用第二种算法进行检查时,可以通过特殊构造的数据来使检查通过;
6. 第二种算法是通过调用 formula 合约的 ensureConstantValue 函数并传入池子中缓存的代币数量与实时的代币数量进行检查的;
7. 在通过对此算法进行具体分析调试后我们可以发现,在使用 WBNB 兑换最小单位(即 0.000000000000000001) vBSWAP 时,池子中缓存的 WBNB 值与实时的值之间允许有一个巨大的波动范围,在此范围内此算法检查都将通过;
8. 因此攻击者可以转入 WBNB 进行最小单位的 vBSWAP 代币兑换的同时,将池子中的大量 WBNB 代币通过闪电贷的方式借出,由于算法问题,在不归还闪电贷的情况下仍可以通过 vSwap 的检查;
9. 攻击者只需要在所有的 vSwap 池子中,不断的重复此过程,即可将池子中的流动性盗走完成获利。详情见原文链接。[2021/5/8 21:37:37]
由于我们不像 IOTA 和 MoonPay 官方,他们拥有足够的日志记录来将攻击过程完整掌握,我们只能通过我们所能接触到的完成以上推测与相关分析工作。剩下的就希望官方公布具体细节并尽快完成主网的重新运行。
在这,我们不得不提的一些安全看法及建议:
第三方是可以邪恶的,默认都不可信,软件安全开发过程一定要警惕第三方依赖,包括第三方组件与第三方 JavaScript 链接
注:IOTA 基金会联合创始人 Dominik Schiener 表示:“此次攻击是由于集成 MoonPay 的漏洞造成,「Trinity 钱包所犯的最大错误是没有集成 NPM 软件包,并且没有适当地对集成进行安全审核」”我们站在第三方独立安全审计的角度认为,这种说法是不严谨的,在加密货币发展的历史上,因为 NPM 包中引用的第三方源而导致的加密货币被盗案件不在少数。如知名的 "event-stream" 事件
Cloudflare 等第三方 CDN/WAF 服务很优秀很强大,但如果使用者没安全管理好自己的账号权限,其 Web 服务将会遭遇完美的中间人攻击
公链官方钱包的一个致命缺陷可能搞垮一条公链,链上安全关注的同时,链下安全也不能忽视,他们是一直整体,这也是为什么我们关注的是区块链生态安全,而不是仅仅区块链本身的链上安全
作为 IOTA 官方钱包 Trinity 的使用者来说,尽快按官方的指导完成安全加固工作,这个就不多说了
相关链接:
Trinity Attack Incident Part 1: Summary and next steps https://blog.iota.org/trinity-attack-incident-part-1-summary-and-next-steps-8c7ccc4d81e8
Trinity Attack Incident Part 2: Trinity Seed Migration Plan https://blog.iota.org/trinity-attack-incident-part-2-trinity-seed-migration-plan-4c52086699b6
Trinity Attack Incident Part 3: Key Learnings & Takeaways https://blog.iota.org/trinity-attack-incident-part-3-key-learnings-takeaways-c933de22fd0a
IOTA Status Page: https://status.iota.org/
如何看待 NPM 包 event-stream 被黑客篡改,发现包含恶意代码?https://www.zhihu.com/question/303815270
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。