從駭客攻擊談EOS遊戲類DApp的安全性需求

買賣虛擬貨幣

隨著高頻結算的競猜類DApp在EOS上大火,新進場使用者攜大量資金起到了助推作用。但EOS競猜類智慧合約的安全形勢極為嚴峻,DApp不斷遭受駭客攻擊,多款博彩類遊戲被盜走大量代幣。

比如月初熱門一時的EOS Cast被駭客轉走7萬多EOS,導致專案損失達200多萬。好在專案方及時修復漏洞,並在使用者沒有實際損失的情況下,承擔了獎金池被盜的損失。

今天我們就從EOS Cast這款遊戲入手,談談這些遊戲類DApp為何屢次遭受攻擊,我們又應該選擇怎樣的平臺才能安全又公正?

1.EOS Cast初體驗

EOS Cast是一款基於EOS生態開發的去中心化彩票平臺。EOS Cast遊戲開獎結果是利用每分鐘開始的連續的EOS區塊號作為開獎依據,區塊號的ID是一個32位元組的數字,是由EOS主網透過非常複雜的加密演算法產生的隨機數,不受任何人控制。而且區塊鏈遊戲的公平性,也可以經過第三方區塊鏈瀏覽器驗證,所以區塊鏈+遊戲的結合完全是可以做到公平、公正和公開的。

這款遊戲具體是怎樣的玩法呢?首先要有一個EOS錢包,並建立EOS賬號,轉一些EOS過去。這裡推薦麥子錢包,透過麥子錢包可以直接開啟內建應用DApp瀏覽器輸入網址www.eoscast.cc,然後使用Scatter登陸。

開獎號碼一共有5位數字組成,遊戲利用每分鐘開始的連續的EOS區塊號的最後一位數字來做為上一期的開獎號碼。如果某個區塊號的ID最後一位不是數字,則順延到下一個區塊。EOS區塊號的ID是一個32位元組的數字,它是根據一系列非常複雜的加密演算法隨機生成的,通常的顯示方式為16進位制,而開獎號碼正是利用了這樣一個真正的隨機的結果來做為開獎號碼。遊戲每分鐘開一期,每天1440期,全年無休。如下圖所示,可以清楚看到EOS區塊號的ID,這也是遊戲公平性的體現。

投注玩法就不多介紹了,很多文章說的很詳細。目前可以單獨投注某一期的單、雙和具體數字,也可以一起投注。如果具體數字多中幾個,那直接暴富了。下面主要分析一下游戲的安全性,這也是大家最關心的。

2.EOS Cast被駭客攻擊真相還原

10月30日EOS Cast第一次上線,上線後,由於該款遊戲非常火爆,自然引起了駭客的注意。當獎池資金達到7萬EOS時,駭客發起了攻擊。

10月31日凌晨,有區塊鏈媒體報道,遊戲平臺EOS Cast遭到駭客攻擊,7萬多EOS被駭客轉走。隨即區塊鏈安全公司PeckShield對相關賬號鏈上資料展開深入分析發現,當天凌晨00:15起,駭客“refundwallet”嘗試對EOS Cast遊戲合約“eoscastdmgb1”實施攻擊,駭客先以“假EOS”攻擊方式進行轉賬攻擊8次,未能得逞,後又採用“假EOS攻擊變種”的方式成功攻擊9次。駭客使用的這個地址下面有N多的假幣,雖然名字和EOS一樣,實際這個“EOS”是鑽了現在EOS網路發幣便捷的空子,隨便發的沒有成本的代幣。另外這個地址下的OTC,BLACK等等代幣應該也是假的。

發現被攻擊後,EOS Cast專案方在被攻擊10分鐘內緊急修復了漏洞,但為了各方安全起見,暫時下架了遊戲。專案方全面檢查了遊戲的安全性(合約審計、前端審計等),以確保遊戲的安全。另一方面,ECAF針對此事件即時響應,併發了仲裁order,將涉及到攻擊的六個賬戶refundwallet等予以凍結。EOSLaoMao團隊則根據ECAForder的訊息,決定將這6個賬號更新到節點的黑名單中。

