随着 Web3.0 技术的发展,诸如 Approval Phishing、Uniswap Permit2 Phishing、Claim Phishing 以及 Modal Phishing 等多种攻击方式应运而生。为应对这些攻击,本文将详细介绍如何识别和预防这些攻击,帮助用户保护自己的加密货币资产安全。
撰文:Salus Insights
Web3 Phishing 是一种针对加密货币用户的网络欺骗手段,通过创建伪装成正式网站的假网站来窃取用户的授权、签名和加密货币资产。随着 Web3.0 技术的发展,新型的 Web3 钓鱼骗局也在不断出现。以下,我们将介绍新型 web3 钓鱼攻击方式:Approval phishing、Uniswap permit2 phishing、Claim phishing、Model phishing。并提供帮助用户识别和预防这些攻击的有效措施:针对 Approval 钓鱼的预防措施,识别 permit2 中的签名,防止 Claim 钓鱼攻击,防止模态钓鱼攻击。
web3 网络钓鱼攻击大多与approval、increaseAllowance 操作有关。攻击者通过伪造电子邮件或消息、伪造网站或应用程序、社交工程和恶意广告或弹窗等方式,骗取用户进行 approval 操作。因此,用户需要撤销不必要的授权。撤销授权也有可能被钓鱼者利用。
撤销授权钓鱼攻击时如何发生的?
攻击者部署了一个假的ERC-20 代币合约,修改了 approve 函数;
攻击者手动伪造了大批链上地址的授权,并提醒用户取消授权;
当用户收到该提醒并点击取消授权时,会触发发送交易的操作。这个交易将导致 token 被铸造到合约部署者的钱包内。
increaseAllowance 授权钓鱼交易链接
https://arbiscan.io/tx/0xd598336fac79123952319c9cd9cc62aa275162ce5f39d08ccac0c5e6ef0538e5
「撤销授权」钓鱼交易链接https://etherscan.io/tx/0xd4d606caddebf185dc6902ffcec78f3cc915826e1c0e37319d407d01681980ab
Uniswap permit2 允许跨不同应用共享和管理 token 授权。 用户只需在一次交易中完成授权和交易,减少交易的 gas 费用,简化交易操作流程。但是,Permit 2 则将用户的操作变为了链下签名,对于用户来说,链下签名是最容易放下防备的环节,而绝大多数人并不会仔细检查签名的内容也并不理解签名的内容。
Uniswap permit2 签名钓鱼攻击是如何发生的?
被授权方在授权额度范围内可以调用 transferFrom 函数将 token 转移到指定地址。
Permit2 钓鱼交易链接
https://etherscan.io/tx/0x1d8fa25f8f16d52cd4c5716e0cefd9b1cdbbbc060901cea223bab9de79b17ea3
Claim 钓鱼攻击通过伪造可信实体的请求,欺骗用户提供个人信息、登录凭据或访问权限。这些 Claim 钓鱼合约通常伪装成零地址来骗取用户信任,以此来调取用户的加密资产。
Claim 钓鱼攻击是如何发生的?
claim 钓鱼交易链接
https://etherscan.io/tx/0xfe70f1b0a92e719bff0d291b7a79987e6e93ed129d52be8e8918c2b9acb1f3b0
Web3.0 加密货币钱包的某些用户界面(UI)元素可以被攻击者控制用来进行网络钓鱼攻击,这种攻击方式被称为 Modal Phishing。Web3.0 货币钱包上的典型模态设计通常提供供用户检查签名等请求的必要信息,以及批准或拒绝请求的按钮。
我们以 Metamask 钱包为例,介绍模态钓鱼攻击是如何发生的?
如果我们理解授权操作的具体内容,并从正确的渠道查询我们的授权信息、取消授权,就会有效避免 approval、increaseAllowance、撤销授权的钓鱼骗局。
以下内容可以帮助用户理解授权操作的具体内容:
用户在 approval 时,需要考虑授权金额、授权币种和授权地址。通过指定授权金额和币种,用户可以限制被授权方能够从自己的账户中转移的资产数量,防止授权到与这次交互无关的币种。用户还需要仔细检查授权地址,多渠道验证该地址,确保将授权给正确的地址。
如果以上结果是用户期望的,就可以进行正式授权了。
以下内容是追踪链上授权信息,撤销授权信息的具体步骤:
用户在完成授权之后,可以定期追踪 token approval 情况,也可撤销相关授权。Etherscan, BscScan and Polygonscan 区块链浏览器中有 token approval checker Function。
如果我们能够理解、识别并仔细检查签名的具体内容,就可以有效避免 permit2 钓鱼骗局。
签名格式通常包含 Owner、Spender、value、nonce 和 deadline 这几个关键字段,分别是指:
1. Owner: 代表 token 持有者的地址,用于指定希望通过签名授权的地址。
2. Spender: 代表被授权使用 token 的地址,用于指定希望授权给的地址。
3. value: 代表希望授权的 token 数量,可以指定特定数量的 token 授权给 Spender。
4. nonce: 代表 token 持有者的交易计数器,用于确保每个授权交易都具有唯一的标识符。
5. deadline: 代表签名的有效截止日期,用于限制签名的有效期。在过期之后,签名将变得无效。
我们建议用户可以根据自己的需求设置特定的 value 和 deadline,而不是选择默认的最大值。
用户在调用 Uniswap permit2 合约之前,可以模拟相关授权函数,了解授权细节。点击 Simulate 按钮。
选择 approve 函数,填写以下参数,模拟用户向 permit2 合约授权。
为了避免落入 Claim 钓鱼陷阱,我们需要识别钓鱼合约地址,他们经常伪装成零地址来放松用户的警惕性。以下列举了一些用于 claim 钓鱼诈骗的 Scam contract。我们在交易时,需要注意地址前后是「0000」的地址。
https://etherscan.io/address/0x0000b514c923f55180fc12428e05695666620000
https://etherscan.io/address/0x0000438e0f00fc35dff19d0062608057a1d20000
https://etherscan.io/address/0x0000a4998724e52f0886edff693aca33f9900000
https://etherscan.io/address/0x000062accd1a9d62ef428ec86ca3dd4f45120000
https://etherscan.io/address/0x000038f1e0c4417a3650c3f9a9a920b2e52e0000
https://etherscan.io/address/0x000056c346441ef8065e56b0cddd43fdec100000
Claim 钓鱼攻击本质也是获取用户的 token 授权,所以,我们仍然需要时刻关注授权情况。
模态钓鱼攻击发生的根本原因是钱包应用程序没有彻底验证所呈现的 UI 元素的合法性。为了避免这种钓鱼攻击,钱包应用程序的开发者应该始终假设外部传入的数据是不可信的。用户也可按照上述方式检查自己的签名信息和授权信息。
综上所述,我们详细介绍了四种新型的 Web3 钓鱼攻击方式,并提供了相应的识别和预防措施。除了提高用户的警惕性外,我们还建议用户深入了解授权和签名的相关内容,并定期检查自己的授权情况,及时撤销不必要的授权。此外,我们强调了不随意签名的重要性,以防止攻击者获取我们的签名并滥用。
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。