探究隨機數漏洞背後的技術原理:EOS.WIN競猜遊戲是如何被攻破的?

2020-12-04 星球日報

近一個月內,區塊鏈安全公司 PeckShield 已經發現並披露了 EOSBet、EOSCast、FFgame、EOSDice、EOSWin、MyEosVegas、LuckyGo、EOS Lelego 等超8款 EOS 競猜類遊戲遭到了黑客攻擊,黑客總共獲利170,503.5個 EOS,以此前行情均價35元/個估算,黑客已從此類遊戲上獲利超5,967,662.5元,已嚴重威脅到正常的 EOS 生態秩序。

PeckShield 安全人員通過對多款遊戲的攻擊特徵進行提取,初步發現:1、攻擊者背後有不同黑客團夥在實施有組織且針對性的攻擊;2、大部分成功攻擊的原因都和隨機數漏洞有關;3、類似的攻擊有可能愈加頻繁,且他們的攻擊效率有逐漸提升的跡象。

由於絕大部分 EOS 競猜類遊戲尚未開源,為了釐清隨機數漏洞背後的技術原理,摸清楚黑客屢屢攻擊得手的原因。PeckShield 安全團隊以較為典型的 EOS.WIN 遊戲為樣本進行了黑客視角還原,帶大家領略下隨機數漏洞攻擊背後的奧秘。

11月12日,據 PeckShield 態勢感知平臺數據顯示:上午08:59至09:00,不到一分鐘時間,黑客共計向 EOS.WIN 遊戲合約(eosluckydice)發起10次攻擊,獲利超9,180個 EOS。PeckShield 安全人員跟蹤分析發現,黑客先是於昨晚22:46實施小額測試攻擊,在攻擊165次掌握攻擊方法後,選擇於次日9時許採用多個關聯帳號實施快速攻擊。儘管該款遊戲也採用了較為穩妥的兩次延遲交易(deferred transaction)的信息作為隨機數的組成部分,但是黑客仍然巧妙地繞過了這些限制,成功地實施了攻擊。

黑客攻擊原理及開獎過程:

EOS.WIN 主要是由猜數字和21點兩個遊戲組成,猜數字遊戲玩法,用戶可以任意選取一個數字,系統會根據用戶所選大小給出相應賠率,然後系統會隨機給出一個數字,如果結果和用戶的大小選擇匹配則視為中獎,獲得金額為投入金額乘以賠率。

該遊戲的開獎過程為:遊戲合約收到玩家的交易請求,延遲1.5秒後執行開獎方法(resolved 函數),並在開獎方法中使用開獎序號參與隨機數生成,同時通過內聯調用方式將開獎結果信息通知給玩家(receipt 函數),再將開獎序號加1並保存。開獎流程如下圖所示:

(圖示1:DICE類遊戲開獎流程)

PeckShield 安全人員分析發現,該合約的隨機數是通過 get_random 函數獲得,影響該隨機數生成的因素有:txid 為交易哈希 ID, tapos_block_num成交塊高度, tapos_block_prefix 區塊 ID 前綴, bet_id 全局開獎序號等。

為了進一步深入了解,先得科普幾個背景知識:

1、延遲交易與 tapos_block_prefix:常見的隨機數生成方法中,大多使用 tapos_block_num 和 tapos_block_prefix 作為重要的組成部分,在交易中指定未來某個區塊的信息,來保證不可預測性。如果合約中使用了延遲交易的方式,也就是說在交易時(比如開獎)指定了延遲的間隔,看似是使用未來信息,其實在發出這個交易時,系統就已經指定使用當前同步到的最新塊(head_block)信息,進而 tapos_block_num 和 tapos_block_prefix 也是確定的。

2、交易狀態信息回滾:在 EOS 的交易中,如果一個交易中的某個動作(action)執行異常,會導致整個交易狀態的回滾。例如在自己的帳號中部署合約,在每次收到轉帳通知(transfer receipt)時拋異常,可以導致整個轉帳過程失敗,所有的狀態信息,包括餘額等都保持原樣。

3、計算交易哈希 ID:一個交易(transaction)中可以包含多個 action,如果所有 action 參數信息都確定,那麼再結合前面提到的 tapos_block_prefix (ref_block_prefix) 信息,就能自己計算出交易哈希 ID。

