最近有个新闻,由于Permit签名网络钓鱼攻击,某地址损失了 12,083.6 枚spWETH,价值约 3233 万美元,该受害钱包可能与Cobo联合创始人兼 CEO 神鱼有关。

神鱼也算是区块链领域的老人了,也中招Permit签名钓鱼。你说一个区块链从业人员,一个数字钱包cobo创始人钱包被盗,丢不丢人?这要是放在古代稍微有点羞耻心都是要切腹谢罪的那种。宝宝心里苦,但是宝宝不说,当作无事发生也算是最尴尬的回应了。

【为什么会中招】

很多人都有这个固化思维,认为我没做代币的approve授权,没有支付gas上链,我的资产就是安全的。

这个是旧思维只在2023年前有效。EIP-2612引入Permit后就不成立了。这个方案是把双刃剑,你可以说是技术升级,也可以说技术漏洞。这个漏洞一般需要应用层钱包软件来补,没补之前需要用户自己睁大眼睛。

ok钱包前天的公告,显著提示permit授权

【如何防范】

文中提到的Permit签名今天这里不做技术分析,这里只介绍怎么防范。撸毛人只要记住下面方法,就可以彻底远离被盗风险。

Permit签名都是以下格式,如果你在登录dapp,检查空投等链接钱包的行为时,出现下面弹窗,就是要被盗号钓鱼了,全部点击拒绝:

  • Interactive:交互网址

  • Owner:授权方地址

  • Spender:被授权方地址

  • Value:授权数量

  • Nonce:随机数

  • Deadline:过期时间

两种Permit签名,全部点击拒绝

正常签名种是没有这些消息的,如下图:

正常链接钱包签名

再补充一点,如果不小心签了也不用过于惊慌失措,不是所有资产黑客都能盗走。只有代币合约支持permit方法的代币(也叫:具备许可代币)才能被盗走。其他资产例如ETH和USDT,USDC等,黑客只有干瞪眼,钓着鱼等着你哪天转为【具备许可代币】他才能操作。你需要做就是即时转走你的资产即可。

你的钱包里哪些是代币是【具备许可代币】可以用revoke.cash查询(很多再质押的代币例如METH,PUFETH,还有文中神鱼的spWETH就是具备permit的代币):

查看具备permit的代币方法

最后再次提醒,permit签名和正常签名一样是在链接钱包时进行,不要gas,没有上链的。授权里是看不到的,签名信息被黑客存储服务器了。你不小心签了,黑客就会耐心等着你钱包有钱后转走,一定要睁大眼睛看清楚。