SharkTeam:Sonne Finance攻击事件分析

时间:2024-09-29 编辑: 浏览:(823)

2024年5月15日,Sonne Finance遭受攻击,项目方损失超过2千万美元。

SharkTeam对此事件第一时间进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。

一、攻击交易分析

攻击者:0xae4a7cde7c99fb98b0d5fa414aa40f0300531f43

攻击合约:0x02fa2625825917e9b1f8346a465de1bbc150c5b9

目标合约:0xe3b81318b1b6776f0877c3770afddff97b9f5fe5

攻击交易:0x9312ae377d7ebdf3c7c3a86f80514878deb5df51aad38b6191d55db53e42b7f0

攻击过程如下:

1. 闪电贷 35,569,150 VELO,并将这些VELO Token转移(transfer)至soVELO合约中

因为是直接转账(捐赠),没有铸造soVELO Token。因此,soVELO合约中,totalCash增加了35,569,150 VELO, soVELO的totalSupply不变。

2. 攻击者新建合约0xa16388a6210545b27f669d5189648c1722300b8b,在新合约中对目标合约发起攻击,攻击过程如下:

(1)向新合约中转入2 soVELO

(2)将soWETH和soVELO声明为抵押物

(3)从soWETH借贷265,842,857,910,985,546,929 WETH

从以上borrow函数的执行过程中,根据getAccountSnapshot函数的返回值,发现:

对于soWETH合约,新合约余额为0,借贷额为0,兑换率(exchangeRate)为208,504,036,856,714,856,032,085,073

对于soVELO合约,新合约余额为2,即抵押了2wei的 soVELO,借贷额为0,兑换率(exchangeRate)为17,735,851,964,756,377,265,143,988,000,000,000,000,000,000

exchangeRate计算如下:

抵押1wei的soVELO,可以借贷不超过17,735,851,964,756,377,265,143,988 VELO,而借贷265,842,857,910,985,546,929 WETH,至少需要抵押265,842,857,910,985,546,929 soWETH,

soWETH的价格:soWETHPrice = 2,892,868,789,980,000,000,000,

soVELO的价格:soVELOPrice = 124,601,260,000,000,000

抵押1wei的soVELO可借贷的WETH数量如下:

1 * exchangeRate * soVELOPrice / soWETHPrice = 763,916,258,364,900,996,923

约763 WETH。仅需1wei的soVELO抵押就足以支持本次借贷。

借贷265,842,857,910,985,546,929 WETH(约265 WETH)换算成抵押物soVELO,至少需要抵押的soVELO数量为:

265,842,857,910,985,546,929 * soWETHPrice / soVELOPrice / exchangeRate = 0.348

即1wei的soVELO抵押物即可。

实际上2wei的soVELO抵押物,在借贷时只用到了1wei

(4)赎回标的资产,即35,471,603,929,512,754,530,287,976 VELO

exchangeRate = 17,735,851,964,756,377,265,143,988,000,000,000,000,000,000

赎回35,471,603,929,512,754,530,287,976 VELO需要的抵押物soVELO的数量为

35,471,603,929,512,754,530,287,976 * 1e18 / exchangeRate = 1.99999436

在计算时,因为计算采用了截断取整而不是四舍五入,实际计算的所需抵押物为1wei的soVELO。

实际抵押物为2wei的soVELO,其中1wei用于上面的借贷265WETH,剩下的1wei用于赎回35M VELO

(5)将借贷的265 WETH以及赎回的35M VELO 转账给攻击合约

3. 反复3次(共4次)创建新合约,重复攻击。

4. 最后,偿还闪电贷。

二、漏洞分析

以上攻击过程中利用了2个漏洞:

(1)捐赠攻击:向soVELO合约直接转账(捐赠)VELO Token,改变了exchangeRate,使得攻击者可以在只有1wei soVELO的抵押物的情况下,借贷出约265 WETH

(2)计算精度问题:利用计算过程中的精度损失以及被修改的exchangeRate,在只抵押了1wei soVELO的情况下,可以赎回35M VELO

三、安全建议

针对本次攻击事件,我们在开发过程中应遵循以下注意事项:

(1)项目在设计和开发过程中,要保持逻辑的完整性和严谨性,尤其存款、质押、更新状态变量以及计算过程中乘除法计算结果的取舍问题,要尽可能多考虑一些情况,使得逻辑完整,没有漏洞。

(2)项目上线前,需要由第三方专业的审计公司进行智能合约审计。

About Us

SharkTeam的愿景是保护Web3世界的安全。团队由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约底层理论。提供包括风险识别与阻断、智能合约审计、KYT/AML、链上分析等服务,并打造了链上智能风险识别与阻断平台ChainAegis,能有效对抗Web3世界的高级持续性威胁(Advanced Persistent Threat,APT)。已与Web3生态各领域的关键参与者,如Polkadot、Moonbeam、polygon、Sui、OKX、imToken、Collab.Land、TinTinLand等建立长期合作关系。

官网:https://www.sharkteam.org

Twitter:https://twitter.com/sharkteamorg

Telegram:https://t.me/sharkteamorg

Discord:https://discord.gg/jGH9xXCjDZ