簡而言之,攻擊者利用了開獎序號( bet_id)參與隨機數生成和內聯調用失敗可導致狀態信息回滾的特性,在同一時間控制多個合約帳號同時發送交易請求,來儘量保證最後請求的帳號能夠獲得期望的開獎序號參與生成隨機數,以贏得獎勵。以 EOS.WIN 為例,攻擊者先是用5個帳號佯攻實施小金額投注,在掌握更高概率後,用最後1個金額最大的帳號主攻投注,從而以更高概率斬獲獎金。

具體攻擊過程如下(如下圖):

一、攻擊者部署了6個攻擊合約,調用攻擊方法時,在攻擊合約中同時讓這6個帳號發送交易請求,這樣這些請求將會在同一個塊中開獎,由於過程一致,開獎交易中的 tapos_block_num 和 tapos_block_prefix 是一樣的,只有bet_id可能不同。

二、攻擊者的前5個攻擊合約,在收到開獎通知時,能夠獲取到當前的 bet_id,並判斷此 id 能否讓最後的帳號中獎。

1)如果計算得知最後的帳號不能中獎,則該帳號的開獎通知正常執行,使得後面的帳號使用新的開獎序號來計算隨機數;

2)如果計算得知最後的帳號能中獎,則使該帳號的開獎通知失敗,那麼這個開獎序號被保留下來,直到最後的帳號中獎;

(圖示2:攻擊者多帳號實施攻擊過程)

獲獎概率:

從上述的開獎和攻擊過程可知,每增加一個佯攻的帳號,就多了一次提前計算最後主攻帳號能否獲獎的機會。按猜數選擇20來算賠率為5倍,6個帳號會提高中獎概率至大約74%,雖然仍無法保證每次攻擊必中獎,但攻擊者10次攻擊能中獎6次,已經是超高且擾亂正常遊戲的秩序的獲獎概率。

安全建議:

在諸如此類 EOS.Win 的遊戲中隨機數受到攻擊者可控制的變量即遊戲開獎序號(bet_id)的影響,因此PeckShield在此建議開發者,在 DApp 的隨機數生成上,需要去除攻擊者可控制的變量如遊戲開獎序號等影響,同時避免開獎動作和通知動作(receipt)在同一個交易中,從而避免交易狀態的回滾,進而阻止來自黑客的攻擊。

