加密反黑客指南:多種措施保護好個人資產
原標題:《How To Never Get Rugged In Crypto Again》
作者: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 合約互動。
- 將密鑰和助記詞插入或發送給「客戶支持」或相關程序 / 表單。