作者:Biteye,來源:作者推特@BiteyeCN

9月28日,一地址由於網絡釣魚攻擊損失約 3233 萬美元,該地址據傳可能與幣圈大佬神魚相關。無獨有偶,10月11日,一筆價值 3500 萬美元的 fwDETH 資產再次被釣魚團伙竊取。短短半月內,已有總價值超過 4.7 億人民幣的虛擬資產因 Permit 簽名釣魚攻擊而難以追回。

Permit 簽名釣魚爲何如此厲害?就連幣圈大佬也接連中招?

什麼是 Permit 簽名?

爲了理解 Permit 簽名的引入,首先需要掌握 ERC20 幣種的交易規則:賬戶A可以調用 approve 函數授權賬戶 B 操作指定的代幣,且只有代幣的擁有者才能調用此函數。

Permit 是一種利用離線簽名來實現授權的機制,它允許跳過 approve 步驟且不需支付 gas 費。在此過程中,A 提前在鏈下對 B 進行簽名,並將這個簽名提供給 B;B 隨後可使用此簽名通過調用 permit 函數來執行 A 的授權操作,這允許 B 使用 transferFrom 進行代幣轉賬。

通過 Permit,A 能在不進行任何鏈上交易的情況下實施代幣轉移,且執行 permit 的操作不限於賬戶的擁有者。Permit 在 ERC20 協議的 EIP-2612 提案中被正式引入,爲用戶提供了一種既便捷又節省成本的交互方式。

Permit 簽名是怎麼被用來實施釣魚攻擊的?

根據上述的介紹,當用戶誤入釣魚網站,點擊鏈接被黑客獲取了簽名,隨後黑客用簽名信息上鍊提交 permit ,實現對用戶資產的控制並進行轉移。

攻擊步驟:進入釣魚網站-在釣魚網站上鍊接錢包進行了簽名-黑客獲取簽名通過 permit 竊取資產

例如,下面是一個釣魚網站的惡意簽名:圖片最上方顯示這是一個 zksync 的釣魚網站,下方的 permit 簽名顯示該錢包(owner)正在授權給一個地址(spender),往下的 value 是授權的代幣數量,deadline 是時間戳,在給定時間前均有效。

如何避免 Permit 簽名釣魚攻擊

Permit 簽名釣魚攻擊並非完全不可預防,大多數用戶遭受損失都曾接連犯下多個安全錯誤。

首先,用戶應將囤幣的錢包和 DeFi 交互的錢包區分開,在鏈接錢包、簽名或授權前認真檢查網址,確保自己進入了正確的網站;

一些網站也會出現合約被黑客惡意替換的情況,我們在點擊簽名或授權前,應該認真閱讀錢包跳出的 Singnature request 信息,確保授權目前地址正確,且資產和金額在可控範圍內;

最後,我們可以通過安全插件如 @wallet_guard @realScamSniffer 來幫助識別異常風險,不定期使用授權工具如 RevokeCash(https://revoke.cash)查看是否有異常授權。同時,選擇使用如 @Rabby_io 等插件錢包,也可以獲得更具可讀性的簽名信息。