链资讯 链资讯
Ctrl+D收藏链资讯
首页 > 瑞波币 > 正文

GAT:Furucombo 究竟为何会遭受攻击?慢雾拆解攻击细节_PRO

作者:

时间:

Furucombo此次事故并不在安全漏洞的范畴内,主要的原因在于官方将未启用的AaveV2Proxy合约添加进了自己的白名单中,并且未对AaveV2Proxy合约进行初始化,导致攻击者有机可乘。与Furucombo交互过的用户应及时撤销相关授权,避免进一步损失。

原文标题:《可避天灾,难免人祸——Furucombo被黑分析》撰文:慢雾安全团队

据链闻消息,著名DeFi项目Furucombo被黑,损失约1500万美元。慢雾安全团队第一时间介入分析,并将攻击细节分享给大家。

攻击细节分析

本次发生问题的合约在Furucombo本身的代理合约当中。整个攻击流程很简单。攻击者通过设置了Furucombo的AaveV2Proxy的逻辑地址导致后续通过Furucombo代理合约调用的逻辑全部转发到攻击者自己的恶意合约上,导致任意资金被盗。

Infura推出Sepolia测试网ETH水龙头:金色财经报道,ConsenSys旗下区块链开发平台Infura推出了Sepolia测试网的ETH水龙头,单个地址每天提供0.5枚SETH。[2023/3/30 13:34:31]

但是如果事情那么简单,那么本次分析不值一提。问题远比想象的复杂得多。

如上图所示攻击者的入口在Furucombo的batchExec函数,我们先对batchExec函数进行分析:

以上是FurucomboProxy合约的batchExec函数的具体实现,其中_preProcess和_postProcess合约分别是对调用前后做一些数据上的处理,不涉及具体的调用逻辑,这边可以先忽略。我们主要观察核心的_execs函数:

Aurora与ConsenSys合作,将把MetaMask和Infura引入NEAR生态:12月3日消息,基于NEAR的以太坊扩容方案Aurora与ConsenSys合作,旨在将MetaMask、Infura和更多基于以太坊网络的工具引入NEAR生态,提高跨链互操作性。据悉,Aurora将被添加进Infura产品套件中,该产品套件目前包含MetaMask、Infura、ConsenSys Quorum、Truffle、Codefi和Diligence 等特色项目。同时,ConsenSys将正式参与AuroraDAO的开发工作。[2021/12/3 12:48:14]

通过对execs代码的分析不难发现,函数的主要逻辑是对configs数组的数据做检查,并根据configs数组的数据对data进行一些处理。但是回顾上文中攻击者的调用数据,不难发现攻击者的调用数据中,configs的数据是一个0地址:

Infura产品主管:以太坊2.0的重头戏还在后面:Infura的总经理兼产品主管Michael Godsey表示:“把以太坊0阶段看作是测试阶段是对的。我认为,当开发者开始涉足ETH 2.0时,还是会处于后期阶段。”在Forkast.News的视频采访中,Godsey说道:“早期阶段确实需要验证质押架构是否有效,以及以太坊网络是否能在这个新的共识算法中运行。你会看到很多验证器和质押服务以及类似的服务上线,帮助人们参与其中。”注:Infura是ConsenSys子公司,允许用户在不设置节点或钱包的情况下在以太坊上运行应用程序。(Forkast)[2020/12/10 14:48:46]

这里有一个trick,由于0地址是一个EOA地址,所有对EOA地址的函数调用都会成功,但是不会返回任何结果。结合这个trick,execs函数中的关于configs数据的部分可以先暂时忽略。直接看到最后的核心_exec函数:

动态 | Bitfury推出新一代比特币挖矿机 Bitfury Clarke:日前,Bitfury宣布已完成BTC挖矿机Bitfury Clarke的升级,新的Bitfury Clarke可以优化比特币的挖掘。根据官方的解释,这主要归功于其精心的组装过程,使其在价格/质量比时有一个很好的选择。Bitfury首席执行官Valery Vavilov称,“Bitfury考虑了所有因素,包括硅封装、芯片效率、最佳功率分配、冷却设计和开发速度。我们认为这将为我们的客户带来最佳roi的解决方案——无论ASIC大小如何。”[2018/9/24]

_exec函数的逻辑也很简单,在校验了_to地址后,直接就将data转发到指定的_to地址上了。而通过对攻击交易的分析,我们能发现这个_to地址确实是官方指定的合法地址。

