权利的游戏 :DAO Maker 被黑分析_AOM:OMA

2021年08月12日,据慢雾区消息,加密孵化机构DAOMaker疑似遭受黑客攻击,导致合约大量USDC被转出。慢雾安全团队第一时间介入分析,并将分析结果分享如下。??

攻击对象

在本次攻击中,攻击者部署并开源了一个攻击合约(0x1c)用于快速批量的从DAOMaker受害合约(0x41)中窃取资金。

攻击者地址1:

0xd8428836ed2a36bd67cd5b157b50813b30208f50

攻击者地址2:

0xef9427bf15783fb8e6885f9b5f5da1fba66ef931

攻击合约:

0x1c93290202424902a5e708b95f4ba23a3f2f3cee

美国国会议员:比特币是公民权利的衍生品:金色财经消息,美国众议院议员Pete Sessions发推称,金融自由是美国的自由,比特币是公民权利的衍生品。[2022/7/21 2:27:19]

DAOMaker受害合约:

0x41B856701BB8c24CEcE2Af10651BfAfEbb57cf49

DAOMaker受害合约deployer:0x054e71D5f096a0761dba7dBe5cEC5E2Bf898971c

DAOMaker受害合约admin:0x0eba461d9829c4e464a68d4857350476cfb6f559

攻击细节

本次攻击与往常攻击不同的是:DAOMaker受害合约(0x41)未开源,而攻击合约(0x1c)却开源了。

声音 | 律师刘晔:只有无限扩容、能够容纳全部现实权利数据的网络/链/币才能够生存和成长:上海市海上律师事务所合伙人刘晔在微博上表示:当世人明白数字货币的本质乃是网络上的不可篡改的记账空间,乃是与现实商品及服务(即权利)的网络映射--数据进行点对点的原子交换时,当明白,只有无限扩容,能够容纳全部现实权利数据的那一个网络、那一个链,那一个币能够生存,能够成长,而其他的不能无限扩容的链与币只能走向消亡。[2019/7/15]

从上图开源的攻击合约以及链上记录我们可以看出:?

1.黑客调用攻击合约(0x1c)的h函数,h函数会循环调用f函数,f函数通过DAOMaker受害合约的0x4b4f892a函数获取普通用户在受害合约(0x41)中的USDC存款数量。

动态 | NEM与OATH Protocol合作以保护用户在DApp中的权利:据koinalert消息,资产管理平台NEM(XEM)与OATH Protocol达成合作。OATH Protocol是一个致力于构建分散的、标准的、可扩展的不可知公共链协议的项目。此外,它旨在保护用户DApp的权利和资产。NEM中国领导人Steve Li表示,“ OATH Protocol是一种创新方式,可以让NEM在投票方面获得更好的体验”。[2018/10/4]

2.函数h接着调用DAOMaker受害合约(0x41)的withdrawFromUser(0x50b158e4)函数,传入用户存款的用户地址、USDC地址与需要提款的数量。

3.随后DAOMaker受害合约(0x41)将合约中的USDC转移至攻击合约中(0x1c)。

ITC万物链联合创始人吕新浩:数据主权是处理自己数据资产的权利:近日,世界数字资产峰会(WDAS2018)上,ITC万物链联合创始人吕新浩指出,数据主权(data sovereignty)是处理自己数据资产(data asset)的权利。不同于数字资产(digital asset),数据资产具有难转移、归属权难界定的特点。数据资产的价值在使用中被体现,而且价值在持续产生。ITC万物链将数据资产分为基础数据和行为数据,在万物链中,用户的数据主权将得到保护并产生收益。[2018/5/2]

通过以上行为分析我们可以发现:攻击合约(0x1c)调用了受害合约(0x41)的?withdrawFromUser函数,受害合约(0x41)就将合约管理的资金直接转给攻击合约(0x1c)。我们直接反编译受害合约(0x41)查看withdrawFromUser函数进行简单分析:

通过反编译的代码我们可以发现,此函数是有进行权限检查的,只有DAOcontracts才能调用此函数转移用户的资金。但攻击合约?(0x1c)明显不是DAO合约,因此其DAO合约必然是被攻击者替换过的。

通过链上分析我们可以清楚的看到:

1.受害合约部署者(0x05)在部署受害合约(0x41)?后于UTC4月12日08:33:45将0x0eba461d9829c4e464a68d4857350476cfb6f559?地址设置为了管理员角色:

TxHash:

0xa1b4fceb671bb70ce154a69c2f4bd6928c11d98cbcfbbff6e5cdab9961bf0e6d

2.随后受害合约部署者(0x05)通过调用revokeRole函数放弃了受害合约(0x41)管理权限:

TxHash:?

0x773613398f08ddce2cc9dcb6501adf4f5f159b4de4e9e2774a559bb1c588c1b8

3.而管理员则在UTC?8月12日01:27:39将DAO合约设置为了攻击合约(0x1c):

TxHash:?

0x2fba930502d27f9c9a2f2b9337a0149534dda7527029645752b2a6507ca6b0d6

因此攻击者才得以借助此攻击合约(0x1c)将受害合约(0x41)中用户的资金盗走。目前被盗资金被兑换成ETH转移至攻击者地址2(0xef)。

总结

本次攻击可能源于DAOMaker受害合约的管理员私钥泄漏。攻击者窃取私钥后将受害合约的DAO合约替换为了攻击合约,攻击者通过替换后的合约转走了合约中的用户资金。而由于合约部署者在设置完合约管理员后就放弃的合约管理权限,因此目前项目方可能还无法有效的取回合约控制权。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:15ms0-10:829ms