Scam Sniffer 发布 2024 年年中网络钓鱼报告表明,仅 2024 年上半年,就有 26 万名受害者在 EVM 链上损失 3.14 亿美元,其中 20 人人均损失超过 100 万美元。令人唏嘘的是,还有一位受害者损失 1100 万美元,成为历史上第二大盗窃受害者。

根据该报告的总结,目前多数 ERC 20 代币的盗窃源于签署钓鱼签名,如 Permit、IncreaseAllowance 和 Uniswap Permit 2 。而大部分大型盗窃均涉及 Staking、Restaking、Aave 抵押和 Pendle 代币。受害者多通过假冒 Twitter 账户的钓鱼评论被引导至钓鱼网站。

钓鱼攻击无疑仍是链上安全问题的重灾区。

作为承接用户基础交易需求的入口级产品,OKX Web3 钱包坚持将目光聚焦安全措施强化和用户教育上。在产品层面,该团队近期主要围绕高频钓鱼场景对风险交易拦截功能进行了升级,并表示后续也会持续增加识别更多风险场景对用户进行提示。

本文旨在讲清楚 OKX Web3 钱包最新升级的四大风险交易拦截功能适用的场景,同时科普部分被盗案例的运行原理,希望对您有所帮助。

1、恶意授权给 EOA 账户

6 月 26 日,某用户在假冒 Blast 钓鱼网站签署多个钓鱼签名损失 21.7 万美元;7 月 3 日,ZachXBT 报告称地址 0x D 7 b 2 已成为 Fake_Phishing 187019 网络钓鱼的受害者,导致 6 枚 BAYC NFT 和 40 枚 Beans 损失(价值约 100 万美元以上);7 月 24 日,某 Pendle 用户 1 小时前因多个 Permit 网络钓鱼签名被盗价值约 469 万美元的 PENDLEPT 再质押代币。

近两个月时间,因各类签名钓鱼而产生损失的事件及单笔金额均不在少数,这已然是安全问题频发的重要场景。绝大部分的场景就是在于诱导用户对黑客的 EOA 账户进行授权。

恶意授权给 EOA 账户,一般是指黑客通过各类福利活动等形式诱导用户进行授权,并将其用户地址授权给一个 EOA 地址的签名。

EOA 全称 Externally Owned Accounts,也译为“外部账户”。 是以太坊为主的区块链网络上的一种账户类型,这与以太坊上的另一种账户类型—合约账户(Contract Account)不同,EOA 是由用户拥有的,且不受智能合约控制。玩家链上冲浪时一般都是授权给项目方的智能合约账户而非个人拥有的 EOA 账户。

目前,最常见的授权方式有三种: Approve 是存在于 ERC-20 代币标准中的常见授权方法。它授权第三方(如智能合约)在代币持有 者的名义下花费一定数量的代币。用户需要预先为某个智能合约授权一定数量的代币,此后,该 合约便可在任何时间调用 transferFrom 功能转移这些代币。如果用户不慎为恶意合约授权,这些 被授权的代币可能会被立刻转移。值得注意的是,受害者钱包地址中可以看到 Approve 的授权痕迹。

Permit 是基于 ERC-20 标准引入的扩展授权方式,通过消息签名来授权第三方花费代币,而非直 接调用智能合约。简单来说,用户可以通过签名来批准他人转移自己的 Token。黑客可以利用这 种方法来进行攻击,例如,他们可以建立一个钓鱼网站,将登录钱包的按钮替换为 Permit,从而轻 易地获取到用户的签名。

Permit 2 并非 ERC-20 的标准功能,而是由 Uniswap 为了用户便利性而推出的一种特性。此功能 让 Uniswap 的用户在使用过程中只需要支付一次 Gas 费用。然而,需要注意的是,如果你曾使用 过 Uniswap,并且你向合约授权了无限额度,那么你可能会成为 Permit 2 钓鱼攻击的目标。

