LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > 成都链安:Lendf.Me 2500 万美元被盗,资金去了哪儿?

成都链安:Lendf.Me 2500 万美元被盗,资金去了哪儿?

2020-04-20 区块律动BlockBeat 来源:区块链网络

原文标题:《成都链安:Lendf.Me 2500 万美元被盗!黑客如何肆虐?资金去了哪儿?》
原文来源:Beosin 成都链安

事件背景:

DeFi 借贷协议 Lendf.Me 昨日遭受攻击,开发团队已在 Lendf.Me 用户界面用红字提醒,呼吁用户目前不要向合约存款,此事发生,瞬间引起了外界对于区块链和数字货币安全的激烈讨论。

Lendf.Me 于去年 9 月推出后因其锁仓资产价值成为 DeFi Pulse 七大 DeFi 市场之一,昨日攻击者利用重入漏洞覆盖自己的资金余额并使得可提现的资金量不断翻倍,最终将 Lendf.Me 盗取一空。

黑客攻击事件复盘:

据成都链安反洗钱合规和调查取证系统(Beosin-AML)追踪统计,目前 Lendf.Me 损失已超 2500 万美元,完整攻击过程复盘如下:

此次攻击者地址为:0xA9BF70A420d364e923C74448D9D817d3F2A77822;攻击合约为:0x538359785a8D5AB1A741A0bA94f26a800759D91D,攻击者首先进行了多次攻击测试(如下图所示):



在合约部署完成后的第三笔交易 (0xe49304cd3ed) 中,攻击者进行了首次攻击尝试:



整个攻击事件开始阶段,攻击者的初始交易发送脚本存在问题,导致只有区块中的第一次攻击才能攻击成功,后面的交易全部抛出异常。

后面攻击者对攻击脚本做出了改动,一个区块只发送一笔攻击交易。首先分析这三笔成功的交易,可以看到攻击者的资金基本上呈现一个倍增的关系,攻击已经开始获利:




https://etherscan.io/tx/0xae7d664bdfcc54220df4f18d339005c6faf6e62c9ca79c56387bc0389274363b



https://etherscan.io/tx/0xa0e7c8e933be65854bee69df3816a07be37e108c43bbe7c7f2c3da01b79ad95e



https://etherscan.io/tx/0xf8ed32d4a4aad0b5bb150f7a0d6e95b5d264d6da6c167029a20c098a90ff39b4

到此时,攻击者已经完成对攻击过程的确认,之后的连续多个交易则是攻击者注册了多个代币地址用于代币兑换:




https://etherscan.io/tx/0xc906fc184c6fd453b01d3bc04612cf90e8d339edfe1611e25baa47eb6e9ec080

以 0xc906fc184c6f 交易为例,0x06af07097c9eeb7fd685c692751d5c66db49c215 是代币 CHAI 的合约地址,区块高度 9899740~9899741 基本上全部在注册代币。

之后攻击者继续发起攻击,可以看到,每次攻击后,攻击者持有的资金 (imBTC) 基本会翻一倍。



通过这样不断翻倍的过程,在交易 0xced7ca81308 时,基本已达到 imBTC 的最大存量。


之后利用获利的 imBTC 借入其他代币,如下图所示:



黑客攻击手法分析:

以其中一笔交易0x111aef012df47efb97202d0a60780ec082125639936dcbd56b27551ce05c4214 为例:


lendf.me 合约地址:0x0eEe3E3828A45f7601D5F54bF49bB01d1A9dF5ea

imBTC 合约地址:0x3212b29e33587a00fb1c83346f5dbfa69a458923



第 1 步,正常执行 supply 函数,存入 113.21475453 imBTC,这里未进行重入。

第 2 步,再次调用 supply 函数,存入 0.00000001 imBTC,在这次交易中,如第 3 步攻击者触发了 supply 函数中利用 transferFrom 函数转入代币时会通知发送方的特性,在发送方的代码中回调了 Lendf.me 的 withdraw 函数,取出了第 1 步 supply 中存入的 113.21475453 imBTC 以及在本次交易的上一笔重入交易中的 113.21475516 imBTC,总共为 226.42950969 imBTC,重入之后再次回到 transferFrom 剩余的代码中,继续执行将 0.00000001 imBTC 转入 lendf.me 的操作。

