一、背景介绍
随着区块链技术和数字资产的逐渐普及,用户越来越需要保护其加密货币和数字资产免受网络攻击的威胁。在这一背景下,钓鱼攻击作为一种普遍的网络欺诈手段,日益成为加密货币用户面临的重要风险之一。攻击者通过虚假信息、伪装和社会工程学等手段,试图诱使用户透露私钥、助记词等关键信息,或者签署有风险的签名,从而窃取其数字资产。本文将深入探讨几种针对加密货币用户的钓鱼攻击手段,包括虚假空投、诱导签名、后门工具和上供助记词等。
二、虚假空投
攻击者利用“地址生成器”生成和收款地址非常相似的地址(一般是前几位,或者后几位基本一样),多次的转入到监控的这个钱包地址中小额的数量(例如0.001USDT),或者转入攻击者自己部署的任意数量假USDT。用户在进行转账时,可能会复制之前的转账收款记录来进行重新转账,如果这个时候复制到了错误的(高度相似)地址,那么就会导致转账发生错误,从而导致了代币丢失。
小额转账
下图为攻击者通过相似地址小额USDT转账污染用户交易记录
![防范钓鱼攻击png1](https://static.okx.com/cdn/assets/plugins/contentful/4nqoo8goeymu/7k4VPAAqeqE7KYR1Co3KRy/ac3ad2f82dce562cb5d685273ff22202/____1.png?x-oss-process=image/resize,w_864,h_227/format,webp)
0转账
攻击者也可能只转入0USDT
![防范钓鱼攻击png2](https://static.okx.com/cdn/assets/plugins/contentful/4nqoo8goeymu/4322wSgsiQ29HYTdJ6MH7A/ccf0515125deabf8f0c294fcb219733e/____2.png?x-oss-process=image/resize,w_864,h_264/format,webp)
假USDT转账
攻击者也可能使用自己部署的假USDT进行转账
![防范钓鱼攻击png3](https://static.okx.com/cdn/assets/plugins/contentful/4nqoo8goeymu/7AvnCM5BuIVMYHA8vUHXKv/e2f4766ec8d7b4bc2d5a7320464f6630/____3.png?x-oss-process=image/resize,w_864,h_570/format,webp)
![防范钓鱼攻击png4](https://static.okx.com/cdn/assets/plugins/contentful/4nqoo8goeymu/1fvjFafiUZ3Fkoh7Q7xiW2/59b2bea5f97246e9c052752363c263ae/____4.png?x-oss-process=image/resize,w_864,h_620/format,webp)
安全建议:黑客通过生成首尾若干位相同的历史交易地址以混淆转账记录,诱导用户误转资金。在转账时候务必逐位仔细确认地址是否符合预期,而不是通过首尾少量几位判断。切勿在交易记录中直接复制粘贴转账地址。
三、诱导签名
攻击者创建一个网页,可能是一个知名项目的仿制网页,也有可能是一个虚假的空投链接或者购物网站等,诱导用户在网页中连接钱包并执行签名操作,从而窃取用户资产,签名可能有以下多种类型。
1、直接转账
攻击者通过将函数命名为一些常见的链上操作名称,让用户误以为签署此消息后会执行对应的逻辑,如领取空投(claim),连接钱包(connect),升级系统(security update)等,然而签署后才发现这一操作仅仅是将eth发送至钓鱼合约。
![防范钓鱼攻击png5](https://static.okx.com/cdn/assets/plugins/contentful/4nqoo8goeymu/2CiVUJvnMA2hm4Jyjo9paC/f319e3ac1d0896639cbb123a2297dbce/____5.png?x-oss-process=image/resize,w_864,h_470/format,webp)
案例:
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进行转移。
![防范钓鱼攻击png6](https://static.okx.com/cdn/assets/plugins/contentful/4nqoo8goeymu/6sz6WMeTa04PpWvzOawckv/dc37b5558f093e895e408910443ad58a/d74e03fb-7196-437c-9ad9-d5e8db8913a0.png?x-oss-process=image/resize,w_400,h_849/format,webp)
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,所以后续用户的地址发起转账时收到了报错提示。
![防范钓鱼攻击png12](https://static.okx.com/cdn/assets/plugins/contentful/4nqoo8goeymu/3rDRUdNiVLecbmHEJcEbHr/2f90f386902251b9fdb96a601bfb5a72/____12.png?x-oss-process=image/resize,w_400,h_400/format,webp)
钓鱼者可以将自己的助记词公布,并在地址中存储一定价值的代币,并转移其拥有者权限。受害者看到公布的助记词并发现其中有资产时,会导入助记词并使用该地址,如果受害者将自己的资产传入该地址,在之后尝试转出资产时,由于拥有者权限被转移,这时钱包会报错。
安全建议:以上案例均为用户进行有风险签名后造成的资金损失,在签署交易时,务必确定网页是否可信任,不要轻易相信社交媒体提供的活动页面,并仔细检查签名内容是否符合预期。如果从钱包展示页面不能确定签名内容,更需格外谨慎,以防资金损失。
四、后门工具
部分教程或者工具会被发布者留下后门以窃取用户资产。
例如某网站提供一个制作MEV BOT的教程,在网页中有一个源代码链接,要求读者将这段代码复制到IDE中:
![防范钓鱼攻击png13](https://static.okx.com/cdn/assets/plugins/contentful/4nqoo8goeymu/3XYHpBTCEZDV6veZCzJ2sZ/2445928a974056b69aa79404bace2626/____13.png?x-oss-process=image/resize,w_864,h_264/format,webp)
在编译和部署之后,作者要求向这个合约发送0.5到1的Ether到这个合约,并调用start和withdrawMoney来开始套利与回收资金:
![防范钓鱼攻击png14](https://static.okx.com/cdn/assets/plugins/contentful/4nqoo8goeymu/6glMrNOI1lfmVJQf5qB3jS/89d5c3e157adb5f92436668fbc3a79d1/____14.png?x-oss-process=image/resize,w_864,h_283/format,webp)
但是在函数start与withdrawMoney中含有恶意代码:
![防范钓鱼攻击png15](https://static.okx.com/cdn/assets/plugins/contentful/4nqoo8goeymu/3ePrjSQqSfNCyB9djxFhsw/768ffa1251f5020b44d99fc47ee39d8a/____15.png?x-oss-process=image/resize,w_864,h_154/format,webp)
![防范钓鱼攻击png16](https://static.okx.com/cdn/assets/plugins/contentful/4nqoo8goeymu/15hEWcili4ROBs3eXreuHA/139cb10da0205f9ed142750ec728c9b3/____16.png?x-oss-process=image/resize,w_864,h_156/format,webp)
调用这两个函数会将合约中的所有ether发送给to地址,而这个to地址就是作者通过复杂的计算得到的获利地址:
0xfBcf33613A2609C050525395ec6885F6538fEC60。黑客已经通过这种方法获利至少54000$。
安全建议:一些所谓的“科学家工具”、“钱包管理工具”可能被黑客植入了恶意后门,在使用这些工具之前,需要仔细确认工具的安全性,不要轻易使用未经验证的工具,以免造成资金损失。
五、上供助记词
该类钓鱼网站主要是在网页连接钱包处,或者其他位置诱骗用户点击,之后弹出一个伪造的网页,提示用户诸如“MetaMask插件版本需要升级”等信息。如果用户相信并填写了自己的钱包助记词,那么用户的私钥就会上传到攻击者服务器导致用户钱包被盗。具体如下图所示:
![防范钓鱼攻击png17](https://static.okx.com/cdn/assets/plugins/contentful/4nqoo8goeymu/3colKTPzQTcwWiGbqXSTRg/50c3ba73ede873b478d9667b5e330cd4/____17.png?x-oss-process=image/resize,w_864,h_377/format,webp)
该钓鱼网站弹出如下信息,提示用户检测到了MetaMask的一个安全问题,需要用户升级该钱包插件版本。如果用户在框中输入助记词,则会导致钱包被盗。
![防范钓鱼攻击png18](https://static.okx.com/cdn/assets/plugins/contentful/4nqoo8goeymu/2Iqi9yHEx8NvFWRkXPWtRr/8e598d6793ee4769a0ab6c1fd351ac54/____18.png?x-oss-process=image/resize,w_795,h_441/format,webp)
安全建议:在涉及私钥、助记词相关敏感操作时,务必确认对应网站、钱包的安全性和真实性,不与任意第三方分享私钥和助记词。
© 2023 OKX。本文可以全文复制或分发,也可以使用本文 100 字或更少的摘录,前提是此类使用是非商业性的。整篇文章的任何复制或分发亦必须突出说明:“本文版权所有 © 2023 OKX,经许可使用。”允许的摘录必须引用文章名称并包含出处,例如“文章名称,[作者姓名 (如适用)],© 2023 OKX”。不允许对本文进行衍生作品或其他用途。