dForce协议遭攻击事件全解析
事件背景
2019年9月,dForce协议团队推出了DeFi借贷应用Lendf.Me,允许用户通过特定加密代币赚取利息。在攻击事件发生前,该应用已成为中国加密货币领域最受欢迎的DeFi项目。2020年1月,Compound借贷项目指控dForce抄袭其代码库,这一指控得到了法证证据的支持,即在dForce的GitHub代码库中发现了Compound代码的残留。
代码漏洞分析
这些代码残留对4月18日的dForce攻击事件至关重要,因为它表明dForce继承了Compound v1协议的某些关键方面,其中之一是缺乏所谓的"重入防护"。虽然这在Compound v1中并非漏洞,但这一特性使得该协议在选择支持的代币方面更为保守。具体而言,Compound v1不支持ERC-777代币,因为这种代币虽然比以太坊标准ERC-20代币更具灵活性,但也提供了更大的攻击面。
自2018年以来,加密货币审计机构已经充分认识到并警告过这种潜在的DEX攻击向量。因此,Compound v1不支持ERC-777代币以减轻重入攻击的风险。dForce的两个灾难性错误在于:1)继承了其未完全理解的代码;2)在Lendf.Me上支持ERC-777代币,却未充分意识到这样做的后果。
攻击过程
4月19日星期日,攻击者使用imBTC(比特币的ERC-777"打包"版本)对Lendf.Me发起了一系列重入攻击。在短时间内,恶意行为者成功窃取了价值约2500万美元的以太币(ETH)、代币化比特币和其他代币。几小时内,Lendf.Me的开发者确认了攻击事件,并建议用户停止向该应用存入资金。
攻击发生后,一些用户开始通过小额ETH交易向攻击者的公开以太坊地址发送请求,要求归还资金。dForce团队也通过这种通信方式联系攻击者,试图就被盗资金进行谈判。当晚,dForce创始人杨民道在一篇博客文章中证实,攻击者已尝试联系他们,他们打算与攻击者进行讨论。杨还确认其团队已与"多个司法管辖区的"执法部门联系,并"联系了资产发行方和交易所,以追踪和黑名单攻击者的地址"。
值得一提的是,4月18日,流行的DEX Uniswap也因重入攻击损失了30万美元的imBTC资金池。目前尚不清楚这是否与dForce攻击者为同一人。
资金归还
随着多家加密货币交易所迅速将dForce黑客地址列入黑名单,攻击者很快发现许多被盗代币由于缺乏可行的变现途径而变得一文不值。这一现实促使攻击者向dForce团队归还了部分代币,例如381,000 Huobi USD(HUSD)和320 Huobi BTC(HBTC)。这些归还的代币约占被盗资金的十分之一,但对dForce来说,总比一无所获要好。
截至今日,在受攻击影响者的呼吁下,以及攻击者可能因使用Uniswap交易所且未使用Tor访问网站界面而暴露身份后,黑客已归还所有被盗资金。