05月10日凌晨,MakerDAO公開了新版合約。Zeppelin和PeckShield也各自獨立完成了對其新合約的審計,確定新版本修復了該漏洞。本文Peckshield將公布該漏洞的細節與詳細攻擊手法。
原文標題:《MakerDAO治理合約升級背后的安全風波》
北京時間2019年05月07日,區塊鏈安全公司Zeppelin對以太坊上的DeFi明星項目MakerDAO發出安全預警,宣稱其治理合約存在安全漏洞,希望已鎖倉參與投票的用戶盡快解鎖MKR提并出。MakerDAO的開發者Maker公司亦確認了漏洞存在,并上線了新的治理合約,并宣稱漏洞已修復。
該安全威脅曝出后,PeckShield全程追蹤了MKR代幣的轉移情況,并多次向社區發出預警,呼吁MKR代幣持有者立即轉移舊合約的MKR代幣。截止目前,絕大多數的MKR代幣已經完成了轉移,舊治理合約中尚有2,463個MKR代幣待轉移。
黃立成發布AIP提案想法,擬推動ApeCoin DAO回購1000枚BAYC和2000枚MAYC:7月7日消息,黃立成在ApeCoin社區論壇上發起新提案AIP想法,該提案擬回購ApeCoin生態NFT,包括1000枚BAYC、2000枚MAYC、以及Doggies、CryptoPunks和其他NFT系列,并將它們發送到世界各地的博物館,以此推動NFT成為數字藝術運動的重要組成部分,并鞏固NFT在藝術史上的地位。[2023/7/7 22:23:14]
05月07日當天,經PeckShield獨立研究發現,確認了該漏洞的存在,具體而言:由于該治理合約實現的投票機制存在某種缺陷,允許投票給尚不存在的slate。等用戶投票后,攻擊者可以惡意調用free()退出,達到減掉有效提案的合法票數,并同時鎖死投票人的MKR代幣。
ApeCoin社區發起AIP-212提案,擬推動Spotify電商支持APE代幣顯示:金色財經報道,ApeCoin社區發起AIP-212提案,擬推動Spotify等電子商務平臺支持APE代幣顯示。如果該提案獲得通過,ApeCoin社區將會構建一個定制插件以將APE集成到 Shopify 產品頁面上顯示的貨幣中,該插件將免費提供給零售商,并將增強其平臺的功能。據悉,該提案目前已經啟動投票并將于4月6日上午結束,目前支持率達到55.54%。[2023/4/6 13:47:22]
次日05月08日,PeckShield緊急和Maker公司同步了漏洞細節,05月10日凌晨,MakerDAO公開了新版合約。Zeppelin和PeckShield也各自獨立完成了對其新合約的審計,確定新版本修復了該漏洞。
在此我們公布漏洞細節與攻擊手法,也希望有引用此第三方庫合約的其它DApp能盡快修復。
聲音 | PeckShield預警: 今晚ETC公鏈算力暴漲 出塊獎勵不一致導致主鏈極不穩定:今天晚間,PeckShield態勢感知平臺監測到ETC公鏈算力出現大幅波動。初步原因為,ETC出塊獎勵不一致引發劇烈震蕩,PeckShield安全人員還在持續跟進分析。在ETC公鏈穩定之前存在未知安全風險,PeckShield在此強烈建議相關數字貨幣交易所和用戶暫停充提幣業務,同時保持警惕狀態。[2019/1/14]
細節
在MakerDAO的設計里,用戶是可以通過投票來參與其治理機制,詳情可參照DAO的FAQ。
以下是關于itchyDAO的細節,用戶可以通過lock/free來將手上的MKR鎖定并投票或是取消投票:
在lock鎖定MKR之后,可以對一個或多個提案(address數組)進行投票:
聲音 | PeckShield安全公司: EOS競猜游戲FFgame遭黑客攻擊 損失1,331個EOS:據PeckShield態勢感知平臺數據顯示:11月8日凌晨1點,EOS公鏈上又一款競猜類游戲FFgame遭遇了黑客攻擊,黑客賬戶jk2uslllkjfd向FFgame游戲合約 (eoswallet415)發起多達304次攻擊,共計獲利1,331.2922個EOS,隨后于1點36分將1,330個EOS轉移到火幣交易所。
PeckShield安全人員跟蹤發現,該黑客賬戶jk2uslllkjfd為PeckShield的重點監控黑名單賬戶,其創建于10月30日,曾于11月4日凌晨3點,攻擊過另一款EOS競猜類游戲EOSDice (eosbocai2222), 共獲利2,545.1135個EOS。這兩次攻擊都是通過寫合約代碼計算出游戲中獎規律實施攻擊,值得注意的是,該黑客習慣于凌晨實施攻擊,且每次攻擊完都會立刻修改攻擊合約,發送“hi”的垃圾數據用以掩飾攻擊信息。另外,攻擊所得EOS都是立刻轉移到火幣交易所。目前被攻擊 FFgame(eoswallet415)賬號余額里還有81.0105個EOS,并且攻擊后合約沒有更新,漏洞還未被修復。[2018/11/8]
注意到這里有兩個vote函數,兩者的傳參不一樣,而vote(addressyays)最終亦會調用vote(bytes32slate),其大致邏輯如下圖所示:
簡單來說,兩個vote殊途同歸,最后調用addWeight將鎖住的票投入對應提案:
可惜的是,由于合約設計上失誤,讓攻擊者有機會透過一系列動作,來惡意操控投票結果,甚致讓鎖定的MKR無法取出。
這里我們假設有一個從未投過票的黑客打算開始攻擊:
1、調用lock()鎖倉MKR,此時deposits會存入鎖住的額度。
2、此時黑客可以線下預先算好要攻擊的提案并預先計算好哈希值,拿來做為步驟3的傳參,因為slate其實只是address數組的sha3。
這里要注意挑選的攻擊目標組合必須還不存在于slates中(否則攻擊便會失敗),黑客亦可以自己提出一個新提案來加入組合計算,如此便可以確定這個組合必定不存在。
3、調用vote(bytes32slate),因為slate其實只是address數組的sha3,黑客可以線下預先算好要攻擊的提案后傳入。
這時因為votes還未賦值,所以subWeight()會直接返回。接下來黑客傳入的sha3(slate)會存入votes,之后調用addWeight()。從上方的代碼我們可以看到,addWeight()是透過slates取得提案數組,此時slates獲取到的一樣是未賦值的初始數組,所以for循環不會執行
4、調用etch()將目標提案數組傳入。注意etch()與兩個vote()函數都是public,所以外部可以隨意調用。這時slates就會存入對應的提案數組。
5、調用free()解除鎖倉。這時會分成以下兩步:
deposits=sub(deposits,wad),解鎖黑客在1.的鎖倉subWeight(wad,votes)從對應提案中扣掉黑客的票數,然而從頭到尾其實攻擊者都沒有真正為它們投過票。
從上面的分析我們了解,黑客能透過這種攻擊造成以下可能影響:
一、惡意操控投票結果二、因為黑客預先扣掉部份票數,導致真正的投票者有可能無法解除鎖倉
時間軸
時間事件2019.05.07PeckShield復查并確認了漏洞存在2019.05.08PeckShield與Maker基金會討論并確認了漏洞細節2019.05.09Maker基金會公布新版DSChief合約源碼,PeckShield披露了漏洞相關細則來源鏈接:mp.weixin.qq.com
本文來源于非小號媒體平臺:
PeckShield
現已在非小號資訊平臺發布1篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/3626575.html
MKR漏洞風險安全
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
聽剛發現EOS重大漏洞的專家談談,區塊鏈的技術本質是什么?
下一篇:
慢霧創始人余弦:真正的黑客究竟什么樣?
今日共有5位幣圈分析師對BTC明日走勢進行了判斷,其中2位看漲2位看平1位看跌。1.看漲@幣皇帝:大盤三角形形態即將變盤向上,緊握手中籌碼.
1900/1/1 0:00:00近日,著名科技網站BleepingComputer公布了監測到的黑客針對加密貨幣的攻擊行為。報告稱,黑客利用名為「剪貼板劫持者」的惡意軟件,試圖對230個萬比特幣錢包發起攻擊,通過替換錢包地址來.
1900/1/1 0:00:00或許你會好奇,黑市或是非法活動所使用的比特幣都到了哪去,以下整理了過去幾項案例,試圖找到這個答案.
1900/1/1 0:00:00原文閱讀時長4分鐘:https://hackernoon.com/how-blockchain-will-make-electronic-voting-more-secure-fba15d752.
1900/1/1 0:00:00近日,360公司Vulcan團隊發現了區塊鏈平臺EOS的一系列高危安全漏洞。經驗證,其中部分漏洞可以在EOS節點上遠程執行任意代碼,即可以通過遠程攻擊,直接控制和接管EOS上運行的所有節點.
1900/1/1 0:00:00總部位于紐約的SatisGroupLLC成立于去年,自稱為“首席ICO咨詢公司”。其研究人員SherwinDowlat和MichaelHodapp發布了一份名為《ICO質量:開發與貿易》的調查報.
1900/1/1 0:00:00