以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > MEXC > Info

慢霧:破解造成 BetDice 項目恐慌的交易回滾攻擊手法_EOS

Author:

Time:1900/1/1 0:00:00

2018年12月19日,眾多游戲類DApp遭遇交易回滾攻擊,其中包括BetDice,EOSMax,ToBet等。按當時18元人民幣的價格計算,損失超過500萬人民幣。期間BetDice通過鏈金術平臺發出多次公告,一度造成恐慌。

與此同時,慢霧安全團隊對交易所和中心化錢包給出了暫時性的方案。此刻,攻擊手法依舊是一個謎團。那么,攻擊手段究竟是怎樣的呢?在進行攻擊回顧之前,需要先了解一點技術背景。

技術背景

1、我們知道EOS采用的共識算法是DPOS算法,采用的是21個超級節點輪流出塊的方式。除了21個超級節點外的其他全節點,并沒有出塊的權限。起到的作用是將收到的交易廣播出去,然后超級節點將其進行打包。

說到這里,很容易看出,如果一筆交易是發給除了超級節點外的其他全節點,這筆交易會經歷兩個過程。首先,這筆交易先被全節點接收,然后交易再被節點廣播出去進行打包。而一筆交易是需要超級節點中超過2/31的節點進行確認之后才是不可回滾的,也就是不可逆的。

這個過程大概需要3分鐘左右,也就是說,交易發到除了超級節點外的全節點的時候,由于全節點沒有打包的權利,此時此刻交易仍然處于可逆狀態。這是一個核心關鍵點。

慢霧:上周Web3安全事件中總損失約1996.3萬美元:金色財經報道,據慢霧區塊鏈被黑檔案庫統計,2023年8月14日至8月20日,共發生安全事件10起,總損失約1996.3萬美元。具體事件:

8月14日,Hexagate發推表示,過去幾天單個MEV Bot被利用了約20萬美元。以太坊上Zunami Protocol協議遭遇價格操縱攻擊,損失1,179個ETH(約220萬美元)。

8月15日,以太坊擴容解決方案Metis官方推特賬號被盜。Sei Network官方Discord服務器遭入侵。Base生態項目RocketSwap遭遇攻擊,攻擊者竊取了RCKT代幣,將其轉換為價值約86.8萬美元的ETH并跨鏈到以太坊。

8月16日,借貸協議SwirlLend團隊從Base盜取了約290萬美元的加密貨幣,從Linea盜取了價值170萬美元的加密貨幣。BAYC推出的鏈上許可申請平臺Made by Apes的SaaSy Labs APl存在一個問題,允許訪問MBA申請的個人詳細信息。

8月18日,DeFi借貸協議Exactly Protocol遭受攻擊,損失超7,160枚ETH(約1204萬美元)。

8月19日,Cosmos生態跨鏈穩定幣協議Harbor Protocol被利用,損失42,261枚LUNA、1,533枚CMDX、1,571枚stOSMO和18,600萬億枚WMATIC。

8月20日,衍生品市場Thales發布公告稱,一名核心貢獻者的個人電腦/Metamask遭到黑客攻擊,一些充當臨時部署者(2.5萬美元)或管理員機器人(1萬美元)的熱錢包已被攻破。[2023/8/21 18:13:42]

2、每一個bp,都可以在自己的節點的config.ini文件內進行黑名單的配置,在黑名單中的帳號是不能進行交易的,也就是說無論怎樣,黑名單的交易都會被回滾。

慢霧:Poly Network再次遭遇黑客攻擊,黑客已獲利價值超439萬美元的主流資產:金色財經報道,據慢霧區情報,Poly Network再次遭遇黑客攻擊。分析發現,主要黑客獲利地址為0xe0af…a599。根據MistTrack團隊追蹤溯源分析,ETH鏈第一筆手續費為Tornado Cash: 1 ETH,BSC鏈手續費來源為Kucoin和ChangeNOW,Polygon鏈手續費來源為FixedFloat。黑客的使用平臺痕跡有Kucoin、FixedFloat、ChangeNOW、Tornado Cash、Uniswap、PancakeSwap、OpenOcean、Wing等。

截止目前,部分被盜Token (sUSD、RFuel、COOK等)被黑客通過Uniswap和PancakeSwap兌換成價值122萬美元的主流資產,剩余被盜資金被分散到多條鏈60多個地址中,暫未進一步轉移,全部黑客地址已被錄入慢霧AML惡意地址庫。[2023/7/2 22:13:22]

黑名單配置路徑:

MacOS:

~/Library/ApplicationSupport/eosio/nodeos/config/config.ini

慢霧:警惕Web3錢包WalletConnect釣魚風險:金色財經報道,慢霧安全團隊發現 Web3 錢包上關于 WalletConnect 使用不當可能存在被釣魚的安全風險問題。這個問題存在于使用移動端錢包 App 內置的 DApp Browser + WalletConnect 的場景下。

