10.4.1 恶意授权、虚假交易攻击的原理

再采用冷钱包,或者用热钱包但安全意识较强,不下载未知程序的前提下,黑客无法取得用户的私钥,但这时并不能确保绝对的资产安全。

以太坊及EVM兼容系列的区块链上,各种资产还存在“授权”的问题。除了该链的原生代币(如以太坊主网上的ETH,BSC主网上的BNB等),我们常见的代币如USDC、SHIB之类的代币都是所谓的ERC20代币,这些ERC20代币在初始状态下都是只有拥有者可以转账,不过当你要进行除转账意外的交易时,往往需要授权给其它地址,允许他们使用你账户内的某种代币

比如我们希望在UniSwap上用USDC购买1000$的SHIB,首次进行需要发送两笔交易,第一笔授权UniSwap合约使用你账户内的USDC(可以手动设置为1000$的额度,不做修改默认为额度无限大),第二笔交易则是UniSwap的合约地址从你的钱包中转出1000枚USDC,并转给你1000$的SHIB代币。

按上述逻辑,如果你是授权给黑客的恶意钱包地址,并且是默认的授权最大上限,这意味着对方可以直接从你钱包中取走被授权过的全部该代币。

当你看到弹出的交易是以下几种时,就应当警惕:

  1. Approve:授权某ERC20代币的使用额度。
  2. SetApproveForAll:授权某系列的NFT的全部使用权,如你拥有BAYC #111、BAYC #120等多个无聊猿NFT,授权一次就意味着对方合约能使用你的所有无聊猿。
  3. Transfer:意味转账,除了骗取授权,黑客也可以直接将你钱包中的资产转走。
  4. 0x开头的交易:常见交易都会显示特定的名称,复杂的交易则会显示所调用的Method ID,如果你进行的是如GameFi活动,那显示这种特殊的0x开头的交易是正常的,但如果你明明是进行Swap交易,Claim奖励确显示0x开头,那一定要引起警惕

10.4.2 恶意授权、虚假交易攻击的常见手段

这一类型的攻击手段一般只有一种,就是用钓鱼网站攻击。

  1. 搭建一个看起来很像UniSwap的网站(或其它知名DAPP网站),诱导受害者授权。之后黑客就可以将受害者的某种代币全部转走。

  2. 以“Mint某热门NFT”、“领取幸运空投”为名,诱导用户进入钓鱼网站,点击【Mint】按钮,【Claim】按钮后,弹出的交易并非Mint、Claim,而是Approve、SetApproveForAll、Transfer等敏感交易,周杰伦也被这种手段骗取过。

    引用 周杰伦被盗NFT已出售,黑客获利166.69 ETH

    Untitled

<aside> 👉 1、与上一章的安全意识类似,警惕识别可疑网址,避免贪心。

</aside>

<aside> 👉 2、遇到不熟悉的合约有授权时,也仅授权需要的额度。

Untitled

</aside>

<aside> 👉 3、除了自己养成足够好的安全习惯之外,我们也可以下载一些安全插件,比如BuidlerDAO出品的MetaShield,它会在用户即将进行高位交易的时候弹出提醒。 点击进入MetaShield Chrome商店下载链接

</aside>