ZenGo?是一個使用多方計算技術的安全?Web3?錢包。
最近,CertiK?的?SkyFall?團隊對眾多移動錢包進行了徹底的審計和研究,發現?ZenGo?的?MPC?解決方案提供了比普通移動錢包更強大的安全防御措施——ZenGo?的錢包用戶,尤其是那些高價值的錢包用戶可以防御來自高級攻擊者的直接攻擊:例如利用零日漏洞或高級惡意軟件在用戶設備上獲得?root?權限。
該威脅是最新出現且僅被?CertiK?團隊發現,因此?MPC?錢包開發者請務必注意攻擊細節!
防御特權攻擊者是具有挑戰性的。我們在報告結果中提出了一個新的攻擊方式,與針對?ZenGo?中的?MPC?方法攻擊向量。于是我們立即向?ZenGo?報告了這個安全問題,同時?ZenGo?也迅速做出了回應并修復了該問題。
本文我們將深入探討該發現的技術細節,并分享我們是如何與?ZenGo?合作以提高?MPC?錢包的整體安全性的。
基于我們對?ZenGo?安全設計的徹底審查和他們對問題的專業回應,CertiK?認為?ZenGo?可以被稱為目前市場上安全度較高的錢包解決方案。
如下圖所示,該錢包并不是由一個傳統的私鑰來控制簽署交易,而是由多個私鑰分片參與交易簽署過程,并產生一個最終簽名從而進行驗證。
CertiK:自上周五以來記錄了22起事件,造成約740萬美元的損失:金色財經報道,據CertiK官方推特發布消息稱,自上周五以來,CertiK記錄了22起事件,造成約740萬美元的損失。到目前為止,共發生17起Discord黑客攻擊事件、3 起網絡釣魚攻擊事件和4起Twitter黑客攻擊事件。[2023/8/12 16:21:31]
ZenGoMPC?設計和安全保證
通過本次研究,我們已認識到與?MPC?方法相關的挑戰和潛在的安全風險對于?Web3?資產保護的重要性。于是我們想要通過探索和解決這些挑戰來更好地保護Web3用戶。
?因此我們可以想一下這個問題:與傳統的加密錢包相比,為什么?MPC?錢包可以提供更高的安全性?它又是如何做到的?
在評估了不同?Web3?錢包的設計后,我們研究了?MPC?的?Web3?錢包——我們評估了市場上最受推崇的?MPC?錢包之一,同時也是頭部的自我托管?MPC?錢包——ZenGo。
本次評估我們采用了與之前研究概述中相同的威脅模型:“如果你的設備被植入了惡意軟件,那么該錢包還能保護你的資產嗎?”
有了這些安全功能,攻擊者就不能再從內存或存儲文件中竊取用戶的私鑰并控制?ZenGo?用戶的資產。ZenGo?還利用?TEE?來保護服務器和客戶端之間的互動不能夠被篡改。這也意味著“中間人”和"APP?劫持"攻擊被有效阻止和防御了。
Balancer社區發起關于將BAL分配給AAVE/WETH質押者的投票:據官方推特消息,Balancer社區正發起關于將BAL分配給AAVE/WETH質押者的投票。鑒于安全模塊的重要性,Aave需要更多時間將其池遷移到Balancer v2。為了保持池在v2流動性挖礦開始之前每周收到的12,500 BAL的分配,需要授權將BAL分配到v1上的80/20 AAVE/WETH池。[2021/6/19 23:48:54]
我們的審計證實,ZenGo?確實有一個安全的設計和實現可以抵御這些攻擊,并且這已是我們所接觸過的被審計錢包中具備最高安全水準的設計。
ZenGo?的安全設計和實現成功地防御了包括來自特權的攻擊及上述攻擊。然而處理所有類型的特權攻擊也并不是易事,特別是考慮到攻擊者可以讀取任意內存。
通過審計整個錢包,我們能夠發現?ZenGo?中的一個實現問題那就是:該錢包允許我們作為特權攻擊者從而繞過某些保護。
不過在討論細節之前,讓我們先回顧一下?ZenGo?錢包的安全機制。
ZenGo?錢包的安全做法
通過本次研究,我們已認識到與?MPC?方法相關的挑戰和潛在的安全風險對于?Web3?資產保護的重要性。于是我們想要通過探索和解決這些挑戰來更好地保護Web3用戶。
HyperGraph 挖礦和通證合約通過CertiK審計:據官方消息,HyperGraph 挖礦和通證合約日前通過了CertiK的審計,CertiK 對HyperGraph合約進行了審計,并就相關邏輯與開發團隊進行了反復討論和確認溝通。CertiK的報告也就某些邏輯的開發提出了很好的意見和改進建議,這對于團隊后續的智能合約開發很有幫助。[2021/5/26 22:47:04]
因此我們可以想一下這個問題:與傳統的加密錢包相比,為什么?MPC?錢包可以提供更高的安全性?它又是如何做到的?
一個經典的?Web3?錢包只需要一個私鑰。然而用戶總是有一定可能會透露私鑰或助記詞的。因此他們可能會丟失私鑰,然后眼睜睜看著攻擊者占有資產。
MPC?錢包的工作方式則不同。該錢包沒有單一的私鑰,用戶現在只持有一份私鑰分片,對其余的私鑰分片一無所知。從這個角度看,攻擊者即使獲得了用戶那一份的個人密鑰,也不能直接轉移資金。而為了進一步保護用戶,ZenGo?使用了多種手段來加強他們的安全設計:不僅僅是上述的雙方簽名方案和基于?TEE?的設備保護,還有基于面部掃描的生物識別認證及額外密鑰加密等。
用戶注冊和用戶賬號恢復過程中的保護措施
在用戶注冊和賬號恢復過程中,ZenGo?采用了以下保護措施來保護用戶資產。
Balancer (BAL)將于6月24日12:00上線BiKi:根據官方公告,Balancer (BAL)將于6月24日12:00(GMT+8)上線BiKi平臺,開放BAL/USDT交易對,充值已開放,于6月25日12:00(GMT+8)開放提現;同時,充值BAL即有機會瓜分5000BIKI。
Balancer Pool是有著自平衡屬性的自動化做市交易協議,這些屬性可生成加權投資組合和價格傳感器。Balancer顛覆了指數基金的概念:無需向投資組合經理支付費用來重新平衡您的投資組合,而是從交易員那里收取費用,交易員通過跟隨套利機會來重新平衡您的投資組合,獲取更多投資機會。[2020/6/24]
用戶識別保護:?雙方簽名方案要求只有當用戶與另一方交互,才能動用他們的資金。為了能夠識別用戶和存儲在服務器上的相關密鑰份額,ZenGo?需要用戶的電子郵件以便注冊賬戶。
為了避免電子郵件被黑,ZenGo?使用了面部掃描技術,將生物識別信息與用戶賬戶綁定。在注冊與電子郵件驗證后的賬號恢復過程中,用戶需要“刷臉”來進行認證。
應用程序-服務器通信保護:?為了確保?ZenGo?服務器與合法用戶的設備進行互動,ZenGo?在注冊和賬號恢復過程中在?TEE?環境中生成并注冊了一個非對稱密鑰。ZenGo?應用程序和服務器之間的所有交互都需要由這個特定的密鑰簽署。因為它受到硬件支持的安全解決方案的保護,因此攻擊者不能直接讀取這個密鑰,而該密鑰也很難被濫用。
美國網上超市CoinGrocer支持數字貨幣支付:據btcmanager消息,近日,一家名為CoinGrocer的網上超市上線,并將支持BTC、BCH、ETH、LTC、XMR等數字貨幣支付。據悉,該商店目前只面向美國的48個州開放。[2018/6/4]
ZenGo?用戶注冊和賬號恢復過程
用戶密鑰共享保護:?讓用戶存儲和備份其密鑰分片是有風險的,因為這或將危及到?ZenGo?提供的所有安全措施。而為了解決這個安全問題,ZenGo?在注冊過程中生成了一個加密密鑰。加密密鑰對用戶的密鑰共享進行加密,并將密碼文本存儲在其服務器上。
但是,加密密鑰不與?ZenGo?共享,而是強制與用戶的?GoogleDrive?或?iCloud?進行同步。只有在用戶通過電子郵件驗證和基于服務器的生物識別認證后,才能將加密的密鑰共享并進一步解密。其中基于服務器的生物識別認證幾乎不可能被常規的2D/3D人臉重建“蒙騙”。
ZenGoMPC?設計中的問題發現
正如我們之前所討論的,ZenGo?的安全設計中涉及許多加密密鑰,每一個密鑰都有不同的職責。在下面的表格中,我們顯示了?ZenGo?使用了哪些密鑰以及它們是如何被保護的。
通過這個表格,我們可以看到,在客戶端有三個密鑰被使用:主密鑰②,設備密鑰和加密密鑰。攻擊者需要同時獲得主密鑰②和設備密鑰,以便與?ZenGo?服務器互動,竊取用戶資金。
正如前面交易細節部分所介紹的,主密鑰②在內存中作為文本參與雙方簽名的生成,它允許攻擊者讀取進程內存并提取主密鑰②。而作為一種一定程度上的解決方案,所有對?ZenGo?服務器的交易請求都需要由設備密鑰簽署,而設備密鑰是不能被讀取或提取的。這個過程是在?TEE?中完成的,攻擊者無法控制。
然而,盡管?ZenGo?的安全設計考慮到了許多方面,CertiK?的?SkyFall?團隊仍然在其中發現了一個漏洞。在對?ZenGo?應用程序中所有?API?進行細節審計后,我們注意到某些?API?允許攻擊者欺騙?ZenGo?服務器,并輕松生成一個新的設備密鑰,以便在其他設備上使用。
這種由設備密鑰注冊的?API?缺乏必要的安全保護措施:攻擊者可以在其他設備上生成一個新的?NISTP-256?橢圓曲線密鑰,然后攻擊者可以利用設備密鑰注冊?API,并注冊新生成的密鑰對,假裝新的用戶設備并請求交易。
我們將這種攻擊命名為設備分叉攻擊。
設備密鑰:在注冊或賬號恢復過程中,TEE?中的用戶設備上會生成一個有效的設備密鑰作為對前述明文提取威脅的解決方案。設備密鑰并不能被有特權權限的攻擊者讀取,然而,攻擊者可以使用相同的設備密鑰注冊?API,從而來注冊另一對密鑰并使用它。
設備密鑰注冊?API?只有一個非常基礎的認證機制:攻擊者可以使用一個普通的明文本地存儲的?JWT令牌和提取到的主密鑰②進行?API?身份認證。根據設計,該?API?涉及到的服務器代碼也應該經過?Facetec?生物識別認證。然而在實踐中,由于邏輯缺陷,代碼未能執行此環節。
在我們的模擬攻擊中,我們模擬了一個具備特權權限的攻擊者,并持續監控受害者的設備。一旦?ZenGo?應用程序被啟動,我們便立即從內存中提取主密鑰②,并從本地數據庫中讀取?API?令牌。而這些信息足以讓攻擊者盜取用戶的全部資金!
一旦有了?API?令牌,我們就會生成一個新的設備密鑰,并調用設備密鑰注冊?API?從而在?ZenGo?服務器上注冊設備密鑰。隨后,我們構建了所有的?API?請求,與?ZenGo?服務器交互來發起交易。對于?MPC?錢包來說,生成雙方簽名是一個非常獨特并且復雜的過程。不過好在?ZenGo?的開發過程始終秉承著開源精神,我們才能夠編譯官方?ZenGo?應用程序中使用的雙方簽名庫并在本地運行。
上圖中展示了我們是如何提取主密鑰②并代表受害者注冊一個新的設備密鑰的。隨后我們利用這兩個密鑰向“攻擊者的賬戶”發送了?0.00222ETH。這整個過程只用了幾秒鐘,并且受害者也會完全意識不到。
為了解決這個問題,ZenGo?在服務器端為設備注冊實施了?FaceTec?生物識別認證。服務器?API?級別的解決措施消除了這種攻擊的可能性,且不需要更新客戶端代碼。
總結
在?CertiK?對?ZenGo?的評估中,我們徹底檢查并審計了其為保護用戶資產所采取的所有安全措施。這些措施包括雙方簽名方案、基于?TEE?的設備保護以及用來注冊和恢復賬號的生物識別。
盡管?ZenGo?有著較高的安全意識,并采取了諸多措施用來提高自己的安全性,CertiK?還是在?ZenGo?的實施中發現了一個關鍵的可被利用的?API?訪問認證風險。該漏洞可以讓持有特權的攻擊者繞過現有的安全措施,并在用戶的設備被破壞時竊取用戶的資金。
ZenGo?及時解決了該問題并部署了一個補丁,CeritK?隨后也進行了徹底的進一步審計并確定該補丁已修復報告中提到的風險。
隨著補丁的部署,我們相信?ZenGo?在日后可以有效地預防特權用戶非法訪問用戶資金。防御特權攻擊者是一項艱巨的任務,而?ZenGo?的安全實踐向我們展示了全面保護用戶的安全方法。該錢包的做法超過了目前市場上絕大多數常規錢包。
我們很榮幸能夠與?ZenGo?合作,并很榮幸能夠與?ZenGo?在保護?Web3?用戶安全方面做出共同努力并解決安全挑戰。同時也感謝?ZenGo?對我們發現漏洞的及時回應與高效的漏洞補丁出臺行動。
作為安全行業的從業者,我們很高興看到一個頂級?Web3?錢包公司如此重視安全,對用戶和用戶的資金具備如此高的責任心。希望在未來的安全道路中,我們可為更多項目提升安全性,為其用戶賦予“安心”。
比特幣(BTC)價格在29,200美元附近找到支撐并抵消了損失。比特幣(BTC)必須突破30,500美元的阻力位才能在短期內繼續走高。比特幣從29,200美元的支撐區域開始新的上漲.
1900/1/1 0:00:00在傳統市場中存在數萬億美元的資金,機構投資者已經開始關注加密貨幣的高收益潛力和不斷發展的生態系統,并通過開發符合經濟數據的策略來規劃他們的資產配置計劃.
1900/1/1 0:00:00原文作者:西柚,ChainCatcher近日,中心化社交圖譜協議CyberConnect鏈上數據的激增,吸引了一大批注意力.
1900/1/1 0:00:00Cosmos跌至關鍵的10.58美元支撐位,這可能會促使多頭復蘇。但波動的資金利率可能會破壞強勁的復蘇。 公眾呺:Web3團子 截至發稿時,ATOM的每日結構看跌.
1900/1/1 0:00:00ForesightNews消息,ZK基礎設施初創公司PolyhedraNetwork宣布推出由BNBGreenfield和zkBridge提供支持的跨鏈數據可用性協議GreenfieldzkMe.
1900/1/1 0:00:00比特幣在4月22日勉強維持在27,000美元,因為另一輪損失讓多頭失去了火力。巨大的RSI支持重新測試迎接比特幣多頭來自CointelegraphMarketsPro和TradingView的數.
1900/1/1 0:00:00