慢霧發現,部分 Web3 錢包在提供 WalletConnect 支持的時候,沒有對 WalletConnect 的交易彈窗要在哪個區域彈出進行限制,因此會在錢包的任意界面彈出簽名請求。[2023/4/17 14:08:53]

Linux:

~/.local/share/eosio/nodeos/config/config.ini

配置方法:將config.ini文件內的actor-blacklist填入黑名單帳號,如下圖中,將attacker這個帳號作為黑名單帳號。

了解了以上的知識點之后,我們就可以進行整個攻擊事件的回顧了。

攻擊回顧

跟蹤攻擊者的其中一個攻擊帳號,發現帳號合約內只有一個transfer函數

慢霧:警惕QANX代幣的雙花攻擊風險:據慢霧區消息,近期存在惡意用戶利用QANX代幣的轉賬鎖定、解鎖功能(transferLocked/unlock)觸發的事件記錄與正常使用transfer功能轉賬觸發的Transfer事件記錄相同而進行雙花攻擊。

慢霧安全團隊建議已上架此幣種的平臺及時自查,未上架的平臺在對接此類幣種時應注意以上風險。

QANX: 0xaaa7a10a8ee237ea61e8ac46c50a8db8bcc1baaa[2022/3/26 14:18:46]

同時,我們可以通過復盤這個帳號的所有交易記錄發現,這個帳號只有開獎記錄,而沒有下注記錄,看起來就好像項目方故意給這個帳號進行開獎一樣。然而事實上并非如此。那為什么會出現這樣的情況呢?這就需要上面的技術背景的知識了。以下是詳細的攻擊手法:

1、首先:攻擊者調用非黑名單合約的transfer函數,函數內部有一個inlineaction進行下注,from填寫的是攻擊者控制的非黑名單合約帳號,to填寫的是游戲合約帳號。這時,攻擊者發送交易是發向游戲合約自己的全節點服務器。使用的是黑名單帳號進行。

聲音 | 慢霧:Dapp、交易所等攻擊事件造成損失已近41億美金:慢霧數據顯示Dapp、交易所等攻擊事件造成的損失已達4098587697.68美金,半月增加近3億美金。據2月28日報道,慢霧區上線“被黑檔案庫(SlowMist Hacked)”,目前各類攻擊事件共造成約 3824082630.12 美金的損失。[2019/3/13]

2、游戲節點讀取到了這筆交易,立刻進行開獎,如果中獎,將對攻擊者控制的非黑名單帳號發送EOS。

3、在經歷了一個1,2兩個操作之后。理論上攻擊者控制的非黑名單帳號是進行了余額扣除。然后進行正常的開獎邏輯。到這里之前,一切都是正常的。也許有讀者會問,為什么配置了黑名單,交易還能正常發起?原因是這個黑名單生效范圍是在bp內,普通的全節點的config.ini內是沒有黑名單的配置的。所以攻擊者依然可以發起交易。

4、到此為止,攻擊正式開始,也到了最關鍵的地方,由于項目方節點在收到下注交易的時候已經立馬完成了開獎邏輯,而且采用的是線下開獎的模式,即下注交易和開獎交易是兩筆不同的交易。但是,這兩筆交易僅僅是在項目方的節點內完成,仍然是可逆的。當項目方節點向bp廣播這兩筆交易的時候,由于第一筆下注交易的發起者在bp節點的黑名單內,這一筆交易將被回滾,也就是打包失敗,而開獎交易的發起者是項目方,不在黑名單之內,會被正常打包。因此兩筆交易中的第一筆下注交易一定會被回滾,而開獎交易依舊會被打包,這也就解釋了為什么只有開獎記錄,而沒有下注記錄。因為下注記錄都被回滾了。

整個過程可以參考下面的圖:

攻擊復現

本次攻擊復現參考EOSLIVE錢包團隊的文章:https://eos.live/detail/19255

1、環境準備

本地準備兩個節點,一個出塊節點,一個同步節點,出塊節點用于模擬真實bp,而同步節點則用于模擬項目方,其中出塊節點需要開啟history插件,方便后續的debug,并且把attacker加入節點黑名單。方便后續的debug。打包節點則需要開啟自動開獎插件,自動開獎插件配置詳見:

https://github.com/superoneio/security

本次復現用到的代碼:

https://github.com/superoneio/security

本地多節點配置方法官方參考:

https://developers.eos.io/eosio-nodeos/docs/local-multi-node-testnet

