随着区块链技术和数字资产的逐渐普及,用户越来越需要保护其加密货币和数字资产免受网络攻击的威胁。在这一背景下,钓鱼攻击作为一种普遍的网络欺诈手段,日益成为加密货币用户面临的重要风险之一。攻击者通过虚假信息、伪装和社会工程学等手段,试图诱使用户透露私钥、助记词等关键信息,或者签署有风险的签名,从而窃取其数字资产。本文将深入探讨几种针对加密货币用户的钓鱼攻击手段,包括虚假空投、诱导签名、后门工具和上供助记词等。
攻击者利用“地址生成器”生成和收款地址非常相似的地址(一般是前几位,或者后几位基本一样),多次的转入到监控的这个钱包地址中小额的数量(例如0.001USDT),或者转入攻击者自己部署的任意数量假USDT。用户在进行转账时,可能会复制之前的转账收款记录来进行重新转账,如果这个时候复制到了错误的(高度相似)地址,那么就会导致转账发生错误,从而导致了代币丢失。
小额转账
下图为攻击者通过相似地址小额USDT转账污染用户交易记录
0转账
攻击者也可能只转入0USDT
假USDT转账
攻击者也可能使用自己部署的假USDT进行转账
安全建议:黑客通过生成首尾若干位相同的历史交易地址以混淆转账记录,诱导用户误转资金。在转账时候务必逐位仔细确认地址是否符合预期,而不是通过首尾少量几位判断。切勿在交易记录中直接复制粘贴转账地址。
攻击者创建一个网页,可能是一个知名项目的仿制网页,也有可能是一个虚假的空投链接或者购物网站等,诱导用户在网页中连接钱包并执行签名操作,从而窃取用户资产,签名可能有以下多种类型。
1、直接转账
攻击者通过将函数命名为一些常见的链上操作名称,让用户误以为签署此消息后会执行对应的逻辑,如领取空投(cLAim),连接钱包(connect),升级系统(security update)等,然而签署后才发现这一操作仅仅是将etH发送至钓鱼合约。
案例:
https://twitter.com/reaLScamSniffer/Status/1678218208866717697
victim: 0X37e03773895890c4C6B1Eac52f929383D2773E75
scammer: 0x000011387Eb24F199e875B1325E4805EfD3b0000
对应tx:
https://www.oklink.com/cn/eth/tx/0xbac3A8bba26504a4b6c3aaa7f1531384f6d030be8BABA2a16ce3ebb3d93ee8b5
2、授权钓鱼
通过钓鱼网站,连接钱包,跳出弹窗诱使用户签署交易,签署交易一般为ERC20代币的approve或increaseALLowance调用,以及NFT对seTapproveForAll等调用,用户签署交易即完成代币转移授权,授权地址将用户钱包内ERC20代币或NFT利用transferFrom进行转移。
3、空白地址授权钓鱼
空白地址授权钓鱼是授权钓鱼的升级版。用户点击钓鱼链接进行授权时(通常也是approve或increaseAllowance),spender的地址是没有任何链上记录的空地址,如果受害者签署授权,空地址就会被通过create2方法部署一个合约,将受害者的资金转走。
采用空白地址授权可以避免授权地址被检测工具标记的情况,从而绕过一些钱包的安全检查。
案例:https://twitter.com/evilcos/STATus/1729028813944971536
victim:0xf3631897d3a77fe3d0d8c22dd6f311d4a2ce65e7
scammer:0x0000db5c8b030ae20308ac975898e09741e70000
4、eth_sign空白支票
eth_sign 方法可以对任意交易哈希进行签名,基本上就是以太坊的“空白支票”,通过eth_sign,攻击者可以构造任意自定义的交易窃取用户资产。
5、零元购NFT钓鱼
欺骗用户签名 NFT 的销售订单,NFT 是由用户持有的,一旦用户签名了此订单,攻击者就可以直接通过 OpenSea 购买用户的 NFT,但是购买的价格由攻击者决定,也就是说攻击者不花费任何资金就能“买”走用户的 NFT。
6、Permit
permit是erc20协议的一个扩展功能,它允许用户通过签名消息完成授权操作,并将签名结果发送给另外一个钱包,这可以完成资产转移操作。攻击者诱导用户签署permit交易,完成授权,从而窃取用户资产。
permit
图中为签署permit交易,允许攻击者转移自己的资产。
Permit2 Single case
除了permit以外,还有permit2签名,同样可以使得攻击者获得转移资产的权限。
7、personal_sign
personal_sign通常用于签名可读的内容,但也可以将签名的内容处理成哈希值。比如下图,就被用于盲签了
消息:0x62dc3e93b0f40fd8ee6bf3b9b1f15264040c3b1782a24a345b7cb93c9dafb7d8, 是目标明文被keccak256哈希后的结果。被钓鱼的用户,看不懂签名的内容,如果进行签名的话,就会被钓鱼攻击。
8、波场权限锁钓鱼
在波场链中,一个账户通常包含两种权限:「拥有者权限」和「活跃权限」。其中拥有者权限是账户的最高权限,具有该权限的地址可进行该账户内的所有操作;活跃权限提供某些操作的组合,比如你可设置一个活跃权限仅能执行 TRX 转账、冻结资产的操作。由于用户的 TRX 钱包地址更新了账户权限,将自身账户的最高权限,即拥有者权限,转给了另一个地址 B,所以后续用户的地址发起转账时收到了报错提示。
钓鱼者可以将自己的助记词公布,并在地址中存储一定价值的代币,并转移其拥有者权限。受害者看到公布的助记词并发现其中有资产时,会导入助记词并使用该地址,如果受害者将自己的资产传入该地址,在之后尝试转出资产时,由于拥有者权限被转移,这时钱包会报错。
安全建议:以上案例均为用户进行有风险签名后造成的资金损失,在签署交易时,务必确定网页是否可信任,不要轻易相信社交媒体提供的活动页面,并仔细检查签名内容是否符合预期。如果从钱包展示页面不能确定签名内容,更需格外谨慎,以防资金损失。
部分教程或者工具会被发布者留下后门以窃取用户资产。
例如某网站提供一个制作MEV BOT的教程,在网页中有一个源代码链接,要求读者将这段代码复制到IDE中:
在编译和部署之后,作者要求向这个合约发送0.5到1的Ether到这个合约,并调用Start和withdrawMoney来开始套利与回收资金:
但是在函数STArt与withdrawMoney中含有恶意代码:
调用这两个函数会将合约中的所有ether发送给to地址,而这个to地址就是作者通过复杂的计算得到的获利地址:
0xfBcf33613A2609C050525395ec6885F6538fEC60。黑客已经通过这种方法获利至少54000$。
安全建议:一些所谓的“科学家工具”、“钱包管理工具”可能被黑客植入了恶意后门,在使用这些工具之前,需要仔细确认工具的安全性,不要轻易使用未经验证的工具,以免造成资金损失。
该类钓鱼网站主要是在网页连接钱包处,或者其他位置诱骗用户点击,之后弹出一个伪造的网页,提示用户诸如“metaMask插件版本需要升级”等信息。如果用户相信并填写了自己的钱包助记词,那么用户的私钥就会上传到攻击者服务器导致用户钱包被盗。具体如下图所示:
该钓鱼网站弹出如下信息,提示用户检测到了MetaMask的一个安全问题,需要用户升级该钱包插件版本。如果用户在框中输入助记词,则会导致钱包被盗。
安全建议:在涉及私钥、助记词相关敏感操作时,务必确认对应网站、钱包的安全性和真实性,不与任意第三方分享私钥和助记词。