首页 资讯 正文

SharkTeam:Hedgey Finance被攻击事件分析

Odaily星球日报 2024年04月23日 15:46

2024 年 4 月 19 日,Hedgey Finance 遭受多笔攻击交易,损失超过 200 万美元。

SharkTeam:Hedgey Finance被攻击事件分析

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

一、攻击交易分析

Hedgey Finance 被过个攻击者发起了多次攻击,利用代币批准漏洞,盗取了 ClaimCampaigns 合约中的大量代币。

以其中涉及金额最大的一笔交易为例,涉及金额约 130 万美元:

攻击交易:0x2606d459a50ca4920722a111745c2eeced1d8a01ff25ee762e22d5d4b1595739

攻击者:0xded2b1a426e1b7d415a40bcad44e98f47181dda2

攻击合约:0xc793113f1548b97e37c409f39244ee44241bf2b3

目标合约:0xbc452fdc8f851d7c5b72e1fe74dfb63bb793d511(ClaimCampaigns)

该交易直接从 ClaimCampaigns 合约中转移走了 1, 303, 910.12 USDC。交易详情如下:

SharkTeam:Hedgey Finance被攻击事件分析

实际发起攻击的交易是

0xa17fdb804728f226fcd10e78eae5247abd984e0f03301312315b89cae25aa517(简记为0x a 17 f)

攻击过程如下:

SharkTeam:Hedgey Finance被攻击事件分析

1 从 Balancer 中闪电贷 1.305 M USDC。

2 调用 ClaimCampaigns 合约中的 createLockedCampaign 函数。在该函数中,攻击合约会将 1.305 M USDC 存入 ClaimCampaigns 合约中,然后 laimCampaigns 合约会将转入的 1.305 M USDC 批准给攻击合约使用。

3 调用 ClaimCampaigns 合约中的 cancelCampaign 函数。在该函数中,攻击合约将存入的 1.305 M USDC 提取出来,但在 createLockedCampaign 函数中批准给攻击合约的 USDC 并没有取消。

4 攻击合约偿还 Balancer 的闪电贷。

在该交易中,攻击合约将保存在 ClaimCampaigns 合约中的 1.305 M USDC 提取走后,ClaimCampaigns 合约批准给攻击合约的 1.305 M USDC 并没有取消,因此攻击合约可以直接调用 USDC 的 transferFrom 函数再次从 ClaimCampaigns 合约中转移走 1.305 M USDC。这也是交易0xa17fdb804728f226fcd10e78eae5247abd984e0f03301312315b89cae25aa517实现的功能。

通过以上两笔交易,攻击者从 ClaimCampaigns 合约中盗取了 1.305 M USDC。

除了 USDC 外,该攻击者利用此漏洞还从 ClaimCampaigns 合约中盗取了大量的 NOBL Token,加上 USDC,总价值超过 200 万美元。

cancelCampaign 函数会将存入的 Token 提取出来,但却并没有取消代币的批准。

SharkTeam:Hedgey Finance被攻击事件分析

攻击者利用此漏洞,直接调用 Token 的 transferFrom 函数从目标合约中再次转移走批准的代币。

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