Web3常见钓鱼方式分析与安全防范建议
字数 2145 2025-08-19 12:41:50

Web3常见钓鱼方式分析与安全防范指南

一、Web3钓鱼概述

Web3钓鱼是针对Web3用户的常见攻击手段,通过各种方式窃取用户授权、签名或诱导误操作,目的是盗窃用户钱包中的加密资产。近年来已发展出钓鱼即服务(Drainer as a Service, DaaS)的黑色产业链,安全形势严峻。

二、常见钓鱼手法分析

1. Permit链下签名钓鱼

原理:Permit是ERC-20标准的扩展功能,允许通过签名批准其他地址操作Token。

攻击步骤

  1. 攻击者伪造钓鱼链接诱导用户签名(无合约交互)
  2. 攻击者调用permit函数完成授权
  3. 攻击者调用transferFrom函数转走资产

特点

  • 签名是链下无Gas操作
  • 受害人地址链上记录中看不到授权
  • 通常是一次性签名

2. Permit2链下签名钓鱼

背景:Uniswap推出的代币审批合约,允许授权在不同DApp中共享管理。

攻击前提:用户已授权Uniswap的Permit2合约

攻击步骤

  1. 诱导用户签名获取签名信息
  2. 调用Permit2的permit函数完成授权
  3. 调用transferFrom转走资产

特点

  • 接收地址通常有多个
  • 最大金额接收者是攻击者
  • 其他可能是DaaS供应商地址

3. eth_sign盲签钓鱼

特点

  • 开放式签名方法,可对任意哈希签名
  • MetaMask有风险提示
  • 许多钱包已禁用此函数

4. personal_sign/signTypedData签名钓鱼

特点

  • 常用签名方式
  • 需仔细核对发起者、域名、内容
  • 被用作"盲签"时风险高

5. 授权钓鱼

常见授权函数

  • setApprovalForAll
  • Approve
  • Increase Approval
  • Increase Allowance

攻击方式

  • 伪造网站或官网挂马
  • 诱导用户确认授权操作
  • 获取授权后转移资产

6. 地址污染钓鱼

手法

  1. 监控链上交易
  2. 伪造与正确地址前后4-6位相同的恶意地址
  3. 向目标用户小额转账
  4. 用户复制历史交易地址时误转

典型案例:2024年5月3日1155 WBTC(价值超7千万美元)被盗

7. 利用CREATE2绕过检测的钓鱼

原理:CREATE2允许合约部署前计算地址

攻击特点

  • 生成无恶意历史的新地址
  • 绕过钱包黑名单检测
  • 授权时合约未部署,隐蔽性高

攻击步骤

  1. 诱导用户授权
  2. 在预先计算地址部署合约
  3. 转移资产到该地址

三、钓鱼即服务(DaaS)产业链

主要服务提供商

  • Inferno Drainer
  • MS Drainer
  • Angel Drainer
  • Monkey Drainer
  • Venom Drainer
  • Pink Drainer
  • Pussy Drainer
  • Medusa Drainer

Inferno Drainer运作模式

  1. 通过Telegram频道或网站推广服务
  2. 攻击者生成钓鱼网站并通过社交媒体传播
  3. 诱导受害者连接钱包
  4. 检查高价值资产并初始化恶意交易
  5. 受害者确认交易
  6. 资产转移(20%给DaaS开发商,80%给攻击者)

DaaS服务特点

  • 提供创建和托管钓鱼网站的免费服务
  • 收取被骗资金30%的费用
  • 客户可自定义Drainer功能
  • 提供统计数据(连接数、成功点击数、被盗价值)

四、安全防范建议

  1. 谨慎点击链接:不点击伪装成奖励、空投的不明链接
  2. 验证官方信息:官方社媒账户也可能被盗,官方消息不等于绝对安全
  3. 甄别应用真伪:警惕伪造站点和伪造App
  4. 谨慎确认交易
    • 拒绝盲签
    • 交叉确认目标、内容等信息
    • 怀疑一切,确保操作明确安全
  5. 掌握关键知识
    • 了解常见钓鱼攻击方式
    • 掌握签名、授权函数及其风险
    • 识别关键字段:
      • Interactive(交互网址)
      • Owner(授权方地址)
      • Spender(被授权方地址)
      • Value(授权数量)
      • Nonce(随机数)
      • Deadline(过期时间)
      • transfer/transferFrom(转账)

五、关键字段解释

  1. Permit签名对象示例

    holder://签名地址
    spender://钓鱼者地址
    nonce:0
    expiry:1988064000 //过期时间
    allowed:true
    
  2. 授权相关函数

    • setApprovalForAll:设置对所有资产的授权
    • Approve:授权特定数量的代币
    • Increase Approval:增加授权额度
    • Increase Allowance:增加允许额度
  3. 转账相关函数

    • transfer:直接转账
    • transferFrom:第三方转账(需授权)

六、典型案例分析

  1. PREMINT挂马钓鱼

    • 官网js文件被注入恶意代码
    • 动态创建恶意js文件
    • 诱导用户确认setApprovalForAll
  2. 地址污染案例

    • 正确地址:0xd9A1b0B1e1aE382DbDc898Ea68012FfcB2853a91
    • 恶意地址:0xd9A1C3788D81257612E2581A6ea0aDa244853a91
  3. CREATE2钓鱼案例

    • 受害者将sfrxETH转给新合约地址
    • 合约创建同时完成钓鱼攻击

