比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > 波場 > Info

PeckShield 深度還原,鎖死 MakerDAO 中 MKR 代幣的漏洞是啥?_SHIELD

Author:

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

05月10日凌晨,MakerDAO公開了新版合約。Zeppelin和PeckShield也各自獨立完成了對其新合約的審計,確定新版本修復了該漏洞。本文Peckshield將公布該漏洞的細節與詳細攻擊手法。

原文標題:《MakerDAO治理合約升級背后的安全風波》

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

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

PeckShield:supercarnitas.eth被釣魚者攻擊,損失13,351.49枚wNXM:金色財經報道,據PeckShield監測,supercarnitas.eth被釣魚者攻擊,損失13,351.49枚wNXM(約合398,971.37美元),3小時前,地址為0x66b4......40bd的黑客正在將wNXM換成ETH。[2023/9/6 13:21:51]

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

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

ApeCoin社區發起新提案AIP-300擬創建DAO測試組并賦予專屬數字徽章:金色財經報道,據snapshot信息顯示,ApeCoin社區已發起新提案AIP-300,旨在成立一個DAO Beta測試小組,負責測試由ApeCoin DAO貢獻者創建的新技術和產品。根據提案稱,參與測試組的ApeCoin DAO貢獻者將獲得專屬的“Beta測試者徽章(Beta Tester Badge)”,該徽章可以增強Beta測試小組的可信度,并在參與者中培養成就感和社區感。AIP-300的投票截止時間為9月7日,當前贊成票比例達到100%。[2023/9/2 13:13:41]

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

細節

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

BSD DeFi已通過PeckShield派盾安全審計:據官方消息,BSD DeFi已通過PeckShield (派盾)安全審計。此次審計的智能合約包括用戶權益質押Staking合約、鑄幣合約、跨鏈互換合約、最佳算力區間挖礦合約、銷毀機制等多項均全部通過,投資者可至PeckShield (派盾)官網輸入審計編號:134查詢。

PeckShield (派盾)是一家知名的專注于區塊鏈生態的頭部安全公司,基于長期以來深耕在代碼分析、操作系統、 ?數據等安全業務領域,有整套滲透測試、代碼審計、應急響應、鏈上數據監測, AML 反洗錢等安全與數據綜合解決方案。[2021/5/31 22:59:14]

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

聲音 | PeckShield: EOS競猜游戲EOSlots遭隨機數破解:今天晚上21:16~21:21之間,PeckShield安全盾風控平臺DAppShield監測到黑客向EOS競猜類游戲EOSlots發起連續攻擊,并獲利數千EOS,目前游戲已經暫停運營。PeckShield安全人員初步研究發現,此次是因游戲合約隨機數問題被攻破。在此提醒,開發者應在合約上線前做好安全測試,特別注意隨機數生成算法的安全問題,必要時可尋求第三方安全公司協助,幫助其完成合約上線前黑盒測試及基礎安全防御部署。[2019/4/4]

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

注意到這里有兩個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重大漏洞的專家談談,區塊鏈的技術本質是什么?

下一篇:

慢霧創始人余弦:真正的黑客究竟什么樣?

Tags:SHIELDELDSHIDAOShield BSC TokenFarmYieldBitsubishiTraDAO

波場
GCOX交易所CEO Jeffrey Lin:安全合規 交易所長遠發展的必然_加密貨幣

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

1900/1/1 0:00:00
Cobo 發布防火助記板「金鋼匣」,有效保護數字資產不被外部攻擊_OIN

通過金屬助記詞板等物理保存助記詞,是存儲私鑰或助記詞的最安全的方式。任何主流的軟硬件錢包都使用助記詞的方式來保存私鑰.

1900/1/1 0:00:00
區塊鏈將成為金融支付的下一個“爆破點”_PAY

據和訊網消息,跨境業務區塊鏈服務平臺試點在陜西落地,出口應收賬款融資業務在招商銀行西安分行辦理兩單業務.

1900/1/1 0:00:00
英特爾 SGX 技術爆漏洞,對大批加密貨幣項目造成沖擊_DOW

作者:Perry?Wang來源:鏈聞Chainnews據英國金融時報報道,近日,英特爾確認了其處理器芯片中又一個漏洞「Foreshadow」.

1900/1/1 0:00:00
火星一線 | 紐交所Arca申請更改規則,以尋求上市比特幣投資信托_YOU

火星財經APP一線報道,紐約證券交易所Arca已正式向證券交易委員會申請更改規則,允許其上市擬議中的比特幣投資信托.

1900/1/1 0:00:00
監管利好!美國華盛頓州承認區塊鏈記錄具有法律效力和可執行性_INT

據Cointelegraph5月2日報道,美國華盛頓州剛剛通過了一項法案,該法案承認并保護與區塊鏈等分布式賬本相關的電子記錄的法律地位.

1900/1/1 0:00:00
ads