Permit 和 Permit 2 是离线签名方式,受害者钱包地址无需支付 Gas,钓鱼者钱包地址会提供授权上链操作,因此,这两种签名的授权痕迹只能在钓鱼者的钱包地址中看到。现在 Permit 和 Permit 2 签名钓鱼已经是 Web3 资产安全领域的重灾区。

该场景下,OKX Web3 钱包拦截功能如何发挥作用?

OKX Web3钱包会通过对待签交易进行前置解析,若解析发现交易为授权行为且授权的地址为 EOA 地址时,则为用户告警提醒,防止用户被钓鱼攻击,造成资产损失。

狙击钓鱼:一文读懂OKX Web3钱包四大风险交易拦截功能

2、恶意更改账户 owner

恶意更改账户 Owner 的事件通常发生在 TRON、Solana 等底层机制有账户 owner 设计的公链上。用户一旦签名,就将失去对账户的控制权。

以 TRON 钱包为例,TRON 的多重签名权限系统设计了三种不同的权限:Owner、Witness 和 Active,每种权限都有特定的功能和用途。

Owner 权限拥有执行所有合约和操作的最高权限;只有拥有该权限才能修改其他权限,包括添加或移除其他签名者;创建新账户后,默认为账户本体拥有该权限。

Witness 权限主要与超级代表(Super Representatives) 相关,拥有该权限的账户能够参与超级代表的选举和投票,管理与超级代表相关的操作。

Active 权限用于日常操作,例如转账和调用智能合约。这个权限可以由 Owner 权限设定和修改,常用于分配给需要执行特定任务的账户,它是若干授权操作(比如 TRX 转账、质押资产)的一个集合。

一种情况是黑客获取用户私钥/助记词后,如果用户没有使用多签机制(即该钱包账户仅由用户一人控制),黑客便可以将 Owner/Active 权限也授权给自己的地址或者将用户的 Owner/Active 权限转移给自己,该操作通常都被大家称为恶意多签。

如果用户 Owner/Active 权限未被移除,黑客利用多签机制与用户共同控制账户所有权。此时用户既持有私钥/助记词,也有 Owner/Active 权限,但却无法转移自己的资产,用户发起转出资产请求时,需要用户和黑客的地址都签名,才能正常执行交易。

还有一种情况是黑客利用 TRON 的权限管理设计机制,直接将用户的 Owner/Active 权限转移给黑客地址,使得用户失去 Owner/Active 权限。

以上两种情况造成的结果是一样的,无论用户是否还拥有 Owner/Active 权限,都将失去对该账户的实际控制权,黑客地址获得账户的最高权限,就可实现更改账户权限、转移资产等操作。

该场景下,OKX Web3 钱包拦截功能如何发挥作用?

OKX Web3钱包通过对待签交易进行前置解析,若解析发现交易内存在更改账户权限行为,则会为用户直接拦截交易,从根源阻止用户进一步签名,造成资损。

由于该风险非常高危,因此当前 OKX Web3钱包直接进行拦截,不允许用户进行进一步交易。

狙击钓鱼:一文读懂OKX Web3钱包四大风险交易拦截功能

3、恶意更改转账地址

恶意更改转账地址的风险交易场景主要发生在 DApp 合约设计不完善的情况下。

3 月 5 日,@CyversAlerts 监测到,0x ae 7 ab 开头地址从 EigenLayer 中收到 4 枚 stETH,合约 14, 199.57 美元,疑似遭遇钓鱼攻击。同时他指出,目前已有多名受害者在主网上签署了「queueWithdrawal」钓鱼交易。

Angel Drainer 瞄准了以太坊质押的性质,交易的批准与常规 ERC 20 「批准」方法不同,专门针对 EigenLayer Strategy Manager 合约的 queueWithdrawal (0x f 123991 e) 函数写了利用。攻击的核心是,签署「queueWithdrawal」交易的用户实际上批准了恶意「提款者」将钱包的质押奖励从 EigenLayer 协议提取到攻击者选择的地址。简单地说,一旦你在钓鱼网页批准了交易,你在 EigenLayer 质押的奖励就将属于攻击者。

