避免Web3钓鱼诈骗:如何识别和预防攻击
什麼是web3釣魚
Web3 Phishing 是一種針對加密貨幣用戶的網路欺騙手段,透過創建偽裝成正式網站的假網站來竊取用戶的授權、簽名和加密貨幣資產。隨著Web3.0 技術的發展,新型態的Web3 釣魚騙局也不斷出現。以下,我們將介紹新型web3 釣魚攻擊方式:Approval phishing、Uniswap permit 2 phishing、Claim phishing、Model phishing。並提供協助使用者識別和預防這些攻擊的有效措施:針對Approval 釣魚的預防措施,識別permit 2 中的簽名,防止Claim 釣魚攻擊,防止模態釣魚攻擊。
1. Approval 呼叫攻擊
web3網絡釣魚攻擊大多與approval、increaseAllowance 操作有關。攻擊者透過偽造電子郵件或訊息、偽造網站或應用程式、社交工程和惡意廣告或彈跳窗等方式,騙取用戶進行approval 操作。因此,使用者需要撤銷不必要的授權。撤銷授權也有可能被釣魚者利用。
撤銷授權釣魚攻擊時如何發生的?
攻擊者部署了一個假的ERC-20 代幣合約,修改了approve 函數;
攻擊者手動偽造了大批鏈上地址的授權,並提醒用戶取消授權;
當使用者收到該提醒並點擊取消授權時,會觸發發送交易的操作。這個交易將導致token 被鑄造到合約部署者的錢包內。
increaseAllowance 授權釣魚交易鏈接
https://arbiscan.io/tx/0xd598336fac79123952319c9cd9cc62aa275162ce5f39d08ccac0c5e6ef0538e5
「撤銷授權」釣魚交易鏈接https://etherscan.io/tx/0xd4d606caddebf185dc6902ffcec78f3cc915826e1c0e37319d407d01681980ab
2. Uniswap permit 2 釣魚攻擊
Uniswap permit 2 允許跨不同應用程式共用和管理token 授權。用戶只需在一次交易中完成授權和交易,減少交易的gas 費用,簡化交易作業流程。但是,Permit 2 則將使用者的操作變成了鏈下簽名,對使用者來說,鏈下簽名是最容易放下防備的環節,而絕大多數人並不會仔細檢查簽名的內容也不能理解簽名的內容。
Uniswap permit 2 簽名釣魚攻擊是如何發生的?
使用者將自己所持有Token 的權限授權給Permit 2 合約,這是至關重要的前提條件,這意味著你在授權時的簽名已經暴露在釣魚騙局的風險下了。
駭客拿到了用戶的簽名,基於此簽名,駭客在permit 2 合約中進行了permit 和transferFrom 兩個操作,轉走用戶的資產。
駭客呼叫permit 函數,在函數中,主要呼叫了verify 函數和_updateApproval 函數。 verify 函數用來驗證使用者簽名。驗證通過後執行_updateApproval 函數。 _updateApproval 函數用來更新授權值。
被授權方在授權額度範圍內可以呼叫transferFrom 函數將token 轉移到指定地址。
Permit 2 釣魚交易鏈接
https://etherscan.io/tx/0x1d8fa25f8f16d52cd4c5716e0cefd9b1cdbbbc060901cea223bab9de79b17ea3
3. Claim 釣魚攻擊
Claim 釣魚攻擊透過偽造可信任實體的請求,欺騙使用者提供個人資訊、登入憑證或存取權限。這些Claim 釣魚合約通常偽裝成零地址來騙取用戶信任,以此來調取用戶的加密資產。
Claim 釣魚攻擊是如何發生的?
釣魚者部署scam contract 和hub contract,並創建EOA 用來接收竊取用戶的資金。 scam contract 具有竊取使用者的ETH、ERC 20 token 和NFT 的能力。 scam contract 不開源,但從鏈上交易資料來看,該合約主要包含兩個函數,Cliam 和Multicall。
當呼叫Claim 函數時,受害者所持有的token 將會在internal transaction 中被轉移到hub contract。
Multicall 函數用來轉移受害者已批准的token。
hub contract 用作從各個scam contract 中竊取的資金的收集點。釣魚者創建的EOA 可以呼叫hub contract 中的withdraw 函數提取資金。
claim 釣魚交易鏈接
https://etherscan.io/tx/0xfe70f1b0a92e719bff0d291b7a79987e6e93ed129d52be8e8918c2b9acb1f3b0
4. 模態釣魚攻擊
Web3.0 加密貨幣錢包的某些使用者界面(UI)元素可以被攻擊者控制用來進行網絡釣魚攻擊,這種攻擊方式稱為Modal Phishing。 Web3.0 貨幣錢包上的典型模態設計通常提供供用戶檢查簽名等請求的必要信息,以及批准或拒絕請求的按鈕。
我們以Metamask 錢包為例,介紹模態釣魚攻擊是如何發生的?
釣魚者部署釣魚智慧合約,有一個SecurityUpdate 具備支付功能的函數,並允許受害者將資金轉入該智慧合約;
釣魚者也使用SignatureReg 將SecurityUpdate 函數簽名註冊為人類可讀的字串「SecurityUpdate」。
受害者在Metamask 錢包上連接以上釣魚智能合約;
Metamask 解析這個釣魚智能合約,它使用函數簽名字節來查詢對應的函數方法,也就是為「SecurityUpdate」。
「SecurityUpdate」呈現在Metamask Model 中,要求用戶確認。用戶點擊“SecurityUpdate”按鈕,釣魚成功。此時,執行釣魚者寫好的釣魚智能合約,將受害者的資金轉入該智能合約。
如何避免web3釣魚攻擊
1. 針對approval 釣魚的預防措施
如果我們瞭解授權操作的具體內容,並從正確的管道查詢我們的授權資訊、取消授權,就會有效避免approval、increaseAllowance、撤銷授權的釣魚騙局。
以下內容可以幫助使用者理解授權操作的具體內容:
用戶在approval 時,需要考慮授權金額、授權幣種和授權地址。透過指定授權金額和幣種,使用者可以限制被授權者能夠從自己的帳戶轉移的資產數量,防止授權到與這次互動無關的幣種。用戶還需要仔細檢查授權地址,多管道驗證該地址,確保將授權給正確的地址。
用戶在正式授權之前,可以在相應代幣合約中模擬授權交易,以獲取授權資訊。
找到approval 或increaseAllowance、decreaseAllowance 等授權相關函數,填寫以下資訊模擬授權交易。
模擬授權之後,可以在Phalcon 上看到這筆模擬交易的具體信息,從Input Data 可以看出授權地址和授權金額。
如果以上結果是使用者期望的,就可以進行正式授權了。
以下內容是追蹤鏈上授權訊息,撤銷授權資訊的具體步驟:
用戶在完成授權之後,可以定期追蹤token approval 情況,也撤銷相關授權。Etherscan, BscScan and Polygonscan區塊鏈瀏覽器中有token approval checker Function。
輸入位址,即可查看該位址的歷史授權交易,每筆交易右側的Revole 按鈕可撤銷此授權。
在檢索到的授權交易中,可查看授權幣種、授權地址和授權金額。
2. 識別permit 2 中的簽名
如果我們能夠理解、辨識並仔細檢查簽名的具體內容,就可以有效避免permit 2 釣魚騙局。
簽名格式通常包含Owner、Spender、value、nonce 和deadline 這幾個關鍵字段,分別是指:
Owner: 代表token 持有者的位址,用於指定希望透過簽名授權的位址。
Spender: 代表被授權使用token 的地址,用於指定希望授權給的地址。
value: 代表希望授權的token 數量,可以指定特定數量的token 授權給Spender。
nonce: 代表token 持有者的交易計數器,用於確保每個授權交易都有唯一的識別碼。
deadline: 代表簽章的有效截止日期,用於限制簽章的有效期限。在過期之後,簽名將變得無效。
我們建議使用者可以根據自己的需求設定特定的value 和deadline,而不是選擇預設的最大值。
使用者在呼叫Uniswap permit 2 合約之前,可以模擬相關授權函數,以了解授權細節。點擊Simulate 按鈕。
選擇approve 函數,填寫以下參數,模擬使用者向permit 2 合約授權。
3. 防止Claim 釣魚攻擊
為了避免落入Claim 釣魚陷阱,我們需要識別釣魚合約地址,他們經常偽裝成零地址來放鬆用戶的警覺性。以下列舉了一些用於claim 釣魚詐騙的Scam contract。我們在交易時,需要注意地址前後是「 0000 」的地址。
https://etherscan.io/address/0x0000b514c923f55180fc12428e05695666620000
https://etherscan.io/address/0x0000438e0f00fc35dff19d0062608057a1d20000
https://etherscan.io/address/0x0000a4998724e52f0886edff693aca33f9900000
https://etherscan.io/address/0x000062accd1a9d62ef428ec86ca3dd4f45120000
https://etherscan.io/address/0x000038f1e0c4417a3650c3f9a9a920b2e52e0000
https://etherscan.io/address/0x000056c346441ef8065e56b0cddd43fdec100000
Claim 釣魚攻擊本質也是獲取使用者的token 授權,所以,我們仍然需要時刻關注授權情況。
4. 防止模態釣魚攻擊
模態釣魚攻擊發生的根本原因是錢包應用程式沒有徹底驗證所呈現的UI 元素的合法性。為了避免這種釣魚攻擊,錢包應用程式的開發者應該始終假設外部傳入的資料是不可信的。用戶亦可依上述方式檢查自己的簽名資訊和授權資訊。
總結
綜上所述,我們詳細介紹了四種新型的Web3釣魚攻擊方式,並提供了相應的識別和預防措施。除了提高使用者的警覺性外,我們還建議使用者深入了解授權和簽署的相關內容,並定期檢查自己的授權情況,及時撤銷不必要的授權。此外,我們強調了不隨意簽名的重要性,以防止攻擊者取得我們的簽名並濫用。如果您對Web3安全或智慧合約審計有任何其他問題,歡迎隨時與我們聯繫。我們將竭誠為您提供協助。


