作者:flush&kong背景
2025年2月21日,Crypto行業(yè)遭遇史上最嚴(yán)重的資產(chǎn)管理危機(jī)。交易平臺(tái)Bybit的鏈上多簽錢(qián)包遭定向攻破,近15億美元資產(chǎn)通過(guò)一筆“合法簽名”的交易悄然流失。事后鏈上分析顯示,攻擊者通過(guò)精密的社會(huì)工程攻擊獲取了多簽權(quán)限,利用Safe合約的delegatecall功能植入惡意邏輯,最終繞過(guò)多重簽名驗(yàn)證機(jī)制,將資金轉(zhuǎn)移至匿名地址。
這一系列事件的核心問(wèn)題不在于Safe合約本身,而是在于整個(gè)系統(tǒng)的集成過(guò)程中的安全隱患,特別是在前端驗(yàn)證環(huán)節(jié)。這促使我們需要思考:如何通過(guò)Safe的額外安全措施機(jī)制來(lái)強(qiáng)化多簽錢(qián)包的防護(hù)能力?Safe
Safe是一款多重簽名(Multi-Sig)錢(qián)包,主要用于管理高價(jià)值資產(chǎn)和Crypto的安全存儲(chǔ)與轉(zhuǎn)移。作為去中心化資產(chǎn)管理的基礎(chǔ)設(shè)施,它通過(guò)多方協(xié)同驗(yàn)證機(jī)制確保資金操作的安全性,防止單一管理員或黑客利用單點(diǎn)故障進(jìn)行惡意操作,廣泛應(yīng)用于DAO治理、企業(yè)資金托管、去中心化基金池等場(chǎng)景。該合約由Safe(原GnosisSafe)團(tuán)隊(duì)開(kāi)發(fā),是當(dāng)前行業(yè)標(biāo)準(zhǔn)的鏈上資產(chǎn)管理解決方案。合約采用EIP-712標(biāo)準(zhǔn)實(shí)現(xiàn)結(jié)構(gòu)化數(shù)據(jù)簽名,從而提高交易數(shù)據(jù)的安全性和可驗(yàn)證性。核心用途
資金安全管理:合約要求多個(gè)預(yù)先設(shè)定的所有者(Owners)共同確認(rèn)交易才能執(zhí)行,從而有效防止單點(diǎn)失誤或惡意操作,確保資金安全。
交易執(zhí)行與管理:通過(guò)內(nèi)置的多簽驗(yàn)證機(jī)制,合約能夠在滿(mǎn)足簽名閾值條件的情況下,執(zhí)行對(duì)外轉(zhuǎn)賬、調(diào)用其他合約或處理復(fù)雜的業(yè)務(wù)邏輯,支持Tokens和原生幣的支付和費(fèi)用補(bǔ)償。
模塊化擴(kuò)展:合約采用模塊化設(shè)計(jì),通過(guò)繼承和組合多個(gè)管理模塊(如OwnerManager、ModuleManager、GuardManager、FallbackManager等),使其功能靈活且易于擴(kuò)展,為不同應(yīng)用場(chǎng)景提供定制化支持。
函數(shù)解析
execTransaction函數(shù)執(zhí)行經(jīng)過(guò)多重簽名驗(yàn)證的交易:
計(jì)算交易的唯一哈希值(結(jié)合交易參數(shù)、nonce等);
驗(yàn)證所有簽名的有效性,確保每個(gè)簽名均來(lái)自合法的所有者或預(yù)先批準(zhǔn)的地址;
調(diào)用目標(biāo)地址的業(yè)務(wù)邏輯,并在交易執(zhí)行后通過(guò)事件記錄成功或失敗狀態(tài);
支持靈活的gas費(fèi)用處理,確保在支付補(bǔ)償時(shí)準(zhǔn)確計(jì)算交易成本。
checkContractSignatures&checkNSignatures函數(shù)驗(yàn)證交易或消息的簽名數(shù)據(jù):
分別處理EOA賬戶(hù)簽名、合約簽名(EIP-1271)、以及預(yù)批準(zhǔn)的哈希;
確保簽名按照所有者順序排列,并且每個(gè)簽名都來(lái)自有效地址,防止重放攻擊和簽名篡改。
getTransactionHash函數(shù)生成交易哈希,用于簽名驗(yàn)證和防止重放攻擊:
利用EIP-712標(biāo)準(zhǔn)對(duì)交易數(shù)據(jù)進(jìn)行結(jié)構(gòu)化哈希;
使用內(nèi)聯(lián)匯編優(yōu)化內(nèi)存操作,提高計(jì)算效率;
結(jié)合當(dāng)前的nonce值,確保每筆交易的唯一性。
handlePayment函數(shù)處理執(zhí)行交易過(guò)程中的gas補(bǔ)償支付:
根據(jù)實(shí)際消耗的gas費(fèi)用和基礎(chǔ)費(fèi)用計(jì)算支付金額;
支持ETH以及其他Tokens的支付,確保費(fèi)用補(bǔ)償準(zhǔn)確無(wú)誤。
onBeforeExecTransaction為內(nèi)部虛擬鉤子函數(shù),在execTransaction函數(shù)執(zhí)行之前被調(diào)用。該函數(shù)的設(shè)計(jì)目的是允許繼承Safe合約的子合約在交易執(zhí)行前進(jìn)行自定義邏輯處理。接收的參數(shù)集包括:
to:目標(biāo)地址-交易要調(diào)用的合約或賬戶(hù)地址
value:以太幣值-隨交易發(fā)送的以太幣數(shù)量
data:數(shù)據(jù)載荷-包含函數(shù)選擇器和參數(shù)的調(diào)用數(shù)據(jù)
operation:操作類(lèi)型-確定是CALL還是DELEGATECALL
safeTxGas:交易gas限制-為交易執(zhí)行預(yù)留的gas數(shù)量
baseGas:基礎(chǔ)gas-獨(dú)立于交易執(zhí)行的gas成本
gasPrice:gas價(jià)格-用于計(jì)算交易費(fèi)用補(bǔ)償?shù)膅as價(jià)格
gasToken:gasTokens-用于支付交易費(fèi)用的Tokens地址
refundReceiver:退款接收者-接收交易費(fèi)用補(bǔ)償?shù)牡刂?/p>
signatures:簽名集合-所有者對(duì)交易的簽名數(shù)據(jù)
盡管多簽錢(qián)包合約憑借其嚴(yán)謹(jǐn)?shù)陌踩O(shè)計(jì)和靈活的模塊化結(jié)構(gòu),為數(shù)字資產(chǎn)管理提供了高效且安全的解決方案,實(shí)現(xiàn)了從交易初始化到最終執(zhí)行的全流程安全管控,并成為Blockchain安全管理的重要工具,但同樣需要注意的是,受害者大多依賴(lài)硬件錢(qián)包進(jìn)行簽名,而部分硬件設(shè)備對(duì)結(jié)構(gòu)化數(shù)據(jù)簽名的顯示效果欠佳,容易導(dǎo)致用戶(hù)在短時(shí)間內(nèi)無(wú)法準(zhǔn)確識(shí)別交易數(shù)據(jù),從而有“盲簽”風(fēng)險(xiǎn)。針對(duì)這一現(xiàn)象,除了優(yōu)化硬件及其數(shù)據(jù)展示效果之外,還可以探索增加多重確認(rèn)、智能提示以及增強(qiáng)簽名驗(yàn)證工具等措施,以進(jìn)一步降低盲簽帶來(lái)的安全隱患。SafeGuard
Safe合約在1.3.0版本中引入的重要安全功能——SafeGuard機(jī)制。這一機(jī)制旨在為標(biāo)準(zhǔn)的n-out-of-m多簽方案提供額外的限制條件,進(jìn)一步增強(qiáng)交易安全性。SafeGuard的核心價(jià)值在于能夠在交易執(zhí)行的不同階段進(jìn)行安全檢查:
交易前檢查(checkTransaction):Guard機(jī)制可以在交易執(zhí)行前,對(duì)交易的所有參數(shù)進(jìn)行程序化檢查,確保交易符合預(yù)設(shè)的安全規(guī)則。
交易后檢查(checkAfterExecution):在交易執(zhí)行完成后,Guard還會(huì)進(jìn)行額外的安全驗(yàn)證,檢查交易執(zhí)行后Safe錢(qián)包的最終狀態(tài)是否符合預(yù)期。
架構(gòu)分析
在近期不斷曝出安全事件的背景下,各方對(duì)多簽錢(qián)包合約的安全性日益關(guān)注,硬件錢(qián)包提供商如KeyStone、OneKey、RigSec等紛紛呼吁增強(qiáng)Safe合約的解析和防護(hù)能力,以預(yù)防類(lèi)似風(fēng)險(xiǎn)的再次發(fā)生。在Bybit事件后,許多項(xiàng)目方開(kāi)始聚焦Safe合約,并探索基于Guard機(jī)制的升級(jí)與擴(kuò)展方案。其中,不乏有基于Guard機(jī)制的創(chuàng)新應(yīng)用,構(gòu)建一種建立在Safe多簽錢(qián)包之上的中間層安全解決方案,為底層資產(chǎn)與用戶(hù)資產(chǎn)之間提供了額外的安全保障。其核心作用在于,通過(guò)將Safe多簽交易涉及的目標(biāo)合約、調(diào)用方式、執(zhí)行數(shù)據(jù)、owner簽名信息、付款信息以及gas信息傳入checkTransaction函數(shù),實(shí)現(xiàn)對(duì)交易的極細(xì)粒度檢查,包括白名單合約調(diào)用、白名單函數(shù)操作、白名單轉(zhuǎn)賬目標(biāo)、交易頻次等權(quán)限控制。
值得注意的是,Safe本身只提供Guard管理和回調(diào)功能,實(shí)際的多簽交易檢查邏輯由用戶(hù)自行實(shí)現(xiàn),其安全性取決于Guard實(shí)現(xiàn)的質(zhì)量。如:SolvGuardian拓展了這一思路,在每個(gè)Vault配置專(zhuān)門(mén)的Guardian來(lái)指定允許的目標(biāo)地址和操作權(quán)限,實(shí)現(xiàn)了指定允許合約、定義允許函數(shù)操作和ACL驗(yàn)證需求三大權(quán)限控制要素。同時(shí),采用分離的治理機(jī)制,由VaultGuardian負(fù)責(zé)執(zhí)行,而Governor控制治理權(quán)限,確保即便Guardian出現(xiàn)問(wèn)題,也能及時(shí)采取補(bǔ)救措施保護(hù)用戶(hù)資產(chǎn)。類(lèi)似的設(shè)計(jì)理念也在Elytro的SecurityControlModule中得到應(yīng)用,該模塊通過(guò)preExecute函數(shù)攔截關(guān)鍵操作,并借助白名單機(jī)制對(duì)模塊安裝、鉤子設(shè)置和驗(yàn)證器管理等高風(fēng)險(xiǎn)操作進(jìn)行精細(xì)管控,從而確保只有經(jīng)過(guò)信任的合約才能被添加到系統(tǒng)中,為錢(qián)包提供了持久的安全保障。
在Bybit事件攻擊鏈中,若Safe合約部署了合理配置的Guard機(jī)制,攻擊者通過(guò)execTransaction發(fā)起的惡意delegatecall將在預(yù)檢階段被多重策略攔截:Guard的checkTransaction函數(shù)首先識(shí)別到delegatecall操作類(lèi)型并觸發(fā)禁用規(guī)則(如強(qiáng)制限定operation僅為普通調(diào)用),隨后解析data字段檢測(cè)到非常規(guī)合約地址(0x4622...7242)及高危函數(shù)選擇器,通過(guò)預(yù)設(shè)的合約白名單與函數(shù)黑名單策略直接回滾交易,最終形成「策略攔截→邏輯阻斷」的防御體系,徹底阻斷存儲(chǔ)篡改與資金轉(zhuǎn)移路徑。
(當(dāng)使用Safe版本≥v1.3.0 SafeGuard模塊的驗(yàn)證操作https://excalidraw.com/#room=fd1df67dd09b3dab6bd8,Q1jeb1MZW7vwbY4NuxaV5A)
總的來(lái)說(shuō),Safe僅在1.3.0版本之后才提供Guard功能,盡管Guard可以提供極為細(xì)粒度的多簽交易檢查,但用戶(hù)在使用Guard功能時(shí)有較大的門(mén)檻。他們需要自行實(shí)現(xiàn)Guard檢查邏輯,粗略的或者有缺陷的Guard實(shí)現(xiàn)可能無(wú)法幫助用戶(hù)提升其Safe錢(qián)包的安全性,因此對(duì)Guard實(shí)現(xiàn)進(jìn)行安全審計(jì)是必要的。毫無(wú)疑問(wèn)的是,安全且適當(dāng)?shù)腉uard實(shí)現(xiàn)可以極大提升Safe錢(qián)包的安全性。結(jié)論與展望
Bybit被攻擊事件凸顯了及時(shí)更新安全基礎(chǔ)設(shè)施的重要性,Bybit使用的是v1.1.1(<1.3.0)版本的Safe合約,這意味著他們無(wú)法使用Guard機(jī)制這一關(guān)鍵安全特性。如果Bybit升級(jí)到1.3.0或更高版本的Safe合約,并實(shí)現(xiàn)了合適的Guard機(jī)制,例如指定唯一接收資金的白名單地址,并進(jìn)行嚴(yán)格的合約函數(shù)ACL驗(yàn)證,可能就能避免這次的損失。盡管這只是假設(shè),但它為未來(lái)的資產(chǎn)安全管理提供了重要思路。
SafeGuard機(jī)制就像給數(shù)字資產(chǎn)保險(xiǎn)箱加裝的智能安檢系統(tǒng),其效能取決于規(guī)則設(shè)計(jì)的嚴(yán)謹(jǐn)性和實(shí)施質(zhì)量。面對(duì)日益精密的攻擊手段,我們需要:
自動(dòng)化驗(yàn)證:建立自動(dòng)化的交易驗(yàn)證機(jī)制
動(dòng)態(tài)策略調(diào)整:根據(jù)威脅情報(bào)實(shí)時(shí)調(diào)整安全策略
多層防御:結(jié)合多種安全機(jī)制構(gòu)建深度防御體系
持續(xù)審計(jì):對(duì)Guard實(shí)現(xiàn)進(jìn)行定期安全審計(jì)
未來(lái)的數(shù)字資產(chǎn)管理,將是智能合約安全機(jī)制與持續(xù)攻防演進(jìn)的共同進(jìn)化過(guò)程。只有將安全理念融入每一個(gè)環(huán)節(jié),才能在黑客的"矛"與守護(hù)者的"盾"的博弈中構(gòu)筑真正的安全壁壘。
免責(zé)聲明:Safe 困局 Guard 能否重構(gòu)契約巴別塔?文章轉(zhuǎn)發(fā)自互聯(lián)網(wǎng),版權(quán)歸其所有。
文章內(nèi)容不代表本站立場(chǎng)和任何投資暗示。加密貨幣市場(chǎng)極其波動(dòng),風(fēng)險(xiǎn)很高,可能不適合所有投資者。在投資加密貨幣之前,請(qǐng)確保自己充分了解市場(chǎng)和投資的風(fēng)險(xiǎn),并考慮自己的財(cái)務(wù)狀況和風(fēng)險(xiǎn)承受能力。此外,請(qǐng)遵循您所在國(guó)家的法律法規(guī),以及遵守交易所和錢(qián)包提供商的規(guī)定。對(duì)于任何因使用加密貨幣所造成的投資損失或其他損失,本站不承擔(dān)任何責(zé)任。
Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM