原文:《研報解讀| 拆解“匿名者”套路,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、實際被利用的漏洞有哪些?哪些漏洞能在審計階段發現?
根據成都鏈安鷹眼區塊鏈安全態勢感知平台所感知的安全事件統計,審計過程中出現的漏洞幾乎都實際場景中被黑客利用過,其中合約邏輯漏洞利用仍然為主要部分。
通過成都鏈安鏈必驗-智能合約形式化驗證平台檢測和安全專家人工檢測審計,以上漏洞均能在審計階段被發現,並且可由安全專家在做出安全評估後提出相關安全修補建議供客戶作為修復參考。