七、总结

Web3钓鱼手段不断演变,从简单的授权钓鱼发展到利用CREATE2等高级技术绕过检测。同时,钓鱼即服务模式降低了攻击门槛,使威胁更加普遍。用户需提高安全意识,掌握关键知识,谨慎对待每一笔交易和签名操作,才能有效保护资产安全。

Web3常见钓鱼方式分析与安全防范指南 一、Web3钓鱼概述 Web3钓鱼是针对Web3用户的常见攻击手段,通过各种方式窃取用户授权、签名或诱导误操作,目的是盗窃用户钱包中的加密资产。近年来已发展出钓鱼即服务(Drainer as a Service, DaaS)的黑色产业链,安全形势严峻。 二、常见钓鱼手法分析 1. Permit链下签名钓鱼 原理 :Permit是ERC-20标准的扩展功能,允许通过签名批准其他地址操作Token。 攻击步骤 : 攻击者伪造钓鱼链接诱导用户签名(无合约交互) 攻击者调用permit函数完成授权 攻击者调用transferFrom函数转走资产 特点 : 签名是链下无Gas操作 受害人地址链上记录中看不到授权 通常是一次性签名 2. Permit2链下签名钓鱼 背景 :Uniswap推出的代币审批合约,允许授权在不同DApp中共享管理。 攻击前提 :用户已授权Uniswap的Permit2合约 攻击步骤 : 诱导用户签名获取签名信息 调用Permit2的permit函数完成授权 调用transferFrom转走资产 特点 : 接收地址通常有多个 最大金额接收者是攻击者 其他可能是DaaS供应商地址 3. eth_ sign盲签钓鱼 特点 : 开放式签名方法,可对任意哈希签名 MetaMask有风险提示 许多钱包已禁用此函数 4. personal_ sign/signTypedData签名钓鱼 特点 : 常用签名方式 需仔细核对发起者、域名、内容 被用作"盲签"时风险高 5. 授权钓鱼 常见授权函数 : setApprovalForAll Approve Increase Approval Increase Allowance 攻击方式 : 伪造网站或官网挂马 诱导用户确认授权操作 获取授权后转移资产 6. 地址污染钓鱼 手法 : 监控链上交易 伪造与正确地址前后4-6位相同的恶意地址 向目标用户小额转账 用户复制历史交易地址时误转 典型案例 :2024年5月3日1155 WBTC(价值超7千万美元)被盗 7. 利用CREATE2绕过检测的钓鱼 原理 :CREATE2允许合约部署前计算地址 攻击特点 : 生成无恶意历史的新地址 绕过钱包黑名单检测 授权时合约未部署,隐蔽性高 攻击步骤 : 诱导用户授权 在预先计算地址部署合约 转移资产到该地址 三、钓鱼即服务(DaaS)产业链 主要服务提供商 Inferno Drainer MS Drainer Angel Drainer Monkey Drainer Venom Drainer Pink Drainer Pussy Drainer Medusa Drainer Inferno Drainer运作模式 通过Telegram频道或网站推广服务 攻击者生成钓鱼网站并通过社交媒体传播 诱导受害者连接钱包 检查高价值资产并初始化恶意交易 受害者确认交易 资产转移(20%给DaaS开发商,80%给攻击者) DaaS服务特点 提供创建和托管钓鱼网站的免费服务 收取被骗资金30%的费用 客户可自定义Drainer功能 提供统计数据(连接数、成功点击数、被盗价值) 四、安全防范建议 谨慎点击链接 :不点击伪装成奖励、空投的不明链接 验证官方信息 :官方社媒账户也可能被盗,官方消息不等于绝对安全 甄别应用真伪 :警惕伪造站点和伪造App 谨慎确认交易 : 拒绝盲签 交叉确认目标、内容等信息 怀疑一切,确保操作明确安全 掌握关键知识 : 了解常见钓鱼攻击方式 掌握签名、授权函数及其风险 识别关键字段: Interactive(交互网址) Owner(授权方地址) Spender(被授权方地址) Value(授权数量) Nonce(随机数) Deadline(过期时间) transfer/transferFrom(转账) 五、关键字段解释 Permit签名对象示例 : 授权相关函数 : setApprovalForAll :设置对所有资产的授权 Approve :授权特定数量的代币 Increase Approval :增加授权额度 Increase Allowance :增加允许额度 转账相关函数 : transfer :直接转账 transferFrom :第三方转账(需授权) 六、典型案例分析 PREMINT挂马钓鱼 : 官网js文件被注入恶意代码 动态创建恶意js文件 诱导用户确认setApprovalForAll 地址污染案例 : 正确地址:0xd9A1b0B1e1aE382DbDc898Ea68012FfcB2853a91 恶意地址:0xd9A1C3788D81257612E2581A6ea0aDa244853a91 CREATE2钓鱼案例 : 受害者将sfrxETH转给新合约地址 合约创建同时完成钓鱼攻击 七、总结 Web3钓鱼手段不断演变,从简单的授权钓鱼发展到利用CREATE2等高级技术绕过检测。同时,钓鱼即服务模式降低了攻击门槛,使威胁更加普遍。用户需提高安全意识,掌握关键知识,谨慎对待每一笔交易和签名操作,才能有效保护资产安全。