原標題:2020攻擊事件總結:900億人民幣不翼而飛 2021我們如何遠離黑客?

“如果那東西看上去像鴨子,走起路來也像鴨子,我們就說它是鴨子。”

這句來自某位政客所說的話被許多人奉爲圭臬。

如同我們每一個人,很多時候我們對外界釋放出的信息都會再通過外界評價反饋和影響到自身。

這個道理不僅僅應用於某一個特殊領域,相反,它在所有事情上都可以找到痕跡。

區塊鏈發展日久,但對於很多人來說,它依舊是一個暗藏着騙局、跑路、黑客的法外之地。

人們心中的認知很難被其他信息所影響,當然,這也的確需要歸因於目前區塊鏈項目所受的攻擊愈發猛烈。

在鋪天蓋地的黑客事件中,想要扭轉人們對於區塊鏈的不安和抗拒只有依靠提高區塊鏈的安全標準,建立安全健康的區塊鏈生態。

同理,當整個區塊鏈不再受負面新聞所纏身時,這個“鴨子”也會變成有利的那一隻。

經統計,2020年傳統領域的網站及軟件安全率達到了97.5%,其中損失最大的一筆資產僅僅是接近5萬人民幣。

而區塊鏈領域內,智能合約及相關節點的安全率只有89%,且損失往往處於600萬至6,000萬人民幣之間,這是需要幾個大卡車都運不下的天價資產。

一次來自於區塊鏈領域的損失資產,也許就是傳統網絡損失資產的千倍以上。

因此,CertiK安全盤點了2020年較爲典型的23個區塊鏈項目,分析了其受攻擊的原因和黑客使用的攻擊方式,以作爲業內安全事故警示的參考。

在分析的這23個區塊鏈項目中,其中實現邏輯錯誤所導致的攻擊事件8起,價格預言機操縱事件5起,項目方欺詐事件4起,重入攻擊事件3起,閃電貸攻擊事件2起,錢包攻擊事件1起。

這些安全事故項目列表如下:

表1:2020年區塊鏈重大事故項目列表

圖一:2020年區塊鏈重大事故項目損失圖

表一和圖一展示了2020年區塊鏈重大事故項目損失情況。

圖二:攻擊類型損失圖

2020年重大攻擊事件明細Cover Protocol2020年12月28日晚, CertiK安全驗證團隊發現Cover Protocol發生代幣無限增發漏洞攻擊。

攻擊者通過反覆對項目智能合約進行質押和取回操作,觸發其中包含鑄造代幣的操作,對Cover代幣進行無限增發,導致Cover代幣價格崩盤。

最終損失共計約2850萬人民幣。Warp Finance2020年12月17日,攻擊者利用Warp Finance項目使用的oracle計算質押的LP代幣資產價格錯誤的漏洞,從Warp finance項目中獲利約1462枚ETH代幣,總價值約615萬人民幣。

此外,攻擊者還mint了價值大約3,990萬人民幣的DAI-ETH LP share,約650萬人民幣的獲利流入了uniswap和sushiswap的LP中。

在本次攻擊中,Warp finance 遭受的損失大約爲5,000萬人民幣。Compounder.Finance2020年12月1日下午3點,CertiK安全技術團隊通過Skynet發現Compounder.Finance項目智能合約發生數筆大量代幣的交易。

經過仔細驗證得知這些交易爲內部操作,項目擁有者將大量數額代幣轉移到自己的賬戶中。

經過統計,最終共損失價值約7,610萬人民幣的代幣。SushiSwap2020年11月30日,Sushiswap項目被發現遭到惡意流動性提供者的攻擊,攻擊者利用該項目Sushi Maker合約中的漏洞進行攻擊,最終獲利約10萬人民幣。Compound2020年11月26日,Compound項目發生價格預言機代幣價格錯誤。

其所採用的Coinbase價格預言機對DAI價格出現巨動,導致約58,250萬人民幣的資產被清算。

Pickle Finance2020年11月22日凌晨2點37分,CertiK安全驗證團隊通過Skynet發現Pickle Finance項目遭到攻擊。

