2021 年 08 月 12 日,据慢雾区消息,加密孵化机构 DAO Maker 疑似遭受黑客攻击,导致合约大量 USDC 被转出。慢雾安全团队第一时间介入分析,并将分析结果分享如下。? ?
在本次攻击中,攻击者部署并开源了一个攻击合约 (0x1c) 用于快速批量的从 DAO Maker 受害合约 (0x41) 中窃取资金。
攻击者地址 1:
0xd8428836ed2a36bd67cd5b157b50813b30208f50
攻击者地址 2:
0xef9427bf15783fb8e6885f9b5f5da1fba66ef931
攻击合约:
0x1c93290202424902a5e708b95f4ba23a3f2f3cee
NFT 艺术家筹集 300 万美元支持美国堕胎权利组织:6月30日消息,NFT艺术家Molly Dickson与区块链非营利组织合作成立COWGIRLDAO ,旨在为美国各地的堕胎权利团体筹集资金,Molly Dickson发行了10,000件NFT收藏品,每件收藏品的价格在 0.03 ETH 和 0.9 ETH 之间。销售收益的98.5%分配给支持生育自由的组织,Endaoment 保留1.5% ,Dickson在NFT完全铸造后捐赠了总计300万美元的销售额。 Molly Dickson表示,作为一名身处该领域的艺术家,我对 Web3 的中立程度感到惊讶,在过去的几天里,我们真的开始看到更多的支持”。[2022/6/30 1:40:59]
DAO Maker 受害合约:
Incognito 技术路线图:预计 5 月上线 v2 版本,提高隐私和权利下放的优先级:3月24日消息,加密货币隐私解决方案提供商Incognito发布了关于项目进展和2021年项目规划的信息,Incognito计划重点完善核心技术、确保更加清晰的沟通,在重新确定的技术路线图中,将隐私和权利下放放在了重要的优先级地位。
预计2021年4月完成隐私方面更多的探索;隐私v2版本预计在2021年5月实施,将从交易的发送、接收、取消等方面做屏蔽和隐私处理;预计2021年6月削减动态委员会规模,随后减少出块时间和完整的信标链验证;2021年6月6日计划在屏蔽、非屏蔽方面做重新设计,去中心化pDEX和流动性(移除临时地址,将流动性转移到去中心化机构)。[2021/3/24 19:13:43]
0x41B856701BB8c24CEcE2Af10651BfAfEbb57cf49
Blockstream首席战略官:比特币给予人们持有金钱的权利:Blockstream首席战略官Samson Mow发推表示:美国宪法第二修正案给了美国人持有武器的权利,比特币赋予世界上每个人持有金钱的权利。[2020/12/22 16:05:19]
DAO Maker 受害合约 deployer:0x054e71D5f096a0761dba7dBe5cEC5E2Bf898971c
DAO Maker 受害合约 admin:0x0eba461d9829c4e464a68d4857350476cfb6f559
本次攻击与往常攻击不同的是:DAO Maker 受害合约 (0x41) 未开源,而攻击合约 (0x1c) 却开源了。
声音 | 权利组织EFF和ORG:和加密立法可能会伤害开源生态系统,反对监管隐私币:据The Register消息,非营利组织电子前沿基金会(EFF)和在线基层组织英国开放权利集团(ORG)回应了英国财政部关于欧盟第五次反指令(5MLD)的咨询,特别是关于发布开源软件是否应遵守客户尽职调查(CDD)要求的建议。 EFF和ORG表示,“我们以前见过这种对开源软件发布的攻击,这些监管提议不仅会对区块链生态系统的新兴技术产生巨大而不可预测的后果,也会对整个FLOSS(免费、自由和开源软件)软件生态系统产生巨大而不可预测的后果。” 两个组织认为,尽管监管加密软件的想法听起来很合理,但这可能会产生意想不到的后果。“此类法规将加重多个行业的负担,以确保它们的软件不会被视为加密计划基础设施的一部分。”它们建议,监管开源软件最好分开进行,而不是在5MLD立法范围内进行。 两个组织也反对监管隐私币,认为这些币是一件好事,“隐私币有潜力通过将公民离线享有的一些保护引入数字世界,从而增强人权。此外,任何区分隐私币和非隐私币的尝试都是有问题的。”[2019/6/12]
从上图开源的攻击合约以及链上记录我们可以看出:?
1. 黑客调用攻击合约 (0x1c) 的 h 函数,h 函数会循环调用 f 函数,f 函数通过 DAO Maker 受害合约的 0x4b4f892a 函数获取普通用户在受害合约 (0x41) 中的 USDC 存款数量。
2. 函数 h 接着调用 DAO Maker 受害合约 (0x41) 的withdrawFromUser(0x50b158e4) 函数,传入用户存款的用户地址、USDC 地址与需要提款的数量。
3. 随后 DAO Maker 受害合约 (0x41) 将合约中的 USDC 转移至攻击合约中 (0x1c)。
通过以上行为分析我们可以发现:攻击合约 (0x1c) 调用了受害合约 (0x41) 的? withdrawFromUser 函数,受害合约 (0x41) 就将合约管理的资金直接转给攻击合约 (0x1c) 。我们直接反编译受害合约 (0x41) 查看 withdrawFromUser 函数进行简单分析:
通过反编译的代码我们可以发现,此函数是有进行权限检查的,只有 DAO contracts 才能调用此函数转移用户的资金。但攻击合约? (0x1c) 明显不是 DAO 合约,因此其 DAO 合约必然是被攻击者替换过的。
通过链上分析我们可以清楚的看到:
1. 受害合约部署者 (0x05) 在部署受害合约 (0x41)? 后于 UTC 4 月 12 日 08:33:45 将 0x0eba461d9829c4e464a68d4857350476cfb6f559?地址设置为了管理员角色:
Tx Hash:
0xa1b4fceb671bb70ce154a69c2f4bd6928c11d98cbcfbbff6e5cdab9961bf0e6d
2. 随后受害合约部署者 (0x05) 通过调用 revokeRole 函数放弃了受害合约 (0x41) 管理权限:
Tx Hash:?
0x773613398f08ddce2cc9dcb6501adf4f5f159b4de4e9e2774a559bb1c588c1b8
3. 而管理员则在 UTC ?8 月 12 日 01:27:39 将 DAO 合约设置为了攻击合约 (0x1c) :
0x2fba930502d27f9c9a2f2b9337a0149534dda7527029645752b2a6507ca6b0d6
因此攻击者才得以借助此攻击合约 (0x1c) 将受害合约 (0x41) 中用户的资金盗走。目前被盗资金被兑换成 ETH 转移至攻击者地址 2 (0xef)。
本次攻击可能源于 DAO Maker 受害合约的管理员私钥泄漏。攻击者窃取私钥后将受害合约的 DAO 合约替换为了攻击合约,攻击者通过替换后的合约转走了合约中的用户资金。而由于合约部署者在设置完合约管理员后就放弃的合约管理权限,因此目前项目方可能还无法有效的取回合约控制权。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。