火星链 火星链
Ctrl+D收藏火星链
首页 > NEAR > 正文

UNI:Uniswap和Lendf.Me遭攻击始末:DeFi乐高组合下的“多米诺”式崩塌

作者:

时间:1900/1/1 0:00:00

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多种资产。

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

Uniswap交易量连续第四个月超过Coinbase:金色财经报道,据CCData数据显示,去中心化交易所(DEX)Uniswap 4月份的交易量排名第一,连续第四个月超过Coinbase。Uniswap是运行在以太坊区块链上的DEX,交易量在2月份攀升至Coinbase之上,尽管此后两家交易所的交易量均有所下降,但Uniswap仍领先于Coinbase。Uniswap在4月份处理了约370亿美元的交易,而3月份处理了超过700亿美元的交易。Coinbase 4月份的交易量为340亿美元,而3月份为490亿美元。CCData研究分析师Jacob Joseph表示,3月份USDC与其他稳定币的脱钩是Uniswap交易量上升的一个重要因素。[2023/5/12 14:58:16]

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

Figure1:ERC777transferFrom()

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

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

Uniswap关于“BSL过期后跨链部署和新uniswap.eth子域名创建”的温度检查投票已通过:4月14日消息,Uniswap社区关于“商业源代码许可证(BSL)过期后跨链部署和新uniswap.eth子域名创建”提案的温度检查投票已结束,并以100%的支持率获得通过。

根据该提案,Uniswap基金会新任治理主管Erin Koen表示,BSL到期后,为每条链确定一个官方Uniswap V3部署将是有益的,以便为用户提供安全保障并明确Uniswap治理。此外,为了与在BSL到期后推荐的治理流程保持一致。Uniswap基金会建议创建一个新的ENS子域v3-deployments.uniswap.eth,以跟踪Uniswap v3在L1和L2上的官方部署。

此前消息,Uniswap V3核心代码版权商业保护(BSL)已于4月1日到期。[2023/4/14 14:03:18]

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

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

Uniswap推出Swap小部件允许用户无缝交换代币:金色财经报道,去中心化金融协议Uniswap推出了一款名为Swap Widget的工具。从本质上讲,该小部件允许开发人员和去中心化应用程序运营商使用“一行代码”嵌入Uniswap去中心化交易所应用程序。该公司周四表示:SwapWidget通过允许开发人员轻松嵌入Uniswap交换功能,允许他们的用户无缝交换代币、加入社区或DAO、包装资产等等。Swap小部件具有可定制的用户界面,并用于为小部件定价“捆绑UniswapLabs的自动路由器,以在Uniswap v2+v3代币池中找到最优惠的价格。(news.bitcoin)[2022/4/16 14:28:25]

Figure2:ERC777-CompatibletokensToSend()Hijacking

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

Unifi Protocol收购多链质押提供商Sesameseed的资产:Unifi Protocol收购多链质押提供商Sesameseed的资产,Unifi将在IoTeX、Icon、Ontology、Harmony、Tron和Waves上获得并运营Sesameseed现有的区块链节点。这些节点质押的资产约为1310美元,由超过250000个区块链地址质押。Sesameseed目前每天从其节点产生约3000美元的收入,这些节点现在将直接在Unifi协议生态系统中提供服务。(Crypto Briefing)[2021/7/18 1:00:59]

Figure3:OpenZeppelin'sExploitDemo(HookSetup)

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

UniCoin打新项目LUNA 79.7倍超额申购并将于20点上线:据官方消息,UniCoin交易所首期打新项目文旅产业公链LUNA,总申购倍数达79.7倍。UniCoin首期打新有4个兑换板块,分别为LUCY专区、USDT专区、UC专区、LUCKY专区,总参与人数高达26,507人。

UniCoin将于20点首发上线LUNA,开通LUNA/USDT,LUNA/UC交易对。届时,用户将可以自由交易。[2020/5/15]

Figure4:OpenZeppelin'sExploitDemo(HookFunction)

Uniswap?攻击分析

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

这意味着攻击者可以先通过操纵交易汇率,然后再用另一笔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市场的入口。

标签:UNISWAPUniswapENDethnographyofcommunicationBullswap protocoluniswap币总量有多少DLEGENDS币

NEAR热门资讯
加密货币:原油开商品期货负报价先河,我们应该担心比特币吗?

作者:有点懒的七爷来源:币市四点半在3月上旬,几乎所有大类资产集体崩跌让金融市场消息罕见无差别刷屏后短短一个月,原油市场又凭借一己之力博到了几乎所有人的眼球.

1900/1/1 0:00:00
LIB:深度解析 Libra 2.0 的取舍与坚持

撰文:郑嘉梁,HashKeyCapital研究总监。HashKeyCapital是香港数字资产集团HashKeyGroup旗下的区块链投资基金.

1900/1/1 0:00:00
加密货币:美联储终结自由市场后,为什么加密市场成了自由交易的“避难所”?

本文来源:区块链前哨,作者:BillyBambrough,译者:杨志昂“加密货币市场是我们仅剩的最自由的市场了,因为它的独立于各国央行和货币政策.

1900/1/1 0:00:00
比特币:BTC减半未至,矿机先倒一半?

文:嚯嚯来源:蜂巢财经4月21日,比特币网络迎来一次新的挖矿难度上调。受此影响,BTC网络单位算力收益由原来的0.00001709BTC/T下降至0.00001576BTC/T,跌幅7.7%.

1900/1/1 0:00:00
ALI:观点 | 这次减半或将再次催生比特币百万富翁阶层

原文:福布斯,原文作者:LukeFitzpatrick来源:Odaily星球日报,译者:念银思唐加密货币投资者和HODLer们都翘首以待,密切关注着5月中旬比特币减半事件的进展.

1900/1/1 0:00:00
区块链:案例解析|深圳法院判决盗窃以太坊构成盗窃罪,认定其财物属性

我们在上一篇文章中曾写到,刑法泰斗级人物张明楷教授认为,比特币属于刑法上的财物。那么,与比特币同属于加密数字资产的以太坊是否也属于刑法上的财物呢?深圳市福田区人民法院在最新的一起判决中给予了答案.

1900/1/1 0:00:00