重入攻击的具体代码执行过程如下:

1、进入 supply 函数



2. 调用内部 doTransferIn 函数,该函数会调用 imBTC 的 transferFrom 函数进行代币转账操作



3. 在 imBTC 中,会调用攻击者指定合约 (0x538359785a8D5AB1A741A0bA94f26a800759D91D) 的 tokensToSend 函数,攻击者在函数中执行了重入操作, 该重入操作调用了 lendf.me 的 withdraw 函数,取出了 226.42950969 imBTC。



4. withdraw 执行完成后,继续从 1583 行后的 supply 函数剩余的代码,这部分的代码主要是记录账本数据,攻击者余额翻倍的错误也是在此处发生的:



整个攻击过程,举个例子:

1> 原先攻击者存款 100 imBTC,第一次 supply 存入 100 imBTC,攻击者账户余额为 200 imBTC

2> 第二次 supply 存入 0.1 imBTC,这次发生了重入

2.1 在 supply 之初,读取用户余额记录,存入临时变量 temp, 值为 200.1

2.2 调用 imBTC 的 transferFrom 函数转入代币时发生了重入,攻击者调用 withdraw 取出了当前账户的 200 imBTC,攻击者账户余额记录为 0,攻击者获得了 200 imBTC。withdraw 执行完成后继续执行 transferFrom,将 0.1 imBTC 转入 lendf.me

2.3 继续执行 supply,用临时变量 temp(200.1) 更新用户余额记录,攻击者余额记录变为 200.1。

此时攻击者余额记录中为 200.1 imBTC,手中还有 200 imBTC,可以继续翻倍攻击。

安全防御建议:

Defi 项目正在快速发展壮大,据我们统计截止 2020 年,锁定在以太坊 Defi 应用中的资产已达到了 10 亿美元。Defi 项目的火爆主要来源它的高收益。Defi 又被称为『去中心化金融』,开放式金融的基础,则是高达 8%-10% 的收益率必然会伴随着巨大的风险。

这是一个快速迭代的领域,因此各方 Defi 团队开发自己的合约产品也是自由发挥;但并没有一个统一的、标准的安全方案去遵守,或者说是必须通过严格的安全审计,这就导致了各种合约漏洞与相关安全问题层出不穷,此次事件项目方就应该进行重入防护:比如使用 OpenZeppelin 的 ReentrancyGuard,另一方面先修改本合约状态变量,再进行外部调用。

成都链安在此建议:任何 Defi 项目方在开发合约时应重视合约安全问题,以应对各种突发情况和各种非正常使用合约情况,从而避免造成损失;同时建议做好相关安全审计工作,借助专业的区块链安全公司的力量,避免潜在的安全隐患。

被盗资金流向:

攻击者在攻击得手后进行了资金转移,目前资金去向地址如下:

imBTC Token
0x3212b29e33587a00fb1c83346f5dbfa69a458923

Tokenlon 交易所
0xdc6c91b569c98f9f6f74d90f9beff99fdaf4248b

OneInchExchange 交易所
0x11111254369792b2ca5d084ab5eea397ca8fa48b

Compound USD Coin 借贷平台
0x39aa39c021dfbae8fac545936693ac917d5e7563

Compound Wrapped BTC 借贷平台
0xc11b1268c1a384e55c48c2391d8d480264a3a7f4

Chai Token
0x06af07097c9eeb7fd685c692751d5c66db49c215

0xf92c1ad75005e6436b4ee84e88cb23ed8a290988

Paxos Standard Token

0x8e870d67f660d95d5be530380d0ec0bd388289e1

HBTCToken

0x0316eb71485b0ab14103307bf65a021042c6d380

HUSD Stablecoin

0xdf574c24545e5ffecb9a659c229253d4111d87e1

Aave: Lending Pool

0x398ec7346dcd622edc5ae82352f02be94c62d119

根据成都链安 AML 对攻击者地址 0xA9BF70A420d364e923C74448D9D817d3F2A77822 的流出资金进行的持续监控,绘制的攻击者资金流向图如下:




来源链接:weixin.qq.com

—-

编译者/作者:区块律动BlockBeat

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...