1.前言
北京时间3月15日晚,知道创宇区块链安全实验室?监测到Gnosis链上的借贷类协议?HundredFinance与Agave?均遭遇了闪电贷袭击,包括?AAVE的分支Agave?和?Compound的分支HundredFinance?。协议损失超1100万美元。目前?项目方已暂停其数百个市场。
知道创宇区块链安全实验室?第一时间跟踪本次事件并分析。
Coinbase前高管Hunter Merghart加入对冲基金Millennium担任数字资产首席运营官:5月3日消息,据知情人士透露,对冲基金巨头Millennium已聘请加密领域资深人士Hunter Merghart担任数字资产首席运营官,带领公司进入加密领域。
这位前Bitstamp高管将加入这家一直在缓慢进军加密货币市场的对冲基金,为其建设加密基础设施,并招聘关键人才。Merghart之前是Coinbase的交易主管,并领导了Bistamp的美国业务,他将继续作为风险投资伙伴与Castle Island Ventures合作。(The Block)[2022/5/3 2:47:59]
2.分析
2.1攻击者相关信息
HundredFinance被攻击tx:
0x534b84f657883ddc1b66a314e8b392feb35024afdec61dfe8e7c510cfac1a098
攻击合约:0xdbf225e3d626ec31f502d435b0f72d82b08e1bdd
Fairyproof:Hundred Finance与Agave遭遇攻击原因是由于转移ERC677代币引起的:3月16日消息,Gnosis Chain上的DeFi协议Agave和Hundred Finance遭到重入攻击,共计损失约1100万美元。造成此次重入攻击的原因是由于转移ERC677代币引起的,该代币有一个转移后调用函数叫 transferAndCall。
Fairyproof 推荐所有合约开发者三点注意:
1、合约内改变状态要放在对外交互之前(包括转移代币) ;
2、注意ERC20代币和ERC677代币的区别;
3、重要用户接口增加防重入锁。[2022/3/16 13:59:33]
攻击地址:0xd041ad9aae5cf96b21c3ffcb303a0cb80779e358
攻击后跨链匿名化:https://etherscan.io/txs?a=0xd041ad9aae5cf96b21c3ffcb303a0cb80779e358
Agave被攻击tx:
0xa262141abcf7c127b88b4042aee8bf601f4f3372c9471dbd75cb54e76524f18e
现场 | David Hung:区块链对社会最大的颠覆有三个板块:金色财经现场报道,4月9日,华叶区块链(中国)有限公司副总裁David Hung在\"2019第二届深圳国际区块链技术与应用大会”现场以“区块链生态”为主题进行演讲。他表示,区块链对社会最大的颠覆有三个板块,一个是信任机制的颠覆,第二个是区块链可以直接做价值的传递,第三个是区块链颠覆了生产关系。[2019/4/9]
攻击合约:0xF98169301B06e906AF7f9b719204AA10D1F160d6
攻击地址:0x0a16a85be44627c10cee75db06b169c7bc76de2c
攻击后跨链匿名化:https://etherscan.io/txs?a=0x0a16a85be44627c10cee75db06b169c7bc76de2c
2.2攻击流程
由于HundredFinance与Agave攻击流程与手法类似,因此我们使用HundredFinance进行分析。
HundredFinance攻击调用流程
动态 | 公链项目 ThunderCore 主网低调上线:由康奈尔大学计算机科学副教授 Elaine Shi 参与创立的公链项目 ThunderCore 主网已经低调上线,有投资人表示已经收到该项目代币 Thunder Token。尽管 ThunderCore 团队没有在任何渠道发布主网上线的消息,但是从项目开发者社区发现,ThunderCore 主网区块浏览器已经可以查看主网区块状态,ThunderCore 主网从 26 日开始已经开始生成区块。项目官方网站上也已经提供了一份针对投资人的换币说明,指引投资人如何进行操作,以收到 ThunderCore 主网上的原生代币 Thunder Token。有多位投资人表示,ThunderCore 团队目前正在向投资人发放原生代币,计划首先向第二轮投资人发放,然后再向第一轮投资人发放。ThunderCore 目前已经融资 5000 万美元,投资人包括 Pantera Capital、Huobi Capital、MetaStable、FBG Capital、SV Angel、真格、Hashed、Sora Ventures、zk Capital、Kinetic 等多家机构。(链闻)[2019/3/1]
1、攻击者利用合约在三个池子中利用闪电贷借出WXDAI和USDC
澳大利亚IOT集团与Hunter Energy合作重建Redbank电厂:根据周二的一份报告显示,澳大利亚一家技术公司IOT集团与Hunter Energy合作重建Redbank电厂,将运用区块链技术,以降低其能源成本。该公司预计,与目前的成本相比,IOT的新能源账单将使成本减少20%。据悉此前该工厂于2014年首次关闭。[2018/4/13]
2、在WETH池子质押借出的部分USDC
3、利用重入利用一笔质押,超额借出池子中资金
4、重复质押-重入借出步骤,将其他两个池子资产超额借出
5、归还闪电贷
6、获利转移
2.3漏洞细节
导致本次问题的根本原因是由于在Gnosis链上的官方桥接代币xDAI合约中实现了一个对于to地址的回调(callAfterTransfer函数)
合约实现地址:
https://blockscout.com/xdai/mainnet/address/0xf8D1677c8a0c961938bf2f9aDc3F3CFDA759A9d9/contracts
该回调将直接导致重入漏洞的产生,同时由于在HundredFinance团队fork的Compound版本中没有严格遵循检查-生效-交互,进而导致了总借贷量更新晚于重入实现。最终攻击者得以超额借贷。
类似的,对于Agave项目方,攻击者利用liquidateCall函数内部调用会调用xDAI的?callAfterTransfer?方法进行回调,最终导致攻击者能再次进行借贷。
在HundredFinance攻击中攻击者重入的调用路径如下:
在Agave攻击中攻击者回调路径如下:
3.总结
此次遭受攻击的两个借贷项目由于错误的引入了存在重入的token,同时项目方的fork的代码没有采用检查-生效-交互模式导致了问题的发生。
我们强调:对于一个优秀的项目的引用必须建立在足够的理解和严谨的开发上,尤其是存在差异化的部分,切忌顾此失彼最终因为一个小的差错导致项目全部的损失。
近期,各类合约漏洞安全事件频发,合约审计、风控措施、应急计划等都有必要切实落实。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。