2022年,區塊鏈行業迎來新的發展時期,但各類安全風險也在不斷升級。
成都鏈安新推出的《安全研究季報》欄目,將為大家盤點每季度全球區塊鏈安全態勢。
今天,跟著我們一起來回顧,2022年Q1區塊鏈安全生態都發生了什麼。
2022年Q1區塊鏈安全生態概覽
安全事件造成的損失高達約12億美元
2022年第一季度,根據成都鏈安【鏈必應-區塊鏈安全態勢感知平台】監測到的數據統計,攻擊類安全事件造成的損失高達約12億美元,較去年同期(2021年Q1)的1.3億美元上漲約9倍。同時也比2021年的任何一個季度損失的金額都要高。
2022年3月,Ronin攻擊事件造成6.25億美元資金被盜,超越2021年8月Poly Network被攻擊的6.1億美元,登上Defi黑客攻擊損失榜第一位。當然,不是每個項目都能像Poly Network一樣能夠追回資金。截止本報告撰寫時(4月),Ronin的黑客依舊在分批次進行洗錢。
從鏈平台來看
Ethereum和BNB依舊是被攻擊頻次最高的兩條鏈,但高攻擊頻次並不意味著高損失金額。 2022年第一季度,我們監測到Solana鏈典型攻擊事件2起,損失金額卻高達3億7400萬美元,遠遠多於BNB Chain上的損失。
從資金流向來看
80%的情況下,黑客都會最終將盜取資金轉入Tornado.Cash進行混幣。有10%的情況,黑客會將資金暫時留在自己的地址,有時要等待幾個月,甚至幾年才對贓款進行轉移。有少部分黑客會主動歸還盜取資金。
從攻擊手法來看
合約漏洞利用和閃電貸攻擊是黑客最常使用的手段。 50%的攻擊手法為合約漏洞利用。
從審計情況來看
在被攻擊的項目中,70%的項目經過了第三方安全公司的審計。然而在剩餘30%未經審計的項目中,因攻擊事件遭受的損失卻佔了整個損失金額的60%以上。
從項目類型來看
DEFI項目依舊是黑客攻擊的熱點領域,佔了總共被攻擊項目數量的60%。而跨鏈橋雖然被攻擊的次數不多,但涉及的金額卻巨大。
Q1發生典型攻擊事件超30起
跨鏈橋類項目損失慘重
2022 年第一季度,區塊鏈領域共發生典型安全事件約30起。總損失金額約為12億美元,與去年同期相比增長了823%。
在前20排名里,損失金額最高的Ronin為6.25億,約是金額最低的Build Finance(112萬美元)的558倍。
從統計圖表可以看到,Ronin和Wormhole兩個項目的損失金額達到了9億5000萬美元,佔2022年Q1總損失金額的80%。值得注意的是,這兩者均為跨鏈橋類項目。
被攻擊項目類型方面
DeFi仍為黑客攻擊的重點領域
2022 年第一季度,區塊鏈領域,DeFi項目仍為黑客攻擊的重點領域,共發生19起安全事件,約60%的攻擊發生在DeFi領域。
此外,針對NFT的攻擊事件在2022年第一季度有所上升,跨鏈橋項目被攻擊了4次,造成的損失卻高達9億5000萬美元,占到2022年一季度損失金額的80%,跨鏈橋安全事件頻發,涉及金額巨大。
鏈平台損失金額方面
Ethereum損失金額佔比最高
2022 年第一季度,Ethereum和Solana鏈上攻擊損失金額排名前2,分別為6億5448萬和3億7400萬美元。
Ethereum被攻擊的頻次也是最多的,占到了總頻次的45%;排名第二的是BNB Chain,佔比19%。
Solana鏈上的兩次攻擊事件都造成了巨額損失:Wormhole損失3億2600萬美元,Cashio損失4800萬美元。兩者的攻擊手法同為合約漏洞利用。
鏈平台損失金額佔比
此外,一些TVL排名靠前的公鏈在2022年第一季度未檢測到重大安全事件,如:Terra、Avalanche、Tron等。
攻擊手法分析
合約漏洞利用和閃電貸最常見
2022 年第一季度,區塊鏈安全生態領域,約50%的攻擊方式為合約漏洞利用,24%的攻擊方式為閃電貸。
有12%的攻擊為私鑰洩露、釣魚攻擊和社會工程學攻擊。此類攻擊源於項目方沒有保管好私鑰或警惕性不足。
被黑客利用的合約漏洞中,最常見的漏洞為重入漏洞(30%),其次分別為業務邏輯不當(24%)、call注入攻擊(18%)和驗證不當或不足(18%);其中絕大部分漏洞都可以通過安全審計儘早發現和修復。
典型安全事件分析
案例一:TreasureDAO被攻擊事件
背景:
3月3日,TreasureDAO NFT 交易市場被曝發現漏洞,導致100多個NFT被盜。然而在事件發生幾小時後,攻擊者卻開始歸還被盜NFT。
詳情:
交易發起者通過合約的buyItem函數傳入了數值為0的_quantity參數,從而無需費用就能購買TokenID為5490的ERC-721代幣。
項目合約的buyItem 函數代碼
從代碼上來看,合約的buyItem函數在傳入_quantity參數後,並沒有做代幣類型判斷,直接將_quantity與_pricePerItem相乘計算出了totalPrice,因此safeTransferFrom函數可以在ERC-20代幣支付數額只有0的情況下,調用合約的buyItem函數來進行代幣購買。
然而在調用buyItem函數時,函數只對購買代幣類型進行了判斷,並沒有對代幣數量進行非0判斷,導致ERC-721類型的代幣可以在無視_quantity數值的情況下直接購買,從而實現了漏洞攻擊。
建議:
本次安全事件主要原因是ERC-1155代幣和ERC-721代幣混用導致的邏輯混亂,ERC-721代幣並沒有數量的概念,但是合約卻使用了數量來計算代幣購買價格,最後在代幣轉賬時也沒有進行分類討論。
建議開發者在開發多種代幣的銷售販賣合約時,需要根據不同代幣的特性來進行不同情況的業務邏輯設計。
案例二:Build Finance項目遭遇治理攻擊
背景:
2 月15 日,DAO 組織Build Finance 表示遭遇惡意治理攻擊,攻擊者通過獲得足夠多的投票成功了控制其Token 合約。
詳情:
在2020年9月4日的一筆交易中,Build Finance合約創建者通過setGovernance函數將治理權限轉移。通過查找內部的Storage,發現權限轉移給了0x38bce4b地址。繼續跟進0x38bce4b地址,發現是一個Timelock合約,而合約中可以調用setGovernance函數的只有executeTransaction函數。
Build Finance被攻擊流程
繼續跟進發現,在2021年1月25日,0x38bce4b地址調用executeTransaction函數將權限轉移到了0x5a6ebe地址。 2022年2月11日,由於投票設置的閾值較低導致提案通過,0x5a6ebe地址的治理權限變更為了0xdcc8A38A地址。在獲取到治理權限後,攻擊者惡意鑄幣並耗盡了交易池的流動性。
建議:
DAO合約應該設置合適的投票閾值,實現真正的去中心化治理,避免很少的投票數量就使得提案通過並成功執行,建議可以參考openzeppelin官方提供的治理合約的實現。
案例三:Ronin6億美元盜幣案
背景:
3 月23 日,Sky Mavis 的Ronin 驗證器節點和Axie DAO 驗證器節點遭到破壞,攻擊者使用被黑的私鑰來偽造假提款,獲利約6.25億美元。而Ronin Network直到3月29日才發現自己遭受到了攻擊。
詳情:
Sky Mavis 的Ronin 鏈目前由9 個驗證節點組成。為了識別存款事件或取款事件,需要九個驗證者簽名中的五個。攻擊者設法控制了Sky Mavis 的四個Ronin 驗證器和一個由Axie DAO 運行的第三方驗證器。此後Ronin 官方表示,所有證據都表明這次攻擊或與社會工程學相關。
Ronin黑客洗錢過程(更新至3月30日)
建議:
1、注意簽名服務器的安全性;
2、簽名服務在相關業務下線時,應及時更新策略,關閉對應的服務模塊,並且可以考慮棄用對應的簽名賬戶地址;
3、多簽驗證時,多簽服務之間應該邏輯隔離,獨立對簽名內容進行驗證,不能出現部分驗證者能夠直接請求其它驗證者進行簽名而不用經過驗證的情況;
4、項目方應實時監控項目資金異常情況。
被盜資金流向分析
Tornado.Cash或為黑客洗錢慣用途徑
80%的情況裡,黑客在得手後,會立刻或幾天內將盜取資金轉入Tornado.Cash進行混幣。
10%的情況裡,黑客會暫時將贓款留在自己地址,等待幾個月至幾年才將資金轉出。例如去年12月被盜的交易所AscendEX,黑客等到今年2月、3月才開始進行分批次洗錢。而今年Ronin的攻擊者目前依然在進行頻繁的洗錢操作。
有少部分黑客會歸還盜取資金。 Cashio的攻擊者在盜取4800萬美元的資金後,公開留言表示將向價值在10萬美元以下賬戶進行退還,並聲稱“我的目的只是從不需要的人那裡拿錢,而不是從需要的人那裡拿錢”。
目前Tornado.cash依舊為黑客慣用的洗錢途徑。
項目審計情況分析
30%未經審計的項目損失金額佔總量的60%
項目審計情況:
70%的被攻擊項目經過了第三方安全公司的審計;
30%未審計的項目,損失金額達7.2億美元,佔第一季度總損失金額的60%;
項目上線之前的審計依舊重要。在未審計的項目中,50%的攻擊手法都為合約漏洞利用。因此,儘早審計和及時修復代碼漏洞,可以避免上線後項目被攻擊造成的嚴重損失。
項目審計情況及總損失金額
2022年Q1結語
安全事件頻發,涉及金額大幅增加
2022年第一季度,區塊鏈領域攻擊類安全事件造成的損失高達約12億美元,比2021年的任何一個季度損失的金額都要高。跨鏈橋項目被盜取金額巨大,DeFi項目被攻擊頻次最高,這兩個領域今後或許也是黑客重點盯上的攻擊目標。
項目方應及時關注資金異常情況,成都鏈安【鏈必應-區塊鏈安全態勢感知平台】可以讓項目方和用戶及時發現風險交易,從而快速採取措施。例如立刻暫停相關服務,或告知用戶取消授權等,避免後續更大的損失。
項目安全審計依舊重要,約50%的攻擊方式為合約漏洞利用,這其中絕大多數漏洞都可以通過安全審計及早發現和修復。