近日,一個名為“FairWin”的資金盤項目尤為引人矚目,受其影響,以太坊網絡Gas消耗量持續處于高飽和的狀態,其單個DApp的Gas利用率就達到了以太坊網絡可承載Gas總量的近半數。
然而,因被曝存在智能合約安全漏洞,FairWin被推上風口浪尖,一時間引來大眾對于類FairWin游戲命運乃至整體以太坊網絡穩定性的擔憂。
概述
北京時間2019年09月27日,PeckShield安全人員在深入分析FairWin智能合約時發現,FairWin智能合約存在一些因管理權限問題引發的致命缺陷,舊合約中的余額可被用戶任意操作并轉移,且在升級后的新合約又存在一個新問題,使得用戶可以制造虛假投注來撈取獎池剩余資金。
FairWin合約問題的由來
劉峰:從源頭治理防范幣圈資金盤亂象 要考慮多個維度進行:6月9日報道,上海對外經貿大學人工智能變革與管理學院區塊鏈技術研究與應用研究中心主任劉峰表示,要從源頭治理防范幣圈資金盤亂象,主要還是要考慮人、財、事三個維度來進行。從人的角度而言,需要對區塊鏈市場參與者進行足夠的風險警示,幫助參與者最大限度進行風險識別和投資決策;從財的角度來看,對于相關非法項目投融資活動,需要監管層進行必要監管、定期報告,實行監管常態化;另從事的角度來看,項目的募資和運營模式需要能夠被識別,一旦分析到有資金盤或傳銷盤模式的,相關監管部門可根據實際情況,第一時間相應處置。(北京商報)[2020/6/9]
經PeckShield旗下DApp數據服務平臺DAppTotal.com最新監測數據顯示,自08月26日以來,以太坊網絡每日Gas消耗量持續處于高度飽和的狀態,即每日Gas消耗量占以太坊網絡可承載Gas總量的90%以上,整體網絡狀況異常擁堵。
動態 | 媒體:資金盤項目GGT崩盤,項目方集體失聯跑路:7月底,GGT項目投資者稱該項目在未經投資者確認的情況下,強制將投資者存入的USDT資產兌換為GGT。有投資者表示在“強制兌換”事件發生的第一時間與項目方微信聯系,但發現已被對方拉黑;維權者前往GGT的辦公地點時被告知該公司在一個月前就已搬走。而此時距GGT項目開盤僅一個多月,這也意味著該項目方或許就沒想打算運營項目,只是想割一波就立馬跑路。(鳳凰網區塊鏈)[2019/8/8]
造成持續擁堵原因為,最近橫空出世了一個名為FairWin的資金盤項目,其每日Gas消耗量占比達到了以太坊網絡可承載總量的近半數
PeckShield安全人員通過分析FairWin智能合約代碼發現,在06月17日,FairWin部署了0x11f5開頭的合約,分析其合約源碼發現,存在以下的調用:
動態 | 趣步APP打著區塊鏈噱頭實則為傳銷 系資金盤:一位區塊鏈從業人士爆料:“趣步軟件并無實體業務,實質就是資金盤。它設計了多重分級獎勵機制,看似走步免費賺錢,但很多人是為了升級獎勵去買糖果,而趣步通過買賣交易手續費分紅給貢獻值高的用戶,都是靠微商用他們的那套模式去推廣,才有了很快的發展,其實泡沫很大的。”據悉,趣步此前打著區塊鏈的噱頭吸引了大量用戶,3月初,趣步關閉了其交易中心,這導致許多積攢大量糖果在手的用戶失去了賣單渠道。5月25日,趣步在APP Store中再次下線,安卓應用市場也無法正常搜索。[2019/5/27]
不難發現,sendFeeToAdmin()這一方法可以被任何用戶調用,一旦調用之后,FairWin合約中的余額就會被轉移至指定的admin地址之中。這一問題被ConsenSys的安全研究人員DanielLuca發現,隨后項目方于07月27日部署了0x01ea開頭的新版合約,對該問題進行了修復。
動態 | TenX事件跟進:Julian Hosp確與資金盤LYONESS項目有關:據推特用戶Andy Neu給Fintelegram的最新爆料信息,Julian Hosp確與資金盤LYONESS項目有關,且關系不一般。目前Julian Hosp對此沒有任何回應。[2018/10/5]
如下圖,通過分析新版合約的代碼發現,sendFeeToAdmin()方法已被設置為private:
這樣的話,上述方法就無法被外部直接調用,上述問題也得到解決,但PeckShield安全人員深入分析發現,問題并沒有那么簡單:由于區塊鏈的不可篡改特性,DApp從舊合約升級到新合約,但用戶之前的投注記錄依然保存于舊合約,項目方需要想辦法將用戶的投注記錄遷移至新合約。
為了解決這個問題,FairWin團隊引入了remedy()接口,用以將用戶的資產直接導入到新合約之中:
趙長鵬:幣安不會搞資金盤的,但得讓這種交易模式快速結束:趙長鵬發布微博稱:幣安不會搞資金盤的,但得把資金盤的水攪渾,讓這種交易模式快速結束。不然太多用戶受傷,對行業發展不好。[2018/6/21]
新合約漏洞原理分析
通過分析remedy()接口,其實現數字資產遷移的大體流程如下:
確保remedy()這一操作當前處于開放狀態;
根據參數還原用戶的投注數據,并保存到新合約的數據庫之中。
PeckShield安全人員通過分析Ethereum鏈上數據發現,remedy()在新合約上線之后一共被調用了503次,一共給500位投資者完成了資產遷移,并且這一調用方法均由FairWin管理員發起。
不過,這一方法能否調用成功,取決于其中的actStu參數是否為0,PeckShield安全人員分析FairWin新合約代碼發現了新的問題:
actStu默認為0,也就是remedy()方法可以調用;
closeAct()方法將actStu設為1,也就是關閉remedy()通道。
問題的關鍵就在于此:
closeAct()方法添加了onlyOwner限制,而remedy()卻沒有加這一限制。
由于上述限制條件存在的不一致性,倘若合約Owner沒有通過closeAct()關閉actStu時,任何用戶都可以通過remedy()接口修改投注數據,進而實現在0投入的情況下,偽造大量資金投入,并通過userWithDraw()將合約余額獎金取出。
值得慶幸的是,截至目前,尚沒有已知攻擊發生,且FairWin合約owner已經將actStu關閉,潛在威脅暫時得以排除。
漏洞后續影響
FairWin短期內依然保持較大的熱度,基于其也產生了諸如EtherHonor、HyperFair等仿盤,不排除這類仿盤也存在潛在問題的可能。
此外,在FairWin合約被曝存在安全問題后,有輿論聲音質疑稱,這可能是“項目方事先預留的后門并從中空手套白狼”,但,PeckShield安全人員通過追蹤新舊合約的交互行為發現,項目方除了將舊合約已投注資金問題向新合約遷移之外,對于用戶投注錯誤的資金也給予了原路返還:
如下,在08月01日出現了一次調用:
0xa584開頭的賬號在區塊高度為8263419中向FairWin舊合約投注了11ETH,
投注的金額被0xcb10在區塊高度8264604轉移到FairWin0x854d管理員賬號之中,
之后在區塊高度為8264613的時候,管理員賬號又將這11ETH轉回給0xa584賬號。
從鏈上行為初步看來,項目方是可以撇開“作惡”的嫌疑了。針對以上漏洞威脅,PeckShield安全人員建議,對于智能合約的敏感操作,應當添加相應的訪問權限限制,對于上述的remedy()操作需要添加onlyOwner限制,以避免被其它人惡意使用。另外,對于用戶的數字資產,應當保持充分的敬畏之心。
對開發者而言,與此同時也暴露出一個問題,在合約升級過程中很可能冒出各種“新”的問題,項目方應第一時間針對問題進行應急響應,并可尋求第三方安全公司幫助其進行上線前潛在漏洞排查。
對用戶而言,即使這樣也并不意味著參與FairWin之后就可以“高枕無憂”了。畢竟,資金盤終歸是資金盤,當你在凝視深淵的時候,深淵也正在凝視著你。
(FairWin合約地址余額變動情況,來源:etherscan.io)
PeckShield安全人員通過分析ETH的地址余額曲線發現,在被曝出現漏洞威脅后,FairWin合約的余額有了明顯的下滑,可見漏洞問題給項目方帶來了一定的信任危機,大量的用戶開始撤出資金。考慮到資金盤的機制,短期余額持續下滑的狀況可能會埋下一個“暴雷”的種子,PeckShield在此提醒廣大用戶應謹慎參與此類資金盤項目,避免因其潛在不穩定性造成不可挽回的損失。
麻省理工學院“數字貨幣計劃”區塊鏈研究高級顧問MichaelJ.Casey就“Block.one支付2400萬美元罰款與美國證券交易委員會達成和解”發表評論稱.
1900/1/1 0:00:00尊敬的HCoin用戶: HCoin將于香港時間2019年10月1日10:00-2019年10月7日18:18開啟RUN幸運轉盤活動.
1900/1/1 0:00:00尊敬的FUBT用戶: 因AGS合約即將升級,FUBT平臺將于2019年10月1日00:00暫時關閉AGS交易和充提服務.
1900/1/1 0:00:00尊敬的用戶: CEO全球站舉辦的AXE上線活動現已結束。活動一:AXE交易排位賽在活動期間內交易AXE,根據交易額排名瓜分1000枚CEO獎池,第一至十名:按照交易量權重瓜分500CEO,排名如.
1900/1/1 0:00:00親愛的大幣網(Dcoin)用戶:SGC將于10月15日上線大幣網(Dcoin),具體時間安排如下.
1900/1/1 0:00:00尊敬的用戶: DBT首發上線,將聯合BiKi平臺舉辦“交易DBT瓜分萬元好禮”的活動,具體詳情如下:活動時間:10月10日15:00-10月15日15:00 活動規則: 1、活動期間.
1900/1/1 0:00:00