Permit2签名钓鱼新手法 资产安全风险需警惕

robot
摘要生成中

揭秘Uniswap Permit2签名钓鱼骗局

黑客是Web3生态中令人闻风丧胆的存在。对项目方而言,开源代码使他们战战兢兢,生怕一行错误代码留下漏洞。对个人用户来说,每次链上交互或签名都可能导致资产被盗。因此安全问题一直是加密世界的痛点之一。由于区块链的特性,被盗资产几乎无法追回,所以具备安全知识尤为重要。

近期,一位研究者发现了一种新型钓鱼手法,仅需签名就可能导致资产被盗。这种手法极其隐蔽且难以防范,并且曾与某交易平台交互过的地址都可能面临风险。本文将对这种签名钓鱼手法进行科普,以尽量避免更多资产损失。

事件经过

最近,一位朋友(小A)的钱包资产被盗。不同于常见被盗方式,小A并未泄露私钥也未与钓鱼网站合约交互。

区块链浏览器显示,小A钱包中的USDT是通过Transfer From函数转移的。这意味着是另一个地址操作将Token转走,而非钱包私钥泄露。

签名就被盗?揭秘Uniswap Permit2签名钓鱼骗局

交易细节揭示了关键线索:

  • 一个地址将小A的资产转移到另一地址
  • 这个操作是与某交易平台的Permit2合约交互的

问题在于,这个地址是如何获得资产权限的?为何与某交易平台有关?

要调用Transfer From函数,前提是调用方需要拥有Token的额度权限(approve)。在该地址转走小A资产之前,还进行了一个Permit操作,两个操作都与某交易平台的Permit2合约交互。

签名就被盗?揭秘Uniswap Permit2签名钓鱼骗局

Permit2是某交易平台2022年底推出的新合约,允许代币授权在不同应用间共享管理,旨在创造更统一、更具成本效益、更安全的用户体验。随着更多项目集成,Permit2有望在所有应用中实现Token批准标准化,降低交易成本并提高智能合约安全性。

Permit2的推出可能改变Dapp生态规则。传统方式下用户每次与Dapp交互都需授权,而Permit2可省去这一步骤,有效降低用户交互成本。Permit2作为用户和Dapp间的中间人,用户只需授权给Permit2合约,所有集成该合约的Dapp都可共享授权额度。

签名就被盗?揭秘Uniswap Permit2签名钓鱼骗局

然而,这也是一把双刃剑。Permit2将用户操作变为链下签名,所有链上操作由中间角色完成。这使得即使用户钱包没有ETH也可使用其他Token支付Gas费或由中间角色报销。但链下签名也是用户最容易忽视的环节,大多数人不会仔细检查签名内容。

要使用这种钓鱼手法,关键前提是被钓鱼钱包需已授权Token给Permit2合约。目前只要在集成Permit2的Dapp或某交易平台上进行Swap,都需要授权给Permit2合约。

更可怕的是,无论Swap金额多少,Permit2合约都会默认让用户授权该Token全部余额额度。虽然钱包会提示自定义输入金额,但大多数人可能直接选择最大或默认值,而Permit2的默认值是无限额度。

签名就被盗?揭秘Uniswap Permit2签名钓鱼骗局

这意味着,只要2023年后与某交易平台有过交互并授权给Permit2合约,就可能面临这个钓鱼骗局风险。

重点在于Permit函数,它可将用户授权给Permit2合约的Token额度转移给其他地址。黑客只要获得用户签名,就能获得用户钱包中Token权限并转移资产。

事件详细分析

Permit函数让用户可提前签署"合同",允许他人(spender)在未来使用一定数量代币。用户需提供签名证明"合同"真实性。

函数工作流程:

  1. 检查当前时间是否超过签名有效期
  2. 验证签名真实性
  3. 若检查通过,更新记录允许他人使用代币

签名就被盗?揭秘Uniswap Permit2签名钓鱼骗局

重点在于verify函数和_updateApproval函数。

verify函数从签名信息中获取v、r、s三个数据,用于恢复交易签名地址。合约将恢复的地址与传入的代币拥有者地址比较,相同则验证通过。

签名就被盗?揭秘Uniswap Permit2签名钓鱼骗局

_updateApproval函数在通过签名校验后更新授权值,意味着权限发生转移。此时被授权方可调用transferfrom函数将代币转移到指定地址。

签名就被盗?揭秘Uniswap Permit2签名钓鱼骗局

链上真实交易显示:

  • owner是小A钱包地址
  • Details中包含授权Token合约地址和金额等信息
  • Spender是黑客地址
  • sigDeadline是签名有效时间,signature是小A的签名信息

签名就被盗?揭秘Uniswap Permit2签名钓鱼骗局

回顾小A交互记录,发现之前使用某交易平台时点击了默认授权额度,即几乎无限额度。

签名就被盗?揭秘Uniswap Permit2签名钓鱼骗局

简单复盘:小A之前授权给Permit2无限USDT额度,后来不慎陷入黑客设计的签名钓鱼陷阱。黑客获得签名后在Permit2合约中进行Permit和Transfer From操作,转移走小A资产。目前Permit2合约似乎已沦为钓鱼天堂,这种钓鱼方式约两个月前开始活跃。

如何防范?

考虑到Permit2合约未来可能更普及,更多项目或集成进行授权共享,有效防范手段包括:

  1. 理解并识别签名内容: Permit签名格式通常包含Owner、Spender、value、nonce和deadline等关键信息。若想享受Permit2便利,必须学会识别此类签名格式。使用安全插件是不错选择。

签名就被盗?揭秘Uniswap Permit2签名钓鱼骗局

  1. 资产钱包与交互钱包分离: 建议将大量资产存放冷钱包,链上交互钱包仅保留少量资金,可大幅减少遇到钓鱼时的损失。

  2. 限制授权额度或取消授权: 在某交易平台Swap时,仅授权交互所需金额。虽然每次交互都需重新授权会增加成本,但可避免Permit2签名钓鱼风险。已授权用户可通过安全插件取消授权。

签名就被盗?揭秘Uniswap Permit2签名钓鱼骗局

  1. 识别代币性质,关注是否支持permit功能: 未来可能有更多ERC20代币实现permit功能。需关注所持代币是否支持,若支持则交易操作需格外谨慎,严格检查每条未知签名。

  2. 被骗后如有代币存其他平台,需制定完善拯救计划: 若发现被骗但还有代币通过质押等方式存在其他平台,需谨慎提取转移。黑客可能随时监控地址余额,一旦出现代币就可能转移。应制定完善拯救流程,提取和转移需同步执行,可使用MEV转移或寻求专业安全团队协助。

未来基于Permit2的钓鱼可能增多,这种方式极其隐蔽难防。随Permit2应用范围扩大,暴露风险的地址也会增加。希望读者看到本文后能传播给更多人,避免更多人遭受损失。

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 7
  • 分享
评论
0/400
InfraVibesvip
· 9小时前
看一眼再签 懂?
回复0
MetaverseMigrantvip
· 9小时前
又整新花样了 这黑客真是人才
回复0
RektButAlivevip
· 9小时前
日常都在关注最新漏洞~
回复0
稳定币爱好者vip
· 9小时前
又来新套路,小白慎签
回复0
NFT破产合集vip
· 9小时前
又掉进陷阱的多少
回复0
P2ENotWorkingvip
· 9小时前
又有新韭菜等割了
回复0
ValidatorVikingvip
· 9小时前
真是的,新手们从来不学会验证签名……回归基础,真是受够了
查看原文回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)