安全实验室监测到以太坊上feiprotocol和RariCapital协议中的多个池子遭到重入攻击,导致损失超8000万美元。
知道创宇区块链安全实验室第一时间跟踪本次事件并分析。
基础信息
众所周知,compound项目的代码本就存在一些安全问题,而feiprotocol和RariCapital协议延用了compound的代码库,同时在doTransferOut()方法的实现中使用了存在重入的写法,导致了事件的发生。
Moonbirds母公司PROOF将于1月17日开启Grails第三季铸造:12月29日消息,Moonbirds母公司PROOF在推特上宣布推出Grails第三季(Grails III)和全新铸造机制,同时还公布了Grails III的登陆页面(目前仅展示了一个Grail#06)。Grails III铸造将于北京时间2023年1月17日23:00时开放,铸造流程与第二季Grails II相似(即包含20位匿名艺术家的作品,他们的身份将在铸币后揭晓),但会引入全新机制。
在第三季Grails III中,选定的NFT将会被标记为“版本(edition)”或“系列(series)”两类,不同类型对应不同的可用供应量,标记为“版本”类型的NFT总供应量只有50枚,标记为“系列”的 NFT 总供应量为150枚。用户不仅要选择铸造哪种类型的Grail,还需要决定何时铸造。Grails III铸造需要Grails III Mint Pass(铸造通行证),该通行证将会空投给PROOF Collective Pass持有者。[2022/12/29 22:14:05]
因此次事件中的多次攻击方式相同,本文仅对一次攻击进行分析。
Arbitrum链上智能合约创建总量突破100万:金色财经报道,据 Dune Analytics 11 月 24 日数据显示,以太坊 Layer2 网络 Arbitrum 链上智能合约创建总量突破 100 万,截至目前为 1,000,830 个。其他指标方面,当前 Arbitrum链上总锁仓量跌至 22.46 亿美元,链上账户创建总量为 196.8 万个,交易总量达到 6660.4 万笔,活跃账户数约为 155 万个。[2022/11/24 8:02:47]
攻击者地址:0x6162759edad730152f0df8115c698a42e666157f
BUSD发送地址数量达3个月高点:9月18日消息,Glassnode数据显示,BUSD发送地址数量(7d MA)为61.125个,达3个月高点。[2022/9/18 7:04:28]
攻击合约:0x32075bad9050d4767018084f0cb87b3182d36c45
tx:0xadbe5cf9269a001d50990d0c29075b402bcc3a0b0f3258821881621b787b35c6
CEtherDelegator合约:0xfbD8Aaf46Ab3C2732FA930e5B343cd67cEA5054C
其次,合约在对用户进行借贷放款时,并未实行检查-生效-交互的模式,更新抵押资产价值在放款之后,使得攻击者能够在借款之后进行函数回调;
最为关键的一点是,攻击者在借款后调用了exitMarket()函数退出借款的市场,之后对抵押品进行赎回,由于此时攻击者已退出市场,因而协议不会计算这笔借款,所以能够成功赎回抵押品。
ETH,随后触发重入;
3、调用exitMarket()函数退出借款的市场,并取出抵押品;
4、归还闪电贷;
5、成功赖账套利,免费借出ETH;
6、最后,攻击者重复攻击手法对协议中的池子进行攻击,成功套利约8000万美元。
总结
本次攻击事件核心是协议引用了存在重入漏洞的compound代码库,导致合约发生重入攻击。
建议项目方在编写项目时,应始终使用检查-生效-交互的模式,并在合约中应用重入锁,在发送以太币时一定要限制gas或者使用thransfer(),一定不要使用存在安全问题的项目代码。
在此提醒项目方发布项目后一定要将私钥严密保管,谨防网络钓鱼,另外,近期,各类合约漏洞安全事件频发,合约审计、风控措施、应急计划等都有必要切实落实。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。