作者:INSIGHTFUL
編譯:深潮TechFlow
免責聲明
本指南無法保證任何內容,並不是從「加密或網路安全專家」的角度編寫的,而是基於多個來源和個人經驗的持續學習成果。
例如,我自己在剛進入這個領域時就曾因害怕錯過(FOMO)和貪婪而受騙(假直播詐騙和假MEV 機器人詐騙),因此我花時間認真學習、設置和理解安全性。
不要成為那個因為失去一切或大量資產而被迫學習安全的人。
駭客攻擊還是用戶錯誤?
所有類型的錢包、代幣或NFT 的「駭客攻擊」或妥協大致可分為兩類:
- 濫用先前授予的代幣批准。
- 私鑰或助記詞洩漏(通常發生在熱錢包上)。
代幣批准
代幣批准實際上是允許智能合約存取並移動您錢包中特定類型或數量的代幣的權限。
例如:
- 給予OpenSea 權限以移動您的NFT,以便您可以出售它。
- 給予Uniswap 權限以使用您的代幣進行交換。
作為背景訊息,基本上以太坊網路上的一切,除了ETH,都是ERC-20 代幣。
ERC-20 代幣的一個特性是能夠授予其他智能合約批准權限。
如果您想進行核心DeFi 互動(例如交換或橋接代幣),這些批准在某個時候是必需的。
NFT 分別是ERC-721 和ERC-1155 代幣;它們的核准機制與ERC-20 類似,但適用於NFT 市場。
MetaMask (MM) 的初始代幣批准提示提供了幾條信息,其中最相關的是:
- 您正在授予批准的代幣
- 您正在與之互動的網站
- 您正在與之互動的智能合約
- 編輯代幣權限數量的能力
在完整詳情下拉選單中,我們看到一個額外的資訊:批准功能。
所有ERC-20 代幣必須具有ERC-20 標準所概述的某些特性和屬性。
其中之一是智能合約可以根據批准的數量移動代幣的能力。
這些批准的危險在於,如果您將代幣權限授予惡意智慧合約,您的資產可能會被盜或耗盡。
無限制與自訂限制批准(ERC-20 代幣)
許多DeFi 應用程式預設會提示您對ERC-20 代幣進行無限制批准。
這樣做是為了改善用戶體驗,因為它更方便,不需要未來可能的額外批准,從而節省時間和gas 費用。
為什麼這很重要?
允許對無限數量的代幣進行批准可能會讓您的資金面臨風險。
手動將代幣批准設為特定數量,可以限制該dApp 在未簽署新的更大額度批准之前,能夠移動的代幣最大數量。
這樣可以降低您在智能合約被利用時的風險。如果您對某個dApp 授予了無限制的批准,而該dApp 出現漏洞,您可能會失去所有已批准的代幣,這些代幣來自持有這些資產並授予該批准的錢包。
例如,Multichain WETH(WETH 是ETH 的ERC-20 代幣包裝)就曾經遭遇過這樣的漏洞。
這個常用的橋接因濫用先前的無限制代幣權限而被攻擊,導致用戶資金被盜。
以下是一個範例(使用Zerion 錢包),展示如何將預設的無限制批准更改為手動批准。
NFT核准
「setApprovalForAll」用於NFT
這是一個常用但潛在危險的批准,通常在您想出售NFT 時授予值得信賴的NFT 市場。
這使得市場的智慧合約能夠轉移您的NFT。因此,當您將NFT 出售給買家時,市場的智慧合約可以自動將NFT 移至買家那裡。
此批准授予對特定集合或合約地址的所有NFT 代幣的存取權限。
這也可能被惡意網站或合約用來竊取您的NFT。
惡意行為者濫用“setApprovalForAll”的範例
經典的「錢包帳戶縮水」在FOMO 免費鑄造的情況下是這樣的:
- 使用者造訪一個他們認為是合法的惡意網站。
- 當他們將錢包連接到網站時,網站只能查看錢包的內容。
- 然而,惡意網站會掃描錢包中最高價值的NFT,並提示用戶從MetaMask (MM) 對該NFT 的合約位址進行「設定所有批准」。
- 使用者以為自己在鑄造NFT,實際上卻是在授予惡意合約移動這些代幣的權限。
- 隨後,騙子盜取代幣,並在物品被標記為被盜之前,將其清算到OpenSea 或Blur 的出價中。
簽名與批准
批准需要支付gas 費,因為它們涉及交易處理。
簽名則無需gas ,通常用於登入dApp,以證明您對該錢包的控制權。
簽名通常是低風險的操作,但仍可能被用來利用先前授予的對像OpenSea 這樣的可信網站的批准。
對於ERC-20 代幣,您還可以透過無gas 的簽名來修改您的批准,因為最近在以太坊上引入了允許功能。
如果您使用像1inch 這樣的去中心化交易所(DEX),可以看到這一點。
代幣批准要點
在給予任何批准時要謹慎,確保您知道自己在批准哪些代幣以及對哪個智能合約(可利用etherscan)。
限制您的核准風險:
- 使用多個錢包(批准是特定於錢包的)—不要對您的保險庫或高價值錢包簽署批准。
- 理想情況下,減少或完全避免對ERC-20 代幣授予無限制批准。
- 定期透過etherscan 或revoke.cash 檢查和撤銷批准。
硬體/ 冷錢包
熱錢包透過您的電腦或手機連接到互聯網,密鑰和錢包憑證在線上或本地儲存在您的瀏覽器中。
冷錢包是硬體設備,密鑰在完全離線的狀態下生成和存儲,並且物理上靠近您。
考慮到一個Ledger 的價格約為$120,如果您有超過$1000 的加密資產,您可能應該購買並設定一個Ledger。您可以將Ledger 錢包連接到您的MetaMask (MM),以便在保持一定安全性的同時享有與其他熱錢包相同的功能。
Ledger 和Trezor 是最受歡迎的選擇。我喜歡Ledger,因為它與瀏覽器錢包(類似於Rabby 和MM)的兼容性最好。
購買Ledger 時的最佳實踐
始終從官方製造商網站購買,切勿在Ebay 或Amazon 上購買——可能會被篡改或預先安裝惡意軟體。
確保您收到物品時包裝是密封的。
第一次設定Ledger 時,它會產生一個助記詞。
只能將助記詞寫在實體紙上,或在未來將其寫在鋼板上,以確保您的助記詞短語防火防水。
絕對不要拍攝或在任何鍵盤(包括手機)上輸入助記詞——這會將助記詞數位化,您的冷錢包將變成不安全的熱錢包。
加密資產並不是儲存在硬體錢包上,而是「在」由助記詞短語產生的錢包中。
助記詞片語(12-24 個單字)是所有的一切,必須不惜一切代價保護和安全。
它提供對所有在該助記詞短語下產生的錢包的完全控制和存取權限。
助記詞不是特定於設備的,您可以將其“導入”到另一個硬體錢包中作為備份(如果需要)。
如果助記詞遺失或損壞,且原始硬體錢包也遺失、損壞或被鎖定,您將永久失去對所有資產的存取權。
有多種助記詞儲存方法,例如,將其分成多個部分,增加部分之間的物理距離,存放在不明顯的地方(例如,冰箱底部的湯罐,您財產地下的某個地方等) 。
至少您應該有2-3 份副本,其中一份應為鋼製,以防水和火災。
「私鑰」類似於助記詞短語,但僅針對一個特定錢包。它通常用於將熱錢包匯入新的MetaMask (MM) 帳戶或在自動化工具(如交易機器人)中使用。
第25 個字- Ledger
除了原始的24 個單字助記詞,Ledger 還提供一個可選的額外安全功能。
密碼短語是一項高級功能,可將您選擇的最多100 個字元的第25 個單字新增至您的復原短語。
使用密碼短語會產生一組完全不同的地址,這些地址無法僅透過24 個單字的恢復短語存取。
除了增加安全層,密碼短語在您受到威脅時還能提供合理的否認。
如果使用密碼短語,請務必安全儲存或準確記住它,逐個字元並區分大小寫。
這是針對「$5 扳手攻擊」這種身體威脅情況的唯一和最終防禦措施。
為什麼要經歷這麼多麻煩來設定硬體錢包?
熱錢包將私鑰儲存在連接到網路的位置。
透過網路被欺騙、誤導和操縱以洩露這些憑證是極其簡單的。
擁有冷錢包意味著,騙子需要物理上找到並獲取您的Ledger 或助記詞才能存取這些錢包及其內部資產。
助記詞一旦洩露,所有熱錢包及其中的資產都將面臨風險,即使那些沒有與惡意網站或合約互動的資產也不例外。
過去人們被「駭客攻擊」的常見方式
過去人們透過熱錢包遭遇「駭客攻擊」(助記詞短語洩漏)的常見方式包括:
- 被欺騙下載惡意軟體,例如透過工作機會PDF、測試版遊戲、透過Google 表格運行宏,或模仿合法網站和服務。
- 與惡意合約互動:在模仿網站進行FOMO 鑄造,或與未知空投或接收的NFT 合約互動。
- 將金鑰和助記詞插入或傳送給「客戶支援」或相關程序/ 表單。