# 揭祕Uniswap Permit2籤名釣魚騙局黑客是Web3生態中令人恐懼的存在。對項目方而言,代碼開源意味着全球黑客都可能盯上你,寫錯一行代碼就可能留下漏洞,安全事故後果嚴重。對個人用戶來說,如果不了解自己的操作含義,每次鏈上交互或籤名都可能導致資產被盜。因此安全問題一直是加密世界最棘手的問題之一。由於區塊鏈的特性,一旦資產被盜幾乎無法追回,所以在加密世界中具備安全知識尤爲重要。近期發現了一種近兩個月開始活躍的新釣魚手法,只要籤名就會被盜,手法極其隱蔽且難以防範,並且用過Uniswap交互的地址都可能面臨風險。本文將對這種籤名釣魚手法進行科普,以盡量避免更多的資產損失。### 事件經過最近,一位朋友(小A)錢包裏的資產被盜。與常見被盜方式不同,小A並未泄露私鑰也沒有與釣魚網站的合約交互。調查發現,小A錢包被盜的USDT是通過Transfer From函數轉移的,這意味着是另一個地址操作將Token轉走的,而非錢包私鑰泄露。通過查詢交易細節,發現關鍵線索:- 一個地址將小A的資產轉移到另一個地址- 這個操作是與Uniswap的Permit2合約交互的問題在於,這個地址是如何獲得資產權限的?爲什麼與Uniswap有關?調用Transfer From函數的前提是調用方需要擁有Token的額度權限(approve)。答案在於執行Transfer From前,該地址還進行了一個Permit操作,兩個操作都與Uniswap的Permit2合約交互。Uniswap Permit2合約是Uniswap在2022年底推出的新合約,允許代幣授權在不同應用程序中共享和管理,旨在創造更統一、更具成本效益、更安全的用戶體驗。隨着更多項目集成Permit2,它可以在所有應用中實現標準化Token批準,通過降低交易成本改善用戶體驗,同時提高智能合約安全性。Permit2的推出可能改變整個Dapp生態的遊戲規則。傳統方法中,每次與Dapp進行資產轉移交互都需要單獨授權。而Permit2可以省去這個步驟,有效降低用戶交互成本,帶來更好的用戶體驗。Permit2作爲用戶和Dapp間的中間人,用戶只需將Token權限授權給Permit2合約,所有集成Permit2的Dapp都可共享這個授權額度。這本是雙贏局面,但也可能是雙刃劍,問題出在與Permit2的交互方式上。傳統交互方式中,授權和資金轉移對用戶而言都是鏈上交互。Permit2將用戶操作變爲鏈下籤名,所有鏈上操作由中間角色(如Permit2合約和集成Permit2的項目方)完成。這帶來的好處是,即使用戶錢包沒有ETH也可使用其他Token支付Gas費或由中間角色報銷。然而,鏈下籤名是用戶最容易放松警惕的環節。許多人在用錢包登入Dapp時不會仔細檢查籤名內容,也不理解其含義,這是最危險之處。要使用這個Permit2籤名釣魚手法,關鍵前提是被釣魚的錢包需要有Token授權給Uniswap的Permit2合約。目前只要在與Permit2集成的Dapp或Uniswap上進行Swap,都需要授權給Permit2合約。更可怕的是,無論Swap金額多少,Uniswap的Permit2合約都會默認讓用戶授權該Token全部餘額的額度。盡管MetaMask允許自定義輸入金額,但大多數人可能直接選擇最大或默認值,而Permit2的默認值是無限額度。這意味着,只要你在2023年之後與Uniswap有過交互並授權額度給Permit2合約,就可能暴露在這個釣魚騙局的風險之下。重點在於Permit函數,它可以利用你的錢包將授權給Permit2合約的Token額度轉移給其他地址。只要獲得你的籤名,黑客就可以獲取你錢包中Token的權限並轉移你的資產。### 如何防範?考慮到Uniswap Permit2合約可能在未來更加普及,更多項目可能集成Permit2合約進行授權共享,有效的防範手段包括:1. 理解並識別籤名內容: Permit的籤名格式通常包含Owner、Spender、value、nonce和deadline等關鍵字段。如果想享受Permit2帶來的便利和低成本,必須學會識別這種籤名格式。使用安全插件是個不錯的選擇。2. 分離資產存儲和交互錢包: 建議將大量資產存儲在冷錢包中,鏈上交互的錢包只存放少量資金,可大幅減少遇到釣魚騙局時的損失。3. 限制授權額度或取消授權: 在Uniswap上進行Swap時,只授權所需交互的金額。雖然每次交互都需要重新授權會增加一些成本,但可以避免遭受Permit2籤名釣魚。如果已經授權了額度,可以使用安全插件進行取消授權。4. 識別代幣性質,了解是否支持permit功能: 隨着越來越多ERC20代幣可能使用該擴展協議實現permit功能,需要關注自己持有的代幣是否支持該功能。如果支持,對該代幣的交易或操作要格外小心,嚴格檢查每條未知籤名是否涉及permit函數。5. 制定完善的資產拯救計劃: 如果發現被詐騙,但還有代幣通過質押等方式存在其他平台,需要提取並轉移到安全地址時,要注意黑客可能隨時監控你的地址餘額。由於黑客擁有你的籤名,只要被盜地址上出現代幣,就可能被立即轉移。需要制定周密的代幣拯救計劃,確保提取和轉移過程同步執行,不給黑客交易插入的機會。可以考慮使用MEV轉移或尋求專業安全公司的幫助。未來基於Permit2的釣魚可能會越來越多,這種籤名釣魚方式極其隱蔽且難以防範。隨着Permit2應用範圍擴大,暴露在風險中的地址也會增多。希望讀者能將這些信息傳播給更多人,避免更多人遭受損失。
Uniswap Permit2新型籤名釣魚手法:機制、風險與防範
揭祕Uniswap Permit2籤名釣魚騙局
黑客是Web3生態中令人恐懼的存在。對項目方而言,代碼開源意味着全球黑客都可能盯上你,寫錯一行代碼就可能留下漏洞,安全事故後果嚴重。對個人用戶來說,如果不了解自己的操作含義,每次鏈上交互或籤名都可能導致資產被盜。因此安全問題一直是加密世界最棘手的問題之一。由於區塊鏈的特性,一旦資產被盜幾乎無法追回,所以在加密世界中具備安全知識尤爲重要。
近期發現了一種近兩個月開始活躍的新釣魚手法,只要籤名就會被盜,手法極其隱蔽且難以防範,並且用過Uniswap交互的地址都可能面臨風險。本文將對這種籤名釣魚手法進行科普,以盡量避免更多的資產損失。
事件經過
最近,一位朋友(小A)錢包裏的資產被盜。與常見被盜方式不同,小A並未泄露私鑰也沒有與釣魚網站的合約交互。調查發現,小A錢包被盜的USDT是通過Transfer From函數轉移的,這意味着是另一個地址操作將Token轉走的,而非錢包私鑰泄露。
通過查詢交易細節,發現關鍵線索:
問題在於,這個地址是如何獲得資產權限的?爲什麼與Uniswap有關?
調用Transfer From函數的前提是調用方需要擁有Token的額度權限(approve)。答案在於執行Transfer From前,該地址還進行了一個Permit操作,兩個操作都與Uniswap的Permit2合約交互。
Uniswap Permit2合約是Uniswap在2022年底推出的新合約,允許代幣授權在不同應用程序中共享和管理,旨在創造更統一、更具成本效益、更安全的用戶體驗。隨着更多項目集成Permit2,它可以在所有應用中實現標準化Token批準,通過降低交易成本改善用戶體驗,同時提高智能合約安全性。
Permit2的推出可能改變整個Dapp生態的遊戲規則。傳統方法中,每次與Dapp進行資產轉移交互都需要單獨授權。而Permit2可以省去這個步驟,有效降低用戶交互成本,帶來更好的用戶體驗。
Permit2作爲用戶和Dapp間的中間人,用戶只需將Token權限授權給Permit2合約,所有集成Permit2的Dapp都可共享這個授權額度。這本是雙贏局面,但也可能是雙刃劍,問題出在與Permit2的交互方式上。
傳統交互方式中,授權和資金轉移對用戶而言都是鏈上交互。Permit2將用戶操作變爲鏈下籤名,所有鏈上操作由中間角色(如Permit2合約和集成Permit2的項目方)完成。這帶來的好處是,即使用戶錢包沒有ETH也可使用其他Token支付Gas費或由中間角色報銷。
然而,鏈下籤名是用戶最容易放松警惕的環節。許多人在用錢包登入Dapp時不會仔細檢查籤名內容,也不理解其含義,這是最危險之處。
要使用這個Permit2籤名釣魚手法,關鍵前提是被釣魚的錢包需要有Token授權給Uniswap的Permit2合約。目前只要在與Permit2集成的Dapp或Uniswap上進行Swap,都需要授權給Permit2合約。
更可怕的是,無論Swap金額多少,Uniswap的Permit2合約都會默認讓用戶授權該Token全部餘額的額度。盡管MetaMask允許自定義輸入金額,但大多數人可能直接選擇最大或默認值,而Permit2的默認值是無限額度。
這意味着,只要你在2023年之後與Uniswap有過交互並授權額度給Permit2合約,就可能暴露在這個釣魚騙局的風險之下。
重點在於Permit函數,它可以利用你的錢包將授權給Permit2合約的Token額度轉移給其他地址。只要獲得你的籤名,黑客就可以獲取你錢包中Token的權限並轉移你的資產。
如何防範?
考慮到Uniswap Permit2合約可能在未來更加普及,更多項目可能集成Permit2合約進行授權共享,有效的防範手段包括:
分離資產存儲和交互錢包: 建議將大量資產存儲在冷錢包中,鏈上交互的錢包只存放少量資金,可大幅減少遇到釣魚騙局時的損失。
限制授權額度或取消授權: 在Uniswap上進行Swap時,只授權所需交互的金額。雖然每次交互都需要重新授權會增加一些成本,但可以避免遭受Permit2籤名釣魚。如果已經授權了額度,可以使用安全插件進行取消授權。
識別代幣性質,了解是否支持permit功能: 隨着越來越多ERC20代幣可能使用該擴展協議實現permit功能,需要關注自己持有的代幣是否支持該功能。如果支持,對該代幣的交易或操作要格外小心,嚴格檢查每條未知籤名是否涉及permit函數。
制定完善的資產拯救計劃: 如果發現被詐騙,但還有代幣通過質押等方式存在其他平台,需要提取並轉移到安全地址時,要注意黑客可能隨時監控你的地址餘額。由於黑客擁有你的籤名,只要被盜地址上出現代幣,就可能被立即轉移。需要制定周密的代幣拯救計劃,確保提取和轉移過程同步執行,不給黑客交易插入的機會。可以考慮使用MEV轉移或尋求專業安全公司的幫助。
未來基於Permit2的釣魚可能會越來越多,這種籤名釣魚方式極其隱蔽且難以防範。隨着Permit2應用範圍擴大,暴露在風險中的地址也會增多。希望讀者能將這些信息傳播給更多人,避免更多人遭受損失。