近年來,DeFi(去中心化金融)領域備受關注,其創新性和高風險也成為熱門話題。在多頭市場中,DeFi計畫更是蓬勃發展,吸引了大量投資者的目光。在這個充滿機會與挑戰的領域,如何保障資產安全成為投資人共同關注的焦點。 Cobo 安全團隊發布了《牛市 DeFi 互動指南》,為投資者提供了寶貴的參考和指導,幫助他們更了解並掌握DeFi生態的風險與機會。
自2019 年DeFi Summer 開啟後,以以太坊為首,出現了越來越多富有創意的去中心化金融協議(DeFi 協議),大大豐富了鏈上資產的可用性,使區塊鏈用戶可以更好地利用鏈上資產進行更多樣化的金融活動並為此創造豐厚的收益。但隨著越來越多 DeFi 協議的興起,安全挑戰也隨之而來。根據不完全統計,光是 2023 年,因區塊鏈攻擊而導致的資產損失已達 26.1 億美元。可見,在參與 DeFi 協議的過程中,除了評估對應的收益預期以外,協議安全性方面的評估也不可忽視,否則會給用戶帶來大的損失。
一般而言,目前對協議安全評估的主流定義為程式碼的安全性評估,這種定義的維度是比較單一的,這裡的問題在於,評估的本身只是考慮了協議在靜態過程下的安全性,而在DeFi 互動過程中,安全性往往是動態的,包含帳戶管理、協議互動前的準備、互動完成後的資產管理、資料監控及極端情況下資產損失後的自救等多個階段。
作為一個即將要進入 DeFi 新手村的用戶,該如何在賺取收益的同時最大限度地保障資金的安全? Cobo 安全團隊整理了 DeFi 互動中常見的安全風險及對應的安全防範措施,希望可以對大家在牛市中的 DeFi 安全互動有所啟發和幫助。
DeFi 互動中的常見安全風險與防範措施
帳戶私鑰外洩是目前新手用戶較為容易中招的問題之一,由於目前市面上錢包種類繁多,新手用戶缺乏自行判別錢包安全性的能力,許多新手用戶會下載一些不安全的錢包,並使用其來產生私鑰,從而導致私鑰被惡意回傳到攻擊者手中,造成私鑰外洩。許多資深用戶發現自己的主帳號在某一天被轉走所有資產,分析大半天發現所有行為都正常,這種案例下大部分情況就是早期該帳戶使用了不安全的錢包來產生自己的私鑰導致私鑰早已洩漏。
同時,由於區塊鏈空投導致的財富效應,許多新手用戶會盲目點擊一些所謂的空投網站,這些空投網站將自己包裝成非常正經的項目網頁,並告訴用戶存在大量未領取代幣。在利益的驅使下,許多新手使用者會在網頁的誘導下,填入自己的帳戶私鑰,導致私鑰外洩。
為了防止私鑰洩露,用戶需要做到以下幾點來加以防範:
建議選擇知名度較高的區塊鏈錢包,並從官方網站下載。對於有條件的用戶,建議使用硬體錢包以提高資產安全性。
永遠不要將自己的私鑰明文暴露在連網環境中,也不要隨意將自己的私鑰輸入到任何網頁當中。
簽章釣魚風險和私鑰外洩一樣,同樣也是新手用戶的重災區。有別於直接讓用戶填入私鑰,此類釣魚攻擊則是誘導用戶發起一筆交易或簽名,從而獲取用戶相關資產的授權,具有隱蔽性高、不易分析以及難以察覺等特點。
通常,攻擊者會先把使用者誘導到釣魚網頁中,以領取空投、驗證登入等名義讓使用者發起簽名,此時,使用者的瀏覽器錢包提示使用者需要完成簽名。
釣魚交易的類型可能有多種:
直接轉帳類型。 直接轉帳 ETH 或進行 ERC20 transfer 呼叫將錢包資產轉移到攻擊者位址。
Approve 類型。 呼叫 ERC20 Approve 方法授權攻擊者錢包。用戶簽署時不會發生資產轉移。但攻擊者皮夾可透過呼叫 transferFrom 轉移用戶資產。
EIP712 訊息簽署。 如 ERC20 Permit 方法;Permit2 授權;NFT 掛單簽章等。此類簽名通常在錢包中展示為 Json 資料或格式化較好的樹狀資料。用戶簽署時不會發起交易,不會有 gas 消耗。但簽名結果會被釣魚網站記錄,攻擊者可以使用該簽名結果轉移受害者的 ERC20 或 NFT 資產。
原始 hash 簽章。 簽名數據為 16 進位 hash 數據,從簽名數據本身無法推斷具體的簽名內容。 hash 背後可能是上述 1-3 種類型資料。簽名很可能導致資產損失。不過目前主流錢包通常會禁止此種簽名方式或予以明顯的風險提示。
最近一些案例中也發現某些釣魚網站會要求使用者連續進行多筆簽名,且前幾筆均為無害的正常簽名。然後混雜一筆惡意簽名內容。利用使用者的操作慣性誘導使用者完成簽章操作。
為了防止釣魚導致的資金損失,核心在於拒絕盲簽。對於每筆簽名認真審核,對於不確定內容的交易拒絕簽名。具體來說,可以在簽名過程中註意以下內容:
確認交互網站為 DeFi 專案官網,檢查完整網域。
檢查合約呼叫的方法,對於 transfer, approve 方法重點檢查。
檢查交易附帶的 ETH 轉帳。某些釣魚網站會嘗試建構看起來安全的方法(如 Claim),但實際上會在呼叫時附帶 ETH 轉帳造成 ETH 等鏈原生代幣的損失。
不簽原始 hash 內容。
轉帳地址投毒為近來較為新穎的攻擊方式,其攻擊手法為在用戶發起一筆轉帳(ERC20, native token 等)時,使用與該交易中的接收地址相似的地址,向用戶發送金額相同的交易,或金額相同但對應代幣為fake token 的交易。
舉例:
Alice 每月會固定轉移了 1 ETH 給 Bob 作為薪資發放。 Charlie 監控到了這筆交易,用與 Bob 相似的地址(地址前 8 位和後 8 位相同)發送 0.001 ETH 給 Alice。這種操作後,在下次 Alice 再向 Bob 轉帳的時候,就有可能使用 Charlie 的地址來作為交易的接收地址。會發生這樣的情況的原因在於區塊鏈位址長度較長且無規律,用戶難以記憶,導致很多時候用戶會貪圖方便直接從上一次的交易記錄中複製地址。由於 Charlie 和 Bob 的地址極為相似,導致 Alice 難以分辨,最終導致資產損失。
為了防止中招轉帳地址投毒,用戶可以採取以下手段進行防範:
每次交易均核對轉帳地址,且要核對完整內容而不是僅比較前後幾字節。
將常用的地址設定進地址白名單(地址簿)中設定別名,盡量只使用地址簿中的地址進行轉帳。
避免將從鏈上管道(包括區塊鏈瀏覽器、錢包交易記錄等)複製地址作為轉帳目標。
代幣授權幾乎是進行 DeFi 互動的第一步。在進行DeFi 操作時,由於交易資料是透過項目方網頁建構而非使用者構造,在通常情況下,為了方便使用者多次互動而不需要重複授權,專案方網頁通常會建構一個無限授權的交易讓用戶簽名。其出發點是為用戶節省 gas,但這也為後續資金安全埋下了隱患。假設後續項目代碼發生問題,如未授權接口,或任意調用漏洞,用戶對合約的無限授權將導致被攻擊者利用,導致用戶資產被轉移。這種攻擊場景在跨鏈橋和 DEX 協定中較為常見。
為了防止後續項目在升級中引入風險代碼或項目代碼本身存在未發現的漏洞,用戶應採用最小授權的原則,盡量僅授權本次交易中使用到的額度,防止後續項目風險導致自己的資產損失。
除了互動前的準備外,在互動過程中同樣存在著許多容易忽略的風險。這些風險通常源自於使用者對專案本身的不了解導致。具體的例子為:
在透過鏈上兌換協議進行代幣兌換時滑點設定過大或編寫腳本進行swap 沒有設定最低接收數量(出於編寫方便設定為0),導致交易受到MEV 機器人的「三明治」攻擊。
在透過鏈上借貸協議進行借貸操作時,沒有對倉位健康度進行及時管理,導致大波動行情中倉位被清算。
在與某些項目互動時,沒有對項目方憑證進行良好的保管,如把 Uniswap V3 的 NFT 憑證當成是普通 NFT 到 OpenSea 中進行售賣。
為了防範這些風險,使用者在進行專案互動時,一定要做好對應的專案調查,明確專案機制和相關特性,防止資產損失。
DeFi 安全交易新範式 -- Cobo Argus
上文介紹了在區塊鏈進行 DeFi 活動常見的互動風險。用戶不小心中招其中一個,都有可能導致多年的努力全盤皆失,稍有不慎萬劫不復。那麼,是否有一個安全有效,又便於管理的風控方案呢?一個新的選擇方案是 Cobo Argus。
Cobo Argus 是一款由 Cobo 團隊進行開發,基於 Gnosis Safe 進行構建的鏈上風控產品。主要的作用在於可以透過建構不同的 ACL 策略,對用戶交易進行解析,對其中不符合風控規則的交易進行攔截,從而確保用戶資金安全。
Cobo Argus 如何應對 DeFi 環境中的安全風險?
1. 底層多簽錢包,上層單簽授權:避免私鑰洩漏單點風險,減緩被釣魚風險,同時保證操作效率
Cobo Argus 是一個基於Safe {Wallet} 的多簽錢包構建的產品,其基礎和核心為多簽合約錢包。所以 Cobo Argus 自然繼承了 Safe {Wallet} 多簽錢包的安全性。
透過把資金從單一私鑰管理變成多個私鑰共同維護,可以杜絕單一私鑰外洩帶來的資產遺失/鎖定風險。多簽錢包本身需要多個簽名來觸發交易的執行,單一地址私鑰的洩漏不會影響整體資金的安全。另外可以發起多簽交易來替換遺失或有風險的單簽地址,確保多簽錢包的安全性。
另外由於從單簽地址切換到了多簽地址後,在交易簽名時,需要每個用戶對一筆交易進行簽名,有利於交叉審計交易內容,從而大大降低了被釣魚的可能性。
多簽由於需要多人審核,對操作效率有一定影響。 Cobo Argus 允許使用者配置靈活的授權規則,允許將某些風險較低的高頻操作(如進行 Farming 時定期 Claim 收益的操作)授權給某個 EOA 位址。此位址可取代多簽錢包發起操作,提高工作效率。同時由於該位址權限被嚴格限制,錢包整體的安全性不會受到明顯影響。
2. 自訂機器人:7*24 小時自動風險監控與回應
透過設定Cobo Argus 監控機器人,可以自訂需要監控的條件和觸發條件需要執行的操作。
以藉貸專案的槓桿管理為例,使用者可以透過配置 Argus 機器人監控自己的 health factor,當部位接近清算時,可以由機器人進行補充抵押物、還款等降低槓桿的操作。
3. 自訂的ACL 策略
除了自訂監控機器人以外,有一定開發能力的用戶,還可以透過開發自訂的ACL(Access Control List)合約來實現更靈活的權限管理。這是 Cobo Argus 的核心功能之一。以下透過若干例子來感受該功能的魅力所在:
針對地址投毒攻擊,可以透過編寫ACL 合約,用戶可以在ACL 合約中指定常用的地址作為白名單,在交易過程中,ACL合約會將交易中的接收位址解析(ERC20 / native token),並對使用者設定的白名單位址進行比對,如果接收位址不在對應的位址內,則該筆交易無法成功完成。
針對過度授權問題,使用者可以透過編寫 ACL 策略合約對 Approve 交易中的授權額度進行解析,限制代幣的 Approve 授權額度不超過使用者預設值。或1可透過配置自訂機器人,定期對相關代幣的授權清零。
針對不安全的DeFi 操作,如無滑點檢查的swap 交易,可以透過編寫Argus ACL 策略合約,設定兌換交易可接受的最低滑點,在設定完成後,ACL 策略合約便可根據設定的滑點對不同的swap 交易進行解析,如果兌換滑點不滿足,則可以對該筆交易進行攔截。
DeFi 互動中存在著許多難以防範的風險,文中提到的內容雖然涉及了很多常見場景,但也不能完全涵蓋所有風險點。用戶需要認真處理每一筆交易。
Cobo Argus 可以提供使用者可靠且易於配置的手段來防範常見的一些安全風險。透過 ACL 可以完成靈活且安全的授權管理,在確保安全性的前提下,提高操作效率;自訂機器人則可以減少手動操作,同時即時監控的能力可以 7*24 小時保障用戶資金安全。
DeFi 固然可以帶給用戶可觀的收益,但是資金安全才是資產穩定成長的核心。 Cobo Argus 將守護每位 DeFi Farmer,協助大家在多頭市場創造更多價值。
以上是Cobo 安全團隊:牛市 DeFi 互動指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!