慢霧:警惕Web3 錢包WalletConnect 釣魚風險

WalletConnect 釣魚風險介紹

2023 年1 月30 日,慢霧安全團隊發現Web3 錢包上關於WalletConnect 使用不當可能存在被釣魚的安全風險問題。這個問題存在於使用移動端錢包App 內置的DApp Browser + WalletConnect 的場景下。

我們發現,部分Web3 錢包在提供WalletConnect 支持的時候,沒有對WalletConnect 的交易彈窗要在哪個區域彈出進行限制,因此會在錢包的任意界面彈出簽名請求。

當用戶離開DApp Browser 界面切換到錢包其他界面如示例中的Wallet、Discover 等界面,由於錢包為了不影響用戶體驗和避免重複授權,此時Wallet Connect 的連接是沒有斷開的,但是此時用戶卻可能因為惡意DApp 突然發起的簽名請求彈窗而誤操作導致被釣魚轉移走資產。

動態演示GIF 如下圖:

攻擊者利用惡意DApp 釣魚網站引導用戶使用WalletConnect 與釣魚頁面連接後,然後定時不間斷發送惡意的簽名請求(如eth_sign 這種盲簽、授權簽名、針對特殊智能合約協議的交易簽名等,後面以eth_sign 作為舉例)。用戶識別到eth_sign 可能不安全拒絕簽名後,由於WalletConnect 採用wss 的方式進行連接,如果用戶沒有及時關閉連接,釣魚頁面會不斷的發起構造惡意的eth_sign 簽名彈窗請求,用戶在使用錢包的時候有很大的可能會錯誤的點擊簽署按鈕,導致用戶的資產被盜。

這個安全問題的核心是用戶切換DApp Browser 界面到其他界面後,是否應繼續自動彈窗響應來自DApp Browser 界面的請求,尤其是敏感操作請求。因為跨界面後盲目彈窗響應很容易導致用戶的誤操作。

這裡面涉及到一個安全原則:WalletConnect 連接後,錢包在檢測到用戶切換DApp Browser 界面到其他界面後,應該對來自DApp Browser 的彈窗請求不進行處理。

另外需要注意的是,雖然移動端錢包App + PC 瀏覽器的WalletConnect 連接場景也存在同樣的問題,但是用戶在這種場景下或許不那麼容易誤操作。

WalletConnect 連接後界面切換的處理情況

慢霧安全團隊抽取市面熱門搜索和下載量比較大的20 個Crypto Wallet App 進行測試:

根據上表測試結果,我們發現:

1. 部分熱門錢包App 如MetaMask、Enjin Wallet、Trust Wallet、SafePal Wallet 及iToken Wallet 等,在WalletConnect 連接後切換到其他界面時,會自動響應DApp 的請求,並彈出簽名窗口。

2. 大部分測試的錢包App 在切換界面後,對DApp 的請求不會做出響應,也不會彈出提示窗口。

3. 少數錢包App 在測試環境下無法使用WalletConnect 與DApp 連接,如Coinbase Wallet 和MEW Crypto Wallet 等。錢包的DApp 中不是很適配 WalletConnect 接口。

4. 部分錢包App 如Exodus Wallet 和Edge Wallet 在連接測試環境下未找到相關的DApp 進行測試,無法判斷其切換界面後的響應情況。

WalletConnect 釣魚風險的發現和後續

慢霧安全團隊最初在Trust Wallet 上發現這個問題,並通過Bugcrowd 漏洞提交平台向他們提交了這個問題,我們獲得了Trust Wallet 的感謝,他們表示將在下一個版本修復這個安全風險。

特別的是,如果錢包對eth_sign 這種低級簽名函數(盲簽)沒有任何風險提醒,eth_sign 這是一種非常危險的低級簽名,大大加劇了WalletConnect 這個問題釣魚的風險。

不過如果只是禁用了eth_sign 也不是完全沒有風險(本文僅是拿eth_sign 舉例說明),我們還是呼籲更多的錢包開始禁用它。以用戶數量最多的MetaMask 錢包為例,其插件端已經在2023 年2 月10 號發布的V10.25.0 版本默認禁用eth_sign,而移動端也在2023 年3 月1 號發布的版本號為6.11 開始默認不支持eth_sign,用戶需要到設置里手動打開才能使用它。

(Refer: https://github.com/MetaMask/metamask-extension/pull/17308)

(Refer: https://github.com/MetaMask/metamask-mobile/pull/5848)

不過值得一提的是,MetaMask 6.11 版本之後添加了對DApp 進行URI 請求的校驗,但是這個校驗在DApp 使用WalletConnect 進行交互的時候,同樣會進行彈窗警告,不過這個警告存在被無限制彈窗導致DoS 的風險。

總結與建議

對個人用戶來說,風險主要在“域名、簽名” 兩個核心點,WalletConnect 這種釣魚方式早已被很多惡意網站用於釣魚攻擊,使用時務必保持高度警惕。

對錢包項目方來說,首先是需要進行全面的安全審計,重點提升用戶交互安全部分,加強所見即所簽機制,減少用戶被釣魚風險,如:

  • 釣魚網站提醒:通過生態或者社區的力量匯聚各類釣魚網站,並在用戶與這些釣魚網站交互的時候對風險進行醒目地提醒和告警。

  • 簽名的識別和提醒:識別並提醒eth_sign、personal_sign、signTypedData 這類簽名的請求,並重點提醒eth_sign 盲籤的風險。

  • 所見即所簽:錢包中可以對合約調用進行詳盡解析機制,避免Approve 釣魚,讓用戶知道DApp 交易構造時的詳細內容。

  • 預執行機制:通過交易預執行機制可以幫助用戶了解到交易廣播執行後的效果,有助於用戶對交易執行進行預判。

  • 尾號相同的詐騙提醒:在展示地址的時候醒目的提醒用戶檢查完整的目標地址,避免尾號相同的詐騙問題。設置白名單地址機制,用戶可以將常用的地址加入到白名單中,避免類似尾號相同的攻擊。

  • 在交易顯示上,可以增加對小額或者無價值代幣交易的隱藏功能,避免尾號釣魚。

  • AML 合規提醒:在轉賬的時候通過AML 機制提醒用戶轉賬的目標地址是否會觸發AML 的規則。

請持續關注慢霧安全團隊,更多的釣魚安全風險分析與告警正在路上。

慢霧科技作為一家行業領先的區塊鏈安全公司,在安全審計方面深耕多年,安全審計不僅讓用戶安心,更是降低攻擊發生的手段之一。其次,各家機構由於數據孤島,難以關聯識別出跨機構的洗錢團伙,給反洗錢工作帶來巨大挑戰。而作為項目方,及時拉黑阻斷惡意地址的資金轉移也是重中之重。 MistTrack 反洗錢追踪系統積累了2 億多個地址標籤,能夠識別全球主流交易平台的各類錢包地址,包含1 千多個地址實體、超10 萬個威脅情報數據和超9 千萬個風險地址,如有需要可聯繫我們接入API。最後希望各方共同努力,一起讓區塊鏈生態更美好。

Total
0
Shares
Related Posts