一些天前我们注意到 IOTA 暂停了主网,虽然早前我们也知道 IOTA 用户遭遇了盗币攻击,但没想到 IOTA 官方会通过暂停主网方式来进行这次盗币攻击的阻拦与调查,看来问题很严重。随后,2020/02/19,我们深入分析了官方披露在 status.iota.org 上的一些线索,开始独立调查这次严重安全事故的具体原因。
通过对 IOTA 官方钱包 Trinity 新版本发布的分析,我们在其 GitHub 上进行了版本比对,注意到了 MoonPay 这个第三方组件被移除,且我们注意到 Trinitiy 桌面钱包是基于 Electron 开发的,安全经验告诉我们,这可能是个大坑,于是,我们 2020/02/19 时发布了一些推测:
慢雾:IOTA 用户 Trinity 钱包被盗币攻击推测
IOTA 因为近期不少用户的 Trinity 钱包被盗币攻击,为了阻止攻击继续、调查与修复具体原因,主网协调器都暂停运行了。这是一个被低估的经典攻击,官方没披露具体攻击细节,但通过我们的分析,可以做出某些重要推测,首先可以明确的几个点:
慢雾:过去一周Web3因安全事件损失约265万美元:7月17日消息,慢雾发推称,2023年7月10日至7月16日期间,Web3发生5起安全事件,总损失为265.5万美元,包括Arcadia Finance、Rodeo Finance、LibertiVault、Platypus、Klever。[2023/7/17 10:59:08]
不是 IOTA 区块链协议的问题,是 IOTA 的 Trinity 桌面钱包的问题(官方说的,且先相信)
这款桌面钱包基于 Electron(一个使用 JavaScript 为核心构建桌面应用的框架),意味着核心代码是 JavaScript 写的
在做该做钱包新旧版本代码的 diff 分析时,发现去除了之前内置的一个交易所功能模块 MoonPay,这其中关键点是去掉了一段可怕的代码:
const script = document.createElement('script');script.src = 'https://cdn.moonpay.io/moonpay-sdk.js';document.write(script.outerHTML);如果这个第三方 JavaScript 链接主动或被黑作恶,那该桌面版钱包就可以认为是完全沦陷了。到这,我们很有理由相信这是个很大的定时炸弹,如果这个定时炸弹是真的炸了,那很吻合官方的一些说辞与解释,如:尽快升级新版本的 Trinity 桌面钱包,尽快改密码,尽快转移资产到安全种子里等等。且看官方的后续披露。
慢雾:共享Apple ID导致资产被盗核心问题是应用没有和设备码绑定:5月19日消息,慢雾首席信息安全官23pds发推表示,针对共享Apple ID导致资产被盗现象,核心问题是应用没有和设备码绑定,目前99%的钱包、交易App等都都存在此类问题,没有绑定就导致数据被拖走或被恶意同步到其他设备导致被运行,攻击者在配合其他手法如社工、爆破等获取的密码,导致资产被盗。23pds提醒用户不要使用共享Apple ID等,同时小心相册截图被上传出现资产损失。[2023/5/19 15:13:08]
今天(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-ukjx attack on Trinity began, where the attacker started shipping illicit code via Moonpay’s DNS provider at Cloudflare.
慢雾:Equalizer Finance被黑主要在于FlashLoanProvider合约与Vault合约不兼容:据慢雾区消息,6 月 7 日,Equalizer Finance 遭受闪电贷攻击。慢雾安全团队以简讯形式将攻击原理分享如下:
1. Equalizer Finance 存在 FlashLoanProvider 与 Vault 合约,FlashLoanProvider 合约提供闪电贷服务,用户通过调用 flashLoan 函数即可通过 FlashLoanProvider 合约从 Vault 合约中借取资金,Vault 合约的资金来源于用户提供的流动性。
2. 用户可以通过 Vault 合约的 provideLiquidity/removeLiquidity 函数进行流动性提供/移除,流动性提供获得的凭证与流动性移除获得的资金都受 Vault 合约中的流动性余额与流动性凭证总供应量的比值影响。
3. 以 WBNB Vault 为例攻击者首先从 PancekeSwap 闪电贷借出 WBNB
4. 通过 FlashLoanProvider 合约进行二次 WBNB 闪电贷操作,FlashLoanProvider 会先将 WBNB Vault 合约中 WBNB 流动性转给攻击者,随后进行闪电贷回调。
5. 攻击者在二次闪电贷回调中,向 WBNB Vault 提供流动性,由于此时 WBNB Vault 中的流动性已经借出一部分给攻击者,因此流动性余额少于预期,则攻击者所能获取的流动性凭证将多于预期。
6. 攻击者先归还二次闪电贷,然后从 WBNB Vault 中移除流动性,此时由于 WBNB Vault 中的流动性已恢复正常,因此攻击者使用添加流动性获得凭证所取出的流动性数量将多于预期。
7. 攻击者通过以上方式攻击了在各个链上的 Vault 合约,耗尽了 Equalizer Finance 的流动性。
此次攻击的主要原因在于 Equalizer Finance 协议的 FlashLoanProvider 合约与 Vault 合约不兼容。慢雾安全团队建议协议在进行实际实现时应充分考虑各个模块间的兼容性。[2022/6/8 4:09:22]
攻击者利用 MoonPay 的 Cloudflare API Key 完成了后续一系列劫持攻击,预估被盗的 IOTA 达 8.55 Ti(8550000 枚 MIOTA,MIOTA 现在是交易所默认最小交易单元,当前价格 0.267 美金/MIOTA)。根据我们历史经验,如果 Web 服务方使用了 Cloudflare,而其 Cloudflare 账号权限被控制,就可以做到非常完美的中间人劫持攻击,注入恶意 JavaScript。而 Trinity 桌面钱包又是基于 Electron,一个完美的 JavaScript 执行环境就摆在这,不需要任何特别的越权,JavaScript 可以完成用户或 Trinity 钱包可以完成的任何事情,其中就包括密码和种子的盗取等等。
动态 | 慢雾:Cryptopia被盗资金发生转移:据慢雾科技反(AML)系统监测显示,Cryptopia攻击者分两次转移共20,843枚ETH,价值超380万美元。目前资金仍停留在 0x90d78A49 和 0x6D693560 开头的两个新地址,未向交易所转移。据悉,今年早些时候加密货币交易所Cryptopia遭受了黑客攻击,价值超过1600万美元的以太坊和ERC-20代币被盗。[2019/11/17]
由于我们不像 IOTA 和 MoonPay 官方,他们拥有足够的日志记录来将攻击过程完整掌握,我们只能通过我们所能接触到的完成以上推测与相关分析工作。剩下的就希望官方公布具体细节并尽快完成主网的重新运行。
在这,我们不得不提的一些安全看法及建议:
第三方是可以邪恶的,默认都不可信,软件安全开发过程一定要警惕第三方依赖,包括第三方组件与第三方 JavaScript 链接
动态 | 慢雾:10 月发生多起针对交易所的提币地址劫持替换攻击:据慢雾区块链威胁情报(BTI)系统监测及慢雾 AML 数据显示,过去的 10 月里发生了多起针对数字货币交易所的提币地址劫持替换攻击,手法包括但不限于:第三方 JS 恶意代码植入、第三方 NPM 模块污染、Docker 容器污染。慢雾安全团队建议数字货币交易所加强风控措施,例如:1. 密切注意第三方 JS 链接风险;2. 提币地址应为白名单地址,添加时设置双因素校验,用户提币时从白名单地址中选择,后台严格做好校验。此外,也要多加注意内部后台的权限控制,防止内部作案。[2019/11/1]
注: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
你一定不知道这个无声中不断壮大的生态王国:信息永久存储协议 Arweave 已经上线 3 年,截止目前为止,基于 Arweave 网络的应用已经突破 200 多个.
1900/1/1 0:00:00作为支付结算的传统巨头,SWIFT在银行间支付领域有着举足轻重的作用,SWIFT原始服务组成部分包括报文发送平台、报文处理计算机系统、精细的报文标准.
1900/1/1 0:00:00Synthetix 可能是第一个正式上线以太坊 Layer 2 网络的主流去中心化金融(DeFi)应用,该网络基于 Optimism 团队研发的 Optimistic Rollup 扩容技术.
1900/1/1 0:00:00这个5月,对交易所来说并不太平。Bitfinex8.5亿美元疑云还没搞清楚,币安又被盗7000个比特币,交易所可谓做山车式的感受:起起落落落落落…… 交易所被盗已不是新闻了,2014年.
1900/1/1 0:00:00Shield 首创去中心化「无险」永续合约,并配置双流动资金池解决 DeFi 衍生品长期令人诟病的流动性难题.
1900/1/1 0:00:00基于 UMA 协议开发的合成资产考虑到了趣味性或用户需求,这或许才是「合成资产」应该有的样子,而不是被「预言机」束缚想象力.
1900/1/1 0:00:00