2024年1月22日,据Beosin旗下EagleEye安全风险监控、预警与阻断平台监测显示,一位加密大户遭受到网络钓鱼攻击,造成了420万美元的损失,而关键点漏洞,是我们经常提及的Permit签名。
在早些时间Beosin与区块链安全研究员菠菜共同研究并发布了《签名就被盗?用过Uniswap的请警惕!揭秘Permit2签名钓鱼》安全研究文章,文中详细描述了攻击者如何利用permit2函数对用户发起钓鱼攻击,而本次事件所利用的攻击原理与文章中描述的permit2攻击方式基本一致,只是permit是针对于支持该函数的erc20合约,而permit2针对的可以是所有erc20合约。
本篇文章我们一起来看看攻击者一般是利用什么来诱骗用户对诈骗信息进行签名的,以及一些安全防范技巧。
什么是Permit签名钓鱼?
Permit签名是一种特定的数字签名机制,用于在某些情况下简化授权操作。它是基于区块链技术和密码学原理的一种安全验证方式。
在传统的数字签名中,签名者需要拥有私钥来对特定的数据进行签名,并将签名后的数据与公钥一起传输给验证方。验证方使用相应的公钥来验证签名的有效性。
然而,Permit签名采用了一种不同的方法。它允许持有者通过签署一份特殊的授权消息,将对特定操作的访问权限授予他人,而无需直接将私钥传输给受许可方。
Permit签名钓鱼则是利用用户对授权操作的不加仔细验证或理解,以获取未经授权的权限或敏感信息。这种攻击利用了用户对授权流程或签名机制的信任,通过欺骗用户产生伪造的授权操作或签名请求。
黑客通常采取哪些Permit签名钓鱼攻击?
伪造授权请求:
攻击者可能创建一个看似合法的授权请求,以骗取用户的信任。这可能涉及伪造的应用或网站,要求用户提供他们的授权或签名来执行某个操作。
误导用户操作:
攻击者可能通过欺骗用户进行误操作来实施攻击。例如,他们可能创建一个看似无害的按钮,但实际上触发了未经用户认可的授权操作。
伪造授权页面:
攻击者可能通过伪造与正常授权页面相似的页面来引诱用户进行授权操作。这些页面通常设计得与正常的授权页面几乎一模一样,以欺骗用户并使其相信他们正在与合法的应用或服务进行交互。
社交工程:
攻击者可能利用社交工程技巧,通过发送钓鱼邮件、短信或社交媒体消息等方式,引导用户点击恶意链接或进入伪造的授权页面。
如何安全防范?
考虑到Permit签名的一些钓鱼攻击,此前研究员菠菜给了我们一些有效的防范手段有:
1 理解并识别签名内容:
Permit的签名格式通常包含Owner、Spender、value、nonce和deadline这几个关键格式,如果你想享受Permit带来的便利和低成本的话一定要学会识别这种签名格式。(下载安全插件是一个很好的选择)
我们向各位读者朋友推荐下面这款Beosin Alert反钓鱼插件,可以识别Web3领域的大部分钓鱼网站,守护大家的钱包和资产安全。
反钓鱼插件下载:
https://chrome.google.com/webstore/detail/beosin-alert/lgbhcpagiobjacpmcgckfgodjeogceji?hl=en
2 放资产的钱包和交互的钱包分离使用:
如果你有大量资产的话,建议资产都放在一个冷钱包中,链上交互的钱包放少量资金,可以大幅减少遇到钓鱼骗局时的损失。
3 识别代币性质,是否支持permit功能:
后续可能越来越多的ERC20代币使用该扩展协议实现permit功能,对于你来说需要关注自己所持有的代币是否支持该功能,如果支持,那么对于该代币的交易或操纵一定要格外小心,对于每条未知签名也要严格检查是否是对permit函数的签名。
4 若被骗后还有代币存在其他平台,需制定完善的拯救计划:
当你发现自己被诈骗,代币被黑客转移出去后,但自己还有代币通过例如质押等方式存在其他平台上,需要提取出来转移到安全地址上,这时需要知道黑客可能时刻监控着你的地址代币余额,因为他拥有你的签名,只要你的被盗地址上出现了代币,那么黑客可以直接转移出去。这时需要制定完善的代币拯救过程,在提取代币和转移代币两个过程需要一起执行,不能让黑客交易插入其中,可以使用MEV转移,这需要一些区块链知识以及代码功底,也可以寻找专业的安全公司比如Beosin团队利用交易抢跑脚本来实现。