0

0

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

DDD

DDD

发布时间:2024-04-24 14:43:22

|

949人浏览过

|

来源于PANews

转载

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

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

 

攻击简述

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 代币的权力。

具体攻击步骤如下:

  1. 攻击者调用漏洞合约的「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 」这么多的额度给攻击者。

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

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

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

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

  3. 攻击者重复 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 如下(仅罗列了以太坊上的交易):

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

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

安全建议

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

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

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

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

相关文章

Edge浏览器
Edge浏览器

Edge浏览器是由Microsoft(微软中国)官方推出的全新一代手机浏览器。Edge浏览器内置强大的搜索引擎,一站搜索全网,搜文字、搜图片,快速识别,帮您找到想要的内容。有需要的小伙伴快来保存下载体验吧!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6043

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

781

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1047

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

1090

2024.03.01

数据分析的方法
数据分析的方法

数据分析的方法有:对比分析法,分组分析法,预测分析法,漏斗分析法,AB测试分析法,象限分析法,公式拆解法,可行域分析法,二八分析法,假设性分析法。php中文网为大家带来了数据分析的相关知识、以及相关文章等内容。

454

2023.07.04

数据分析方法有哪几种
数据分析方法有哪几种

数据分析方法有:1、描述性统计分析;2、探索性数据分析;3、假设检验;4、回归分析;5、聚类分析。本专题为大家提供数据分析方法的相关的文章、下载、课程内容,供大家免费下载体验。

264

2023.08.07

网站建设功能有哪些
网站建设功能有哪些

网站建设功能包括信息发布、内容管理、用户管理、搜索引擎优化、网站安全、数据分析、网站推广、响应式设计、社交媒体整合和电子商务等功能。这些功能可以帮助网站管理员创建一个具有吸引力、可用性和商业价值的网站,实现网站的目标。

718

2023.10.16

数据分析网站推荐
数据分析网站推荐

数据分析网站推荐:1、商业数据分析论坛;2、人大经济论坛-计量经济学与统计区;3、中国统计论坛;4、数据挖掘学习交流论坛;5、数据分析论坛;6、网站数据分析;7、数据分析;8、数据挖掘研究院;9、S-PLUS、R统计论坛。想了解更多数据分析的相关内容,可以阅读本专题下面的文章。

499

2024.03.13

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Css3入门视频教程
Css3入门视频教程

共21课时 | 3.8万人学习

兄弟连高洛峰CSS3视频教程
兄弟连高洛峰CSS3视频教程

共20课时 | 3.9万人学习

CSS3进阶视频教程
CSS3进阶视频教程

共11课时 | 2.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号