2021年08月12日,据慢雾区消息,加密孵化机构DAOMaker疑似遭受黑客攻击,导致合约大量USDC被转出。慢雾安全团队第一时间介入分析,并将分析结果分享如下。??
攻击对象
在本次攻击中,攻击者部署并开源了一个攻击合约(0x1c)用于快速批量的从DAOMaker受害合约(0x41)中窃取资金。
攻击者地址1:
0xd8428836ed2a36bd67cd5b157b50813b30208f50
攻击者地址2:
0xef9427bf15783fb8e6885f9b5f5da1fba66ef931
攻击合约:
0x1c93290202424902a5e708b95f4ba23a3f2f3cee
Coin Center:美财政部制裁Tornado Cash或违反了正当程序及宪法权利:金色财经报道,加密货币倡导组织Coin Center发布博客文章称,美国财政部外国资产控制办公室(OFAC)制裁Tornado Cash可能在法律和宪法上存在缺陷,Coin Center表示,“我们认为OFAC通过将某些Tornado Cash智能合约地址添加到SDN列表中超越了其法律权限,这一行为可能违反了正当程序及宪法权利”。
Coin Center认为,智能合约不能成为可制裁的实体,这样的标准对全世界的代码人员来说都是危险的。文章称,“这一行动发出了一个信号,实际上似乎是为了发出一个信号,美国人不应该使用某种工具和软件,即使是完全合法的目的”。Coin Center承诺其第一步是与OFAC合作,但该组织也表示,“我们将开始与律师探讨对这一行动的法庭挑战。敬请期待。”[2022/8/16 12:27:43]
DAOMaker受害合约:
马斯克:如果推特违反并购协议,(本人)保留终止并购协议的权利:6月6日消息,马斯克要求推特提供更多关于垃圾邮件账户的信息。·马斯克表示,推特拒绝提供有关垃圾邮件账户的信息违反了并购协议。不相信推特“松懈的测试方法是充分的,所以他(马斯克)必须自己进行分析”。推特最新提供的信息只是有关其自身测试方法的额外细节,这“等于拒绝”提供(账户)数据的请求。如果推特违反并购协议,(本人)保留终止并购协议的权利。认为推特拒绝履行义务。作为推特的未来所有者,有权获得数据。不需要解释请求获得数据的理由。(金十)[2022/6/6 4:06:32]
0x41B856701BB8c24CEcE2Af10651BfAfEbb57cf49
DAOMaker受害合约deployer:0x054e71D5f096a0761dba7dBe5cEC5E2Bf898971c
声音 | 权利组织EFF和ORG:和加密立法可能会伤害开源生态系统,反对监管隐私币:据The Register消息,非营利组织电子前沿基金会(EFF)和在线基层组织英国开放权利集团(ORG)回应了英国财政部关于欧盟第五次反指令(5MLD)的咨询,特别是关于发布开源软件是否应遵守客户尽职调查(CDD)要求的建议。 EFF和ORG表示,“我们以前见过这种对开源软件发布的攻击,这些监管提议不仅会对区块链生态系统的新兴技术产生巨大而不可预测的后果,也会对整个FLOSS(免费、自由和开源软件)软件生态系统产生巨大而不可预测的后果。” 两个组织认为,尽管监管加密软件的想法听起来很合理,但这可能会产生意想不到的后果。“此类法规将加重多个行业的负担,以确保它们的软件不会被视为加密计划基础设施的一部分。”它们建议,监管开源软件最好分开进行,而不是在5MLD立法范围内进行。 两个组织也反对监管隐私币,认为这些币是一件好事,“隐私币有潜力通过将公民离线享有的一些保护引入数字世界,从而增强人权。此外,任何区分隐私币和非隐私币的尝试都是有问题的。”[2019/6/12]
DAOMaker受害合约admin:0x0eba461d9829c4e464a68d4857350476cfb6f559
动态 | 法国新加密法授予区块链企业开设银行账户的权利:法国新加密法“PACTE”法案将授予区块链初企开设银行账户的权利,前提是他们选择受到监管。AMF金融科技创新和竞争力部门负责人Domitille Dessertine表示,加密参与者对银行业务需求的“强烈反馈”与法国当局消除“银行业关系”的坚定共识相匹配。法国政府和立法者“非常支持这项权利,只要你受到监管,就有权开设银行账户。”Dessertine解释说,该框架将在执行法令公布后开始运作,这将在今后几个月内实施。此外,新规定还鼓励法国私募股权或风险投资基金更多地参与ICO token,允许它们最多拿出其管理资产(AUM)的20%投资加密资产。(Coindesk)[2019/4/29]
攻击细节
本次攻击与往常攻击不同的是:DAOMaker受害合约(0x41)未开源,而攻击合约(0x1c)却开源了。
声音 | 吴忌寒:分散的矿工有制衡中心化机构的权利和影响:3月28日,在“POW’ER中国区块链贡献者年度峰会”上,比特大陆联合创始人吴忌寒现场发表“PoW机制的中心化与去中心化问题”的主题演讲。吴忌寒分别介绍了PoW的来源以及PoW机制和去中心化的关系,并表示:“分散的矿工有制衡中心化机构的权利和影响。”[2019/3/28]
从上图开源的攻击合约以及链上记录我们可以看出:?
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.而管理员则在UTC?8月12日01:27:39将DAO合约设置为了攻击合约(0x1c):
TxHash:?
0x2fba930502d27f9c9a2f2b9337a0149534dda7527029645752b2a6507ca6b0d6
因此攻击者才得以借助此攻击合约(0x1c)将受害合约(0x41)中用户的资金盗走。目前被盗资金被兑换成ETH转移至攻击者地址2(0xef)。
总结
本次攻击可能源于DAOMaker受害合约的管理员私钥泄漏。攻击者窃取私钥后将受害合约的DAO合约替换为了攻击合约,攻击者通过替换后的合约转走了合约中的用户资金。而由于合约部署者在设置完合约管理员后就放弃的合约管理权限,因此目前项目方可能还无法有效的取回合约控制权。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。