📢 Gate廣場 #NERO发帖挑战# 秀觀點贏大獎活動火熱開啓!
Gate NERO生態周來襲!發帖秀出NERO項目洞察和活動實用攻略,瓜分30,000NERO!
💰️ 15位優質發帖用戶 * 2,000枚NERO每人
如何參與:
1️⃣ 調研NERO項目
對NERO的基本面、社區治理、發展目標、代幣經濟模型等方面進行研究,分享你對項目的深度研究。
2️⃣ 參與並分享真實體驗
參與NERO生態周相關活動,並曬出你的參與截圖、收益圖或實用教程。可以是收益展示、簡明易懂的新手攻略、小竅門,也可以是行情點位分析,內容詳實優先。
3️⃣ 鼓勵帶新互動
如果你的帖子吸引到他人參與活動,或者有好友評論“已參與/已交易”,將大幅提升你的獲獎概率!
NERO熱門活動(帖文需附以下活動連結):
NERO Chain (NERO) 生態周:Gate 已上線 NERO 現貨交易,爲回饋平台用戶,HODLer Airdrop、Launchpool、CandyDrop、餘幣寶已上線 NERO,邀您體驗。參與攻略見公告:https://www.gate.com/announcements/article/46284
高質量帖子Tips:
教程越詳細、圖片越直觀、互動量越高,獲獎幾率越大!
市場見解獨到、真實參與經歷、有帶新互動者,評選將優先考慮。
帖子需原創,字數不少於250字,且需獲得至少3條有效互動
Uniswap Permit2籤名釣魚新騙局:一次籤名資產即被盜
揭祕Uniswap Permit2籤名釣魚騙局:只要籤名就會被盜
黑客一直是Web3生態系統中令人畏懼的存在。對項目方而言,代碼開源的特性使他們在開發時如履薄冰,生怕一行代碼錯誤就留下漏洞。對個人用戶來說,如果不了解正在進行的操作含義,每次鏈上交互或籤名都可能導致資產被盜。因此,安全問題一直是加密世界最棘手的問題之一。由於區塊鏈的特性,一旦資產被盜幾乎無法追回,所以在加密世界中掌握安全知識尤爲重要。
最近,發現了一種近兩個月開始活躍的新型釣魚手法,只需籤名就會被盜,手法極其隱蔽且難以防範。而且,曾經使用過Uniswap交互的地址都可能面臨風險。本文將對這種籤名釣魚手法進行科普,以盡量避免更多人遭受資產損失。
事件經過
最近,一位朋友(暫稱小A)的錢包資產被盜。與常見被盜方式不同,小A並未泄露私鑰,也沒有與釣魚網站的合約進行交互。
通過區塊鏈瀏覽器可以看到,小A錢包被盜的USDT是通過Transfer From函數轉移的。這意味着這筆被盜資產是由另一個地址操作轉移的,而非錢包私鑰泄露。
查詢交易細節發現一些關鍵線索:
那麼問題來了,尾號fd51的地址是如何獲得這筆資產的權限的?爲什麼會與Uniswap有關?
首先需要知道,要成功調用Transfer From函數,前提是調用方需要擁有該Token的額度權限,即approve。當我們使用一些Dapp時,只要涉及資產轉移就需要先進行授權(approve)操作,這樣Dapp的合約才有權限對我們的資產進行轉移。
答案就在尾號fd51地址的交互記錄中。在該地址進行Transfer From轉走小A資產之前,還進行了一個Permit操作,這兩個操作的交互對象都是Uniswap的Permit2合約。
Uniswap Permit2合約是Uniswap在2022年底推出的新智能合約。根據官方說法,這是一個代幣審批合約,允許在不同應用程序中共享和管理代幣授權,旨在創造更統一、更具成本效益、更安全的用戶體驗。
隨着越來越多項目與Permit2集成,它可以在所有應用程序中實現標準化Token批準。Permit2將通過降低交易成本來改善用戶體驗,同時提高智能合約的安全性。
Permit2的推出可能改變整個Dapp生態的遊戲規則。簡單來說,傳統方法是每次與Dapp進行資產轉移交互都需要授權,而Permit2可以省去這個步驟,有效降低用戶交互成本,帶來更好的用戶體驗。
Permit2作爲用戶和Dapp之間的中間人,用戶只需將Token權限授權給Permit2合約,所有集成Permit2合約的Dapp都可以共享這個授權額度。對用戶來說,減少了交互成本並提高了體驗;對Dapp來說,用戶體驗的提升帶來更多用戶和資金,本是雙贏局面。但這也可能是一把雙刃劍,問題出在與Permit2的交互方式上。
在傳統交互方式中,不管是授權還是資金轉移,對操作用戶來說都是鏈上交互。而Permit2將用戶操作變爲鏈下籤名,所有鏈上操作都由中間角色(如Permit2合約和集成Permit2的項目方等)完成。這種方案的好處是,由於鏈上交互角色從用戶轉爲中間角色,即使用戶錢包裏沒有ETH也可以使用其他Token支付Gas費或完全由中間角色報銷,取決於中間角色的選擇。
雖然Permit2的出現可能改變未來Dapp的遊戲規則,但這是一把很強的雙刃劍。對用戶而言,鏈下籤名是最容易放松警惕的環節。比如當我們用錢包登入某些Dapp時需要籤名連接,大多數人並不會仔細檢查籤名內容也不理解其含義,這正是最危險之處。
了解了Permit2合約後,回到小A的事件中就明白了爲什麼資產被盜都是與Permit2合約交互。重現這個Permit2籤名釣魚手法,首先一個關鍵前提是被釣魚的錢包需要有Token授權給Uniswap的Permit2合約。目前只要在與Permit2集成的Dapp或Uniswap上進行Swap,都需要授權給Permit2合約。
另一個令人擔憂的點是,無論要Swap的金額多少,Uniswap的Permit2合約都會默認讓用戶授權該Token全部餘額的額度。雖然MetaMask允許自定義輸入金額,但大多數人可能直接點擊最大或默認值,而Permit2的默認值是無限額度。
這意味着,只要你在2023年之後與Uniswap有過交互並授權額度給Permit2合約,就可能暴露在這個釣魚騙局的風險中。
關鍵在於之前在尾號fd51地址中與Permit2合約交互的Permit函數。簡單說,這個函數利用你的錢包將你授權給Permit2合約的Token額度轉移給其他地址。也就是說,只要獲得你的籤名,黑客就可以拿到你錢包中Token的權限並轉移你的資產。
事件詳細分析
permit函數:
permit函數類似於在線簽署合同。它允許你(PermitSingle)提前簽署一個"合同",允許其他人(spender)在未來某個時間使用你的一些代幣。
你還需要提供籤名(signature),就像在紙質合同上籤名,證明這個"合同"確實是你簽署的。
函數工作流程:
重點主要在verify函數和_updateApproval函數。
verify函數:
verify函數從籤名信息參數中獲取v、r、s三個數據。v、r、s是交易籤名的值,可用於恢復交易籤名地址。合約恢復交易籤名地址後,與傳入的代幣擁有者地址比較,如相同則驗證通過,繼續調用_updateApproval函數;如不同則回滾交易。
_updateApproval函數:
通過籤名校驗後,調用_updateApproval函數更新授權值,意味着你的權限發生轉移。此時,被授權方可調用transferfrom函數將代幣轉移到指定地址。
查看鏈上真實交易細節可發現:
回顧小A的交互記錄,發現小A之前使用Uniswap時點擊了默認授權額度,即幾乎無限的額度。
簡單復盤:小A之前使用Uniswap時授權給Uniswap Permit2無限的USDT額度。小A在錢包操作時不慎陷入黑客設計的Permit2籤名釣魚陷阱。黑客獲得小A籤名後,在Permit2合約中進行Permit和Transfer From兩個操作,轉移了小A的資產。目前觀察到Uniswap的Permit2合約已成爲釣魚天堂,這種Permit2籤名釣魚似乎在兩個月前開始活躍。
交互記錄中可見,大部分是被標記的釣魚地址(Fake_Phishing),不斷有人上當。
如何防範?
考慮到Uniswap Permit2合約可能在未來更加普及,更多項目將集成Permit2合約進行授權共享,有效的防範手段包括:
1. 理解並識別籤名內容:
Permit的籤名格式通常包含Owner、Spender、value、nonce和deadline等關鍵格式。如果想享受Permit2帶來的便利和低成本,一定要學會識別這種籤名格式。(下載安全插件是個不錯的選擇)
2. 分離資產存儲和交互錢包:
如果擁有大量資產,建議將資產存放在冷錢包中,鏈上交互的錢包只保留少量資金,可大幅減少遇到釣魚騙局時的損失。
3. 限制授權給Permit2合約的額度或取消授權:
在Uniswap上進行Swap時,只授權交互所需金額。雖然每次交互都需要重新授權會增加一些交互成本,但可避免遭受Permit2的籤名釣魚。如果已經授權了額度,可以使用相應的安全插件進行取消授權。
4. 識別代幣性質,了解是否支持permit功能:
未來可能會有越來越多ERC20代幣使用該擴展協議實現permit功能。需要關注自己持有的代幣是否支持該功能,如果支持,對該代幣的交易或操作要格外小心,嚴格檢查每條未知籤名是否是對permit函數的籤名。
5. 被騙後如有代幣存在其他平台,需制定完善的拯救計劃:
發現被詐騙,代幣被黑客轉移後,如果還有代幣通過質押等方式存在其他平台上需要提取並轉移到安全地址,要知道黑客可能隨時監控你的地址代幣餘額。因爲他擁有你的籤名,只要被盜地址上出現代幣,黑客就可以直接轉移。這時需要制定完善的代幣拯救過程,在提取代幣和轉移代幣兩個過程需要一起執行,不讓黑客交易插入其中。可以使用MEV轉移,這需要一些區塊鏈知識和編程能力,也可以尋求專業安全公司的幫助,利用交易搶跑腳本來實現。
未來基於Permit2的釣魚可能會越來越多,這種籤名釣魚方式極其隱蔽且難以防範。隨着Permit2應用範圍擴大,暴露在風險中的地址也會增多。希望看到本文後能夠傳播給更多人,避免更多人遭受損失。