買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > 萊特幣 > Info

MAKE:MakerDAO治理合約升級背后的安全風波_MKR

Author:

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

北京時間2019年05月07日,區塊鏈安全公司Zeppelin對以太坊上的DeFi明星項目MakerDAO發出安全預警,宣稱其治理合約存在安全漏洞,希望已鎖倉參與投票的用戶盡快解鎖MKR提并出。MakerDAO的開發者Maker公司亦確認了漏洞存在,并上線了新的治理合約,并宣稱漏洞已修復。

該安全威脅曝出后,PeckShield全程追蹤了MKR代幣的轉移情況,并多次向社區發出預警,呼吁MKR代幣持有者立即轉移舊合約的MKR代幣。截止目前,絕大多數的MKR代幣已經完成了轉移,舊治理合約中尚有2,463個MKR代幣待轉移。

05月07日當天,經PeckShield獨立研究發現,確認了該漏洞的存在,具體而言:由于該治理合約實現的投票機制存在某種缺陷,允許投票給尚不存在的slate。等用戶投票后,攻擊者可以惡意調用free()退出,達到減掉有效提案的合法票數,并同時鎖死投票人的MKR代幣。

MakerDAO創始人Rune Christensen過去7天已將63萬枚LDO兌換成MKR:4月17日消息,據Spot On Chain在社交媒體披露鏈上數據顯示,過去7天,MakerDAO創始人Rune Christensen已將總計63萬枚LDO兌換成1,865枚MKR(價值約合145萬美元),絕大多數交易發生在4月9日至4月11日期間,即以太坊上海升級之前。[2023/4/17 14:08:57]

次日05月08日,PeckShield緊急和Maker公司同步了漏洞細節,05月10日凌晨,MakerDAO公開了新版合約。Zeppelin和PeckShield也各自獨立完成了對其新合約的審計,確定新版本修復了該漏洞。

Maker將進行第一次MKR回購:MakerDAO微博表示,Maker系統盈余已達188萬美金,即將迎來第一次MKR回購。[2020/10/8]

在此我們公布漏洞細節與攻擊手法,也希望有引用此第三方庫合約的其它DApp能盡快修復。

細節

在MakerDAO的設計里,用戶是可以通過投票來參與其治理機制,詳情可參照DAO的FAQ。

以下是關于itchyDAO的細節,用戶可以通過lock/free來將手上的MKR鎖定并投票或是取消投票:

在lock鎖定MKR之后,可以對一個或多個提案(address數組)進行投票:

注意到這里有兩個vote函數,兩者的傳參不一樣,而vote(addressyays)最終亦會調用vote(bytes32slate),其大致邏輯如下圖所示:

動態 | 幣安研究院:所有DeFi產品鎖定了大約5億美元 MakerDAO占近六成:幣安研究院在推特上表示,自過去一年以來,Decentralized Finance(DeFi)已經穩步得到采用。所有DeFi產品鎖定了大約5億美元。其中MakerDAO仍然占比最大,其鎖定價值高達2.901億美元。[2019/7/25]

簡單來說,兩個vote殊途同歸,最后調用addWeight將鎖住的票投入對應提案:

可惜的是,由于合約設計上失誤,讓攻擊者有機會透過一系列動作,來惡意操控投票結果,甚致讓鎖定的MKR無法取出。

這里我們假設有一個從未投過票的黑客打算開始攻擊:

動態 | MakerDAO中出現近100萬美元貸款:據coindesk報道,MakerDAO系統中第五大貸款頭寸今日增發了100萬枚新的DAI代幣,高達99.62萬美元貸款的交易費僅為73美分。此前在6月下旬,MakerDAO系統中的第七大抵押債券頭寸(CDP)發行了100萬新的DAI代幣。 據報道,CDP基本上是程序性貸款,用戶鎖定持有的ETH以從MakerDAO系統中提取后續的DAI。維持該系統的基金會表示,最近ETH價格的上漲使得大額貸款變得更加普遍。[2019/7/10]

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.07

PeckShield復查并確認了漏洞存在

2019.05.08

PeckShield與Maker基金會討論并確認了漏洞細節

2019.05.09

Maker基金會公布新版DSChief合約源碼,PeckShield披露了漏洞相關細則

*文章為作者獨立觀點,不代表BSCEC立場

轉載此文章須經作者同意,并請附上出處及本頁鏈接。原文鏈接https://mp.weixin.qq.com/s?__biz=MzU3MTU2NTU1MA==

Tags:MakerMAKEMKRDAORainmaker Gamesmakerdao官網AMKR幣ADAO幣

萊特幣
區塊鏈:報告:今年第二季度加密貨幣挖礦惡意軟件攻擊量增長了 86%_區塊鏈域名選什么后綴好

據CCN9月26日報道,截止到2018年上半年,從去年第四季度開始涌現的加密貨幣挖礦惡意軟件的攻擊量在持續增長.

1900/1/1 0:00:00
CHE:從ICO到STO 中間隔了一個IEO_STORY

金色財經比特幣5月21日訊派對時間已到,所有邀請函都分發出去了,音樂開始響起,冰箱塞滿食物和飲料,浴缸里浸入了冰塊,所有準備工作就緒!但是:客人還沒到.

1900/1/1 0:00:00
RDR:GCOX交易所CEO Jeffrey Lin:安全合規 交易所長遠發展的必然_區塊鏈域名還有市場前景嗎

2019年,加密貨幣交易所行業風云變幻。經歷了2018年下半年漫長的熊市,終于出現新的熱點并激蕩著整個市場,直至比特幣放量大漲至8300美元而令人激動.

1900/1/1 0:00:00
ETH:以太坊將迎過山車行情?這里有兩個極端猜想_btc幣價格

然而,價格回踩后的以太坊似乎被“卡”住了,一直在250美元上下震蕩,有支撐卻無破位。對于以太坊未來走勢,市場給出許多猜想,但近日兩則背道而馳的分析或又增添了投資者的迷惘情緒.

1900/1/1 0:00:00
ION:Notice on Bihuex ecological fund burn 720 million uncirculated BHEC_ING

DearBihuExusers,BihuexecologicalfundheldameetinginSingaporeonMay21.

1900/1/1 0:00:00
ATM:“存活”不到一周,北京比特幣取款機已撤離_加密貨幣指什么

近日,北京云集隱居四合院出現了一臺比特幣自助購買機,引起業內關注。5月20日,Odaily星球日報實地探訪后發現,上市不到一周,該機器竟突然撤離.

1900/1/1 0:00:00
ads