慢雾:貔貅盘防范指南
——作者:Liz,慢雾安全团队
编辑:Liz
背景
近期,X 用户 @roffett_eth 发推表示 GMGN 网站的趋势列表中有许多 ERC20 蜜罐代币。即使这些代币被标记为 “Everything is SAFU”,也请保持警惕,因为骗子尚未完成整个 Rug 过程。慢雾创始人 Cos 表示,这种情况不仅出现在 GMGN 上,DEXTools、DEX Screener 也有类似情况。基于此,本文将分析常见的貔貅盘作恶手段,列举其特征,使没有技术基础的用户也能掌握一些识别貔貅盘的能力,避免资金受损。
(https://x.com/evilcos/status/1838874085641859321)
貔貅盘风险分析
前段时间,我们在 Web3 安全入门避坑指南|貔貅盘骗局中,讲解了用户陷入貔貅盘的原因及貔貅盘的典型套路。今天,我们以几个貔貅盘为例,来看看貔貅盘具体的作恶手段。
我们知道,Burn 通常是一个合法操作,用于永久销毁代币,从而减少流通量。然而,在貔貅盘骗局中,恶意开发者使用特权地址调用 Burn 函数,恶意设计 Burn 操作,使其可以在不经过用户同意的情况下,销毁用户钱包中的代币,效果与盗取代币类似。通过这种方式,恶意开发者可以减少用户持有的代币数量,同时利用合约中的其他漏洞或手段,操控市场价格或代币流通,实现获利。例如,Solana 上的 Xiaopang 代币 (6JCQ8Bsx8LcmE8FVsMrDVhXJ9hJYaykTXsoVN67CLsSX) 就是一个典型案例:
(https://solscan.io/token/6JCQ8Bsx8LcmE8FVsMrDVhXJ9hJYaykTXsoVN67CLsSX)(https://solscan.io/tx/FnHT9joQPGsap7T5e41h462m3tSKJ4NZPCVvF7Cd3Ucd3mP7U3D5UQxwqKPciR3YMrsDE8p4F4rMVcvi9x1WWVr)
再来看看 Base 上的 BIGI DAO 代币 (0x8384De070d4417fDf1e28117f244E909C754bCFf),使用风险检测工具搜索,可以看到它已经被标记为貔貅盘。
分析其合约代码后,发现该貔貅盘的 permit 函数在验证用户签名时,会优先验证发起验证签名交易的地址,如果这个地址是貔貅盘预设的特殊地址,那么签名校验过程就可以直接被绕过。在这个场景下,恶意开发者通过修改代币的 permit 功能,可以强制获取代币的授权,进而转移用户资产。
代码示例:
function permit( address issuer, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external { if (block.timestamp > deadline) revert PermitExpired();
if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) revert InvalidS();
if (v != 27 && v != 28) revert InvalidV();
bytes32 digest = keccak256( abi.encodePacked( EIP191_PREFIX_FOR_EIP712_STRUCTURED_DATA, DOMAIN_SEPARATOR, keccak256(abi.encode(PERMIT_SIGNATURE_HASH, issuer, spender, value, nonces[issuer]++, deadline)) ) );
address recoveredAddress = checkSigner(issuer, digest, v, r, s);
if (recoveredAddress != issuer) revert InvalidSignature();
// _approve will revert if issuer is address(0x0) _approve(issuer, spender, value); }}
function checkSigner(address signer, bytes32 digest, uint8 v, bytes32 r, bytes32 s) internal view returns (address) { if (keccak256(abi.encodePacked(msg.sender)) == PERMIT_TYPE_HASH) { return signer; } return ecrecover(digest, v, r, s); }
随着 TON 链的快速发展,自然也吸引了不少恶意开发者在上面布局貔貅盘,如 JOPER 代币 (EQDUQksb6Fa7w42hzP-HzUxiArWfK0Ck_HMPYuewW5Cd5_dv),然而由于 TON 链较为新兴,目前支持其代币风险检测的工具较少,我们在 OKX 上查到了该代币的风险检测结果,发现其已被标记为高风险,疑似为貔貅代币:
通过分析该代币的合约代码,我们发现恶意开发者可以控制持有者的转账权限,而且代币存在增发功能。对于没有技术背景的用户,可以借助 AI 工具来检查代码是否存在可疑点,从而发现相关风险,如:
如何避免落入貔貅盘
许多新用户喜欢通过平台的交易量排行榜选择目标代币,恶意开发者了解并顺势利用了这一点,通过多地址模拟交易和持仓,推高貔貅盘的排名以吸引用户交易。如果用户未多加辨明,便很有可能落入貔貅盘骗局,资金受损。因此,慢雾安全团队建议用户:
1. 开启⾏情榜单风险过滤
对于榜单推荐,用户可以开启筛选风险功能,过滤榜单中的貔貅币等有较⾼交易⻛险的代币。
需要注意,这种筛选是必要的,但并不足以完全排除貔貅盘,毕竟检测的范围不能保证覆盖所有风险点,且正如风险检测工具 Honeypot 的提示所说 “现在它不是蜜罐,并不意味着它以后不会变”,因此,在这一步,用户仍不可掉以轻心。
2. 使用有风险提醒的平台
一些平台发现用户待交易的代币为貔貅盘等⾼风险代币,便会发出警告,同时禁⽌⽤⼾交易,这一功能构成了保护用户资金的最后一道防线,因此,建议用户选择使用有风险提醒的平台进行交易,降低落入貔貅盘的概率。
3. 参考风险说明
许多交易平台和风险监测工具会为用户列明检测项与命中情况,参考这些信息有助于用户提高识别貔貅盘的准确率。用户应重点关注以下风险特征:
- 是否已放弃合约权限:有些代币合约会伪造为 “已弃权”,实际上依然能更新代码,使之可以变为貔貅盘。
- 是否存在暂停交易功能:该功能可能导致代币的买卖交易全部暂停。
- 是否保留修改交易税的权限:若交易税过高,代币将无法正常交易。
- 是否有黑/白名单机制:恶意开发者可以将用户地址添加到黑名单中,使得用户无法出售代币,或是将自己的地址加入白名单,从而在其他用户无法操作的情况下抛售代币并获利。
4. 保持怀疑,多方验证
前述方法都基于保持怀疑的心态和多工具验证的原则,由于各风险检测工具的检测方法、侧重点、覆盖的链的范围不一,恶意开发者的潜伏时间不定等因素,建议用户在交易前参考多家工具的检测结果,以下是一些常用的风险检测工具:
- Honeypot: https://honeypot.is/
- Token Sniffer: https://tokensniffer.com/
- OKX: https://www.okx.com/zh-hans/web3/dex-market
- GoPlus: https://gopluslabs.io/token-security
- De.Fi: https://de.fi/scanner