链资讯 链资讯
Ctrl+D收藏链资讯
首页 > LTC > 正文

比特币:Uniswap和Lendf.Me遭攻击始末:DeFi乐高组合下的“多米诺”式崩塌_6月10日为啥比特币暴跌呢

作者:

时间:

04月18日上午08:58开始,?一DeFi平台?被黑客利用重入漏洞实施了攻击。PeckShield安全团队迅速定位到问题,发现黑客利用了Uniswap和ERC777标准的兼容性问题缺陷实施了重入攻击。

糟糕的是,仅仅在24小时后,于04月19日上午08:45,又一知名DeFi平台?Lendf.Me也被黑客以类似的手段实施了攻击。

黑客攻击的原理是:攻击者利用以太坊ERC777标准的transferFrom()回调机制,在内部调用?_callTokensToSend()?回调函数时劫持交易,并在真正更新余额的_move()函数之前进行恶意攻击。

在Uniswap的攻击案例中,攻击者利用此漏洞消耗尽UniswapETH-imBTC池约1,278个ETH。而在Lendf.Me中,攻击者则利用它来任意增加内部imBTC抵押金额,并通过从其他可用的Lendf.Me交易中借入10多种资产。

Suspicious Unicorn Society项目Discord服务器遭到攻击:金色财经报道,据CertiK监测,Suspicious Unicorn Society项目Discord服务器遭到攻击。请社区用户不要点击其中的任何链接。[2022/9/22 7:14:08]

PeckShield安全团队认为这是自年初bZx遭攻击之后,又两起黑客利用DeFi系统性风控漏洞实施的攻击。一个不容忽视的问题是,DeFi?市场的风险可能不仅仅局限于平台本身,单个平台的模式创新很可能在与其他平台业务接轨时产生漏洞风险。

详细漏洞攻击细节,我们将在文章后面做详细介绍。

Figure1:ERC777transferFrom()

ERC777标准的业务组合兼容性问题

我们首先介绍下ERC777标准,ERC777出现的目的是对ERC20标准进行改进。其不但实现了功能扩展,还有ERC20标准一样良好的兼容性,愿景是成为ERC20?标准的有效继承者。

UNI突破37美元关口 日内涨幅为8.36%:火币全球站数据显示,UNI短线上涨,突破37美元关口,现报37.0055美元,日内涨幅达到8.36%,行情波动较大,请做好风险控制。[2021/4/15 20:21:46]

该标准扩展的功能之一是提供了“hook”机制,可以使普通地址或合约通过注册一个tokensToSend()hook函数来控制或拒绝发送Token。这原本是在ERC20?基础上加强了对Token的风险控制接口,是一次有益的改进。不过由于DeFi项目的可组合特性,一个合约在不同产品之间相互调用时,其业务逻辑复杂度也会大大增加,这就给注入代码攻击提供了可能性。

其中最关键的部分是,攻击者可以通过注册from的tokensToSend()?来实行回调。我们从下面的代码片段可以看到,ERC777标准中可以通过getInterfaceImplementer()获得攻击者的tokensToSend()接口,并在第1,056行调用此函数。而此处正是黑客劫持交易实施攻击的入口。

新AMPL Geyser将在SushiSwap、Balancer和Uniswap上启动:Ampleforth宣布新一轮Geyser将在下周启动,新一轮Geyser共包括3个项目,分别将上线SushiSwap、Balancer和Uniswap,3个Geyser项目共将分配390万枚AMPL。到目前为止,已经有数千名社区成员参与在Uniswap和Mooniswap上进行的Geyser项目。[2020/11/21 21:35:46]

Figure2:ERC777-CompatibletokensToSend()Hijacking

如2019年4月OpenZeppelin发布的帖子以及2019年7月发布的漏洞利用演示中所述,攻击者可以自己定义函数tokensToSend(),并通过setInterfaceImplementer()来设置合约中的hook函数。

Figure3:OpenZeppelin'sExploitDemo(HookSetup)

58COIN USDT合约、混合合约同步上新UNI单品:据58COIN官方公告,其USDT合约及混合合约将于香港时间2020年9月18日16:00不停服上新UNI(Uniswap)单品,并开通2 - 100倍杠杆自主调节功能。此次上新后,两大合约交易标的扩大至45个。[2020/9/18]

之后攻击者就可以像传统PC上的hook函数一样,在tokensToSend()?做任何事情。如下图所示,攻击者可以对同一笔交易进行多次交易。

Figure4:OpenZeppelin'sExploitDemo(HookFunction)

Uniswap?攻击分析

Uniswap被率先发现利用ERC777的兼容性问题实施了攻击。就如此恶意交易在Bloxy中的截图所示(hash:0x9cb1d93d6859883361e8c2f9941f13d6156a1e8daa0ebe801b5d0b5a612723c1),函数内部进行了一次tokenToEthSwapInput()?调用。

声音 | DeFi贷款协议bZx声明:并没有用Uniswap喂价:DeFi贷款协议bZx发表声明称,此次操纵事件导致市面上出现很多不实流传,但bZx并没有用Uniswap喂价,Uniswap只是多个流动性来源之一。此前消息,去中心化金融(DeFi)贷款协议bZx被操纵导致以太坊损失,联合创始人KyleKistner表示,部分ETH(已)损失,此次事件是因为一个合约被利用导致的,目前bZx已暂时关闭该合约。安全研究人员目前在调查导致事故的确切原因,并表示,会发布详细的事后调查报告,目前剩余的资金是安全的。因为此次事件,bZx关闭了Fulcrum交易平台进行维护。DeFiPulse的数据显示,过去的24小时内,bZx协议中提出ETH达3300枚,约合93.2万美元,业内人士估测,此次损失金额约为35万美元。dForce&Blockpower创始人杨民道称此次事件是利用了四个DeFi协议之间做的操纵。整个操作路径是,操纵人从dydx的闪贷借出1万ETH,使用其中5000ETH在Compound借出112WBTC,5000ETH到bZx上开了WBTC的空单,用Compound借的WBTC去Uniswap砸盘,导致bZx空仓大赚,bZx的ETH出借人亏损。(链闻)[2020/2/16]

