Hedgey 攻击事件分析 - 损失上千万美元的代币授权

时间:2024-09-20 编辑: 浏览:(839)

2024 年 4 月 19 日,Hedgey Token Claim 合约在以太坊、Arbitrum 等多条链上被攻击,损失高达数千万美元。Hedgey 项目方随即发出安全告警,提醒创建代币认领活动的用户通过官方渠道取消代币认领活动。(https://twitter.com/hedgeyfinance/status/1781257581488418862)

攻击简述

Hedgey 帮助 DAOs 和链上组织通过链上、程序化的代币发放,将代币分配给他们的团队、贡献者、投资者和社区。本次出现漏洞的工具是其 Token Claims 产品,该产品可以让用户创建一个代币认领页面,通过 CSV 文件添加多达十万多名接收者到白名单中,并控制如何通过流、时间锁、回收等方式释放已认领的代币。

而本次攻击事件所利用的合约漏洞在于:Token Claims 产品中的 ClaimCampaigns 合约在创建一个代币认领活动时,将自身的 token 授权给了创建者指定的地址。在该创建者取消认领活动时,将活动创建阶段创建者转入的 token 返还给创建者指定的另一个地址,但并未撤销 token 授权,导致活动创建者的地址依然可以使用 ClaimCampaigns 合约所授权的 token。

攻击中涉及的关键地址

本次攻击涉及到多笔交易,我们仅以下面这笔盗取 NOBL 代币的交易为例来对攻击原理进行分析。

攻击交易:

https://etherscan.io/tx/0x017ce9593350cba65d506e1a87e52d2c20079fdfa80a350a89fe6fc875f2d9f9

攻击 EOA:

0xded2b1a426e1b7d415a40bcad44e98f47181dda2

攻击者(合约):

0xd818ff3d5cfc938014b270d0c8029ba04629b549

漏洞合约(ClaimCampaigns):

0xbc452fdc8f851d7c5b72e1fe74dfb63bb793d511

被盗代币(NobleBlocks: NOBL Token):

0x88b9f5c66342ebaf661b3e2836b807c8cb1b3195

攻击流程分析

1.攻击实施

在攻击实施阶段,攻击者多次调用漏洞合约的 「 createLockedCampaign 」 函数创建 campaign,再调用「 cancelCampaign 」函数删除 campaign。创建 campaign 时,攻击者向漏洞合约转入指定数量的 NOBL 代币,并获得漏洞合约给其授权的 NOBL 代币使用额度。删除 campaign 时,漏洞合约退还攻击者创建 campaign 时转入的 NOBL 代币,然而此时漏洞合约并未撤销给攻击者授权的 NOBL 代币使用额度。因此攻击者通过创建 campaign 再删除 campaign,可以凭空获取花费漏洞合约持有的 NOBL 代币的权力。

具体攻击步骤如下:

攻击者调用漏洞合约的「 createLockedCampaign 」函数创建 campaign,在参数中将 「 campaign.manager 」和「 claimLockup.tokenLocker 」均设置为攻击者自己,将「 campaign.token 」设置为 NOBL 代币,「 campaign.amount 」设置为「 680000000000000000000000 」(NOBL 代币的 decimal 为 18,因此此处代表 680000 个 NOBL 代币),「 donation.amount 」设置为 0。从「 createLockedCampaign 」函数代码可以看出,攻击者首先将 NOBL 代币转给漏洞合约,然后再通过「 safeIncreaseAllowance 」函数,使漏洞合约给「 claimLockup.tokenLocker 」(攻击者)授权花费漏洞合约持有的 NOBL 代币的权力,此处授权了「 campaign.amount 」这么多的额度给攻击者。

攻击者调用「 cancelCampaign 」函数删除第 1 步中创建的 campaign,从函数代码可以看出,漏洞合约将该 campaign 的数据删除,并调用 TransferHelper 库的 「 withdrawTokens 」函数将第 1 步中攻击者转入的 NOBL 代币还给「 campaign.manager 」(攻击者)。至此 campaign 成功被取消,然而第 1 步中漏洞合约授权给攻击者的 NOBL 代币使用额度并没有同步删除。因此攻击者此时还具备花费漏洞合约 NOBL 代币的权力。

攻击者重复 25 次第 1 步和第 2 步的操作,最终从漏洞合约获取到了 680000 * 25 = 17000000 个 NOBL 代币的使用额度。

2.收割赃款

在收割赃款阶段,攻击者直接调用 NOBL 代币的「 transferFrom 」函数,将 NOBL 代币从漏洞合约转到攻击者 EOA 地址上,由于在攻击实施阶段攻击者已经拿到了花费漏洞合约持有的 NOBL 代币的权力,因此在「 transferFrom 」函数中的额度校验可以顺利通过,最终攻击者成功盗取了漏洞合约中的 NOBL 代币。

具体细节请查看交易:

https://etherscan.io/tx/0x47da1ac72d488f746865891c9196c1632ae04f018b285b762b2b564ad1d3a9e5

攻击中涉及到的交易

通过 ZAN KYT 数据分析,攻击者在从漏洞合约中取走 NOBL token 之前,利用合约漏洞让漏洞合约给攻击者 approve token 的交易 hash 如下(仅罗列了以太坊上的交易):

目前,攻击者已将部分非法所得转移到了另外一个地址 0xd84f48b7D1AaFA7bd5905c95c5d1ffB2625AdA46 上,目前暂时没有其他动作。而 claims 合约的开发者(0x5a4bC2bdA1f6B9929b6efdCef4728246bEc4C635)通过 Blockscan chat 与攻击者联系,承认了合约中的漏洞并假定了他们的行为为白帽行动,希望攻击者在 24 小时内与他们取得联系。

安全建议

通过分析本次攻击事件,我们有如下建议:

严格审查项目中代币授权的操作。项目开发者和合约审计者应该明确哪些业务场景需要代币授权,哪些业务场景需要回收代币授权,避免未回收的代币授权或预期之外多余的授权被攻击者利用。

项目应设置紧急暂停机制。建议涉及到资金流转的项目都建立完善的暂停机制,当攻击发生时,能及时止损。

本文由 ZAN Team 的 Cara(X 账号 @Cara6289)和 XiG(X 账号 @SHXiGi)共同撰写。

最新 更多 >
  • 1 DT币的未来发展潜力和路线图是什么?

    DT币的未来发展潜力和路线图DT币(Digital Token Coin)是一种基于区块链技术的数字货币,具有独特的发展潜力和广阔的市场前景。随着数字经济的快速发展和区块链技术的成熟,我们可以看到DT币在未来的发展路线上有着巨大的潜力。1. 去中心化和安全性DT币的首要特点是去中心化,它的交易和记录都将被存储在区块链上,不依赖于任何中心机构。这使得DT币具有很高的安全性,避免了传统金融系统中的潜在

  • 2 BTT币如何处理网络的可扩展性问题?

    BTT币如何处理网络的可扩展性问题?随着数字货币和区块链技术的发展,越来越多的项目开始考虑如何处理网络的可扩展性问题,以便能够应对日益增长的用户和交易量。BitTorrent Token(BTT币)作为区块链技术在P2P文件共享网络中的一次尝试,也在面临着类似的挑战。本文将探讨BTT币是如何处理网络的可扩展性问题的。1. 分层架构BTT币采用了分层架构来提高网络的可扩展性。在BTT币的网络中,分为

  • 3 DYDX币是否有空投、奖励或用户激励计划?

    DYDX币是否有空投、奖励或用户激励计划?在加密货币领域中,很多项目为了推广和发展,会使用空投、奖励或用户激励计划来吸引更多的用户和社区建设者。DYDX是一个知名的去中心化交易所(DEX),那么它是否有类似的激励计划呢?本文将详细探讨DYDX币是否有空投、奖励或用户激励计划。空投在加密货币空投中,项目方会向一组特定的用户发送一定数量的代币,以吸引更多的用户参与项目。然而,在DYDX的白皮书和官方网

  • 4 SHIB币对整个加密生态系统的贡献是什么?

    SHIB币对整个加密生态系统的贡献是什么?SHIB币是一种加密货币,作为加密生态系统的一部分,它在许多方面都发挥着重要的作用和贡献。以下是SHIB币对整个加密生态系统的几个主要贡献。1. 社区建设和慈善事业SHIB币的社区非常活跃,并且高度重视社区建设和慈善事业。它致力于促进成员之间的交流和互动,并鼓励社区成员为慈善事业提供支持与帮助。SHIB币社区通过捐赠一部分利润给动物保护组织等慈善机构,在帮

  • 5 FTT币如何在数字资产市场中创新?

    FTT币如何在数字资产市场中创新?FTT(FTX Token)是FTX数字资产交易平台的原生代币,FTX平台是一个全球领先的加密货币交易所。FTT币在数字资产市场中创新,主要体现在以下几个方面:1. 价格模型创新FTT币通过一种创新的价格模型,即采用动态的交易手续费,使得FTX交易平台的用户可以享受到更低的交易手续费。这种模型可以根据用户持有的FTT币数量,降低他们的手续费费率。这种创新的价格模型

  • 6 BTT币的未来发展计划和路线图是怎样的?

    未来发展计划和路线图作为全球最大的去中心化交易所之一,BTT(BitTorrent Token)币在区块链世界中具有巨大的潜力。根据其未来发展计划和路线图,BTT币将继续推动去中心化交易所的发展,并积极探索其他应用领域,为用户提供更广泛的服务。第一阶段:加快去中心化交易所的发展作为BTT币的核心应用,去中心化交易所将是重点发展的方向。BTT团队将致力于加强交易所的安全性和可扩展性,提升用户体验并吸

  • 7 TRB币是否有重大的技术升级计划?

    TRB币是否有重大的技术升级计划?TRB币(TRB)是一种基于区块链技术的加密货币,旨在通过去中心化的方式实现更安全、更透明的交易。在当前迅猛发展的加密货币市场中,技术的不断升级和创新对于保持竞争力至关重要。那么,TRB币是否有重大的技术升级计划呢?首先,我们需要了解TRB币的当前技术情况。TRB币是以太坊平台上的一个代币,使用了以太坊的智能合约技术作为其底层技术支持。以太坊智能合约技术的优势在于

  • 8 使用和管理COCOS币的日常注意事项是什么?

    使用和管理COCOS币的日常注意事项随着数字货币的普及,越来越多的人开始了解和使用COCOS币。作为一种去中心化的数字货币,COCOS币具有独特的优势和特点。但是在使用和管理COCOS币时,我们也需要注意一些日常的事项。1. 了解市场风险,谨慎投资在使用COCOS币之前,我们需要先了解市场风险和投资风险。数字货币市场波动较大,价格会受到多种因素的影响,包括市场供需、政策变动、技术创新等等。因此,在

  • 9 NAV币的市场推广策略和合作伙伴是什么?

    NAV币的市场推广策略和合作伙伴在加密货币市场的竞争激烈之下,NAV币作为一种数字货币,需要有创新的市场推广策略和强大的合作伙伴来帮助其取得更大的影响力和市场份额。市场推广策略1. 社交媒体营销:NAV币可以利用各种社交媒体平台,如Twitter、Facebook等,通过定期发布有关其项目进展、技术发展和行业新闻等内容来吸引更多的关注和兴趣。2.内容营销:NAV币可以建立一个博客或通讯平台,定期发

  • 10 DYDX币如何保证数据安全和隐私?

    DYDX币如何保证数据安全和隐私?DYDX币作为一种加密货币,积极采取措施保证数据安全和用户隐私的保护。以下是DYDX币所采取的主要措施:1. 基于区块链的分布式账本DYDX币运行在基于区块链的分布式账本上,所有交易数据都被记录在区块链上,并通过共识算法进行验证。这意味着数据一旦上链,将无法篡改或删除,确保数据的真实性和安全性。2. 加密算法保护DYDX币使用高强度的加密算法保护用户数据和交易信息