为了使检测恶意攻击变得更加困难,攻击者使用「CREATE 2 」机制来批准这些提款到空地址。由于这是一种新的审批方法,因此大多数安全提供程序或内部安全工具不会解析和验证此审批类型,所以在大多数情况下它被标记为良性交易。

不仅这一例,今年以来,一些主流公链生态系统中均出现了一些设计不完善的合约漏洞导致部分用户转账地址被恶意更改,造成资金损失的问题。

该场景下,OKX Web3 钱包拦截功能如何发挥作用?

针对 EigenLayer 的钓鱼攻击场景,OKX Web3钱包会通过对「queueWithdrawal」的相关交易进行解析,若发现用户在非官方网站交易,且取款至非用户自身地址时,则会对用户进行警告,强制用户进一步确认,防止被钓鱼攻击。

狙击钓鱼:一文读懂OKX Web3钱包四大风险交易拦截功能

4、相似地址的转账

相似地址转账的攻击手法通过欺骗受害者使用与其真实地址非常相似的假地址,使得资金转移到攻击者的账户中。这些攻击通常伴随复杂的混淆和隐匿技术,攻击者使用多个钱包和跨链转移等方式,增加追踪难度。

5 月 3 日,一个巨鲸遭遇了相同首尾号地址钓鱼攻击,被钓走 1155 枚 WBTC,价值约 7000 万美元。

该攻击的逻辑主要是黑客提前批量生成大量钓鱼地址,分布式部署批量程序后,根据链上用户动态,向目标转账地址发起相同首尾号地址钓鱼攻击。而在本次事件中,黑客使用了去除 0x 后的首 4 位及尾 6 位和受害者目标转账地址一致的地址。用户转账后,黑客立即使用碰撞出来的钓鱼地址(大概 3 分钟后)尾随一笔交易(钓鱼地址往用户地址转了 0 ETH),这样钓鱼地址就出现在了用户的交易记录里。

由于用户习惯从钱包历史记录里复制最近转账信息,看到了这笔尾随的钓鱼交易后没有仔细检查自己复制的地址是否正确,结果将 1155 枚 WBTC 误转给了钓鱼地址。

该场景下,OKX Web3 钱包拦截功能如何发挥作用?

OKX Web3 钱包通过对链上的交易进行持续监控,如果发现在 1 笔大额交易发生后不久,链上立刻发生非用户主动触发的可疑交易,且可疑交易的交互方与大额交易的交互方极其相似,此时会判定可疑交易的交互方为相似地址。

若用户后续与相似地址进行交互,OKX Web3则会进行拦截提醒;同时在交易历史页面,会直接对相似地址相关的交易进行标记,防止用户被诱导粘贴,造成资损。(目前已支持 8 条链)

狙击钓鱼:一文读懂OKX Web3钱包四大风险交易拦截功能

结语

总的来讲, 2024 年上半年,空投钓鱼邮件和项目官方账户遭黑等安全事件仍频发。用户在享受这些空投和活动带来收益的同时,也面临着前所未有的安全风险。黑客通过伪装成官方的钓鱼邮件、假冒地址等手段,诱骗用户泄露私钥或进行恶意转账。此外,一些项目官方账户也遭到黑客攻击,导致用户资金损失。对于普通用户来讲,在这样的环境下,最重要的就是提高防范意识,深入学习安全知识。同时,尽可能选择风控靠谱的平台。

风险提示及免责声明

本文章仅供参考。本文仅代表作者观点,不代表 OKX 立场。本文无意提供 (i) 投资建议或投资推荐; (ii) 购买、出售或持有数字资产的要约或招揽; (iii)财务、会计、法律或税务建议。我们不保证该等信息的准确性、完整性或有用性。持有的数字资产(包括稳定币和 NFTs)涉及高风险,可能会大幅波动。您应该根据您的财务状况仔细考虑交易或持有数字资产是否适合您。有关您的具体情况,请咨询您的法律/税务/投资专业人士。请您自行负责了解和遵守当地的有关适用法律和法规。