UniCats “开后门” 钓鱼 十数万 UNI“洗白”

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

时值国庆大假期间,加密钱包初创公司 ZenGo 的研究员亚历克斯·马努斯金(Alex·Manuskin)爆料称,有用户一夜之间损失了价值 14 万美元的 Uniswap 代币 UNI,而这与名为 UniCats 的“收益农场”有关。

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

据了解,一些参与 DeFi 提供流动性挖矿赚取收益的用户最近发现了 UniCats 这个新农场。从界面来看,UniCats 类似 Yam Finance 和 SushiSwap;收益方面,不仅可挖矿本地 MEOW 代币,同时还可挖出包括 UNI 在内的其它代币。

界面友好,产能不赖,资产入场。

当用户准备提供流动性时,UniCats 弹出提示框,要求获取消费限制许可,而该许可的限制是:无限。

用户可能怎么也不会想到,在这个无限消费的许可的背后,UniCats 开发者早已暗置了一个直通自家资产的“后门”。用户的资产可由此被悄悄转移至开发者指定的地址。

就这样,有大胆且不幸的“农夫”瞬间被窃取了价值 14 万美元的 UNI,而其他用户也有不同程度的损失。

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

盗窃“现场”

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

那么,UniCats 开的这个“后门”,又是如何对用户进行窃金操作的呢?

1、盗窃者首先将 UniCats 的 owner 权限转移给一个合约地址。

2、盗窃者通过获得 owner 权限的合约地址调用 UniCats 的 setGovernance 方法。

3、setGovernance 函数调用对于代币的 transferFrom 函数,将用户资产转移到盗窃者地址。

第 2、3 步为此次盗窃的核心步骤,如下图所示:

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

“后门”分析

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

UniCats 合约中的 setGovernance 函数是实现盗窃的关键。通过调用此函数,UniCats 合约即可作为调用者,能够向任意合约发起任意调用。

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

据上图所示,调用该方法可输入两个参数 , 即一个地址类型的“_governance”和一个 bytes 类型的“_setData”。而函数的 governance.call(_setupData) 其实是表示向参数“_governance”地址发起一笔交易,其 calldata 为参数“_setData”。如此一来,只要有权限调用这个方法,便可以借合约的身份发起任意交易。

在进行代码编写时,其注释表示此函数是一个修改治理合约的函数,如下图所示:

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

事实上,根据成都链安的审计经验,修改治理合约通常并不需要调用 call。而且,UniCats 在对用户资产进行盗窃时,还刻意多次变换 owner 地址,如下图所示:

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

不仅如此,资产在转出后还立刻被流入混淆器,如下图所示:

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

如此操作,老练狠辣、一气呵成,因此基本可以断定,该项目就是一个彻头彻尾的骗局,为的就是钓鱼诈骗而上线。

令人细思极恐的是,在本案例中盗窃者调用了 transferFrom 方法对用户的资产实施转账,这就使得即便存在于钱包的用户资产,也可能面临被盗的风险。由于在合约授权时发起的是无额度限制授权,因此,一旦授权许可通过,合约就有权转移用户所有的资产。

成都链安郑重提醒,用户在进行合约授权时,使用多少,授权多少。这样操作的话,即便不幸遭遇类似欺诈性质的合约,也不会殃及钱包中的本金。如果用户不太清楚自己的授权情况,可以通过以下工具进行查询。

1、https://approved.zone

2、https://revoke.cash

3、https://tac.dappstar.io/#/

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

小 结

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

于 DeFi 领域,用户获得新币的门槛大大降低,通过组合资产投资的确可能在短期内实现大规模的增值收益。但是,用户资产可能面临的风险状况就变得更为复杂,在这点上必须引起高度注意。

在 DeFi 这个“黑暗森林” ,大胆冒险是禁忌一般的行为。用户资产不仅要受到客观行情波动的影响,质押时是否遭受“清算”也无法预知,而合约中的人为陷阱更是无处不在。

尤其是,不少 DeFi 项目都存在代理转账的逻辑,多数项目方也会直接要求用户授权最大值。也就是说,用户授权后,某些不良合约将利用留“后门”的手段,反噬用户所持的全部资产。

因此,对于用户而言,来自合约的一切许可请求都要格外注意,宁理性退场,不冒然入坑,时刻警惕恶意项目方的此类“后门”陷阱。

• end •

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

UniCats “开后门” 钓鱼 十数万 UNI“洗白”

UniCats “开后门” 钓鱼 十数万 UNI“洗白”