1. 程式人生 > >“偽造轉賬通知”漏洞細節披露:EOSBet遭黑客攻擊損失近14萬EOS始末

“偽造轉賬通知”漏洞細節披露:EOSBet遭黑客攻擊損失近14萬EOS始末

10月15日午間,據IMEOS報道,知名EOS公鏈博彩遊戲平臺EOSBet遭遇了惡意攻擊,損失了鉅額EOS,初步分析為黑客賬號ilovedice123對EOSBet合約eosbetdice11進行攻擊。

 

區塊鏈安全公司PeckShield第一時間監測並捕捉到了該攻擊行為的發生。針對此攻擊事件,最初網上有聲音認定其為“溢位攻擊”,然而PeckShield安全人員進一步分析發現,該攻擊行為其實是黑客利用EOSBet合約在校驗收款方時存在的漏洞——偽造轉賬通知。

 

“偽造轉賬通知”攻擊原理

 

正常的EOS轉賬,是傳送者賬號A通過系統合約eosio.token,將EOS傳送給接受者賬號B,然後A和B都能收到轉賬事件的通知,如果在賬號B上部署合約的話,則可以轉發收到的轉賬通知給其他賬號。

 

如下圖所示:在此次攻擊事件中,攻擊者使用賬號ilovedice123(A)給帳號whoiswinner1(B)轉賬,正常的轉賬應該是系統合約eosio.token在收到“transfer”之後,賬號A和帳號B都能收到轉賬通知,然而攻擊者賬號A一開始便在賬號B上部署了合約並增加對eosbetdice11(EOSBet 合約)的轉賬通知“require_recipient(N(eosbetdice11))”,這樣EOSBet 也會收到A給B的轉賬通知。

(圖示:“偽造通知攻擊”原理 )

 

糟糕的是,EOSBet合約在收到轉賬通知後,並沒有校驗transfer中的to是否為_self,就將其錯誤判斷為一筆給自己的正常轉賬,然後根據平臺遊戲規則給了賬號A傳送相應的EOS獎勵,

實際上,賬號A和賬號B都是黑客自己的賬號,黑客正是使用自己的兩個不同賬號互相轉賬,以“零成本”騙取了平臺鉅額獎勵。 

 

持續數日不同賬號的相同攻擊

 

PeckShield安全人員監測發現,早在10月10日,賬號“iwasagoodboy”就採用了此種攻擊方式進行套利,當天通過67次偽造轉賬通知行為共獲利345.5個EOS。而追蹤發現,在10日與15日期間,共計有“iwasagoodboy”  “hereisstocks  ”“iwanttoloveu” “ilovedice123”、” iamthewinnee”五個賬號採用此種方式套利,其中最大的一次攻擊行為正是10月15日,由賬號ilovedice123所發起的。通過該輪攻擊,黑客共計獲利138,724.325個EOS,至此該攻擊行為被媒體報道,由安全公司介入分析,開始浮出水面。

 

攻擊為同一ID所為

 

據PeckShield態勢感知平臺監測發現,10月15日下午13:27到13:38之間,賬號ilovedice123總共發起了10餘筆大額轉賬指向交易所平臺,其中72,150 EOS流入了Bitfinex,65,100 EOS流入了Poloniex。

 

通過繼續追蹤幾個攻擊者資金流向分析,PeckShield安全人員發現,以上五個不同賬號的獲利資金經過多次轉賬後最終在向Bitfinex和Poloniex交易所發起轉賬時,都流入了所在交易所的同一賬號ID,給交易所Bitfinex(bitfinexdep1)充值的ID為0aa03fbec9a3b2bec49e97575b506644,Poloniex(poloniexeos1)充值ID為9bb2aa5fc22a1bb2,因此判斷,採用“偽造轉賬通知“實施攻擊的不同賬號為同一黑客所為,黑客先是進行了多筆小額攻擊嘗試,最後於10月15日發起了大額攻擊。

 

彙總這些賬號的攻擊轉賬詳情,我們最終統計得出,黑客共計獲利145,321.0712 EOS,根據EOS當前行情價格37元估算,EOSBet平臺此次損失額超500萬元。

 

 

關於我們

 

PeckShield是面向全球的業內頂尖區塊鏈安全公司,以提升區塊鏈生態整體的安全性、隱私性及可用性為己任。商業與媒體合作(包括智慧合約審計需求),請通過telegram(https://t.me/peckshield)、twitter或電子郵件([email protected])與我們聯絡。