2020年3月Compound推出“借贷挖矿”模式,让沉寂多时的币圈再次燥动起来。一位参与过DeFi挖矿的“矿工”表示,为了抢到头矿,他把注押在未经测试的代码上,“不管安不安全,先把头矿抢了。”开发者们更急,为了快速上线主网,从新发布的代码中获得最大收益,他们直接略过了安全审计的步骤。那些稳如泰山的黑客们,也开始把握机会,凭借自身技术实力,伺机攻击那些没有做好安全预防措施的DeFi们。进入11月,发生在DeFi协议上的攻击一起接着一起,DeFi们俨然沦为黑客的取款机。据PeckShield统计,截至目前共发生8起与DeFi相关的安全事件,包括YearnFinance、Percent.finance、CheeseBank、OriginProtocol、Akropolis、ValueDeFi、YFV、88mph,造成损失逾2100万美元。惊险时分:24小时发生两起攻击事件损失近800万美元
11月17日,PeckShield监控到DeFi协议OriginProtocol稳定币OUSD遭到攻击,攻击者利用在衍生品平台dYdX的闪电贷进行了重入攻击(Re-entrancyattack),造成价值770万美元的损失。随后,11月18日,PeckShield监控到DeFi固定利率借贷协议88mph存在代码漏洞,一名攻击者利用该漏洞铸造了价值10万美元MPH代币。据悉,88mph于11月16日上线主网,上线仅48小时就遭到了攻击。在88mph协议中,用户可通过存入加密资产赚取固定利息,并获得其原生代币MPH,也可通过购买浮动利率的债券来获取MPH代币。上线仅48小时后即遭伏击
PeckShield通过追踪和分析发现,首先,攻击者调用DInterest::deposit()函数将稳定币储存在资金池中,此时,存款者会收到一个新的depositID,它相当于非同质化通证,同时MPHMinter合约会开始铸造MPH代币;
随后,调用fundAll()函数购买浮动利率的债券,在此步骤中,用户可获得MPH代币和一个fundingID;
接下来,攻击者将步骤1和步骤2所获得的depositID及fundingID传入earlywithdraw()函数提取在这两步中所存入的资产。也就是说,攻击者将步骤1中原本要锁仓1年的加密资产被提前取出,此时攻击者不会获得任何利息,因此步骤2中提供的资金也原路退回,并且MPHMinter会销毁在步骤1中铸造的所有MPH代币。值得注意的是,在第2步中所铸的MPH代币并没有被销毁。攻击者利用这点,以0成本获得了步骤2所铸造的价值10万美元的MPH代币。
通过重复操作这三个步骤,攻击者铸造了价值10万美元的MPH代币,并将其存入UniswapV2:MPH4池中。利用另一漏洞侥幸逃过一劫
事实上,MPHMinter合约还有一个漏洞,而开发者利用此漏洞侥幸逃过一劫,使得此次攻击暂未造成任何经济损失。首先,开发者调用takeBackDepositorReward将所获MPH代币从UniswapV2:MPH4转移到govTreasury,该函数没有设置门槛,任何人都可调用此函数将MPH代币转移到govTreasury中。
由于攻击者将获得的MPH代币存入了UniswapV2:MPH4池子当中,而88mph项目方自己掏空了该池子,然后做了快照,因此暂未造成任何经济损失。
PeckShield相关负责人表示:“黑客们的攻击可能会毁灭或‘杀死’一个项目,DeFi们不要存在侥幸心理,应该做好充分的预防措施。如果对此不了解,应该找专业的审计机构对代码进行彻底地审计和研究,防范各种可能发生的风险。”开发者编写的每一段代码,就如同工业生产中的螺丝钉一般,即使很微小,却与DeFi行业的兴衰成败紧密相连。DeFi的生态仍处于早期发展阶段,但区块链的核心价值在于普世的信任,如果DeFi们仍一味追求快速上线主网,忽视代码的审计安全,最终只能将社区成员的信任消磨殆尽,成为没有灵魂的躯壳。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。