Lendf.Me 区块链安详 dForce DeFi 安详
黑客进攻手法阐明:2.2 挪用 imBTC 的 transferFrom 函数转入代币时产生了重入,进攻者挪用 withdraw 取出了当前账户的 200 imBTC,进攻者账户余额记录为 0,进攻者得到了 200 imBTC。withdraw 执行完成后继承执行 transferFrom,将 0.1 imBTC 转入 lendf.me
事件配景:
1、进入 supply 函数
4. withdraw 执行完成后,继承从 1583 行后的 supply 函数剩余的代码,这部门的代码主要是记录账本数据,进攻者余额翻倍的错误也是在此处产生的:
2. 挪用内部 doTransferIn 函数,该函数会挪用 imBTC 的 transferFrom 函数举办代币转账操纵
OneInchExchange 生意业务所
成都链何在此发起:任何 Defi 项目方在开拓合约时应重视合约安详问题,以应对各类突发环境和各类非正常利用合约环境,从而制止造成损失;同时发起做好相关安详审计事情,借助专业的区块链安详公司的气力,制止潜在的安详隐患。
来历链接:weixin.qq.com
Defi 项目正在快速成长壮大,据我们统计截至 2020 年,锁定在 Defi 应用中的资产已到达了 10 亿美元。Defi 项目标火爆主要来历它的高收益。Defi 又被称为『去中心化金融』,开放式金融的基本,则是高达 8%-10% 的收益率一定会陪伴着庞大的风险。整个进攻事件开始阶段,进攻者的初始生意业务发送剧本存在问题,导致只有区块中的第一次进攻才气进攻乐成,后头的生意业务全部抛出异常。
Chai Token
此时进攻者余额记录中为 200.1 imBTC,手中尚有 200 imBTC,可以继承翻倍进攻。
1> 原先进攻者存款 100 imBTC,第一次 supply 存入 100 imBTC,进攻者账户余额为 200 imBTC
在合约陈设完成后的第三笔生意业务 (0xe49304cd3ed) 中,进攻者举办了首次进攻实验:
DeFi 借贷协议 Lendf.Me 昨日蒙受进攻,开拓团队已在 Lendf.Me 用户界面用红字提醒,号令用户今朝不要向合约存款,此事产生,瞬间引起了外界对付和安详的剧烈接头。
imBTC Token
HBTCToken
被盗资金流向:
0x3212b29e33587a00fb1c83346f5dbfa69a458923
这是一个快速迭代的规模,因此各方 Defi 团队开拓本身的合约产物也是自由发挥;但并没有一个统一的、尺度的安详方案去遵守,可能说是必需通过严格的安详审计,这就导致了各类合约裂痕与相关安详问题层出不穷,此次事件项目方就应该举办重入防护:好比利用 OpenZeppelin 的 ReentrancyGuard,另一方面先修改本合约状态变量,再举办外部挪用。
第 1 步,正常执行 supply 函数,存入 113.21475453 imBTC,这里未举办重入。
以个中一笔生意业务0x111aef012df47efb97202d0a60780ec082125639936dcbd56b27551ce05c4214 为例:imBTC 合约地点:0x3212b29e33587a00fb1c83346f5dbfa69a458923
2> 第二次 supply 存入 0.1 imBTC,这次产生了重入
2.1 在 supply 之初,读取用户余额记录,存入姑且变量 temp, 值为 200.1
Compound Wrapped BTC 借贷平台
Tokenlon 生意业务所
重入进攻的详细代码执行进程如下:
https://etherscan.io/tx/0xf8ed32d4a4aad0b5bb150f7a0d6e95b5d264d6da6c167029a20c098a90ff39b4
2.3 继承执行 supply,用姑且变量 temp(200.1) 更新用户余额记录,进攻者余额记录变为 200.1。
0x06af07097c9eeb7fd685c692751d5c66db49c215
据成都链安反洗钱合规和观测取证系统(Beosin-AML)追踪统计,今朝 Lendf.Me 损失已超 2500 万美元,完整进攻进程复盘如下:
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。