攻擊者利用合約中未檢查外部Jar合約是否合法的漏洞進行攻擊。

最終項目共損失約1975萬枚Dai代幣,價值約12,800萬人民幣。Origin Protocol2020年11月17日,Original Protocol項目OUSD遭到閃電貸與重入攻擊的組合攻擊。

攻擊者利用合約中mintMultiple()函數中的重入漏洞,增加閃電貸貸來的資金作爲槓桿,擴大攻擊收益。項目最終損失約4,500萬人民幣。

Cheese Bank2020年11月16日,DeFi項目Cheese Bank遭到閃電貸攻擊。

攻擊者通過操縱流動性池中代幣數目,利用重置預言機來提高Uniswap LP流動性憑證價格進行攻擊。

最終項目損失約2,100萬人民幣,其中包括價值1,300萬人民幣的USDC。Value DeFi2020年11月15日,DeFi項目Value Defi遭到閃電貸攻擊。

攻擊者通過項目中使用Curve價格預言機,通過閃電貸操縱預言機代幣價格計算漏洞進行攻擊。

最終攻擊者獲利約4,800萬人民幣價值的DAI。Axion Network2020年11月2日晚上,黑客利用Axion Staking合約的unstake函數設法鑄造了約800億個AXN代幣。

黑客隨後將AXN代幣在Uniswap交易所中兌換以太幣,重複此過程,直到Uniswap中ETH-AXN交易對的以太幣被耗盡,同時AXN代幣價格降至0。

該攻擊是內部操作造成的,該內部操作通過在部署代碼時,對項目依賴的OpenZeppelin依賴項注入惡意代碼,最終損失約330萬人民幣。Harvest Finance2020年10 月 26 日 Harvest.Finance 項目發生套利攻擊事件,損失超 3380 萬美元。

根據官方報告,計算了攻擊者返還給項目的 1300 萬 USDC 和 11 萬 USDT 之後,總損失超過 2 億人民幣。

在 Harvest.Finance 這次的套利攻擊事件中,攻擊者通過影響 USDC、USDT 代幣的價格來進行套利。Eminence

2020年9月29日,攻擊者使用腳本程序,通過閃電貸借得初始資金, 利用 Eminence 項目中的聯合曲線(Bonding Curve)模型漏洞,反覆購買出售 EMN 和 eAAVE 來獲得收益。項目最終損失約9,800萬人民幣。

GemSwap2020/09/26日,DeFi項目GemSwap遭到項目擁有者的後門攻擊。

項目擁有者通過調用後門函數emergencyWithdraw()將所有的流動性證明取出並轉移至自己擁有的賬戶中,最終項目損失約850萬人民幣。

Soda Finance2020年9月21日,CertiK安全研究團隊發現soda區塊鏈項目中存在智能合約安全漏洞。

該漏洞允許任意外部調用者通過調用智能合約函數,無視受害用戶債務中的代幣數目,強行結算受害用戶的債務,並將通過結算操作所得的收益轉入到自己的收款地址。

最終項目損失約105萬人民幣。BASED2020年8月14日,流動性挖礦項目Based出現初始化失誤造成的漏洞。

其智能合約在進行部署時,Base官方僅通過調用智能合約中的 renounceOwnership 函數聲明瞭所有者,而並沒有對智能合約初始化。

而一名外部攻擊者在 Based 官方之前,搶先調用 initialize 函數對智能合約進行了初始化。YAM

2020年8 月 12 日,YAM Finance 官方宣佈他們發現了一個智能合約漏洞,並稱該漏洞將生成超出最初設定數量的 YAM 代幣,在計算 totalSupply 時,給出了錯誤的結果,這會導致系統保留的代幣數量過多。最終項目損失約500萬人民幣。

NUGS2020年8月11日,CertiK安全研究團隊發現基於以太坊的代幣項目NUGS出現安全問題。

其智能合約中存在安全漏洞,致使其代幣系統出現鉅額通脹。