相關焦點

  • 技術極客:周鴻禕誇大了360發布的EOS安全漏洞的危害
    很多嘉賓認為,區塊鏈技術本身存在很多潛在的安全問題,EOS出現安全漏洞很正常,需要時間不斷完善。但是也有嘉賓認為,BM認為360故意製造恐慌的說法,是不敢正視問題,這種態度對技術極度不尊重。嘉賓核心觀點提煉Ruff CEO Roy Li:安全漏洞不會讓EOS歸零,BM的回應不夠尊重技術安全漏洞雖然在區塊鏈裡危害很大,但是我不支持,危險會讓EOS歸零的說法
  • 國際上首次成功實現器件無關的量子隨機數
    這項成果將在數值模擬和密碼學等領域得到廣泛應用,有望形成新的隨機數國際標準。 隨機數在科學研究和日常生活中都有著重要的應用:例如,天氣預報、新藥研發、新材料設計和核武器研製等領域,常常需要通過數值模擬進行計算,而數值模擬的關鍵就是要有大量隨機數的輸入;在遊戲和人工智慧等領域,需要使用隨機數來控制系統的演化;在通信安全和現代密碼學等領域,則需要第三方完全不知道的隨機數作為安全性的基礎。
  • 量子隨機數發生器獲得重大突破
    隨機數生成(RNG)用於眾多加密應用中,包括密碼學、數值模擬、賭博和遊戲開發。隨機數是強健而唯一的加密密鑰的核心,這些密鑰用於保護加密操作免遭破壞。RNG還可以增強人工智慧系統的性能。眾所周知,計算機難以生成真正的隨機數,基於軟體的算法實現的隨機數生成器會產生看上去隨機但確定性的數字序列,這帶來了許多信息安全漏洞。
  • WiFi爆「KRACK」攻擊漏洞,小心防禦不必恐慌!
    但近日有計算機安全專家發現,Wi-Fi設備的安全協議存在漏洞,如今用於保護 Wi-Fi 網絡安全的保護機制已經被黑客攻破,蘋果、微軟、谷歌、Nest 等無線設備紛紛不再安全,就現有的漏洞,黑客可以輕鬆入侵用戶裝置、監聽接入網絡的設備。無論你在家還是在公眾場合,只要連接 Wi-Fi ,極有可能會被入侵。
  • PCS1冠軍競猜活動,今日上線!
    【挑戰二】強者競猜 作為PCS1「冠軍競猜」系列活動的分支挑戰,「強者競猜」活動中,同賽區戰隊被兩兩分組,成功預測某一隊以更高排名完成比賽,即可獲得相應EP獎勵。 PCS1「強者競猜」活動無須額外獲得選票,即可免費參與。玩家成功預測某一支戰隊排名情況,即可獲得2,000EP。
  • Excel生成隨機數的技巧,隨機數發生器,你用過嗎
    Excel獲取隨機數從概率分布中產生隨機樣本,其基本原理是隨機數的概念。隨機數是均勻分布在0和1之間的數。從技術上講,電腦不能產生真正的隨機數,因為它們必須使用一個可預測的算法。但是,設計用於產生一個數列的算法,似乎是隨機的。在 Excel中,我們可以使用函數RAND()在任何一個單元格之中產生隨機數。
  • 《寶可夢》遊戲漏洞:會導致遊戲出現錯誤的神秘254地圖!
    小夥伴們好呀,本篇小二要來介紹的遊戲裡出現的漏洞依然是第一世代裡的漏洞,因為機制不完善的緣故,所以一代的遊戲漏洞是最多的,而本次要介紹的這個漏洞比較特別,這個漏洞可能會產生幾種完全不同的情況,但是它們都是源於玩家進入了一個本來不應該存在於遊戲裡的地圖所產生出來的各種結果,而這個所謂不存在的地圖就被玩家稱之為
  • 騰訊虛擬競猜平臺游離灰色地帶 虛擬貨幣建網絡「賭城」?
    就在各家還在為網際網路彩票解決方案「頭疼」時,騰訊旗下的微信業務卻上線了各種和彩票非常類似虛擬競猜類遊戲。  而「金豆遊戲」則只是騰訊虛擬競猜的一部分。  種類繁多的虛擬競猜遊戲  打開微信的手機客戶端,選擇錢包就會發現有彩票一欄,點擊進入後就會出現「彩票·競猜」的界面,這其中包括了雙色球、大樂透、福彩3D、足球競猜、籃球競猜等,還包括博彩性較高的「釣魚」、「十二生肖」等遊戲。
  • 隨機數
    隨機數,就是隨機生成的數,隨機數最重要的特性是:不可預測。後面的數與前面的數毫無關係,例如:1、200、33、2…..等。
  • 中國足球彩票單場競猜半全場勝平負遊戲規則
    第二條 中國足球彩票單場競猜半全場勝平負遊戲(以下簡稱單場半全場勝平負遊戲) 由國家體育總局體育彩票管理中心發行和組織銷售,由各體育彩票銷售機構在本行政區域內銷售。   第三條 單場半全場勝平負遊戲採用計算機網絡系統發行銷售。   第四條 單場半全場勝平負遊戲實行自願購買,凡購買該彩票者即被視為同意並遵守本規則。
  • NonRake Chain:打造一個公平的遊戲世界
    Open-face Poker 職業牌手、教練 Wesley曾在參加 NonRake 舉辦的活動時坦言,線上撲克平臺的發牌機制,雖然號稱「隨機」,實則由莊家決定,運行原理並不公開。「比起牌手能親眼看到裁判洗牌的線下遊戲,線上撲克可能更容易『出千』。」以此可見,大部分遊戲中發牌機制是系統隨機的,但用戶並不能確認發牌是否是「真隨機」,平臺的被質疑風險和作惡能力是並存的。
  • HPB專欄|HPB硬體隨機數—去中心化應用的安全基石
    隨機性的需求和應用在日常生活中隨處可見,如遊戲、彩票、抽樣、公平分配等。格但斯克大學的Marcin Pawlowski教授指出:「世界上每一個電子設備都需要隨機性,而且非常需要隨機性。在任何需要安全通信的場景,都必須生成和依賴加密密鑰。
  • 以三款經典遊戲為例 分析偽隨機設計原理
    為了增加遊戲的可玩性和豐富內容,開發者多會考慮在遊戲中添加一些隨機要素。但是如何把握這個度確實一件既費神又難度很大的事。一般來說,在電子遊戲等娛樂軟體中,一般使用的手段是「偽隨機數生成器」,那麼這一方法是如何應用到遊戲設計中的呢?下面就以三款經典遊戲為例,分析關於「偽隨機」的設計原理。
  • EOS主網上線,如何在Imtoken裡導入EOS錢包?
    下面導師來手把手教你如何把EOS導入進Imtoken錢包。(其他錢包大同小異,照著做即可)注意:目前版本的Imtoken只支持將已經映射好的EOS導入,並不支持新建錢包。手裡沒有EOS私鑰的同學,請暫時等候。
  • 偽隨機數發生器:你不知道,其實計算機並不能產生隨機數
    在生活中,我們需要用到隨機數的地方很多,例子也很好舉,比如我們買彩票的號碼就是一個隨機數。但是當計算機中需要產生隨機數的時候,絕大多數情況下並不是真的隨機數,我們把它稱為偽隨機數。這些偽隨機數是在一定的數值範圍內,採用一定的算法挑選出了一個數字,作為隨機產生的結果顯示出來,我們只能夠儘量讓這個算法公平一些,讓挑選到範圍內每一個數字的概率儘量做到一樣大,這樣產生的結果會更接近隨機數。
  • 記者親測:兩款手機指紋鎖被小貼膜攻破!
    原以為「固若金湯」的手機指紋鎖,卻被一張普普通通的貼膜給攻破了?為驗證真偽,勞動報記者對部分手機進行了測試,答案讓人大吃一驚,漏洞確實存在!兩款手機指紋鎖被破解記者對一部在用小米6手機進行了測試。業內人士認為,這一重大安全漏洞不僅僅是個別晶片廠商的設計漏洞,而可能是手機指紋識別的行業性問題,保守估計,至少會有上億部手機受到影響,而這可能是手機行業涉及終端數量最大的一次安全事故。此前《IT時報》報導指出,出現問題的機型,背後共同的指紋晶片供應商匯頂科技。匯頂科技不僅是國內最大的指紋識別供應商,也是安卓陣營最大的指紋識別晶片廠商。
  • 人類隨機行為首次成量子物理實驗關鍵因素
    9個實驗室分別是:格裡菲斯大學量子計算和通信技術中心、昆士蘭大學工程量子系統中心、康塞普西翁大學電機系、中國科學技術大學、巴塞隆納光子科學研究所、奧地利量子光學和量子信息研究所、慕尼黑大學、尼斯大學凝聚態物理實驗室、蘇黎世聯邦理工學院量子器件實驗室。
  • 技術乾貨 | 如何選擇上班路線最省時間?從A/B測試數學原理說起
    NO.2達觀數據A/B測試的數學原理什麼是A/B測試經常遇到的問題是,我們應該怎麼評估各不相同的決策,以及應該採用哪些策略來測試我們的產出? A/B測試(A/B testing)就是其中之一的方法。A/B測試近年來很受歡迎,但大部分產品經理也許會簡單地認為它只不過是一種包含兩個組的實驗,其實背後有更為複雜的數學統計理論知識。具體細節當進行A/B測試時,通常會採用兩個(或多個)組:A組和B組。
  • 猜個謎語好昂貴 揭開電視有獎競猜騙人"黑幕"
    時下,國內很多電視臺都播出各種有獎競猜遊戲類節目,因獎項誘人,吸引了眾多消費者參與。但山東省濟南市工商部門調查發現,這種電視有獎競猜遊戲背後卻暗藏「玄機」:名為「直播」實為提前錄播,虛構中獎者誘騙觀眾上當,最終欺騙消費者支付高額話費,成為吞噬話費的又一騙人「黑洞」。
  • 量子密鑰分發技術是什麼原理,英國電信5G網絡將使用QKD技術
    我們同時也對QKD進行理論研究,探究了離散變量協議中不可置信光源的波動問題,以及對連續變量協議進行了安全性分析。如今,我們的研究包括離散變量協議、連續變量協議的理論和實驗研究,以及測量設備無關協議的相關研究。