隨後,慢霧安全團隊第一時間協助進行分析發現,遊戲合約在apply裡沒有校驗transfer action的呼叫方必須是eosio.token或者是自己的遊戲代幣合約。這個漏洞點和EOSBET第一次被黑的原因是一樣的,慢霧安全團隊很早就在《EOS 智慧合約最佳安全開發指南》上做過分析,並再次提醒廣大合約開發者注意。

對此,EOS Cast專案方事後發表宣告,除了修復漏洞和安全檢測等措施外,由於遊戲第一次上線時玩家太多,導致伺服器出現卡頓,因此在下架期間,專案方對伺服器進行了升級,並且最佳化了遊戲的前端和UI,以全方位提升遊戲的流暢度和使用體驗。

這樣還不夠,本次遊戲上線後,專案方承擔了上次被盜的全部損失,並補足了獎金池(專案投入EOS總數量,相當於雙倍被盜數量),充分表達了誠意和體現出專案方的責任。

3.駭客事件的思考

據《IMEOS研究院》11月最新發布的《EOS平臺DApp生態資料分析報告》顯示,自7月份至今的發生的18次EOS DApp安全漏洞中,有多達7次是隨機數攻擊,即隨機數產生的規律被駭客破解。像EosRoyale被攻擊,原因已經查明,是隨機數發生器的漏洞,駭客找到了這個漏洞,然後設法透過先前塊的資訊來計算隨機數發生器演算法的未來數量,從而竊取了數字資產。

用通俗的話來說就是,EosRoyale的隨機數其實是偽隨機數,存在一定規律。駭客找到了規律,算出了之後會出現的隨機數,然後進行攻擊。再簡單點說,就是駭客透過之前的開獎結果,算出之後的開獎結果,瘋狂下注,瘋狂撈錢。所以問題就出在這個隨機數發生器上,或者說隨機數演算法上。

無論是隨機數發生器還是加密演算法上出現問題,很有可能是因為開發者用了自己的私有演算法從歷史上看,私有演算法都會被破解,因為沒有經過萬千駭客的錘鍊和驗證,可靠性和安全性完全無法估量。

而現在世界上公開的被認為強度較高的加密演算法,幾乎都是經過密碼破譯者長期嘗試破解未果而存活下來的。因此,如果認為“公司開發的加密演算法比公開的密碼演算法更強”,那麼只能說是過於自大和無知。

據IMEOS報告稱,上述安全漏洞除EOSBET已成功找回之前被駭客攻擊並轉移到bitfinex和poloniex交易所的14.2845萬個EOS外,其餘被盜事件均透過仲裁被凍結或者被駭客成功套現。此外,與資金相關的EOS智慧合約目前只有EOS CAST開源,被駭客攻擊過兩次的EOS.WIN近日發訊息稱將於近期開源合約。這讓我對這兩款遊戲好感大增,敢於將智慧合約開源,說明對自己的安全性有信心,正面面對駭客,是一種負責任的態度。

事實上,開發者只有將加密演算法的詳細資訊及程式原始碼全部交給專業密碼破譯者,並且為其提供大量明文和密碼樣本,如果在這樣的情況下破譯一段新的密文依然需要花上相當長的時間,才能說明這是高強度的密碼。然而,大部分被攻擊的DApp的開發者明顯沒有這樣做。他們不僅沒有采用現有、公開、安全的加密演算法,而且也沒有找安全審計機構進行審計,最終導致了被攻擊的結果。

無論任何技術都應該追求務實,哪怕走在潮流前沿的DApp也一樣,新興的是業務概念,而底層技術都是市面上已存在的成熟方案堆砌起來的。而對於使用者來說,有必要做好一定的風控措施,無論是DApp的選擇上,還是投入金額的控制上,都留個心眼。比如專門申請一個賬號用來玩博彩類的DApp,以保證大額錢包的安全。再就是儘量選擇開源的專案,安全性更高。當然如前所述,遊戲的公平公正性也是重點需要考慮的。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;