影子交易攻击基本都依赖着伪装成主流资产的假 Token。但有的时候,一些真正的主流资产,也有被当成攻击工具的可能。
撰文:Goplus
在 8 月 2 日 CZ 转发的一条的推文中提到了一起攻击事件。

CZ 也对事件进行了解读。很显然,攻击者利用多数钱包显示地址仅仅显示开头结尾的特征,使用与受害人目标地址首尾相同的地址(0xa7B4…E90570)迷惑了受害人,最终让受害人将自己的资产转到了钓鱼地址。

但其中具体的攻击过程并不是 CZ 所说的 dust transactions(超小额度转账),攻击者所使用的手段远远更加狡猾和难以防备。
实际上当我们观察攻击地址的交易记录(https://etherscan.io/address/0xa7Bf48749D2E4aA29e3209879956b9bAa9E90570#tokentxns)时就会发现,攻击者从未向受害人进行过任何转账,反而是受害人一直在向攻击地址转账。

在很长的一段时间里,受害人似乎在持续向攻击地址转出假冒的 USDT,直到被骗走了 20,000,000USDT。
这显然是非常奇怪的,也基本排除了 dust transactions 攻击的可能。
然后通过观察受害人者的地址(https://etherscan.io/tokentxns?a=0x407e4b78c16d22b21b5ddcd0b0f7ad9cb07b9cbc&p=2),我们得到了这一奇怪现象的原因:影子交易。

我们可以看到,受害人地址一直在不定期的向一个固定目标地(https://etherscan.io/address/0xa7b4bac8f0f9692e56750aefb5f6cb5516e90570)址进行较大额度的转账,那么显然我们可以认为这个目标地址 0xa7B4BAC8f0f9692e56750aEFB5f6cB5516E90570 一定是受害人高度信赖的强关联地址(例如交易所账号,或者冷钱包)。
于此同时,每次受害人对 0xa7B4BAC8f0f9692e56750aEFB5f6cB5516E90570 进行转账时,马上就会出现一条影子一样的交易出现,影子交易和原本的交易具有几乎相同的发出时间、同样金额,发出人相同,相似的收款人(0xa7B4…E90570),且 Token 名也为 Tether USD (USDT) 的交易。只不过这个所谓的 USDT 是一个假资产(https://etherscan.io/token/0x8a4b59b38c569d1cf09d6cc96cbe7a2fd8ee08e9?a=0xa7Bf48749D2E4aA29e3209879956b9bAa9E90570)并非真正的 USDT。

那么攻击手段就非常清晰了
这种影子交易攻击具有高度的迷惑性,它非常难以防备的核心在于以下几点:
在这四点的综合作用下,用户很容易不知不觉的中招。
实际上,这并不是这种攻击手段第一次被发现,早在 23 年初,Goplus 就注意到这类攻击手段开始逐步代替了传统的 dust transactions,成为了主流的转账诈骗手段。
而且攻击者远远不止一家,甚至可以看到多个攻击者在同时对一个地址进行攻击的高度内卷场面。
实际上,在这个攻击案例里,我们就可以看到又一个新的攻击地址对受害人展开了新的攻击。

在这里 Goplus 为大家给出几个防范影子攻击的建议。
影子交易攻击基本都依赖着伪装成主流资产的假 Token。但的时候,一些真正的主流资产,也有被当成攻击工具的可能。
例如,我们注意到,USDC 官方合约的 implementation(https://etherscan.io/address/0xa2327a938febf5fec13bacfb16ae10ecbc4cbdcf#code)居然没有在 transferFrom 方法下限制转账金额不为 0。

那么这就导致 allowance 验证恒成立,任何人都可以从任何地址向任何地址发起一段金额为 0 的转账。
所以未来攻击者完全可以不断通过 USDC 官方合约发出 0 额度交易,来污染被攻击者的交易记录,虽然额度不对,但是因为来自真是的 USDC 合约,也会具备相当的迷惑性。
这也暴漏了 Goplus 一直关注的问题,很多的 Web3.0 开发者虽然对自己项目的安全可以做到万无一失,但是对如何保护普通用户,还是考虑的不够深入。
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。
