從波場生態一周3起攻擊,解析DApp「攻擊外溢」的真相
2018年,EOS引爆了DApp市場,諸多公鏈開始在這一市場上逐鹿。其中,波場通過一系列扶持計劃積極建設DApp,根據DAppTotal的數據,截至4月21日,波場上有132個活躍DApp,日活總數接近5萬,日交易額超過2億個TRX。這些數據讓波場看起來已經擁有與以太坊和EOS在DApp市場上一爭高下的能力。
但是,EOS生態繁榮的背後是頻發的安全事件。PAData聯合區塊鏈數據與安全服務商PeckShield在《起底EOS DApp安全生態》系列報道中曾統計過,僅2018年下半年,EOS上的DApp就發生了49起安全事件,12種攻擊手法製造的總損失達到319萬美元。
實際上,在攻擊面前,所有公鏈上的任何DApp都只能「繳械投降」。4月11日,波場上的DApp TronBank遭受攻擊,損失超過1.8億個BTT,這直接將波場的安全生態推向了輿論的風口浪尖。波場的安全生態現狀如何?發生在EOS上的攻擊是否「外溢」到了波場呢?PAData再次聯手PeckShield起底波場的DApp安全生態。
單次攻擊平均損失超16萬美元
抽獎類DApp成重災區
其實早在2018年,波場上就已經有DApp遭受攻擊。第一個遭受攻擊的DApp是抽獎類應用TRONWIN,2018年12月30日TRONWIN在Twitter上發布官方公告稱遭到攻擊,共損失200萬個TRX和10億個WIN,按照當時的幣價折算,總損失超過29萬美元。目前尚未可知這次攻擊的具體手法。
除了這次未知攻擊手法的安全事件以外,其餘3起已被監測到的安全事件的攻擊手法包括:增發漏洞攻擊、隨機數攻擊和假幣攻擊。
其中,發生於4月8日的增發漏洞攻擊是針對TRC20智能合約中的TransferMint(CVE-2019-11420)發起的攻擊,由於代幣轉讓函數沒有驗證轉出方和接收方是否是同一用戶,導致用戶可以通過自己轉給自己來實現代幣的無限增發。TransferMint漏洞是合約層面的漏洞,只要DApp部署了這類合約就可能在此次攻擊中受到損失。
根據PeckShield動態感知平台的統計,一共有超過20個DApp或合約受到增發漏洞攻擊,包括抽獎類應用TronCrush、智能合約Iseri Project和RockstarToken等,但具體損失數值不可知。毫無疑問,目前,增發漏洞攻擊是波場生態安全中「殺傷範圍」最廣的一種攻擊手法,而且這個隱患現在依然存在。PeckShield TRON安全負責人鄭彪表示,「現在DApp的代碼存在互相抄襲的可能性,之前被忽視漏洞就也就有可能一直順延下去。這類漏洞是否可能再被攻擊,一定程度要看這個DApp所對應的Token有沒有價值了。」
波場的DApp攻擊也出現了「連鎖反應」。就在增發漏洞攻擊發生的兩天後,4月10日TronWoW遭遇隨機數攻擊,由於開獎合約沒有驗證下注範圍,允許用戶在直接與鏈上DApp交互時構造惡意輸入,實現100%勝率。這次攻擊導致項目方損失200多萬個TRX,摺合近6.5萬美元。4月11日TronBank遭遇假幣攻擊,BTTBank智能合約沒有驗證TRC10代幣 ID(TokenID),導致任何TRC10代幣都可以換成真的BTT。這次攻擊項目方共損失超過1.8億個BTT,摺合損失超過12.5萬美元。
在4起安全事件中,已被明確監測到的受攻擊的4個DApp其中有3個都是抽獎類應用,還有1個是風險類應用。抽獎類應用成為波場安全生態的「重災區」。
回顧至此,波場的安全生態雖然僅有4起,但已經有兩項數據超越了EOS。一是從安全事件發生頻率上來看,波場一周3次的頻率已經超過EOS周均2次的頻率[1]。但是必須要聲明的是,波場的一周3次可能是峰值,有一定的特殊性和偶然性。因為第二次安全事件發生的時間距第一次安全事件足足超過3個月,「這裡存在很多外部因素」,鄭彪解釋道:「實際上今年1到3月份,整體上都很少發生安全事件,不止波場,其他公鏈比如以太坊和EOS,合約被攻擊的事件也比較少。這可能是因為黑客在休息或者在學習和探索其他公鏈。」
二是從安全事件導致的損失上來看,波場有損失記錄的3起安全事件平均導致的損失超過16萬美元,即使算上1起未知損失金額的事件,4起安全事件的平均致損金額也超過12萬美元,遠遠超過EOS單起安全事件平均致損6.5萬美元的水平。
黑客也需要「練手」
攻擊行為與餘額和幣價均無關
從EOS的安全事件來看,黑客主要是挑一些交易量大的DApp來下手,但根據PAData早前的分析,黑客下手的時間卻與幣價行情無關。也即,不管錢多錢少,黑客只要認為有利可圖,或者得利可能性比較高都會下手。
那波場上的安全生態是否也存在這種情況呢?
對此,鄭彪表示目前波場生態安全遭受的攻擊與波場生態的繁榮程度,或者資金池裡的資金量多寡並沒有一定的相關性。他認為黑客挑選攻擊目標可能主要有兩種選擇,一種和EOS安全生態相似,就是「挑大戶」下手,「用戶量或者交易額排名比較高的,會成為他們首要的攻擊目標。」比如最近發生的兩起安全事件,按照DAppTotal的排名,TronWoW在攻擊發生的當日(4月10日)的排名是第4位,TronBank在攻擊發生當日(4月11日)的排名是第1位。
對黑客而言,另一種選擇可能反而是避開「大戶」,挑「老實人」。因為「大戶」往往本身很有錢,安全風控就會做得相對比其他DApp要好一點,那麼黑客攻擊得手的可能性就會小。這種選擇發生於較早的兩起安全事件,按照DAppTotal的排名,TRONWIN在攻擊發生當日(2018年12月30日)的排名是第39位,TronCrush在攻擊發生當日(4月8日)的排名是第31位。
顯然排名高低(即用戶數量多少[2])都有可能成為攻擊目標,那麼從單個DApp內部縱向來觀察,黑客會瞄準某個DApp,在合約餘額和應用代幣(包括DApp自己發行的代幣或TRX)都處於高位時攻擊以謀求單次利益最大化嗎?答案也是否定的。
PAData統計了四個遭受攻擊的DApp的歷史合約餘額後發現,攻擊並沒有發生在歷史高位附近,反而大多是處於偏中低的位置附近。
從攻擊發生當日的代幣交易價格來看,幣價高低也不是影響黑客攻擊的主要因素。PAData匹配了攻擊發生當日CoinMarketCap上TRX或DApp代幣的收盤價,並將當日收盤價按照25%分位、50%分位(中位數)和75%分位將代幣歷史價格分為4個量化檔次,小於25%分位價記為低,介於25%-50%分位價記為中低,介於50%-75%分位價記為中高,高於75%分位價記為高。匹配結果顯示,四次攻擊發生時的幣價處於低、中低和中高檔次的情況都有發生,反而當幣價處於歷史高位時沒有發生過攻擊。
鄭彪覺得,「從黑客這個角度來考慮的話,更多的情況可能是,黑客會對各個合約做滲透測試,找到突破口之後再發起攻擊。」這意味著,黑客也需要「練手」,挑選攻擊對象時可能存在一定的偶然性,反而與生態繁榮程度、幣價高低、用戶數量多少、交易額多寡都不是必然相關的。
「攻擊外溢」有限
時效性和公鏈特性決定外溢程度
過去,更多的安全事件可能出現在EOS上,但最近波場連發幾起安全事件展示了安全事件可能正從EOS向波場蔓延的趨勢。但PeckShield EOS安全負責人施華國和TRON安全負責人鄭彪都表示,發生在EOS生態中的安全事件僅有十分有限的「溢出效應」。
一方面,各條公鏈都在不斷地升級、不斷地完善、不斷地修復漏洞,所以黑客如果想要去攻擊不同公鏈上相似的漏洞邏輯,時效性是非常重要的。過了窗口期,可能其他公鏈就已經補上了這個漏洞。
另一方面,也是更重要的一方面是,雖然攻擊思路可能是相似的,但由於每條公鏈有自己獨特的特性,因此具體的攻擊手法在每條公鏈上的實現肯定是不一樣的。
比如說EOS開獎的時候允許有一個延遲交易的過程,這個EOS特有的機制就可能導致隨機數攻擊或者阻塞交易攻擊。相反,在波場上面沒有這種類似延時交易的機制,那麼針對延時交易漏洞的隨機數攻擊可能就不會直接出現。而且很多安全事件都需要一些特定條件觸發,這些特定條件可能在以太坊或EOS上出現,但在波場上就不會出現,所以波場就不會面臨這些攻擊,但是波場可能會有一些其他的與其自身鏈的特性相關的攻擊手段出現。
鄭彪以4月11號發生在TronBank的BTT代幣攻擊事件為例解釋道,在波場上,除了有TRX以外,還有和以太坊ERC20對標的TRC20代幣和為了降低用戶使用平台的門檻促進公鏈繁榮而推出的TRC10代幣,前者需要用智能合約來控制,但後者可以直接由用戶發起。波場的創新之處就在於允許智能合約內部自由轉賬非智能合約創建的非平台幣,這是以太坊和EOS都沒有的。而TronBank智能合約就是因為沒有對合約內部轉賬時用戶輸入的TokenID做檢測才導致了「以假亂真」的攻擊事件發生。
PAData早前的文章也總結過EOS安全事件攻擊手法的演進路線,從系統攻擊開始,然後到程序的邏輯漏洞,再到程序的演算法漏洞,最後發展為綜合手段。但波場安全事件的開始就直接跳過了前兩步,直接進入了以泛隨機數等手法為主的演算法漏洞攻擊,那是否意味著波場的安全生態出現了「躍進式突變」呢?
對此,鄭彪認為,「整個攻擊和反攻擊都是圍繞平台一起發展的,平台在發展,那黑客就會跟著平台一起去做更新。」EOS剛上線的時候,DApp並不繁榮,黑客能攻擊的目標非常少,所以可能更關注是底層公鏈的問題。但波場借鑒了以太坊和EOS中的精華,相對其底層公鏈出問題的概率就會非常低。同樣的,波場上的DApp出現的時間也比以太坊和EOS上的DApp晚,項目方也可以對之前的DApp有所借鑒,因此波場的安全生態看起來就直接進入了攻擊程序演算法漏洞的第三步,但這並不能排除波場的安全生態面臨系統攻擊和程序邏輯漏洞攻擊的可能性。
另外,由於公鏈的治理特性,波場上 DApp 的智能合約一旦上線之後,合約代碼就是固定的、不可逆的、不可更改的。當面臨攻擊時,除非項目方之前已經做了一些PlanB,不然損失有可能持續擴大。
「我們後來有觀察到,在TronBank出事之後,依然有用戶做正常的投資,這些投資的BTT後面也可能被黑客薅走。」鄭彪建議不只項目方要審視項目代碼邏輯的可靠性,用戶個人也需要及時更新DApp的安全狀態信息。
注釋:
[1] 參考PAData《起底EOS DApp安全生態》(上、下)系列報道。
[2] DAppTotal上的排名是以DAU為依據的,即排名高意味著日活躍用戶數量多。
(作者:PANews,內容來自鏈得得內容開放平台「得得號」;本文僅代表作者觀點,不代表鏈得得官方立場)
※BTC-比特幣單日漲幅為4.89%,BitMEX躍居交易量排行榜第一
※Coinbase正在成為一個加密貨幣銀行嗎?
TAG:鏈得得APP |