BTC:成都链安:Lendf.Me 2500万美元被盗!黑客如何肆虐?资金去了哪儿?

事件背景:

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

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

黑客攻击事件复盘:

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

此次攻击者地址为:0xA9BF70A420d364e923C74448D9D817d3F2A77822;攻击合约为:0x538359785a8D5AB1A741A0bA94f26a800759D91D,攻击者首先进行了多次攻击测试:

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

成都链安:Wuliangye NFT项目疑似Rug Pull,共获利70.5个ETH:8月11日,成都链安鹰眼监测显示,Wuliangye NFT项目疑似Rug Pull,官网和社群已关闭。成都链安安全团队通过链必追-虚拟货币智能研判平台追踪发现,有595个地址购买了705个WLY NFT,项目方共获利70.5个ETH,接着将ETH交换为111316.22个USDT,最终转入0x28C6c06298d514Db089934071355E5743bf21d60地址(标记为Binance 14)。[2022/8/11 12:18:18]

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

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

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

成都链安:Discover项目正在持续遭到闪电贷攻击:6月6日消息,据成都链安“链必应-区块链安全态势感知平台”安全舆情监控数据显示,Discover项目正在持续遭到闪电贷攻击,攻击者通过闪电贷使用BSC-USD大量重复兑换Discover代币,其中一个攻击者0x446...BA277获利约49BNB已转入龙卷风,攻击交易:0x1dd4989052f69cd388f4dfbeb1690a3f3a323ebb73df816e5ef2466dc98fa4a4,攻击合约:0xfa9c2157cf3d8cbfd54f6bef7388fbcd7dc90bd6

攻击者地址:0x446247bb10B77D1BCa4D4A396E014526D1ABA277[2022/6/6 4:05:40]

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

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

成都链安:2022年第1季度区块链安全生态造成的损失达到12亿美元:4月20日消息,成都链安统计数据显示,加密行业2022年第1季度安全事件造成的损失达到12亿美元。[2022/4/20 14:36:00]

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

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

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

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

成都链安:Visor Finance遭受攻击事件分析:据成都链安监测显示,Visor Finance于北京时间2021年12月21日晚上10点18分遭受攻击。经成都链安技术团队分析,本次攻击利用了Visor Finance项目抵押挖矿合约RewardsHypervisor的两个漏洞:

1.call调用未对目标合约进行限制,攻击者可以调用任意合约,并接管了抵押挖矿合约的执行流程;<- 主要漏洞,造成本次攻击的根本原因。2.函数未做防重入攻击;<- 次要漏洞,导致了抵押凭证数量计算错误,不是本次攻击的主要利用点,不过也可凭此漏洞单独发起攻击。针对这两个问题,成都链安在此建议项目方应做好下面两方面:1.进行外部合约调用时,建议增加白名单,禁止任意的合约调用,特别是能够控制合约执行流程的关键合约调用;2.函数做好防重入,推荐使用openzeppelin的ReentrancyGuard合约。[2021/12/22 7:55:18]

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

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

声音 | Beosin(成都链安)预警:某EOS竞猜类游戏遭受攻击 损失超1200枚EOS:根据成都链安区块链安全态势感知系统Beosin-Eagle Eye检测发现,今日上午 8:53:15开始,黑客yunmen****对EOS竞猜类游戏th****sgames发起攻击。截止到现在,该黑客已经获利超过1200枚EOS。Beosin建议游戏项目方应该加强项目运维工作,在收到安全公司的安全提醒之后第一时间排查项目安全性,才能及时止损,同时也呼吁项目开发者应该重视游戏逻辑严谨性及代码安全性。Beosin提醒类似项目方全方面做好合约安全审计并加强风控策略,必要时可联系第三方专业审计团队,在上链前进行完善的代码安全审计,防患于未然。[2019/4/3]

黑客攻击手法分析:

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

lendf.me合约地址:0x0eEe3E3828A45f7601D5F54bF49bB01d1A9dF5ea

imBTC合约地址:0x3212b29e33587a00fb1c83346f5dbfa69a458923

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

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

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

1、进入supply函数

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

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

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

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

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

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

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

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

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

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

安全防御建议:?

针对此次攻击事件,我们给予区块链企业如下的安全建议:

1、进行重入防护:比如使用OpenZeppelin的ReentrancyGuard;

2、先修改本合约状态变量,再进行外部调用

3、上线前进行必要的安全审计

被盗资金流向:

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

imBTCToken

0x3212b29e33587a00fb1c83346f5dbfa69a458923

Tokenlon?交易所

0xdc6c91b569c98f9f6f74d90f9beff99fdaf4248b

OneInchExchange?交易所

0x11111254369792b2ca5d084ab5eea397ca8fa48b

CompoundUSDCoin?借贷平台

0x39aa39c021dfbae8fac545936693ac917d5e7563

CompoundWrappedBTC?借贷平台

0xc11b1268c1a384e55c48c2391d8d480264a3a7f4

钱包地址

0x3dfd23a6c5e8bbcfc9581d2e864a68feb6a076d3

ChaiToken

0x06af07097c9eeb7fd685c692751d5c66db49c215

AugustusSwapper?交易所

0xf92c1ad75005e6436b4ee84e88cb23ed8a290988

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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-2:464ms