原文:《研报解读 | 拆解“匿名者”套路,2022上半年Web3黑客常用的攻击方式有哪些?》
在刚刚发布的《2022年上半年Web 3安全态势深度研报》中,我们已经从各个维度展示和分析了区块链安全领域的总体态势,包括总损失金额、被攻击项目类型、各链平台损失金额、攻击手法、资金流向、项目审计情况等。
今天,我们就2022上半年Web3黑客常用的攻击方式展开分析,看看在所有被利用的漏洞中,哪些频率最高,以及如何防范。
1、上半年因漏洞造成的总损失有多少?
据成都链安鹰眼区块链态势感知平台监控显示,2022上半年共监测到因合约漏洞造成的主要攻击案例42次,约53%的攻击方式为合约漏洞利用。
通过统计,2022上半年共监测到因合约漏洞造成的主要攻击案例42次,总损失达到了6亿4404万美元。
在所有被利用的漏洞中,逻辑或函数设计不当被黑客利用次数最多,其次为验证问题、重入漏洞。
2、哪些类型的漏洞曾导致重大损失?
2022年2月3日,Solana跨链桥项目Wormhole遭到攻击,累计损失约3.26亿美元。黑客利用了Wormhole合约中的签名验证漏洞,这个漏洞允许黑客伪造sysvar帐户来铸造wETH。
2022年4月30日,Fei Protocol官方的Rari Fuse Pool遭受闪电贷加重入攻击,总共造成了8034万美元的损失。本次攻击对项目方造成了无法挽回的损失,8月20号,官方表示项目正式关闭了。
Fei Protocol事件回顾:
由于漏洞出现在项目基本协议中,攻击者不止攻击了一个合约,以下仅分析一例。
攻击交易
0xab486012f21be741c9e674ffda227e30518e8a1e37a5f1d58d0b0d41f6e76530
攻击者地址
0x6162759edad730152f0df8115c698a42e666157f
攻击合约
0x32075bad9050d4767018084f0cb87b3182d36c45
被攻击合约
0x26267e41CeCa7C8E0f143554Af707336f27Fa051
#攻击流程
1. 攻击者先从Balancer: Vault中进行闪电贷。
2. 将闪电贷的资金用于Rari Capital中进行抵押借贷,由于Rari Capital的cEther实现合约存在重入。
攻击者通过攻击合约中构造的攻击函数回调,提取出受协议影响的池子中所有的代币。
3. 归还闪电贷,将攻击所得发送到0xe39f合约中
本次攻击主要利用了Rari Capital的cEther实现合约中的重入漏洞,被盗资金超过28380ETH(约8034万美元)。
3、审计过程中最常出现的漏洞有哪些?
在审计过程中最常见出现的总体来说分为四大类:
1.ERC721/ERC1155重入攻击:
在通过链必验形式化验证平台检测合约时不乏存在ERC721 / ERC1155标准相关的业务合约,在ERC721中,ERC1155中存在分别存在一个onERC721Received()/onERC1155Received()函数用于转账通知,类似于以太坊转账的fallback()函数,在相关的业务合约中使用ERC721/ERC1155标准中的_safeMint(),_safeTransfer(),safeTransferFrom()进行铸币或者转账时都会触发转账通知函数。如果在转账的目标合约中的onERC721Received()/onERC1155Received()中包含了恶意代码,就可能形成重入攻击。除此之外在相关业务函数未严格按照检查-生效-交互模式设计,上述两点共同导致了漏洞的产生。
2.逻辑漏洞:
1)特殊场景考虑缺失:
特殊场景往往是审计最需要关注的地方,例如转账函数设计未考虑自己给自己转账导致无中生有。
2)设计功能不完善:
存放费用的合约没有提取功能,借贷合约不含清算功能等。
3.鉴权缺失:
铸币、设置合约特殊角色、设置合约参数的相关函数没有鉴权,导致三方地址也可以调用。
4.价格操控:
Oracle价格预言机未使用时间加权平均价格;
未使用价格预言机,直接使用合约中两种代币的余额比例作为价格等。
4、实际被利用的漏洞有哪些?哪些漏洞能在审计阶段发现?
根据成都链安鹰眼区块链安全态势感知平台所感知的安全事件统计,审计过程中出现的漏洞几乎都实际场景中被黑客利用过,其中合约逻辑漏洞利用仍然为主要部分。
通过成都链安链必验-智能合约形式化验证平台检测和安全专家人工检测审计,以上漏洞均能在审计阶段被发现,并且可由安全专家在做出安全评估后提出相关安全修补建议供客户作为修复参考。