由於該智能合約的安全漏洞無法被修復,因此最終NUGS項目官方發佈公告決定放棄該項目,存入其中的代幣也無法被取出。此次攻擊損失巨大,直接造成該項目失敗。Opyn2020年8月4日,DeFi項目Oypn發生攻擊事件。

攻擊產生的原因是Opyn在智能合約oToken中的exercise函數出現漏洞。

攻擊者在向智能合約中發送某一數量的ETH時候,智能合約僅僅檢查了該ETH的數量是否與完成該次期貨買賣需要的數量一致,而不是動態的檢查攻擊者發送的ETH數量是否在每一次的交易之後仍舊等於完成該次期貨買賣所需要的數量。

也就是說,攻擊者可以用一筆ETH進行抵押,並在贖回兩次交易,最終獲得自身發送數量兩倍的ETH最終項目損失約240萬人民幣。Cashaa第一次攻擊發生於7月10日北京時間晚6點57分,Cashaa的比特幣錢包之一被盜用並向攻擊者賬戶轉移了1.05977049個BTC。

根據Cashaa報告中描述,攻擊者通過控制受害者電腦,操作受害者在Blockchain.info上的比特幣錢包,向攻擊者賬戶轉移BTC。

第二次攻擊發生於7月11日北京時間凌晨8點10分,Cashaa的總計8個比特幣錢包,共計335.91312085個比特幣被攻擊者通過同樣的手段轉移到同一個地址中。最終項目損失約2,000萬人民幣。Balancer2020年6月29日凌晨2點03分,攻擊者利用從dYdX閃電貸中借到的WETH,大量買進STA代幣,使得STA與其他代幣的兌換價格急劇上升。

然後使用最小量的STA(數值爲1e-18)不斷回購WETH,並在每次回購後,利用Balancer的合約漏洞重置其內部STA的數量(數值爲1e-18),以此穩住STA的高價位。

攻擊者不斷利用漏洞,用高價的STA將某一種代幣完全買空(WETH,WBTC, LINK和SNX),最終用WETH償還閃電貸,並剩餘大量STA,WETH,WBTC, LINK和SNX,並通過uniswap將非法所得轉移到自己賬戶中。

繼6月29日凌晨2點CertiK捕獲Balancer攻擊事件後,2020年6月29日20點與23點23分,Balancer項目再次遭到攻擊。

攻擊者從dYdX閃電貸中借到代幣並鑄幣後,通過uniswap閃貸獲得cWBTC和cBAT代幣,然後將借得的代幣在Balancer代幣池中大量交易,從而觸發Compound協議的空投機制,獲得空投的COMP代幣,再使用Balancer有漏洞的gulp()函數更新代幣池數量後,取走所有代幣並歸還閃電貸。

攻擊者相當於利用了Compound協議的金融模型、閃電貸和Balancer代碼漏洞,無中生有了COMP。

兩次攻擊直接導致Balancer損失了約300萬人民幣。Hegic

2020年4月27日,Hegic項目中由於代碼實現存在錯誤,導致合約中用戶資金被鎖定,無法被任何方法操作。最終項目損失約18萬人民幣。

Lendf.Me

2020年4月19日,Lendf.me項目遭到基於ERC777標準缺陷問題的重入攻擊。最終項目損失約16,200萬人民幣。

Uniswa

2020年4月18日,DeFi項目Uniswap遭到攻擊。

攻擊者利用ERC777可以在同一筆交易中完成代幣兌換的特性,通過其tokensToSend()函數對Uniswap進行重入攻擊。最終Uniswap項目損失共計約150萬人民幣。總結

從上文的數據統計裏可以看出,這23次重大攻擊事件,損失總金額高達約18億人民幣。

這18億人民幣被包括價格預言機操縱、重入攻擊、實現邏輯錯誤、閃電貸攻擊、項目方欺詐、錢包攻擊在內的各種攻擊方式所盜取,讓人防不勝防。

計算機領域中早有統計,平均每1000行代碼中,會有1-25個bug。

也就是說,這個概率的區間是千分之一(0.1%)至百分之二點五(2.5%)。

相關文章