OMA:权利的游戏 —— DAOMaker被黑分析_PolkaDomain

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

攻击对象

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

攻击者地址1:

0xd8428836ed2a36bd67cd5b157b50813b30208f50

攻击者地址2:

0xef9427bf15783fb8e6885f9b5f5da1fba66ef931

攻击合约:

0x1c93290202424902a5e708b95f4ba23a3f2f3cee

金山云在美递交IPO文件 公司通过与区块链等提供多行业解决方案:4月17日晚间,雷军旗下金山云在美递交了IPO的F-1文件,寻求在纳斯达克交易所上市,代码为“KC”。IPO文件显示,公司通过与人工智能、大数据、物联网、区块链、边缘计算、AR/VR等优势技术的有机结合,提供适用于政务、金融、AIoT、医疗、工业、传媒、视频、游戏、教育、互联网等行业的解决方案。(每日经济新闻)[2020/4/19]

DAOMaker受害合约:

0x41B856701BB8c24CEcE2Af10651BfAfEbb57cf49

DAOMaker受害合约deployer:0x054e71D5f096a0761dba7dBe5cEC5E2Bf898971c

声音 | 摩根溪合伙人:加密货币行业“大企业化、金融化”的持续发展 使得股票、债券等也将数字化:据jp.cointelegraph消息,近日,美国虚拟货币投资公司摩根溪数字资产公司的合伙人Anthony Pumpriano在采访时表示,“如果到2019年下半年,加密货币市场仍然是持续疲软状态的话,不要感觉疲倦,打起精神是很重要的。而且,随着加密货币行业的大企业化、金融化的持续发展,使得股票、债券、货币、商品也将数字化。”[2018/12/30]

DAOMaker受害合约admin:0x0eba461d9829c4e464a68d4857350476cfb6f559

攻击细节

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

声音 | Coinbase CEO:将加密行业与互联网早期进行比较并不明智:据bitcoinexchangeguide消息,Coinbase首席执行官Zach Abrams认为,将加密行业的发展与互联网的早期阶段进行比较并不明智,加密货币和区块链与互联网不同,不仅仅是环境,还有人们如何应对。几乎所有新技术都经历了长时间的被偶然发现,一段有意义的不确定性和市场发现时期,以及前所未有的增长突破。在每个周期中,平台都被怀疑,直到它变得显而易见,无可替代和利基,直到无处不在。[2018/11/6]

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

Dahlia Malkhi:以太坊Casper验证方法是给富豪更多权利:分布式系统专家、VMware researcher创始人Dahlia Malkhi批评了以太坊社区2018年的Casper协议,认为它使得财富团体有了更多权利。Casper协议使得货币证明不需要像比特币那样通过计算机算力解题消耗大量能源来通过验证增加区块,而是让参与者直接验证区块并获得奖励来添加新的区块,旨在提供一种更好更绿色的算法。[2018/3/4]

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

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

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

通过以上行为分析我们可以发现:攻击合约(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.而管理员则在UTC8月12日01:27:39将DAO合约设置为了攻击合约(0x1c):

TxHash:

0x2fba930502d27f9c9a2f2b9337a0149534dda7527029645752b2a6507ca6b0d6

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

总结

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

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

大币网

[0:15ms0-6:135ms