文字及數據| Carol 視覺設計| Tina 編輯| Tong
數據合作夥伴| PeckShield
“只要黑客中獎了他就讓結果生效,不中獎就一直不生效,直至他中獎。”
“在EOSBet遭受假轉賬攻擊之後的兩三天內,市場上瀰漫著一股恐慌的情緒。開發者們都不知道是由於什麼原因導致了這次的攻擊,唯一知道的是EOSBet突然間遭受了史無前例的巨大損失,於是大家只能紛紛把遊戲暫時關閉,等到漏洞修復之後才重新開放。”
EOS在目前DApp之爭中遙遙領先,也成為黑客的沃土。據區塊鏈數據與安全服務商PeckShield的統計,去年7月至12月間,EOS鏈上的DApp共發生49起安全事件,波及37個DApp,導致項目方共損失近75萬枚EOS,按照攻擊發生時的幣價折算,總損失約合319萬美元。
“現在的攻擊手段都還屬於早期,遠遠還沒到深層次的安全漏洞”,黑客地毯式的攻擊,讓EOS生態“危機四伏”,而攻防之間,安全的“圍牆”日益高起。
11種常見攻擊手法
單次攻擊最高獲利80萬美元
DAppTotal 1月11日數據顯示,EOS鏈上目前已有219個活躍的DApp,共有43782個活躍用戶,累計交易量超過1189萬個EOS。雖然在活躍DApp數量上比ETH少了144個,但在活躍用戶和累計交易量(代幣數量)上分別比ETH高出5倍和1000倍。
EOS生態紅紅火火的建設的同時,頻發的安全事件也成為不容忽視的隱患。在統計時間範圍內的49起安全事件中,共出現11種攻擊類型,包括溢出攻擊、隨機數問題、重放攻擊、假EOS攻擊、假轉賬通知、拒絕服務攻擊、敏感權限、私鑰洩漏、交易回滾攻擊、內聯反射攻擊、同名混淆交易。
最早出現的手法是發生在去年7月的溢出攻擊,這主要是由於EOS系統底層asset類代碼存在缺陷,這個缺陷導致極小的金額可以通過相乘放大無數倍,變成極大的金額。這個漏洞在被爆出之後,就立刻被修復,此類攻擊手法也只發生在主網上線的早期。
在諸多攻擊類型中,泛隨機數安全事件最多發,共發生31次,佔去年下半年總安全事件的63.27%。 PeckShield安全團隊認為隨機數問題和交易回滾都是針對隨機數進行的攻擊,同屬於泛隨機數安全範疇內的攻擊手法。
其中,最常發生的安全事件是隨機數問題,一共發生了16次,這種手法通常是指隨機數算法被破解,黑客根據破解出來的隨機數成功計算出開獎結果。比如11月10日,名為“1supereosman“的黑客就用這種方法攻擊了MyEosVegas,致使開發者損失了7530個EOS,按當天幣價折算,約4萬多美元。這也是所有隨機數攻擊中,黑客獲利最豐厚的一次。
次多發的安全事件則是交易回滾,一共發生了15次,如果具象化到攻擊案例中就是,由於下注和開獎通常在一個事務裡完成,如果開獎時黑客發現他並未中獎,就直接採用中斷攻擊,讓事務中斷,整個交易就會回滾,等待下一次開獎。這個過程對黑客來說相當於一個循環,簡單來說就是,只要黑客中獎了,他就會讓結果生效,如果一直沒中獎,黑客就會讓結果一直失效,直到黑客自己中獎為止。由於EOS網絡的交易速度很快,使得這種試錯的循環運轉也很快,而且對黑客而言,這種試錯幾乎沒有成本。
但出人意料的是,雖然發生次數最多,但隨機數問題和交易回滾並非造成DApp開發者損失最慘重的攻擊手法,假轉賬通知才最具“殺傷力”。尤其是名為“ilovedice123”和“whoiswinner1”的黑客在10月15日對EOSBet發起的
但出人意料的是,雖然發生次數最多,但隨機數問題和交易回滾並非造成DApp開發者損失最慘重的攻擊手法,假轉賬通知才最具“殺傷力”。尤其是名為“ilovedice123”和“whoiswinner1”的黑客在10月15日對EOSBet發起的假轉賬通知攻擊,直接造成開發者超過14萬個EOS的損失,按當天幣價折算,近80萬美元。這也是所有49起安全事件中,黑客獲利最豐厚的一次攻擊。
“假轉賬通知攻擊其實是利用了開發者校驗不嚴謹產生的一個漏洞”,PechShieldEOS安全負責人施華國在接受PANews專訪時解釋道:“開發者出於自身業務需求對EOS的apply接口做了相應的修改,可是修改完後,開發者沒對收入的EOS做基本邏輯判斷,導致開發者接收到EOS後,沒有檢查轉賬收款方是否是自己,把其他人之間的轉賬當成給轉給自己,直接做了開獎處理,造成了巨大的損失。”在EOSBet遭受假轉賬攻擊之後的兩三天內,市場上瀰漫著一股恐慌的情緒。開發者們都不知道是由於什麼原因導致了這次的攻擊,唯一知道的是EOSBet突然間遭受了史無前例的巨大損失,於是大家只能紛紛把遊戲暫時關閉,等到漏洞修復之後才重新開放。
跟假轉賬通知類似的攻擊手法還有假EOS攻擊,這也是由於開發者沒做基本校驗。具體而言,開發者沒有校驗收到的EOS是真的EOS Token還是同名代幣,卻把兩者都當做真的EOS收進來交易了,是一種以假亂真的攻擊手法。
假轉賬通知和假EOS攻擊是發生在EOS主網上線三個月左右的時候,在PechShield安全團隊看來,那個時候的漏洞還是比較初級,只是涉及到一些程序的漏洞。
就在PANews截稿前夕,1月11日對DApp的攻擊又出現了第12種新類型——交易阻塞攻擊。黑客用這種攻擊手法影響超級節點出塊,造成全網擁堵,等於把整個網絡搞癱瘓了。施華國認為:“交易阻塞攻擊的影響面是非常大的,因為這個是公鏈層面的漏洞,不同於以往DApp合約層的安全事件影響,一旦被黑客利用,危害的會是基於主網生態上的每一個參與者,包括超級節點、DApp開發者,乃至每一個用戶。”
交易阻塞攻擊幾乎影響全部EOS競猜類游戲DApp的正常開獎,已有多款知名EOS遊戲被攻擊,雖然目前EOS 主網已發布補丁,但還不能完全確保DApp免受此漏洞攻擊。
平均每週發生2次攻擊12月最多
波及37個DApp EOSBet成“靶心”
PAData估算了統計時間範圍內的49起安全事件後發現,EOS上的DApp幾乎平均每3.5天就會面臨1次攻擊,即幾乎每週會發生2次攻擊。
其中,12月是發生攻擊次數最多的一個月,共發生了20次安全事件,相當於1.5天發生1次,遠高於平均水平。同時,12月也是統計時間範圍內因攻擊導致開發者損失EOS數量最多的一個月,共有近35萬枚EOS被黑客收入囊中。
PeckShield安全團隊認為這是由於12月出現了新型的回滾交易攻擊,本來,經歷過7月到10月之間的損失以後,大多數開發者都建立了自己的安全風控系統。當一個交易請求或者一個事件發生以後,安全風控系統可以對它做預知判斷,一般來說,如果是通常的攻擊手段,都會在系統的預判之內,系統會直接做熔斷處理。但開發者沒預料到會發生回滾交易攻擊,新的攻擊手法無法觸發安全風控系統的熔斷機制,“手無寸鐵”DApp迅速淪陷。
“而且這種攻擊是針對遊戲邏輯層面的問題進行的,那時候大多遊戲都有各種各樣的邏輯問題,所以黑客的得手率也很高。”
幣價的下跌,也嚴重影響了黑客的攻擊獲利。雖然12月份無論在攻擊次數還是開發者損失的EOS數量上都遠高於其他月份,但12月加密貨幣市場整體已經進入寒冬,受幣價下跌的影響,按照攻擊當日的幣價來折算,12月並不是損失金額最大的一個月,相比幣價較高的10月,12月發生的20次攻擊導致開發者共損失近88萬美元,而10月份僅有的5次攻擊卻導致開發者損失了121萬美元。從損失的金額上來講,恐怕開發者要慶幸回滾交易攻擊發生在熊市了。
在統計時間範圍內,EOS上共有37個DApp遭遇了黑客攻擊。其中,EOSBet被花樣攻擊過3次,分別遭遇過EOS系統缺陷、假EOS和假轉賬通知攻擊,總共損失了近19萬枚EOS,分別按照攻擊發生當日的幣價來折算,總損失約為103萬美元,是所有被攻擊的DApp中損失最慘重的一個。 EOSBet成為靶心主要還是由於交易量太大了,正如施華國在採訪中所說的:“黑客攻擊肯定是盯大戶。”
其次,狼人遊戲、EOSBetDice、EOSCast、EOSMAX也是損失較為慘重的DApp,按照幣價折算,都超過了10萬美元。
每15天出現新攻擊手法
“攻擊手段仍處於早期”
黑客的技術在不停地演進,攻擊手段也越來越複雜。 PAData統計發現,幾乎平均每15天就會出現一種新的攻擊手法。去年7、8月的時候以攻擊系統最基礎的漏洞為主,9、10月開始攻擊程序邏輯漏洞,11、12月上旬,攻擊者已經開始研究開發者的算法——泛隨機數問題開始爆發。而12月下旬開始,攻擊手法又一次升級,黑客不止利用了程序邏輯漏洞,甚至還利用了系統的一些嚴重漏洞。
“現在的安全風控系統還很不完善,但至少大家都有意識在做這個事情。”施華國認為這是一個好現象,“但是開發者的精力主要在產品上,安全只能是基於他的理解對一些已知漏洞做的保護,實際上效果還是很差的。”比如PeckShield安全團隊經常強調正常的隨機算法已經是安全的了,不應該再加任何參數,但還是有好多開發者加比如時間戳和余額信息等其他參數,開發者認為多一個參數多一份安全,但實際上增加的參數反而會影響隨機化機制,而大部分回滾交易最後回溯都是因為這些參數讓隨機數變得可預判了,或者說可變化了。
PeckShield創始人兼CEO蔣旭憲在接受PANews採訪時曾表示,“我認為現在的攻擊手段都還屬於早期,遠遠還沒到深層次的安全漏洞,比如定位智能合約的邏輯來攻擊等。現在比較多發的隨機數、交易回滾還處於黑盒子就能測出來的階段,但接下來這種攻防少不了。”
雖然區塊鏈安全事件頻發,但技術的演進與黑客的博弈也是發展的必然過程,就如同移動互聯網時期的安卓系統,剛開始也是千瘡百孔,漏洞百出,而隨著攻防演進,技術終將不斷向前發展。