Permit:一個平平無奇的簽名如何騙走你的資產?

作者:OneKey 中文來源:X,@OneKeyCN

自測一下,你是不是還認為:只要不是發起交易,我簽個名「連結登陸」網站,就不會失去資產?

如果你點頭了,那可能你的安全意識停留在了21 年前。

從Scam Sniffer 公佈的24 年3 月釣魚報告*來看,90% 的被釣魚資產為ERC-20 代幣。而這其中主要的釣魚方式就是Permit / Permit2 釣魚簽名。

光是今年3 月中旬,就有4 筆價值平均資產約$2M 的被盜交易,其中3 筆都是被Permit 釣魚簽名盜走的Pendle PT 本金代幣。

從受害者的角度,這簡直就是一部恐怖片——某天突然發現資產被轉走,檢查了一圈以為是私鑰被盜了,最後才發現是曾經一個不經意的離線簽名,無可奈何。

而這一切,本來可以被避免。

一句話說明白Permit / Permit2

為了節省時間,OneKey 在這裡不會講太多EIP-2612 引進Permit 或Uniswap 推出Permit2 的加密「課本知識」。 (可能你光看這句話就開始頭痛了)

你只需要意識到:時代變了,「濃眉大眼」的簽名也不簡單。

你可以直接粗暴地理解為- 現在不少ERC-20 的代幣授權將透過一個「中介」來管理。

在以前,你的代幣額度,是一個個授權(Approve)給每個dApp 合約的。而每一次授權,都需要花費Gas。

而現在,透過Permit / Permit2 技術(已經有相當數量的dApp 採用),你只需要把代幣授權給Permit / Permit2 這個「中介」。

整合了這個技術的dApp 都可以要求用這個授權額度——只需要簡單簽個名就能授權給它們(甚至是批量的),不需要一次又一次花費Gas 授權。

一把雙面刃

這類型的簽章升級,雖然對於跨應用程式操作帶來了便利並節省成本,有各式各樣的好處。但是也留下了一些隱憂。

其危險之處就在於,上一輪牛市,加密用戶們已經養成了「登錄Dapp 需要簽名進行連接」的操作習慣,並且默認普通簽名就是安全的、毫無防備之心。

殊不知,新版的簽名如果不注意區分(盲簽),就會中招釣魚。這對於用戶安全意識和各種基礎設施如錢包,提出了新的挑戰。

對駭客來說,那就是可以更好地「借刀殺人」了。

攻擊者只需要部署一個釣魚合約,向你獲取一個Permit 授權簽名,即可隨後提交一個盜走你資產的交易(甚至可以等過幾天你忘記了這件事再提交)。並且, Permit2 還可以讓駭客批量取得你全部的已授權代幣的權限。

例如最近SlowMist 創辦人餘弦分享的這個案例(https://x.com/evilcos/status/1771338665052287307),某用戶在質押期間被簽名釣魚了相關代幣的授權,而自己一無所知(也沒有注意檢查),駭客在其提出代幣到自己錢包的時候,立刻盜走了資產,損失慘重。

從偽裝手段來看,似乎釣魚也變得更簡單了一些。他們完全可以做一個「空投檢查」網站,讓你「連結錢包」查看空投。或者是,做一個工具網站讓你登陸,以滿足你在某些熱點事件/專案中的需求。花樣無窮無盡。而使用過程中,你很可能就被誘導做了Permit / Permit2 類型的簽章。

展望未來,隨著以太坊推進帳戶抽象(EIP-3074 正式納入下次Pectra 硬分叉升級),你甚至還可以直接授權整個地址控制權限給一個合約,讓合約地址直接操作用戶的錢包地址。這也一樣會在便利的同時引入新的釣魚風險。

當然,這是後話了。

如何這種類型的釣魚預防?有後悔藥嗎?

關於Permit / Permit2 釣魚的預防方法,已經有無數的推文、文章寫過。在這裡我們也是不厭其煩地再次總結──這很值得。

1.不要盲簽

就和現實世界裡的有法律效力的合約一樣,沒有人會隨意給自己的簽名。

識別偽裝的釣魚網站屬於是加密安全的基操了。而陌生土狗網站的「登陸請求」也一樣要小心,駭客會想盡辦法

偽裝按鈕的意圖,誘騙你簽名。

大家常用的小狐狸是可以辨識Permit/ Permit2 簽名的,如果你互動的dAPP 彈出了這個類型的簽名,那最好再三確認你是否要授權相關的代幣。如果只是普通的簽署訊息,是不可能彈出特別類型的簽名的。

除了Permit 類別之外,還有increaseAllowance、多dApp 組合操作甚至是0x 開頭的完全無可讀性的各種簽名,都有可能危害到你的資產安全。

總之,如果不清楚彈出來的簽名的內容和後果,一定要慎之又慎,尤其是錢包內的資產比較多的情況。

2.乾濕分離

常在河邊走,哪有不濕鞋。

喜歡在小網站「無視風險警告」打土狗的你,如果實在要經常發生「高危險行為」,那就做好資產的隔離。

常用於互動的小錢包,不存放大量資產。舉個不太恰當的比喻,你外出隨意逛街的時候,一定不會把家當帶在身上,錢包裡只會放一些小錢。

並且每隔一段時間,就換整理資產、換新錢包,以及取消授權和簽名,盡可能降低自己的風險敞口。

對於存放大量資產的錢包,就不要隨意「連結」網站。或者就乾脆放在硬體錢包冷保存,需要地時候專門轉出互動。這也是老生常談的預防釣魚的方式了。

3、檢查授權

如果不是高強度使用,在第一次授權Permit / Permit2 代幣額度的時候,建議選擇按需授權。也就是使用多少授權多少,而不是預設的最大(無限)額度。

已經授權了Permit / Permit2 無限額度的,也是有後悔藥可以吃。你可以在http://Revoke.Cash 檢查自己的代幣授權風險敞口——你會明確地看到某個代幣授權給Permit / Permit2 多少額度。

該工具也支援取消簽名,你也可以在其中找到簽名來取消(在駭客啟動相關簽名偷走你的資產之前)。

要注意的是,Permit 類型的簽名是一種離線簽名,在被使用之前,鏈上是沒有痕跡的(駭客通常會在伺服器上儲存這些偷來的簽名)。

定期使用工具檢查授權與簽名是個好習慣。

結語

如果你不幸中招了,最好及時尋求專業安全團隊如SlowMist 的幫助,及時轉移資產和亡羊補牢,把損失最小化。甚至是用一些技術手段來搶救資產。

值得注意的是,這些簽名釣魚已經趨向專業化、產業化,分工分贓物明確。如果資產已經被專業的Drainer 駭客團隊轉移並洗錢,很大的機率是拿不回來的!所以還得是防患於未然,不讓他們有任何可趁之機。

Total
0
Shares
Related Posts