北京時間9月24日深夜11點32分,Fomo3D第二輪最終大獎由地址0x18a0獲得,獎金為3,264.668Ether。安比實驗室分析發現,此輪游戲獲獎技巧與第一輪如出一轍,均為黑客「阻塞交易」攻擊。
與此前第一輪游戲相比,這輪游戲持續33天,無論是從入場資金、持續時長,亦或是最終大獎獎金額來說,相比上輪均大幅縮水。
回首兩月之前,Fomo3D第一輪游戲入場資金一度超過40,000Ether,第一輪游戲最終大獎獎金額超過10,000Ether,游戲參與者眾多,類似的資金盤游戲也如雨后春筍般相繼冒出,一時間好不熱鬧。
然而,自9月以來,隨著市場整體的大蕭條,類Fomo3D游戲也幾近沒落。以Fomo3D和LastWinner為代表的幾款較活躍的游戲,熱度明顯下降。而大部分的同類合約由于無人開啟下輪游戲,都處在擱置狀態。
因而到如今,Fomo3D第二輪大獎已經開出,黑客獲獎幾無懸念,游戲的熱度已不可同日而語。
安比實驗室針對這一變化展開分析,分析結果表明,不久前連續揭露的游戲空投機制漏洞和「阻塞交易」攻擊事件,盡管在短時間內將該類游戲的關注度推上了新的高度,但本質上也是導致游戲沒落的主要原因。
繁華vs涼涼?曾經多火爆,如今就多冷清
游戲熱度全景
7月20日,資金盤游戲Fomo3D在國內迅速傳播開來,引起了廣泛的關注。隨后,一系列類似Fomo3D的游戲陸續上線。8月6日,另一款類Fomo3D游戲LastWinner部署上線。在其團隊的大力推廣下,LastWinner迅速火爆起來,甚至一度造成以太坊擁堵和Gas費用暴漲。但在游戲第一輪結束后,各個游戲的熱度都開始持續下降。
美聯儲FOMC聲明:6月開始縮表,三個月內逐步提高縮表上限至每月950億美元:5月5日消息,美聯儲FOMC聲明顯示,6月1日開始以每月475億美元的步伐縮表;三個月內逐步提高縮表上限至每月950億美元,即每個月縮減600億美元美國國債和350億美元抵押貸款支持證券(MBS)。預計“繼續”加息是合適的,“高度重視”通脹風險;將超額準備金率由0.4%上調至0.9%;將隔夜回購利率由0.5%上調至1%。(財聯社)[2022/5/5 2:50:21]
圖一:Fomo3D玩家參與度與入場資金狀況
上圖展示了「Fomo3D玩家參與度與入場資金狀況」。紅色代表調用合約參與游戲的人次,藍色則代表進入游戲合約的資金量。圖左側出現數據曲線最高峰,對應時間分別是7月20日和7月21日。這兩天恰好大量媒體瘋狂報道Fomo3D這一現象級游戲。當時眾多玩家跟風入場,游戲合約的參與次數和入場資金均達到了最高峰,入場資金量超過40,000Ether,而參與次數最高超過18,000次。而曲線的最高點則對應著Fomo3D游戲第一輪最高峰。
高峰過后,Fomo3D游戲熱度驟降,于8月22日前后結束第一輪,并隨即進入第二輪,但游戲熱度已然無法恢復。
圖二:LastWinner玩家參與度與入場資金狀況
類似地,上圖展示了「LastWinner玩家參與度與入場資金狀況」。LastWinner針對Fomo3D游戲做了部分修改,降低了游戲時間上限,因此每輪結束得更快。第一輪高峰出現在8月8日,此后有多個局部波峰,代表著不同輪次的開啟,但顯然調用次數和入場資金一輪不如一輪。
Fompound將于2月26日10:00上線火幣生態鏈Heco:據官方消息,IPFS領域的去中心化金融聚合器Fompound將于2月26日10:00正式上線Heco(火幣生態鏈),并開啟流動性挖礦。屆時,Fompound將于2月25日下午18:00停止ETH合約運行。
Fompound是首個基于IPFS的去中心化金融聚合器項目,合約代碼已經通過安全機構的審計,Fompound使用Defi質押加流動性挖礦的方式產生平臺權益及治理代幣Fomp,并通過Fom-a至Fom-J分期分批的投資,對Fomp產生聚合效益,從而提升Fompound的項目價值。[2021/2/24 17:48:44]
獎池資金
下圖為Fomo3D合約中Ether余額的變化情況。Fomo3D游戲在迅速火爆后,合約內Ether余額一度上升到峰值,第一輪游戲結束后,合約中的余額立即呈斷崖式下跌,至今還處在緩慢減少的過程。
圖三:Fomo3D合約Ether余額變化狀況
無獨有偶,LastWinner合約中的余額也曾在短時間內迅速增長,而后隨著幾輪游戲的迭代而逐步下降,至今所剩的余額更是不足5,000Ether。
圖四:LastWinner合約Ether余額變化狀況
最終大獎
8月17日,安比實驗室與Anchain.ai團隊聯合揭露了黑客團隊**BAPT-LW20?**利用空投機制漏洞,攫取大量獎金的攻擊事件。同一天,LastWinner游戲第一輪結束,最終大獎的獲得者也是**BAPT-LW20?**團隊。據統計,該黑客團隊從LastWinner首輪游戲中獲利累計達12,948Ether。
Synthetix Fomalhaut升級已部署完畢:Synthetix官方剛剛發推宣布,Fomalhaut升級已部署完畢。此前消息,本次升級包含的提案有:SIP-85(以太坊抵押品V3.0 降低溢價工具)、SIP-86(交易所匯率匯總器V3,提供新數據類型,允許消耗Gas價格數據)、SIP-87(遷移iETH獎勵協議)。[2020/9/24]
在LastWinner已完成的前9輪游戲中,黑客團伙持有的賬戶0x5167共奪得4次最終大獎。
仔細觀察每輪游戲的最終大獎金額和持續時間,不難發現,獎金數量衰減非常快,而每輪也結束得越來越快。這與上面的游戲參與數據圖十分吻合。
類似地,Fomo3D游戲首輪和第二輪大獎分別于8月22日和9月24日開出,獎金額分別為10,469.66和3,264.66Ether。除了獎金數額銳減之外,安比實驗室還發現大獎獲得者均使用了相同的攻擊技巧。
反思機制漏洞是游戲沒落的主因
除了市場萎靡以及玩家熱情降低,安比實驗室認為「阻塞交易」攻擊和空投漏洞攻擊打破了合約機制設計中的關鍵部分。這才是使游戲變冷的主要原因。
圖五:Fomo3D游戲合約被攻擊狀況
上圖是「Fomo3D游戲合約被攻擊狀況」,第一輪游戲高峰前后以及第二輪開始后,有黑客瘋狂地利用空投漏洞進行攻擊,攫取高額收益。而在第一輪臨近結束,以及第二輪倒計時快結束之際,有黑客瘋狂嘗試「阻塞交易」攻擊,目標在于奪取巨額的最終大獎。
動態 | 網傳Fomo 3D遭受黑客攻擊 運營停擺:今日晚間多個韓國社區爆出“Fomo 3D被黑客攻擊之后停止運營了”傳言,據DappRadar上以太坊Dapp數據顯示,其中Fomo 3D在24小時內訪問量減少21.95%,24小時流量減少38.32%。[2018/7/31]
北京時間9月24日深夜11點32分,Fomo3D第二輪最終大獎由地址0x18a0451Ea56Fd4FF58f59837e9EC30f346ffDCa5獲得,獎金達3,264.668Ether。安比實驗室發現Fomo3D第二輪大獎獲得者0x18a0創建了攻擊合約0x705203fc06027379681AEf47c08fe679bc4A58e1,并發起大量攻擊交易,連續堵塞10余個區塊,時間長達2分鐘以上。這一系列攻擊,在上圖的游戲被攻擊監控數據中展露無疑。
圖六:LastWinner游戲合約被攻擊狀況
上圖是「LastWinner游戲合約被攻擊狀況」,與Fomo3D類似,黑客攻擊規模在游戲熱度高時十分巨大。
「阻塞交易」攻擊
Fomo3D游戲巧妙地設計了一個環節,最后一個參與游戲的人將獲得獎池中一半的Ether做為獎勵。開發者想通過此設計保持大量的玩家陸續進場,任何人都有可能成為那個「幸運兒」。但是在黑客利用「阻塞交易」攻擊來加快游戲結束成為受益人后,這個吸引玩家的設計被打破了。因此后進場的普通玩家只能成為被割的韭菜,自然很難再吸引玩家參與。
動態 | 網傳“Fomo 3D遭受黑客攻擊” 慢霧安全團隊判斷為DDoS攻擊:網傳“Fomo 3D遭受黑客攻擊”,慢霧安全團隊判斷為Fomo 3D網站遭受了DDoS攻擊,但以太坊上智能合約不受影響,因為以太坊網絡Gas值尚在正常范圍內。目前,Fomo 3D網站使用的安全管理網站Cloudflare已開啟高防驗證,用戶需等待5秒才能訪問網站。據悉,5秒等待時間幾乎是Cloudflare的最高級DDoS防御策略。[2018/7/31]
「空投漏洞」攻擊
除了最后的大獎,游戲中還設計了空投獎勵機制,玩家有一定的概率獲得空投獎勵,這也是吸引玩家參與的一個重要原因。但是由于空投機制存在隨機數漏洞,黑客可以通過一定的技巧持續高概率地拿走獎勵,而普通玩家幾乎不可能成功。這樣空投獎勵的公平性也同樣受到了挑戰。
對策與展望DApp還有很長的路要走
這樣一類紅極一時的爆款游戲,必定會成為DApp游戲發展史上的一個重要里程碑。但是過快的蕭條速度也給我們帶來了很多的反思。對于類Fomo3D游戲,甚至是所有的DApp游戲,還有很長的路要走。要及時從黑客攻擊的案例中吸取教訓,并做好防御措施。
「空投漏洞」攻擊是類Fomo3D游戲遭受攻擊次數最多的一個破綻。黑客可低成本持續地攫取獎池中的資金。
一方面,Fomo3D游戲的空投機制利用隨機數來控制中獎概率,但是由于隨機數的來源都是區塊或者交易中特定的一些公開參數,如交易發起者地址、區塊時間戳、區塊難度等,所有以太坊智能合約都可以很容易的預測隨機數。因此在涉及到隨機數的場景下,安比實驗室建議開發者應尤為慎重,或通過一定的手段來增加隨機源的預測難度。如開發者可通過使用多次提交再披露、或延遲若干個區塊開獎的方法來規避隨機數被預測的風險。
另一方面,為了防止合約自動化攻擊,Fomo3D游戲合約對調用者是普通賬戶還是合約賬戶做了檢測,但由于檢測方式存在漏洞,黑客可以利用一些技巧繞開檢測。因此項目方在對參與DApp游戲的玩家的身份做檢測的時候,也應采用更加可靠的方式。例如,通過判斷該筆交易最初的發起者與當前合約的調用者是否為同一地址。
前文提到的「阻塞交易」攻擊,也是類Fomo3D游戲面臨的另一重大挑戰。
黑客通過高額手續費吸引礦工優先打包,并利用合約自動判斷游戲進行狀態,以之作為是否采取攻擊的依據。黑客最終能夠以較低成本堵塞區塊,每個區塊中僅打包很少的交易,使得游戲快速結束,并提高自己獲得最終大獎的概率。
其實這一問題不止會威脅類Fomo3D游戲。所有類似機制,即需要玩家搶在某個時間范圍內完成某種競爭操作的智能合約,都會受此威脅。要杜絕這一問題,安比實驗室建議游戲開發者,從游戲機制入手,切斷游戲最終勝利和倒計時結束之間的必然聯系,從而使黑客的攻擊獲利概率和攻擊意愿都降到最低。
類Fomo3D游戲中黑客利用了以太坊共識協議的特點,找到游戲機制的漏洞進而發起攻擊。這也提醒我們,DApp應用中的機制設計是一項極其復雜的工程,除了技術本身,還涉及到平臺外部環境,博弈論等方面問題,這也是容易被黑客攻擊的環節。因此,DApp項目在機制設計過程中應尤為慎重。
正如安比實驗室創始人郭宇所說:「新世界有生命,就有捕食者。有交易者,就有黑客。區塊鏈上的應用在進化,攻擊者也同樣」。在技術和財富的交匯處,黑客永遠保持著最靈敏的嗅覺。黑客的一次次攻擊,給了我們很多的反思和改進的機會,這也是應用不斷進化的催化劑。
參考文獻
PwningFomo3DRevealed:Iterative,Pre-CalculatedContractCreationForAirdropPrizes!,https://peckshield.com/2018/07/24/fomo3d/智能合約史上最大規模攻擊手法曝光,盤點黑客團伙作案細節https://zhuanlan.zhihu.com/p/42318584Fomo3D千萬大獎獲得者「特殊攻擊技巧」最全揭露https://zhuanlan.zhihu.com/p/42742004PéterSzilágyi提出的空投漏洞利用POC,https://www.reddit.com/r/ethereum/comments/916xni/how_to_pwn_fomo3d_a_beginners_guide/,2018/07/23區塊律動:8萬筆交易「封死」以太坊網絡,只為搶奪Fomo3D大獎?https://mp.weixin.qq.com/s/5nrgj8sIZ0SlXebG5sWVPwPredictingRandomNumbersinEthereumSmartContractshttps://blog.positive.com/predicting-random-numbers-in-ethereum-smart-contracts-e5358c6b8620
來源鏈接:mp.weixin.qq.com
本文來源于非小號媒體平臺:
安比實驗室SECBIT
現已在非小號資訊平臺發布1篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/3627041.html
游戲鏈游漏洞風險安全
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
比特幣驚現重大漏洞后,代碼審查工作將更加嚴苛
由知道創宇出品的「KCon黑客大會2018」將于8月24日在京召開,KCon是以「追求干貨、有趣」著稱的黑客大會;是中國網絡安全圈最年輕、最具活力與影響力的前沿網絡安全攻防技術交流平臺.
1900/1/1 0:00:00馬耳他由于實施了一系列加密貨幣和區塊鏈友好的政策,獲得了「區塊鏈島」的美譽。現在他們正在采取更多措施,希望通過加大監管技術投入,更好地保護區塊鏈行業.
1900/1/1 0:00:00由于數字貨幣市場不斷下跌,許多散戶投資者開始對這個蓬勃發展的行業失去興趣。盡管如此,加密貨幣業務仍在不斷發展和擴展。這主要適用于專業的交易平臺.
1900/1/1 0:00:00Asof8:00UTC,WednesdayMay22nd,Bitfinexwillremovehighfrequency/sizefiatwithdrawalfees.Standardfiatw.
1900/1/1 0:00:00比特幣在8000美元附近盤整的第5天。到今天為止,還是按照上回的判斷走。由于這幾天震蕩區間在1000美元,屬于寬幅震蕩,振幅還沒有縮窄,也就是說還沒有到選擇方向的時候,從K線上看也不排除構建一個.
1900/1/1 0:00:00作者按:“工業大麻”“區塊鏈”的組合,是傳統資本市場與區塊鏈圈共同關注的熱點現象之一。對于市場熱點,投資者如果抱有十分的投資熱情,至少需要對應具備三分的風險意識.
1900/1/1 0:00:00