今天2月15日,先祝大家元宵节快乐!团团圆圆每一天!
而在今天凌晨时分,成都链安链必应-区块链安全态势感知平台舆情监测显示,风投DAO组织BuildFinance项目遭遇治理攻击。关于本次攻击,成都链安技术团队第一时间进行了分析。
#1?事件概览
据悉,BuildFinance是一个自我描述为“去中心化风险建设者”,其目标是通过奖励代币来激励新项目。这个想法是用其原生BUILD代币为项目提供资金,作为回报,这些项目将采用BUILD代币来增加对它们的需求。此外,该项目由DAO维护,也就是由一个去中心化组织参与治理。
但是,黑客却悄悄搞起事情,该项目遭遇攻击者恶意治理接管,黑客通过获得足够多的投票成功控制Build代币合约,在三笔交易中铸造了超过10亿的BUILD代币,并耗尽了Balancer和Uniswap流动性池中的大部分资金。事发后,该项目团队在推特建议用户不要在任何平台上购买BUILD代币,项目团队成员试图与攻击者进行直接对话,但对方似乎没有兴趣对话。
看来项目方又遇到了一位“任性”的黑客。下面,跟着我们来看一下事件具体分析过程。
基础设施平台TeleportDAO完成250万美元种子轮融资:金色财经报道,加拿大区块链基础设施TeleportDAO宣布完成250万美元种子轮融资,AppWorks和DefinanceX领投,Quantstamp、Coinlist、Candaq Fintech Group、SNZ Holding Limited和Gate Labs参投。本轮融资将用于产品开发和扩大团队。[2023/3/17 13:08:55]
#2?事件具体分析
Round1
通过对项目的交易追踪,我们发现2022年2月12日BuildFinance?项目被攻击者窃取了治理权限,接着向0xdcc8A38A地址分三次铸造了超过10亿的BUILD代币。
MakerDAO:协议持有的33亿美元USDC和4.99亿美元的USDP分配在PSM储备中:金色财经报道,MakerDAO在社交媒体上称,Maker协议持有的33亿美元USDC和4.99亿美元的USDP分配在PSM储备中。PSM代表Peg稳定性模块。它是Maker协议的一个特殊模块,用于以1:1 的比率快速将Dai兑换成稳定币。
此外,PSM和Maker Vault系统之间还有一个至关重要的区别: 在PSM中,所有稳定的抵押品都分配在同一个地方,称为PSM准备金。Vault的抵押品在用户之间没有分开,它是同一个抵押品包给大家。USDC、USPD和GUSD有PSM部署。这意味着任何人都可以将1000万美元的USDC、USDP或GUSD放入PSM并获得1000万个Dai。PSM在其储备中分配USDC、USDP或GUSD,并铸造相同数量的Dai。[2022/8/31 12:59:01]
然后0xdcc8A38A地址将这10亿代币通过UniswapV2:BUILD兑换将项目方的交易池掏空。
观察交易细节后,我们发现调用Build代币合约mint函数铸币的地址也为0xdcc8A38A。
美国部落国家经济区发布 DAO 规则草案:金色财经报道,周三发布的规则草案显示,南卡罗来纳州罗克希尔的卡托巴印第安民族支持的数字经济区希望将去中心化自治组织 (DAO) 视为非法人非营利协会或有限责任公司。
拟议的法规是卡托巴数字经济区(CDEZ)努力吸引区块链和Web3公司到联邦承认的700英亩保留地的一部分。
根据 CDEZ 的说法,将 DAO 组织为非营利组织的选项提供了治理机构“渴望”的灵活性。这意味着 DAO 几乎可以完全通过自己的原则而不是任何法定要求来自由地管理自己。这些规则在 9 月 10 日之前公开征求公众意见。(coindesk)[2022/8/18 12:34:39]
接着往下看,我们观察下图项目方的合约代码发现调用mint函数的地址只能为governance地址。此时铸币的地址为0xdcc8A38A,也就是说合约现在的governance权限已经被0xdcc8A38A地址获取了。
TreasureDAO回应团队成员参与跑路NFT项目创作问题:2 月 23 日消息,针对团队成员 Cheese 日前被社区曝光参与了众多跑路 NFT 项目,TreasureDAO 在 Discord 社区发文回应:
1.几名社区成员在离开 Treasure 团队后发起了一系列失败的 NFT 项目,TreasureDAO 的社区成员发现这一问题后在 2021 年 10 月就对此事件在行业内发出过警告。
2.Cheese 为这些跑路的 NFT 项目做了一些 UI/FE 工作,并按照合同拿到了报酬。但跑路行为是由那几名前社区成员主导,并且是在 Cheese 交付工作过了很长一段时间以后才发生。Cheese 对 Treasure 项目的贡献是杰出的,但必须明确,他仅仅是一名社区贡献者。[2022/2/23 10:11:23]
从代码中可以看到原本的governance权限属于合约的创建者即下图的0x2Cb037BD6B7Fbd78f04756C99B7996F430c58172地址。
dJGN DAO投票:JuggerSWAP 将开启第三个LP质押池:官方消息,dJGN DAO 系统投票做出决定,北京时间2021年2月11日晚10点JuggerSWAP 将正式开启第三个LP质押池。
用户在 PancakeSwap 上为 JGN/BNB 对增加流动性,并将自己的 LP 代币质押在JuggerSWAP 池中。共60天,30天后进行奖励减半。前30天的奖励为每天 8000 JGN。减半后,每天奖励4000 JGN。总奖励为360,000 JGN。
JGN是一个具有DeFi 基础设施的 Metaverse NFT 2.0 项目。当前JGN已经获得高盛集团(加拿大)、澳大利亚SFIP基金、币安 “种子基金”、软银集团(UK)、LD Capital等多家机构战略投资。[2022/2/10 9:43:15]
我们不禁要问,那么governance权限是如何转移到0xdcc8A38A上的呢?
Round2
通过排查,我们通过2020年9月4日的一笔交易发现了线索,攻击者只有通过setGovernance函数才能窃取governance的权限。那么在这期间合约创建者0x2Cb037BD一定使用了setGovernance函数进行了权限转移。
通过查找0x2Cb037BD地址的交易记录可见,在同一天创建者使用了setGovernance函数。交易hash为0xe3525247cea81ae98098817bc6bf6f6a16842b68544f1430926a363e790d33f2。
通过查找内部的Storage可见权限转移给了0x38bce4b45f3d0d138927ab221560dac926999ba6地址而不是上述的0xdcc8A38A攻击地址。交易哈希为:0xe3525247cea81ae98098817bc6bf6f6a16842b68544f1430926a363e790d33f2。
通过继续跟进0x38bce4b地址,发现是一个Timelock合约,而合约中可以调用build代币合约函数的setGovernance函数只有executeTransaction函数。
我们跟进executeTransaction函数找到了其中的Storage。
从上图可见0x38bce4b45f3d0d138927ab221560dac926999ba6地址将权限又转移到了0x5a6ebeb6b61a80b2a2a5e0b4d893d731358d888583地址,交易哈希为0x9a0c9d5d3da1019edf234d79af072c1a6acc93d21daebae4ced97ce5e41b2573,调用时间为2021年1月25日。
通过继续跟进0x5a6ebeb6地址,在下图可知在2022年2月9日由suho.eth发起的提案,0xdcc8A38A攻击地址在2022年2月11日投票通过。在4天前将governance权限变更为0xdcc8A38A。
suho.eth发起的提案变更governance,投票设置的阈值较低导致提案通过,通过call调用将build合约的governance更改为0xdcc8A38A地址。
0x5a6ebeb6b61a80b2a2a5e0b4d893d731358d888583地址部分代码。
此地址获取governance权限后,0xdcc8A38A地址通过build代币合约的mint函数向本身铸造了大约10亿的build代币,随后去交易池掏空流动性。
获取权限的流程图为:
攻击者利用类似的手法,从另外一个治理合约中转走了该治理合约所持有的代币资产。本次获利共162个ETH、20014个USDC481405个DAI、75719个NCR约为112万美元。
最后,成都链安提醒:DAO合约应该设置合适的投票阈值,实现真正的去中心化治理,避免很少的投票数量就使得提案通过并成功执行,建议可以参考openzeppelin官方提供的治理合约的实现。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。