最新 更多 >
  • 1 MATIC币的交易对有哪些?

    Matic币的交易对有哪些? Matic币(MATIC)是一个以太坊(Ethereum)侧链上的加密货币代币,它旨在提供可扩展性和实现即时交易确认的解决方案。由于其技术特性和潜在的应用领域,MATIC币在加密货币市场中备受关注。以下是MATIC币的一些主要交易对:1. MATIC/USDT: 这是MATIC币与稳定币USDT(Tether)之间的交易对。USDT是以美元为支持资产的稳定币,与M

  • 2 TRX波场币的最大供应量是多少?

    TRX波场币的最大供应量是多少?TRX(波场币)是波场网络(TRON)的原生加密货币。TRON是一个基于区块链技术的去中心化平台,旨在革新全球数字娱乐行业的交付方式。TRX作为波场网络的内部经济系统的一部分,扮演着关键的角色。TRX的最大供应量是1000亿。在创始人孙宇晨的领导下,TRON团队于2017年通过ICO(首次代币发行)销售了60亿TRX,同时保留了400亿TRX作为后续发展和生态建设的

  • 3 如何抛售数字货币

    如何抛售数字货币数字货币市场的波动性非常大,投资者往往会面临选择抛售数字货币的困境。正确的抛售策略能够帮助投资者最大化收益并避免损失。以下是一些关键步骤和建议,帮助你制定抛售数字货币的策略。1.研究市场和项目在抛售数字货币之前,请确保充分了解市场和你所持有的项目。研究市场趋势、项目的实际应用和发展前景。了解项目的白皮书、路线图和团队背景等信息,以评估项目的可行性和潜在价值。2.目标定价在抛售数字货

  • 4 MATIC币是否有可能成为主流加密货币?

    Matic Network: Is it Possible to Become a Mainstream Cryptocurrency? The world of cryptocurrencies is constantly evolving, with new projects and coins entering the market every day. One such project

  • 5 DOT波卡币的社区活跃度如何?

    DOT波卡币的社区活跃度如何?DOT波卡币(Polkadot)作为一个具有分片技术的区块链项目,其社区活跃度一直较高。在这篇文章中,我们将进一步探讨DOT波卡币的社区活跃度如何,并分析其原因。技术交流与开源DOT波卡币的社区活跃度得益于其强调技术交流与开源的理念。波卡社区通过各种方式促进开发者间的交流,如在线论坛、社交媒体、技术会议等。同时,波卡还鼓励开发者贡献自己的代码和项目,通过开源方式共同推

  • 6 MATIC币和Polygon有什么关系?

    MATIC币和Polygon有什么关系?MATIC币(MATIC)是一个基于以太坊的加密货币,而Polygon是一个针对以太坊生态系统的扩展解决方案。它们之间有着密切的关系,下面将详细介绍它们之间的联系。首先,MATIC币是Polygon的原生代币,也被称为MATIC代币。Polygon最初是作为一个以太坊的二层扩展解决方案而推出的,目的是解决以太坊网络的拥堵问题并提高交易速度和吞吐量。在Poly

  • 7 ICP币是否有专门的开发者社区?

    ICP币是否有专门的开发者社区?随着加密货币市场日益火热,越来越多的项目和币种涌现出来。其中一个备受关注的项目是互联网计算机协议(Internet Computer Protocol,简称ICP)。ICP币是这个项目的本地通证,被认为是一种重要的数字货币。在ICP币的发展过程中,是否有专门的开发者社区呢?答案是肯定的。作为一个技术导向的项目,ICP币拥有强大的开发者社区,这个社区由世界各地的开发者

  • 8 DOT波卡币是否有可能被其他项目超越?

    是否有可能被其他项目超越?DOT(波卡币)作为一种新兴的加密货币,自推出以来已逐渐受到全球投资者的关注。然而,对于它是否有可能被其他项目超越,仍然存在着一些争议和不确定性。首先,DOT的背后是一个拥有强大技术实力和创新理念的团队。波卡项目的创始人是以太坊的共同创始人之一,他们在区块链技术领域拥有着丰富的经验和知识。这使得波卡项目在技术上具备了较高的竞争力,与其他项目相比具有一定的优势。其次,波卡币

  • 9 买卖数字货币是否违法

    买卖数字货币是否违法?随着数字货币的兴起,越来越多的人开始探索和投资这一新兴领域。然而,买卖数字货币是否合法一直是一个备受争议的话题。本文将对此进行一些讨论。首先,我们需要明确的是,没有任何国家或地区将买卖数字货币作为违法行为。尽管如此,在某些国家,政府对数字货币的监管比较严格,有一些限制和规定。比如,在中国,政府自2017年开始关闭了大部分国内的加密货币交易所,并且禁止了初始代币发行(ICO),

  • 10 TON币如何看待加密货币的未来?

    TON(The Open Network)Coin如何看待加密货币的未来?加密货币作为数字化时代的金融革命产品,正在全球范围内引起越来越多的关注和讨论。其中,TON(The Open Network)币作为一种新兴的加密货币,引起了人们的极大兴趣。那么,我们应该如何看待加密货币的未来?下面,本文将从几个关键方面讨论加密货币的前景。1. 技术成熟度加密货币的未来关键取决于其技术成熟度。作为一种去中心