Cointime

扫码下载App
iOS & Android

SharkTeam:Sonne Finance攻击事件分析

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)项目上线前,需要由第三方专业的审计公司进行智能合约审计。

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

评论

所有评论

推荐阅读

  • BTC突破70000美元

    Cointime 报道,行情显示,BTC突破70000美元,现报70003.25美元,24小时涨幅达到3.96%,行情波动较大,请做好风险控制。

  • 伊朗通过巴基斯坦回击美国,拒绝停火,强调必须永久结束战争

    Cointime 报道,据伊朗伊斯兰共和国通讯社(IRNA):伊朗通过巴基斯坦回击美国,拒绝停火,强调必须永久结束战争。

  • 美媒称45天停火计划只是“众多方案之一”

    Cointime 报道,据美国媒体6日报道,一名白宫官员说,美国和伊朗之间为期45天的停火计划只是目前正在讨论的“众多方案之一”。这位白宫官员表示,美国总统特朗普尚未批准该计划,美方对伊朗的军事行动仍在继续。(新华社)

  • 特朗普尚未批准停火计划

    Cointime 报道,4月6日,美国白宫表示,美国总统特朗普尚未批准停火计划。潜在的停火方案只是众多设想之一。(金十)

  • Strategy上周增持4,871枚BTC,累计持仓突破76.6万枚

    Cointime 报道,4月6日,据Strategy官方披露,Strategy上周以约6.7718万美元的均价买入4,871枚BTC,总耗资约3.299亿美元。截至2026年,Strategy累计持有766,970枚BTC,总持仓成本约580.2亿美元,均价约7.5644万美元/枚。

  • 伊朗发动“真实承诺-4”第98波攻势 打击美军两栖攻击舰

    Cointime 报道,4月6日讯,伊朗伊斯兰革命卫队公共关系部发表声明说,伊朗发动“真实承诺-4”行动第98波攻势。声明称,伊斯兰革命卫队海军��用巡航导弹打击了属于“犹太复国主义政权”的集装箱船SDN7,该船被摧毁后发生大面积起火,还使用导弹打击了特拉维夫北部和南部、海法的战略中心、贝尔谢巴的化工企业与工厂,以及巴特赫费尔的军队驻地。声明还表示,搭载逾5000名水兵和海军陆战队员的美国军方两栖攻击舰LHA7也遭到导弹打击,在此次攻势后被迫撤退至印度洋南部深海区域。声明还称,阿联酋与以色列联合无人机生产中心,以及驻扎在阿里·萨利姆基地的多架飞机,均遭到无人机和导弹打击。 (金十)

  • 霍尔木兹海峡船只通行数量升至3月初以来最高水平

    Cointime 报道,4月6日,据外媒报道,霍尔木兹海峡通行量升至中东战争爆发初期以来最高水平,因更多国家与伊朗达成安全通行协议。周末共有21艘船只通过该水道,这是自3月初通行量开始下降以来的最高两日总量。尽管当前通行船只数量仍远低于战前水平(约135艘),但已有更多国家获得通行许可。新加坡Kpler高级原油分析师表示:“伊朗在回应其伙伴国请求的同时,也在强化对霍尔木兹的控制。通行仍取决于伊朗意愿,如果冲突升级,局势可能随时发生变化。”截至目前,大多数获准通行的船只似乎遵循德黑兰指示的航线,贴近伊朗海岸航行。不过,也有更多船只开始选择沿对岸航线行驶。 (金十)

  • 伊朗称美国15点计划“野心极大且不合逻辑”

    Cointime 报道,4月6日讯,据伊朗伊斯兰共和国通讯社(IRNA)报道,伊朗外交部发言人伊斯梅尔·巴盖伊表示,在近期有关结束战争的提议背景下,德黑兰已敲定自身诉求,但仅会在适当时机公布,并强调伊朗不会屈从于压力,。他表示:“几天前,他们通过中间方提出了一些方案,而这项包含15点内容的美国计划是通过巴基斯坦以及其他一些友好国家转达的。”他并补充称,“此类方案野心极大,又不同寻常,而且不合逻辑。”他强调,伊朗拥有自身框架。“基于我们的自身利益,基于我们的考量,我们已经整理并制定了我们过去和现在所提出的一系列诉求。”他还否认与调解方接触意味着软弱。“伊朗迅速且勇敢地对一项方案表达立场的事实,不应被视为向敌人屈服的表现。”(金十)

  • BTC突破70000美元关口

    Cointime 报道,行情显示,BTC突破70000美元关口,现报70071.01美元,24小时涨幅达到4.46%,行情波动较大,请做好风险控制。