这意味着攻击者可以先通过操纵交易汇率,然后再用另一笔imBTC以较低价格兑换更多的ETH。

Figure5:UniswapHack

Lendf.Me?攻击分析

在Uniswap遭攻击约24小时后,又一DeFi平台Lendf.Me也遭到了黑客攻击。下面是其中一个攻击交易的截图。如图所示,

supply()函数中调用真实转账函数transferFrom()?时,被hook的攻击者合约里嵌入了盗用Lendf.Me的withdraw()的提币操作。

Figure6:Lendf.MeHack

在这个交易例子中,攻击者第一次supply()时确实向Lendf.Me存放了289.99999999个imBTC,而在第二个supply()中,攻击者只存放0.00000001个imBTC,但由于攻击者注册了tokensToSend(),所以在执行doTransferIn()->IMBTC::transferFrom()时,调用了攻击者函数tokensToSend(),攻击者函数通过调用Lendf.Me的withdraw()函数把290个imBTC直接全部提走。

需要注意的是,正常的业务逻辑应该是项目合约中的Balance会减去被攻击者提走的290个imBTC,然而当supply()?执行返回时,余额并未被重置,仍然为290imBTC。攻击者就是通过控制修改Lendf.Me中攻击者的imBTC抵押金额,有了足够大的imBTC抵押,攻击就可以从各种流动交易对中借出所有可用的10多种资产。

Figure7:Lendf.MeHackDetails

资产流向

攻击者0x538359共计从Lendf.Me获利25,236,849.44美元,其中各个Token分布如下:?

如上图,攻击者在获利之后,马上将各个Token转移至其关联账号0xa9bf70之中,之后攻击者数十次通过1inch.exchange,ParaSwap等平台将其中比较抢手的WETH,PAX,BUSD等Token换成ETH,DAI,BAT代币,另外将其中的TUSD,USDT代币存入Aave借贷平台。至此为止,攻击者及其关联账号的余额如上所示。

修复建议

PeckShield安全团队在此建议开发者,可以采用“Checks-Effects-Interactions”方法来防止这类重入攻击。举个例子,Lendf.Me的supply()里如果是先更新token余额,再调用?doTransferIn()。这将会让攻击在withdraw()?之后没有重置余额的可能性。

另一方面,ERC777标准特性会不可避免地启用hook机制,因此我们需要检测并防止所有交易功能产生可以重入的风险。例如,如果supply()?和withdraw()?同时运行时加个互斥锁,那么攻击者就无法在supply()??函数内部执行withdraw()?操作。

最后并不能被忽视的一点是,我们需要认真思考下DeFi业务组合可能存在的系统性风险问题,平台方不仅要确保在产品上线前有过硬的代码审计和漏洞排查,还要在不同产品做业务组合时考虑因各自不同业务逻辑而潜在的系统性风控问题。

可能一个新创新,在原平台一点问题都没有,但组合接入另一个产品后就可能存在业务逻辑缺陷,进而成为黑客攻击整个DeFi市场的入口。

标签:比特币ALIALICEICE6月10日为啥比特币暴跌呢ALINKalice币未来的价格预测

LTC热门资讯
TCO:神反转!盗取2500万美元后,黑客向dForce返还全部资产_FOR

在经历被盗近2500万美元资产后,dForce被盗事件出现了令人意想不到的神转折。EtherScan链上数据显示,虽然攻击者将部分盗取的资金换成别的币种,但目前已经返还全部被盗的资产.

数字货币:央行数字货币遭疯狂炒作:概念股一周涨51%,假APP号称7天发行10亿_Zild Finance Coin

文:比萨林格 来源:一本区块链 一张央行数字货币DC/EP钱包的截图,引爆了近期的股市。超过14支股票收获一个或多个涨停板,有的最高周涨幅高达51%.

比特币:研报 | 闪电网络的快与慢:12013个节点、36117个状态通道、925个比特币_AMA

Overview概述 闪电网络作为比特币的扩容解决方案之一,保持了比特币原链的核心特征。区别于BCH、BSV两个比特币分叉项目,闪电网络技术路径并没有选择通过增加比特币区块容量大小来扩容,而是选.

TOKE:a16z、5.15亿美元的加密基金:寻找下一个Big Thing_lend币价格

a16z前些日子宣布其5.15亿美元加密基金计划,它要继续在加密领域加码。之所以说它加码,是因为a16z一直是加密领域的重度参与者.

区块链:广州市印发推动区块链产业创新发展的实施意见(附全文)_WEB3

来源:广州市工业和信息化局今日,广州市工业和信息化局印发《广州市推动区块链产业创新发展的实施意见》的通知.

区块链:追踪丨“EOS生态”疑似暴雷,分散3.6亿元资产_STA

文:凯尔 来源:蜂巢财经 4月19日,“EOS生态”APP出现了无法登陆的情况,综合多名投资者的反馈信息,这个断断续续持续了一年半的资金盘项目疑似跑路.