据PeckShield统计数据显示,2021年5月共计发生25起与DeFi相关的安全事件,损失金额约2.8亿美元,其中,闪电贷攻击约11起,在BSC链上发生的与DeFi相关的安全事件15起,在以太坊链上的3起,在EOS上的1起。
闪电贷攻击频现,从去年的以太坊转移到了今年大热的BSC上,不少人将闪电贷解读为作恶的源头、建立在DeFi之上的核弹、攻击者空手套白狼的本金。
实际上,这些言论是对闪电贷的误解,闪电贷只是利用区块链技术,将传统借贷市场无法实现的事情带来一种新的可能。理论上,闪电贷借贷允许用户通过无抵押的方式借出流动性池内的所有通证,并要求用户在进行一系列互换抵押清算操作之后、交易结束之前归还所借通证以及固定的借贷成本。
在BSC首次出现的闪电贷攻击是5月2日,笔者通过追踪和分析发现,DeFi协议Spartan Protocol遭到闪电贷攻击。之后闪电贷攻击出现在BSC链上的频率呈上升趋势,包括PancakeBunny、Bogged Finance、AutoShark、BurgerSwap、JulSwap。
PeckShield观察发现,这些闪电贷攻击手法与以太坊上曾出现的闪电贷攻击大同小异,只是从以太坊转移到BSC。随着年初BSC凭借低手续费、出块速度快等优势吸引了一批原以太坊上的DeFi协议和Fork以太坊上的DeFi协议,DeFi的生态日益丰富,绑定在BSC上的资产也越来越多,这也使其成为攻击者睥睨的收割场。
从上述6个闪电贷攻击案例中,我们发现大部分攻击与之前发生在以太坊上的攻击十分相似。
BurgerSwap与OUSD的攻击手法有异曲同工之妙。基于BS的BurgerSwap和基于以太坊上OUSD的闪电贷+重入攻击有相似之处,攻击者都是先从提供闪电兑换的去中心化交易所借出一笔闪电贷,再在智能合约中存入假币和原生Token(BURGER、OUSD),并在此步骤通过重入攻击来攻击合约,最后归还闪电贷完成攻击。
操纵Curve yPool的闪电贷攻击在BSC上重现。5月30日,BSC链上结合多策略收益优化的AMM协议Belt Finance遭到闪电贷攻击,PeckShield通过追踪和分析发现,此次攻击源于攻击者通过重复买入卖出BUSD,利用bEllipsisBUSD策略余额计算中的漏洞操纵beltBUSD的价格进行获利。
值得注意的是,Ellipsis是以太坊上DeFi协议Curve授权Fork的项目,多次操纵Curve yPool的价格,以套取稳定币价差的套利事件重现,Fork Curve的潘多拉魔盒是否已经打开?
总结,这些重现的闪电贷攻击都有迹可循,并非没有防御的办法。
PeckShield相关安全负责人表示:
协议开发者不仅要读懂Fork的DeFi协议,还要读懂自己的协议,协议的乐高性不是简单的拼接,而是在完全理解原协议背后的逻辑进行组合。目前对于闪电贷攻击并非没有解决的办法。我们发现攻击者多从已知的漏洞下手,要做的就是在协议上线前做好静态审计,排除已知的漏洞。
当其他协议遭到攻击时,自查程式码,排除同源漏洞;研究以往的案例,定期做动态审计,避免漏洞重现。除了寻求专业程式码审计团队的帮助,还需引入第三方安全公司的威胁感知情报和数据态势情报服务,完善防御系统。在攻击发生时,确保第一时间感知并及时采取应对措施。