三個測試帳號,分別是tobetioadmin,tobetiologs1,attackproxy1,分別為項目方帳號,項目方log帳號,和攻擊代理帳號,其中tobetioadmin部署tobet游戲合約,tobetiologs1部署logs合約,attackproxy1部署attack合約。注意除了攻擊代理帳號外的其他兩個帳號不要改為其他帳號,如果改為其他帳號需要對自動開獎插件進行修改,自動開獎插件是攔截tobetioadmin這個帳號的。

附上我的雙節點的配置:

其中nodeos_main為出塊節點,nodeos_second為同步節點。

2、啟動節點

看到以上信息則代表dice_plugin配置成功

3、首先對正常的邏輯進行測試。

使用attackproxy1對tobetioadmin帳號進行正常的轉賬交易

可以看到,攻擊代理合約進行了正常的轉賬。

4、開始攻擊,使用黑名單帳號調用攻擊代理合約,向項目方合約發起攻擊。查詢初始余額

為保證攻擊成功,連續向項目方發起4起攻擊

再次查詢余額

查詢attacker帳號記錄

可見,并沒有attacker對attackproxy1的調用記錄,最后兩條記錄是我測試直接使用黑名單向tobetadmin發起攻擊的時候留下的記錄。與本次測試無關。但是通過查詢發現,本地記錄和鏈上記錄是相吻合的,即無下注記錄。

查詢attackproxy1的帳號記錄

可以看到的是,這個也與鏈上記錄吻合,只有開獎記錄,就像tobetadmio故意給attackproxy1開獎一般。

通過以上的復現及和鏈上記錄的對比,我們可以證明上文說的攻擊手法,就是黑客本次進行攻擊的手法,采用的就是使用黑名單進行回滾的操作。

防御建議

1、針對DApp的防御建議

節點開啟readonly模式,防止節點服務器上出現未確認的塊建立開獎依賴,如訂單依賴,開獎的時候判斷訂單是否存在,就算在節點服務器上開獎成功,由于在bp上下注訂單被回滾,所以相應的開獎記錄也會被回滾。

2、針對交易所和中心化錢包的防御建議

慢霧安全團隊建議EOS交易所及中心化錢包在通過RPC接口get_actions查詢熱錢包充值記錄時,應檢查充值transaction所在的block_num是否小于last_irreversible_block,如果block_num大于last_irreversible_block則表示該區塊仍然是可逆的,存在「假充值」風險。

本文來源于非小號媒體平臺:

慢霧科技

現已在非小號資訊平臺發布1篇作品,

非小號開放平臺歡迎幣圈作者入駐

入駐指南:

/apply_guide/

本文網址:

/news/3627097.html

免責聲明:

1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險

2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場

上一篇:

再提Mt.Gox,糟糕的「里程碑事件」正提升區塊鏈世界的安全意識

下一篇:

復盤數十萬EOS被盜過程,背后是其架構設計缺陷?

Tags:EOSACKCONBETEOSevenQUACK價格Continuum WorldWBET價格

MEXC
美國前國會議員羅恩·保羅:比特幣或成美元替代品_比特幣

作者:TonySpilotro九年前的今天,一位名叫LaszloHanyecz的美國佛羅里達州程序員用一萬個比特幣購買了兩個PapaJohn’s披薩.

1900/1/1 0:00:00
JEX上線周HT期權0530公告_USDT

HT看漲期權 代碼周HT看漲0531期權標的HT合約類型歐式看漲期權計價單位USDT最小價格單位0.0001USDT合約比例1:4.

1900/1/1 0:00:00
Gate.io已發披薩節活動獎勵公告_GATE

Gate.io披薩節轉發抽獎領BTC和Pizza的活動已順利結束,感謝大家的積極參與。我們已經按照活動規則為中獎的用戶發放了獎勵,獲獎用戶可以到賬單明細中查看詳情:https://gateio.

1900/1/1 0:00:00
火星一線 | 分析師Kiril Nikolaev稱萊特幣將在8月前飆升至220美元_LTC

火星財經APP一線報道,加密貨幣分析師KirilNikolaev近期撰文表示,LTC價格將在2019年8月前飆升至220美元。這意味著在接下來的幾個月里,該代幣將大幅上漲140%以上.

1900/1/1 0:00:00
硬件錢包并非無懈可擊,防不勝防的「中間人攻擊」_EDG

在加密貨幣世界,無論你如何強調安全,都不為過。隨著全球加密貨幣市值不斷增長,資產安全成為廣大投資者最為關注的問題,2018年以來,發生在加密貨幣行業的黑客攻擊事件不勝枚舉,導致的損失更是高達數十.

1900/1/1 0:00:00
區塊鏈技術如何用于汽車電力交易?豐田與東京大學已聯手測試_區塊鏈

  (圖片來源:豐田官網)  據外媒報道,日本東京大學(UTokyo)、豐田汽車公司和TRENDE公司將從6月17日開始.

1900/1/1 0:00:00
ads