RIN:慢雾:IOTA 重大被盗币事件的分析与安全建议

一些天前我们注意到 IOTA 暂停了主网,虽然早前我们也知道 IOTA 用户遭遇了盗币攻击,但没想到 IOTA 官方会通过暂停主网方式来进行这次盗币攻击的阻拦与调查,看来问题很严重。随后,2020/02/19,我们深入分析了官方披露在 status.iota.org 上的一些线索,开始独立调查这次严重安全事故的具体原因。

通过对 IOTA 官方钱包 Trinity 新版本发布的分析,我们在其 GitHub 上进行了版本比对,注意到了 MoonPay 这个第三方组件被移除,且我们注意到 Trinitiy 桌面钱包是基于 Electron 开发的,安全经验告诉我们,这可能是个大坑,于是,我们 2020/02/19 时发布了一些推测:

慢雾:IOTA 用户 Trinity 钱包被盗币攻击推测

IOTA 因为近期不少用户的 Trinity 钱包被盗币攻击,为了阻止攻击继续、调查与修复具体原因,主网协调器都暂停运行了。这是一个被低估的经典攻击,官方没披露具体攻击细节,但通过我们的分析,可以做出某些重要推测,首先可以明确的几个点:

慢雾:近期出现新的流行恶意盗币软件Mystic Stealer,可针对40款浏览器、70款浏览器扩展进行攻击:6月20日消息,慢雾首席信息安全官@IM_23pds在社交媒体上发文表示,近期已出现新的加密货币盗窃软件Mystic Stealer,该软件可针对40款浏览器、70款浏览器扩展、加密货币钱包进行攻击,如MetaMask、Coinbase Wallet、Binance、Rabby Wallet、OKX Wallet、OneKey等知名钱包,是目前最流行的恶意软件,请用户注意风险。[2023/6/20 21:49:05]

不是 IOTA 区块链协议的问题,是 IOTA 的 Trinity 桌面钱包的问题(官方说的,且先相信)

这款桌面钱包基于 Electron(一个使用 JavaScript 为核心构建桌面应用的框架),意味着核心代码是 JavaScript 写的

在做该做钱包新旧版本代码的 diff 分析时,发现去除了之前内置的一个交易所功能模块 MoonPay,这其中关键点是去掉了一段可怕的代码:

慢雾:Nomad事件中仍有超过9500万美元被盗资金留在3个地址中:8月2日消息,慢雾监测显示,Nomad攻击事件中仍有超过9500万美元的被盗资金留在3个地址中。其中0xB5C55f76f90Cc528B2609109Ca14d8d84593590E中仍有1084枚ETH、120万枚DAI、103枚WBTC等约800万美元的加密资产,该地址也负责将1万枚WETH转移到另一地址以及将其他USDC转移;第二个地址0x56D8B635A7C88Fd1104D23d632AF40c1C3Aac4e3目前仍有1.28万枚ETH、1.02万枚WETH、80万DAI等约4700万美元的加密资产;第三个地址0xBF293D5138a2a1BA407B43672643434C43827179在收到3866.6万USDC后兑换为了DAI,目前有约3970万美元的加密资产。

目前慢雾经过梳理后,无法将地址3与其他两个地址连接起来,但这些攻击具有相同的模式。[2022/8/2 2:53:04]

const script = document.createElement('script');script.src = 'https://cdn.moonpay.io/moonpay-sdk.js';document.write(script.outerHTML);如果这个第三方 JavaScript 链接主动或被黑作恶,那该桌面版钱包就可以认为是完全沦陷了。到这,我们很有理由相信这是个很大的定时炸弹,如果这个定时炸弹是真的炸了,那很吻合官方的一些说辞与解释,如:尽快升级新版本的 Trinity 桌面钱包,尽快改密码,尽快转移资产到安全种子里等等。且看官方的后续披露。

慢雾:DEUS Finance 二次被黑简析:据慢雾区情报,DEUS Finance DAO在4月28日遭受闪电贷攻击,慢雾安全团队以简讯的形式将攻击原理分享如下:

1.攻击者在攻击之前先往DeiLenderSolidex抵押了SolidexsAMM-USDC/DEI的LP。

2.在几个小时后攻击者先从多个池子闪电贷借出143200000USDC。

3.随后攻击者使用借来的USDC在BaseV1Pair进行了swap操作,兑换出了9547716.9个的DEI,由于DeiLenderSolidex中的getOnChainPrice函数是直接获取DEI-USDC交易对的代币余额进行LP价格计算。因此在此次Swap操作中将拉高getOnChainPrice函数获取的LP价格。

4.在进行Swap操作后,攻击者在DeiLenderSolidex合约中通过borrow函数进行借贷,由于borrow函数中用isSolvent进行借贷检查,而在isSolvent是使用了getOnChainPrice函数参与检查。但在步骤3中getOnChainPrice的结果已经被拉高了。导致攻击者超额借出更多的DEI。

5.最后着攻击者在把用借贷出来DEI兑换成USDC归还从几个池子借出来的USDC,获利离场。

针对该事件,慢雾安全团队给出以下防范建议:本次攻击的原因主要在于使用了不安全的预言机来计算LP价格,慢雾安全团队建议可以参考Alpha Finance关于获取公平LP价格的方法。[2022/4/28 2:37:18]

今天(2020/02/22),我们注意到了官方披露了一些细节,基本验证了我们的推测。

金色相对论 | 度小满金融李丰:基于以太猫技术层面的突破可能诞生区块链游戏2.0:在本期金色相对论之“Dapp游戏”中,针对金色财经内容合伙人佟扬“区块链游戏现象级应用的出现应该具备哪些条件”的提问,度小满金融(原百度金融)区块链负责人李丰表示,以太猫开了个头,算是现象级应用。在其之前出现的,算小应用,我们看到游戏性很差。因此,我认为下一阶段,如果要出现类似以太猫这种,具有应用突破性的应用,我们把她叫做区块链游戏2.0(以太猫算区块链游戏1.0)的话,可能需要具备以下条件。

首先,区块链本身技术层面需要有较大的发展。游戏所依赖的底层区块链技术如果没有突破性创新,很难支撑新的游戏应用。我们知道,通常游戏的生命周期不长,因此用户体验非常关键。如果技术层面无法满足用户体验方面的要求,那么应用层面很难有大的突破。这里说的技术层面的突破,不仅仅是炒得比较厉害的tps方面的,而是区块链在底层结构、整体架构以及数字化资产应用能力支撑方面的,基于技术层面突破,带来的新的应用思路和架构,我们需要发现首先合适的游戏场景或类型:又体现技术的特性,又实现技术与业务的完美融合。以太猫基于以太坊当时的技术特性(性能、合约等方面的能力,大家可以复盘下它的成功要素),是收藏类;那么基于技术层面的突破,基于新的能力,很可能能够诞生更加sexy的场景或类型,策略类,对战类,甚至是第一人称射击类也好,都有可能。而这方面的最先突破,就需要既关注技术,同时在游戏方面有深厚积累的人士来创新了,我们拭目以待。[2018/12/3]

https://blog.iota.org/trinity-attack-incident-part-1-summary-and-next-steps-8c7ccc4d81e8

声音 | 慢雾:警惕“假充值”攻击:慢雾分析预警,如果数字货币交易所、钱包等平台在进行“EOS 充值交易确认是否成功”的判断存在缺陷,可能导致严重的“假充值”。攻击者可以在未损失任何 EOS 的前提下成功向这些平台充值 EOS,而且这些 EOS 可以进行正常交易。

慢雾安全团队已经确认真实攻击发生,但需要注意的是:EOS 这次假充值攻击和之前慢雾安全团队披露过的 USDT 假充值、以太坊代币假充值类似,更多责任应该属于平台方。由于这是一种新型攻击手法,且攻击已经在发生,相关平台方如果对自己的充值校验没有十足把握,应尽快暂停 EOS 充提,并对账自查。[2019/3/12]

重点关注下这段:

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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-3:493ms