我們觀察到釣魚攻擊的趨勢日益嚴重,已造成數億美元的損失。因此,除了技術層面外,我們必須告知使用者常見的釣魚手法,並教育他們如何防範釣魚攻擊。
釣魚攻擊的類型
我們發現目前存在四種常見的釣魚攻擊類型。
-
直接代幣轉移 (Direct token transfer):攻擊者誘騙使用者直接將原生代幣(Ether)或 ERC20/ERC711 代幣轉移至攻擊者控制的帳戶。
-
授權釣魚 (Approval phishing):授權是一種透過簽署授權交易,將使用者的代幣委託給支付方(spender)的機制。攻擊者可以誘騙使用者簽署交易,將其代幣授權給攻擊者,隨後攻擊者便能轉移受害者的代幣。
-
地址投毒 (Address Poisoning):類似於假代幣攻擊 (fake-token attacks)、零代幣價值攻擊 (zero-value attacks) 和塵埃轉帳攻擊 (dust-transfer attacks)。
-
NFT 零元購釣魚 (NFT Zerobuy phishing):攻擊者誘騙使用者簽署交易,以極低的價格甚至免費出售其 NFT。
-
其他。
直接代幣轉移
第一類稱為直接代幣轉移。攻擊者要求使用者簽署交易,將其以太幣(Ether)直接轉移到攻擊者控制的帳戶。進階手法是利用惡意智能合約中名為 SecurityUpdate 或 ClaimRewards 的函數,誘使使用者簽署交易。


上圖(右側)展示了一個在智能合約中含有 SecurityUpdate 函數的釣魚交易範例。如果使用者簽署此交易,其以太幣將會被轉移到該智能合約,隨後轉入攻擊者手中。
授權釣魚
授權是一種讓使用者允許他人(支付方)使用其代幣的機制。例如,使用者可以將 USDC 授權給一個智能合約,讓該合約能代表使用者對 USDC 代幣進行操作,例如將 USDC 兌換成其他代幣。由於使用者已將代幣授權給智能合約,該合約對使用者 USDC 代幣的操作無需使用者進行額外的確認(或新的簽名訊息)。這使得整個流程更加流暢。
然而,攻擊者濫用了此機制。他們可以誘騙使用者簽署交易,將其 USDC(或其他高價值代幣)授權給攻擊者控制的合約或 EOA 地址。此後,攻擊者便能將使用者的代幣轉移給自己。

上圖顯示了一筆將 USDT 授權給攻擊者的交易。請注意,授權權限在使用者明確撤銷之前不會過期。因此,請儘快撤銷惡意的授權。
我們也注意到一種利用合法合約的新型釣魚攻擊,我們稱之為 Web3 釣魚攻擊中的 ROP(返回導向程式設計)。詳情請參閱我們的部落格。
地址投毒
在這部影片中,我們將向您展示地址投毒是如何發生的,包括假代幣攻擊、零代幣價值攻擊和塵埃轉帳攻擊,以及如何在 Etherscan 上識別可疑交易。
零代幣價值轉帳: 攻擊者建立一筆從受害者到釣魚地址的零價值代幣轉帳記錄(例如 USDC)。該釣魚地址與受害者交易紀錄中的地址非常相似。當受害者在進行下一次轉帳直接複製地址時,可能會不小心從交易紀錄中複製到釣魚地址。閱讀更多資訊請見我們的 Twitter、Coinbase 調查報告 1 2 3,以及更多內容。
NFT 零元購釣魚
在 NFT 市場(例如 OpenSea)銷售 NFT 時,使用者會先簽署一筆交易,聲明以特定價格出售其 NFT。接著,想要購買此 NFT 的人可以獲取該已簽署的訂單訊息來成交。
這給了詐騙者誘騙使用者簽署交易的機會,讓他們以極低價格(甚至免費)出售 NFT。攻擊者隨後可以擷取此交易並在 NFT 市場上執行該訂單,從而以低價(或免費)獲得受害者的 NFT。
這種釣魚手法非常普遍,因為使用者在簽署訂單時往往無法理解其含義。

上圖顯示了 MetaMask 在為 OpenSea 簽署訂單時的介面。遺憾的是,此類資訊對使用者而言極難理解。
如何保護自己
- 首先,只簽署您理解的交易!如果您對交易有任何疑問,請務必不要簽署。
- 第二,準備多個錢包進行交易。使用一個錢包地址進行日常交易,且僅存放少量代幣。將大部分代幣存放在另一個獨立的錢包地址中,該地址除了轉帳至第一個錢包外,不應進行任何交易簽署。
- 第三,請定期檢查您的授權並移除不必要的項目。您可以利用 MetaSuites 的授權診斷 (Approval Diagnosis) 功能來完成此操作。


