SharkTeam:Hedgey Finance 被攻击事件分析
撰文:SharkTeam
2024 年 4 月 19 日,Hedgey Finance 遭受多笔攻击交易,损失超过 200 万美元。
SharkTeam 对此事件第一时间进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。
一、攻击交易分析
Hedgey Finance 被过个攻击者发起了多次攻击,利用代币批准漏洞,盗取了 ClaimCampaigns 合约中的大量代币。
以其中涉及金额最大的一笔交易为例,涉及金额约 130 万美元:
攻击交易:0x2606d459a50ca4920722a111745c2eeced1d8a01ff25ee762e22d5d4b1595739
攻击者:0xded2b1a426e1b7d415a40bcad44e98f47181dda2
攻击合约:0xc793113f1548b97e37c409f39244ee44241bf2b3
目标合约:0xbc452fdc8f851d7c5b72e1fe74dfb63bb793d511(ClaimCampaigns)
该交易直接从 ClaimCampaigns 合约中转移走了 1,303,910.12 USDC。交易详情如下:
实际发起攻击的交易是
0xa17fdb804728f226fcd10e78eae5247abd984e0f03301312315b89cae25aa517(简记为 0xa17f)
攻击过程如下:
1 从 Balancer 中闪电贷 1.305M USDC。
2 调用 ClaimCampaigns 合约中的 createLockedCampaign 函数。在该函数中,攻击合约会将 1.305M USDC 存入 ClaimCampaigns 合约中,然后 laimCampaigns 合约会将转入的 1.305M USDC 批准给攻击合约使用。
3 调用 ClaimCampaigns 合约中的 cancelCampaign 函数。在该函数中,攻击合约将存入的 1.305M USDC 提取出来,但在 createLockedCampaign 函数中批准给攻击合约的 USDC 并没有取消。
4 攻击合约偿还 Balancer 的闪电贷。
在该交易中,攻击合约将保存在 ClaimCampaigns 合约中的 1.305M USDC 提取走后,ClaimCampaigns 合约批准给攻击合约的 1.305M USDC 并没有取消,因此攻击合约可以直接调用 USDC 的 transferFrom 函数再次从 ClaimCampaigns 合约中转移走 1.305M USDC。这也是交易 0xa17fdb804728f226fcd10e78eae5247abd984e0f03301312315b89cae25aa517 实现的功能。
通过以上两笔交易,攻击者从 ClaimCampaigns 合约中盗取了 1.305M USDC。
除了 USDC 外,该攻击者利用此漏洞还从 ClaimCampaigns 合约中盗取了大量的 NOBL Token,加上 USDC,总价值超过 200 万美元。
二、漏洞分析
本次事件的根本原因是项目方智能合约在实现逻辑上存在代币批准漏洞,使得攻击者可以利重复转移目标合约批准给 msg.sender 中的 Token。
智能合约 ClaimCampaigns 的 createLockedCamaign 函数会将 msg.sender 的 Token 存入到目标合约中,并将这些 Token 批准给 msg.sender。
cancelCampaign 函数会将存入的 Token 提取出来,但却并没有取消代币的批准。
攻击者利用此漏洞,直接调用 Token 的 transferFrom 函数从目标合约中再次转移走批准的代币。
三、安全建议
针对本次攻击事件,我们在开发过程中应遵循以下注意事项:
(1)项目在设计和开发过程中,要保持逻辑的完整性和严谨性,尤其是涉及到资产的转移过程中,在转移 Token 时保证同步代币批准的数量,避免上面转移走了 Token 但没有取消批准的情况。
(2)项目上线前,需要由第三方专业的审计公司进行智能合约审计。
免责声明:文章中的所有内容仅代表作者的观点,与本平台无关。用户不应以本文作为投资决策的参考。
你也可能喜欢
Bounce 品牌推出由 AUCTION 提供支持的 BounceX 永久交易所
简单来说 Bounce Brand 推出了永久交易所 BounceX,使用户能够使用 AUCTION 作为杠杆交易的抵押品,从而进一步增强了代币的实用性。
Nym 将回购价值 1 万美元的 NYM 代币并于 12 月 XNUMX 日推出 NymVPN
简单来说 Nym 计划回购 1 万美元的 NYM,以增强其资金,并利用这些资金在即将推出之前增强 Nym 网络。
StarryNift 升级其 StarryAI 平台,促进人工智能和 Meme 创新
简单来说 StarryNift 升级其 StarryAI 平台,为人工智能驱动的模因创作、交易、娱乐和推广提供无缝体验。
ZKsync 发布启动 Ignite 计划并构建流动性中心的提案
简单来说 ZK Nation 发布提案,建议分发 325 亿个 ZK 代币以启动 Ignite 计划,该计划旨在建立一个 DeFi ZKsync 时代的流动性中心。