9 月 28 日,Lookonchain 发文披露,由于网络钓鱼攻击,某地址损失了 12,083.6 枚 spWETH(约合 3233 万美元)。Arkham 称该钱包可能与 Cobo 联合创始人兼 CEO 神鱼 ( @bitfish1 ) 有关。目前,神鱼暂未对此做出回应。今日,据 Lookonchain 报道,某地址(可能与 @ContinueFund 有关)在 6 小时前通过签署「Permit」钓鱼签名损失了 15079 fwDETH(价值 3600 万美元)。Permit 签名钓鱼为何如此厉害,连圈内大佬也接连中招?本文对此进行了详细科普。BlockBeats 再次提醒用户,请不要点击任何未知的链接,也不要签署任何未知签名。
据 GoPlus 安全团队监测,当下钓鱼攻击成为 Web3 个人用户损失最多的主要风险,通常攻击者模仿官方推特、Telegram、邮件、Discord 回复或私聊用户用 Claim 空投、退款、福利活动引诱用户点击钓鱼网站链接,然后在钱包通过「Permit」签名等将用户授权资产盗走。这是一种采用 EIP-2612 离线签名授权标准,允许用户无需拥有 Eth 来支付 Gas 费即可进行批准,能够简化了用户的审批流程,降低手动审批流程导致的错误或延迟的风险,但也成为了当前钓鱼攻击的常用方式。
什么是 Permit 签名
简单说,过去我们需要 Approve 后才可以将代币转给别的合约,但如果合约支持 Permit,可以通过 Permit 离线签名,跳过 Approve 且无需支付 gas 的方式进行授权,进行授权后第三方就拥有了相应控制权,随时可以转走用户授权的资产。
Alice 使用链下签名向协议进行授权,协议调用 Permit 上链拿到授权,然后可以调用 TransferFrom 转移相应资产。
1. 交易中附加 permit 签名进行交互,无需预先 approve
2. 链下签名,链上操作由被授权地址操作,只能在被授权地址查看授权交易
3. 要求将相关方法写入 ERC20 代币合约内,EIP-2612 之前发布的 token 不支持
钓鱼攻击者伪造好钓鱼网站后会利用 Permit 签名获取用户授权,Permit 签名通常包含了:
Interactive:交互网址
Owner:授权方地址
Spender:被授权方地址
Value:授权数量
Nonce:随机数(防重放)
Deadline:过期时间
用户一旦签署了 Permit 签名,Spender 就可以在 Deadline 内转移相应 Value 的资产。
如何防范 Permit 签名钓鱼攻击
1、不要点击任何陌生、不信任的链接,始终要反复确认正确的官方渠道信息。
2、打开任何网站如果唤醒钱包签名确认弹窗,不要着急点确认,耐心仔细的阅读 Singnature request 上方出现的交互网址和签名内容,一般出现陌生网址和 Permit 包含 Spender 、Value 的 Permit 信息,直接点击【拒绝】可避免资产损失。
3、当登录注册时唤醒的【消息签名】弹窗才是安全可以点击的确认操作,参考样式如下: