一些天前我们注意到 IOTA 暂停了主网,虽然早前我们也知道 IOTA 用户遭遇了盗币攻击,但没想到 IOTA 官方会通过暂停主网方式来进行这次盗币攻击的阻拦与调查,看来问题很严重。随后,2020/02/19,我们深入分析了官方披露在 status.iota.org 上的一些线索,开始独立调查这次严重安全事故的具体原因。
通过对 IOTA 官方钱包 Trinity 新版本发布的分析,我们在其 GitHub 上进行了版本比对,注意到了 MoonPay 这个第三方组件被移除,且我们注意到 Trinitiy 桌面钱包是基于 Electron 开发的,安全经验告诉我们,这可能是个大坑,于是,我们 2020/02/19 时发布了一些推测:
慢雾:IOTA 用户 Trinity 钱包被盗币攻击推测
IOTA 因为近期不少用户的 Trinity 钱包被盗币攻击,为了阻止攻击继续、调查与修复具体原因,主网协调器都暂停运行了。这是一个被低估的经典攻击,官方没披露具体攻击细节,但通过我们的分析,可以做出某些重要推测,首先可以明确的几个点:
慢雾:DOD合约中的BUSD代币被非预期取出,主要是DOD低价情况下与合约锁定的BUSD将产生套利空间:据慢雾区情报,2022 年 3 月 10 日, BSC 链上的 DOD 项目中锁定的 BUSD 代币被非预期的取出。慢雾安全团队进行分析原因如下:
1. DOD 项目使用了一种特定的锁仓机制,当 DOD 合约中 BUSD 数量大于 99,999,000 或 DOD 销毁数量超过 99,999,000,000,000 或 DOD 总供应量低于 1,000,000,000 时将触发 DOD 合约解锁,若不满足以上条件,DOD 合约也将在五年后自动解锁。DOD 合约解锁后的情况下,用户向 DOD 合约中转入指定数量的 DOD 代币后将获取该数量 1/10 的 BUSD 代币,即转入的 DOD 代币数量越多获得的 BUSD 也越多。
2. 但由于 DOD 代币价格较低,恶意用户使用了 2.8 个 BNB 即兑换出 99,990,000 个 DOD。
3. 随后从各个池子中闪电贷借出大量的 BUSD 转入 DOD 合约中,以满足合约中 BUSD 数量大于 99,999,000 的解锁条件。
4. 之后只需要调用 DOD 合约中的 swap 函数,将持有的 DOD 代币转入 DOD 合约中,既可取出 1/10 转入数量的 BUSD 代币。
5. 因此 DOD 合约中的 BUSD 代币被非预期的取出。
本次 DOD 合约中的 BUSD 代币被非预期取出的主要原因在于项目方并未考虑到 DOD 低价情况下与合约中锁定的 BUSD 将产生套利空间。慢雾安全团队建议在进行经济模型设计时应充分考虑各方面因素带来的影响。[2022/3/10 13:48:45]
不是 IOTA 区块链协议的问题,是 IOTA 的 Trinity 桌面钱包的问题(官方说的,且先相信)
慢雾:BSC链上项目BXH遭受攻击分析:10月30日消息,据慢雾区情报,2021年10月30日,币安智能链上(BSC)去中心化交易协议BXH项目遭受攻击,被盗约1.3亿美金。经慢雾安全团队分析,黑客于27日13时(UTC)部署了攻击合约0x8877,接着在29日08时(UTC)BXH项目管理钱包地址0x5614通过grantRole赋予攻击合约0x8877管理权限。30日03时(UTC)攻击者通过攻击合约0x8877的权限从BXH策略池资金库中将其管理的资产转出。30日04时(UTC)0x5614暂停了资金库。因此BXH本次被盗是由于其管理权限被恶意的修改,导致攻击者利用此权限转移了项目资产。[2021/10/30 6:22:02]
这款桌面钱包基于 Electron(一个使用 JavaScript 为核心构建桌面应用的框架),意味着核心代码是 JavaScript 写的
在做该做钱包新旧版本代码的 diff 分析时,发现去除了之前内置的一个交易所功能模块 MoonPay,这其中关键点是去掉了一段可怕的代码:
慢雾:Furucombo被盗资金发生异动,多次使用1inch进行兑换:据慢雾MistTrack,2月28日攻击Furucombo的黑客地址(0xb624E2...76B212)于今日发生异动。黑客通过1inch将342 GRO、69 cWBTC、1700万cUSDC兑换成282 ETH,并将147ETH从Compound转入到自己的地址,截至目前该黑客地址余额约170万美元,另一个黑客地址余额为约1200万美元。[2021/3/3 18:12:14]
const script = document.createElement('script');script.src = 'https://cdn.moonpay.io/moonpay-sdk.js';document.write(script.outerHTML);如果这个第三方 JavaScript 链接主动或被黑作恶,那该桌面版钱包就可以认为是完全沦陷了。到这,我们很有理由相信这是个很大的定时炸弹,如果这个定时炸弹是真的炸了,那很吻合官方的一些说辞与解释,如:尽快升级新版本的 Trinity 桌面钱包,尽快改密码,尽快转移资产到安全种子里等等。且看官方的后续披露。
动态 | 慢雾:2020年加密货币勒索蠕虫已勒索到 8 笔比特币:慢雾科技反(AML)系统监测:世界最早的知名加密货币勒索蠕虫 WannaCry 还在网络空间中苟延残喘,通过对其三个传播版本的行为分析,其中两个最后一次勒索收到的比特币分别是 2019-04-22 0.0584 枚,2019-09-01 0.03011781 枚,且 2019 年仅发生一次,另外一个 2020 还在活跃,2020 开始已经勒索收到 8 笔比特币支付,但额度都很低 0.0001-0.0002 枚之间。这三个传播版本第一次发生的比特币收益都是在 2017-05-12,总收益比特币 54.43334953 枚。虽然收益很少,但 WannaCry 可以被认为是加密货币历史上勒索作恶的鼻主蠕虫,其传播核心是 2017-04-13 NSA 方程式组织被 ShdowBrokers(影子经纪人) 泄露第三批网络军火里的“永恒之蓝”(EternalBlue)漏洞,其成功的全球影响力且匿名性为之后的一系列勒索蠕虫(如 GandCrab)带来了巨大促进。[2020/2/23]
今天(2020/02/22),我们注意到了官方披露了一些细节,基本验证了我们的推测。
声音 | 慢雾:99%以上的勒索病使用BTC进行交易:据慢雾消息,勒索病已经成为全球最大的安全威胁之一,99%以上的勒索病使用BTC进行交易,到目前为止BTC的价格已经涨到了一万多美元,最近一两年针对企业的勒索病攻击也越来越多,根据Malwarebytes统计的数据,全球TO B的勒索病攻击,从2018年6月以来已经增加了363%,同时BTC的价格也直线上涨,黑客现在看准了数字货币市场,主要通过以下几个方式对数字货币进行攻击:
1.通过勒索病进行攻击,直接勒索BTC。
2.通过恶意程序,盗取受害者数字货币钱包。
3.通过数字货币网站漏洞进行攻击,盗取数字货币。[2019/8/25]
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.
攻击者利用 MoonPay 的 Cloudflare API Key 完成了后续一系列劫持攻击,预估被盗的 IOTA 达 8.55 Ti(8550000 枚 MIOTA,MIOTA 现在是交易所默认最小交易单元,当前价格 0.267 美金/MIOTA)。根据我们历史经验,如果 Web 服务方使用了 Cloudflare,而其 Cloudflare 账号权限被控制,就可以做到非常完美的中间人劫持攻击,注入恶意 JavaScript。而 Trinity 桌面钱包又是基于 Electron,一个完美的 JavaScript 执行环境就摆在这,不需要任何特别的越权,JavaScript 可以完成用户或 Trinity 钱包可以完成的任何事情,其中就包括密码和种子的盗取等等。
由于我们不像 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
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。