复制成功

分享至

主页 > 数字货币 >

签名就被盗?用过Uniswap的请警惕 揭秘Permit2签名钓鱼

2023.06.09

本文由Beosin特邀独立研究员菠菜菠菜!(twitter@wzxznl)与Beosin安全研究员Sivan共同创作发布。

黑客,这是一个让Web3生态中每个人都闻风丧胆的存在,对于项目方来说,在全世界黑客都可能盯着你的情况下,代码开源的特性使得项目方开发的时候生怕写错一行代码留下漏洞,一旦出现安全事故后果难以承担。

对于个人来说,如果你不懂得你正在做的操作意味着什么,那么你进行的每一个链上交互或签名都有可能使你的资产被盗。因此安全问题一直是加密世界中最头疼的问题之一,并且由于区块链的特性,一旦资产被盗几乎是没有办法可以追回的,所以在加密世界中具备安全知识尤其重要。

就在最近,发现了一个近两个月开始活跃的新钓鱼手法,只要签名就会被盗,手法极其隐蔽且难以防范,并且用过Uniswap交互的地址都有可能暴露在风险之下,本文Beosin联合独立研究员菠菜对这种签名钓鱼手法进行科普,尽量避免大家更多的资产损失。

以下为菠菜的亲身经历复述:

事件经过

最近,一位朋友(暂称小A)钱包里的资产被盗后找到菠菜,与常见被盗方式不同的是,小A并没有泄漏私钥也没有和钓鱼网站的合约进行交互,于是菠菜开始调查起了这个资产被盗事件。

签名就被盗?用过Uniswap的请警惕 揭秘Permit2签名钓鱼

在区块链浏览器中可以看到小A钱包被盗的这笔USDT是通过Transfer From函数进行转移的,在这进行科普一下,当我们在以太坊上进行Token转账的时候,其实是调用了该Token智能合约的Transfer函数,这两者的区别简单来说Transfer是资产拥有者本人进行操作把Token转移给其他地址,而Transfer From是第三方将地址内的Token转移给其他地址。这也就意味着这笔被盗的资产是另外一个地址进行操作把Token转移走的,而非钱包私钥泄漏。


签名就被盗?用过Uniswap的请警惕 揭秘Permit2签名钓鱼

通过查询交易细节,我们可以发现一些关键线索:

  • 尾号fd51的地址将小A的资产转移到了尾号a0c8的地址中

  • 这个操作是与Uniswap的Permit2合约进行交互的

  • 那么疑点来了,尾号fd51的地址是如何拿到这笔资产的权限的?为什么会和Uniswap有关系?

    签名就被盗?用过Uniswap的请警惕 揭秘Permit2签名钓鱼

    首先我们需要知道,要想成功调用Transfer From这个函数的前提是调用方需要拥有这个Token的额度权限,也就是approve,相信大家有过链上操作的一定熟悉不过了,当我们去使用一些Dapp的时候,一旦涉及到资产的转移就需要我们先进行一个授权(approve)操作,这样Dapp的合约才有权限对我们的资产进行转移。

    要解开这个谜题,我们需要继续挖掘,而答案就在尾号fd51的地址的交互记录中,在该地址进行Transfer From转走小A的资产之前,可以看到该地址还进行了一个Permit的操作,并且这两个操作的交互对象都是Uniswap的Permit2合约,那么这个Permit函数和Uniswap Permit2又是什么情况?

    签名就被盗?用过Uniswap的请警惕 揭秘Permit2签名钓鱼

    Uniswap Permit2合约是Uniswap在2022年年底推出的新的智能合约,根据官方的说法,这是一个代币审批合约,允许代币授权在不同的应用程序中共享和管理,创造一个更统一、更具成本效益、更安全的用户体验。

    并且未来随着越来越多的项目与 Permit2 集成,Permit2可以在所有应用程序中实现标准化Token批准。Permit2 将通过降低交易成本来改善用户体验,同时提高智能合约的安全性。

    签名就被盗?用过Uniswap的请警惕 揭秘Permit2签名钓鱼

    我们先要了解一下为什么Uniswap要推出Permit2,我们来假设一个场景,当我们要在某Dex上进行Swap时,传统的交互方式是我们需要先授权(approve)给这个Dex,然后再进行Swap,这通常需要花费我们两笔Gas费,对于用户来说摩擦成本太大了,相信大家都有过这样的体验。

    签名就被盗?用过Uniswap的请警惕 揭秘Permit2签名钓鱼图片来源:https://github.com/dragonfly-xyz/useful-solidity-patterns/tree/main/patterns/permit2

    而Permit2的推出将有可能改变整个Dapp生态的游戏规则,简单来说就是传统的方法是你每跟一个Dapp进行资产转移的交互你都需要进行一次授权,而Permit2可以把这个步骤给省去,这样可以非常有效的降低用户的交互成本,带来更好的用户体验。

    免责声明:数字资产交易涉及重大风险,本资料不应作为投资决策依据,亦不应被解释为从事投资交易的建议。请确保充分了解所涉及的风险并谨慎投资。OKEx学院仅提供信息参考,不构成任何投资建议,用户一切投资行为与本站无关。

    加⼊OKEx全球社群

    和全球数字资产投资者交流讨论

    扫码加入OKEx社群

    相关推荐

    industry-frontier