事件背景:
DeFi借贷协议Lendf.Me今日遭受攻击,开发团队已在?Lendf.Me用户界面用红字提醒,呼吁用户目前不要向合约存款,此事发生,瞬间引起了外界对于区块链和数字货币安全的激烈讨论。
Lendf.Me于去年?9月推出后因其锁仓资产价值成为?DeFiPulse七大DeFi市场之一,今日攻击者利用重入漏洞覆盖自己的资金余额并使得可提现的资金量不断翻倍,最终将Lendf.Me盗取一空。
黑客攻击事件复盘:
据成都链安反合规和调查取证系统追踪统计,目前?Lendf.Me?损失已超2500万美元,完整攻击过程复盘如下:
此次攻击者地址为:0xA9BF70A420d364e923C74448D9D817d3F2A77822;攻击合约为:0x538359785a8D5AB1A741A0bA94f26a800759D91D,攻击者首先进行了多次攻击测试:
在合约部署完成后的第三笔交易(0xe49304cd3ed)中,攻击者进行了首次攻击尝试:
整个攻击事件开始阶段,攻击者的初始交易发送脚本存在问题,导致只有区块中的第一次攻击才能攻击成功,后面的交易全部抛出异常。
成都链安:hackerDao项目遭受价格操控攻击,获利资金已转至Tornado.cash:金色财经消息,据成都链安“链必应-区块链安全态势感知平台”安全舆情监控数据显示,hackerDao项目遭受价格操控攻击。成都链安安全团队第一时间进行分析,发现攻击者先从先闪电贷借出2500WBNB,拿出部分WBNB兑换出大量hackerDao,然后将这笔hackerDao发送WBNB/hackerDao;并调用该交易对合约的skim函数将多余代币领取至BUSD/hackerDao。由于hackerDao代币在转账时,如果转账接收地址是BUSD/hackerDao时,会同步减少发送者的代币余额以收取手续费,因此,WBNB/hackerDao交易对中的hackeDao数量被异常减少,从而影响该交易对的代币价格,使得攻击者最终利用WBNB/hackerDao兑换出WBNB时,获取额外的收益。目前攻击者实施了两次攻击,总计获利约200BNB,已经转至Tornado.cash 。[2022/5/24 3:38:37]
后面攻击者对攻击脚本做出了改动,一个区块只发送一笔攻击交易。首先分析这三笔成功的交易,可以看到攻击者的资金基本上呈现一个倍增的关系,攻击已经开始获利:
成都链安:fortress被盗金额已被转换成1048eth并转入了Tornado Cash:5月9日消息,据成都链安安全舆情监控数据显示,fortress 遭受预言机价格操控攻击,被盗金额已被转换成1048eth并转入了Tornado Cash。经成都链安技术团队分析,本次攻击原因是由于fortress项目的预言机FortressPriceOracle的数据源Chain合约的价格提交函数submit中,将价格提交者的权限验证代码注释了,导致任何地址都可以提交价格数据。攻击者利用这个漏洞,提交一个超大的FST价格,导致抵押品价值计算被操控,进而借贷出了项目中所有的代币。
攻击交易:0x13d19809b19ac512da6d110764caee75e2157ea62cb70937c8d9471afcb061bf
攻击者地址:0xa6af2872176320015f8ddb2ba013b38cb35d22ad
攻击者合约:0xcd337b920678cf35143322ab31ab8977c3463a45[2022/5/9 3:00:21]
https://etherscan.io/tx/0xae7d664bdfcc54220df4f18d339005c6faf6e62c9ca79c56387bc0389274363b
https://etherscan.io/tx/0xa0e7c8e933be65854bee69df3816a07be37e108c43bbe7c7f2c3da01b79ad95e
成都链安:BaconProtocol遭受攻击事件分析:据成都链安链必应-区块链安全态势感知平台舆情监测显示,BaconProtocol遭受黑客攻击损失约958,166 美元,关于本次攻击,成都链安团队第一时间进行了分析:1. 本次攻击利用重入漏洞,并凭借闪电贷扩大收益额。2:目前攻击者地址还没有被加入USDC的黑名单中。[2022/3/6 13:40:01]
https://etherscan.io/tx/0xf8ed32d4a4aad0b5bb150f7a0d6e95b5d264d6da6c167029a20c098a90ff39b4
到此时,攻击者已经完成对攻击过程的确认,之后的连续多个交易则是攻击者注册了多个代币地址用于代币兑换:
动态 | 成都链安再获联想创投、复星高科领投多轮数千万元融资:区块链安全公司成都链安科技有限公司继2018年5月分布式资本种子轮投资,2018年11月界石资本、盘古创富天使轮投资后,近期连获多轮融资,共计数千万人民币,由联想创投、复星高科领投,成创投、任子行战略投资,分布式资本、界石资本、盘古创富等老股东均跟投。
此次融资将用于持续深化区块链全生态安全布局、研发“一站式”区块链安全服务平台、开展自主可控的区块链安全技术研究、提升用户全新体验及全球化市场的拓展,助力成都链安成为全球区块链安全领域的行业标杆。在当前区块链新时代风口下,一方面成都链安将利用“一站式”区块链安全平台和服务,协助相关企业做好安全防护工作,提升安全防护能力,减少安全损失;另一方面将继续大力协助政府监管机构做好调查取证等工作,以切实加强安全监管;同时多为行业发展发出正能量的声音,带头建立起有序的行业规范,并促进安全标准建设。[2020/1/16]
https://etherscan.io/tx/0xc906fc184c6fd453b01d3bc04612cf90e8d339edfe1611e25baa47eb6e9ec080
以0xc906fc184c6f交易为例,0x06af07097c9eeb7fd685c692751d5c66db49c215是代币CHAI的合约地址,区块高度9899740~9899741基本上全部在注册代币。
之后攻击者继续发起攻击,可以看到,每次攻击后,攻击者持有的资金(imBTC)基本会翻一倍。
动态 | 成都链安:10月发生较典型安全事件共5起:据成都链安态势感知平台——Beosin?Eagle-Eye统计数据显示,在过去一个月(10月)中,共发生5起较为典型的安全事件。其中包括:1.EOS链上本月内总共发生两起攻击事件:一是假EOS攻击;二是游戏服务器解析参数问题。2.亚马逊云服务平台AWS被爆遭到了DDoS攻击,并因此被迫中断了服务。3.网页加密货币钱包Safuwallet被黑客通过注入恶意代码窃取了大量资金,并且殃及币安。4.Cryptopia被盗资产开始转移:一部分ETH流入知名DeFi借贷平台Compound;另有数个ETH流入一个叫做DeFi 2.0的DApp项目。鉴于当前区块链安全新形势,Beosin成都链安在此提醒各链平台需要增强安全意识,重视各类型安全风险,必要时可寻求安全公司合作,通过第三方技术支持,排查安全漏洞,加固安全防线;各钱包项目应进一步做好安全方面的审查,有意识地增强项目系统架构的安全性,并建立完善的应急处理机制。如发生资产损失,可借助安全公司的帮助,进行资产溯源追踪;用户在进行投资行为时需谨慎,远离资金盘,切勿刀口舔血。[2019/10/31]
通过这样不断翻倍的过程,在交易0xced7ca81308时,基本已达到imBTC的最大存量。
之后利用获利的imBTC借入其他代币,如下图所示:
黑客攻击手法分析:
以其中一笔交易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的流出资金进行的持续监控,绘制的攻击者资金流向图如下:
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。