最后一步,便是调用_to地址,也就是官方指定的AaveV2Proxy合约的initialize函数,将攻击者自己的恶意地址设置成AaveV2Proxy合约的逻辑地址。通过对Furucombo合约的分析,可以发现整个调用流程上没有出现严重的安全点,对调用的地址也进行了白名单的检查。那么问题只能是出在了对应要调用的代理逻辑上,也就是AaveV2Proxy合约。

我们直接分析AaveV2Proxy合约的initialize函数的逻辑:

可以看到initialize函数是一个public函数,并在开头就检查了_implementation是否是0地址,如果是0地址,则抛出错误。这个检查的目的其实就是检查了_implementation是否被设置了,如果被设置了,就无法再次设置。根据这个设置,不难想出initialize这个函数只能调用一次。除非AaveV2Proxy从来没有设置过_implementation,否则这个调用是不会成功的。难道Furucombo真的没有设置过对应的_implementation吗?带着这样的疑问,我们检查了交易内的状态变化。如下:

可以看到,交易中改变了存储位置为0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc的内容,而写入的内容正是攻击者自己的恶意合约地址0x86765dde9304bea32f65330d266155c4fa0c4f04。

而0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc这个位置,正是_implementation数据的存储地址。

也就是说,官方从来没有设置过AaveV2Proxy合约的_implementation地址,导致攻击者钻了这个空子,造成了Furucombo资产损失。

总结

通过对整个事件的分析来看,Furucombo此次事故并不在安全漏洞的范畴内,主要的原因在于官方将未启用的AaveV2Proxy合约添加进了自己的白名单中,并且未对AaveV2Proxy合约进行初始化,导致攻击者有机可乘。

建议

目前,由于Furucombo遭受攻击,导致任何将代币授权过给Furucombo合约(0x17e8ca1b4798b97602895f63206afcd1fc90ca5f)的用户都将面临资金损失的风险。

慢雾安全团队建议与Furucombo交互过的用户检查是否有将相关代币授权给Furucombo合约。如有授权,应及时撤销相关授权,避免进一步损失。

来源链接:mp.weixin.qq.com

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

FURUCOMBO

FURUCOMBO

FURUCOMBO旨在节省操作步骤与手续费,无限DeFi组合。在不知道如何编程的情况下,将自己的DeFi投资组合进行集成。将所有策略整合到一个交易中,拖动多维数据集以重新排列操作顺序。Furucombo查看更多

标签:GATGATEHTTPROgate.io提现地址怎么填gate币本位CHTT币Mirror Protocol

瑞波币热门资讯
BIT:Hotbit 定于2021年3月1日上线 TVK (Terra Virtua)_Voltbit

尊敬的用户: Hotbit即将在开启TVK(TerraVirtua)数字资产服务,并开放TVK理财产品。预计年化收益:10%;计息:T1.

RAD:金色荐读 | 过去 现在 未来:以太坊网络的五年_cardano币局

本文发布于2020年7月30日,时值以太坊网络发布五周年。而今天,关于以太坊EIP-1559的问题,闹得沸沸扬扬。因此,当我们再来看此文,或许有不一样的收获.

GAT:Gate.io 双周报2021年2月第2期_GATE

Gate.io双周报为您囊括平台周期热点,助您快速掌握平台动态,状态持续“在线”。本周期GateChain公布了2021年2月期的开发进展;现货网格交易投资额突破2亿美元;Gate.io再次荣登.

ALPH:跌宕起伏的开年 加密市场走势如何_CUSD币

1.一月份以太坊的价格突破了1400美元的历史新高,ETH交易所相关交易产品和衍生品种类不断增加。2.自9月以来,BTC-USD交易总量相对于BTC-USDT交易总量几乎翻了一番.

Alpha5:金色微访谈第22期 | Alpha 机构进场的衍生品交易入口_ALPH

2月26号17:00,Alpha5CEO?VishalShah和FBGCapitalfounder?周硕基做客金色微访谈直播间,本次直播由金色财经海带主持.

CRC:BKEX Global 关于调整挖矿宝参与币种最小参与量的公告_okex数字资产交易平台

亲爱的BKEXer:????? ?? BKEX现已对挖矿宝参与币种最小下单量做出调整,具体详情如下:BTC单次最小存入数量需≥0.01ETH单次最小存入数量需≥0.5USDT单次最小存入数量需≥.