月亮链 月亮链
Ctrl+D收藏月亮链

COMBO:慢雾:Furucombo被黑分析_FUR

作者:

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

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

攻击细节分析

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

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

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

Polygon zkEVM发布5月运营报告,网络总资产已超1800万美元:金色财经报道,PolygonzkEVM发布5月运营报告,报告称,Polygon zkEVM Mainnet Beta在5月份的指标反映了网络的稳步增长。与DeFi协议相关的资产突破了1000万美元大关,网络总资产现已超过1800万美元。

在过去的两周里,gas优化大大降低了网络交易的成本。三周前,一位DeFi用户支付了8.55美元的费用。同样的交易上周花费了1.21美元。

近30天,单日成交量多次刷新历史新高。5月25日,Polygon zkEVM主网测试版处理了超过25,000笔交易。较低的费用和更多的流动性会带来更多的用户。从4月25日到5月25日,独立活跃钱包增长了54%,随着5月15日桥接的新资产的大幅增长。[2023/5/31 11:49:16]

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

欧盟计划于2023年就数字欧元提出立法:金色财经报道,在今天由法兰西银行主办的一次会议上,欧盟专员Mairead McGuinness表示,欧盟委员会计划在2023年就“可能的”数字欧元提出立法,以使议会和欧洲理事会能够对其进行辩论。数字欧元工作目前正处于原型设计阶段,法兰西银行行长弗朗索瓦·维勒鲁瓦·德加豪证实,将在2023年底决定是否继续进行,并可能在2026年或2027年推出。

虽然欧元央行数字货币(CBDC)的工作主要集中在零售方面,但本周早些时候,欧洲央行证实,它也在考虑为银行间支付提供批发CBDC。(ledgerinsights)[2022/9/28 5:55:44]

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

报告:Meta今年的元宇宙损失高达94亿美元:金色财经报道,Meta报告显示,其元宇宙部门Reality Labs在今年第三季度亏损37亿美元。这使得现实实验室今年迄今为止的损失达到惊人的94亿美元。Meta公司说,它 \"预计Reality Labs的运营亏损 \"在明年不会大幅增长。Meta公司说,现实实验室本季度的收入为2.85亿美元,低于上一年的5.58亿美元。该公司的 \"应用家族 \"业务部门,包括Facebook和Instagram,注册了274亿美元的收入。

最近,Meta股东Altimeter资本管理公司的首席执行官在一篇博文中建议,该公司除了减少投资外,还要削减至少20%的员工,主要是将Reality Labs的支出限制在每年不超过50亿美元。不到一个月前,扎克伯格告诉员工Meta公司正在冻结招聘和重组团队以削减成本。(the block.)[2022/10/27 11:46:43]

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

英国央行副行长坎利夫:我们并不认为加密货币存在系统性风险:5月17日消息,英国央行副行长坎利夫表示,正在密切关注加密货币;加密货币现在被视为一种风险资产;我们并不认为加密货币存在系统性风险;但你永远无法确定什么会引发信心的丧失; 随着量化紧缩政策的启动,我们将看到投资者撤出风险资产;许多散户投资者不懂加密货币。(金十)[2022/5/18 3:23:27]

_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合约。如有授权,应及时撤销相关授权,避免进一步损失。

来源:金色财经

标签:COMBOCOMBFURCOMcombo币发行价ComBitFurioEcomi

芝麻开门交易所热门资讯
INC:2/28 BTC实操布局 带单斩获2900个点利润 要盈利 请拿出你的胆识_tinc币发行量

这里没有华丽的语言,只有实实在在的交易,以及明明郎朗的操作,市场只有一个方向,不是多头也不是空头,而是做对的方向.

1900/1/1 0:00:00
比特币:熊市真的来了吗 牛市又真的走了吗_TET

翻遍这一周的信息流。不知道为什么,突然有一股很强烈的“牛市走了”的错觉,十分恍惚。比特币在四万五千美金的时候居然感觉到熊市,江湖果真是那么扑朔迷离吗当然了,我说的仅仅是圈内的气氛,对比特币的短线.

1900/1/1 0:00:00
BNB:实战解析币圈:2-27 以太坊实操带单 单边斩获71个点位 做奇迹的创造者_Goes Up Higher

牛市行情波动太大,做单尽量扩大止损,策略仅供参考,不构成实际操作,网络存在延时,具体操作以实盘为主,近期老师给出的策略,都能把握30-50美刀的利润,由于客户太多,不一一回复,vip投资者优先.

1900/1/1 0:00:00
NFT:生命线破位后的超跌反弹 什么时候抄底?_terra币和luna币关系

青龙看趋势稳定币的总市值突破500亿美元,加密交易所的稳定币持有量超78亿美元,这部分沉淀在交易所的稳定币,毫无疑问将会是后期调整到位的抄底资金.

1900/1/1 0:00:00
USD:兴鑫论币:3.1早间比特币行情分析与操作策略_PPL

兴鑫论币:3.1早间比特币行情分析与操作策略  比特币从1小时看是上涨趋势。从附图看MACD快慢线向上扬靠近0轴;KDJ三线分散向上;RSI三线分散向上。建议做多为主.

1900/1/1 0:00:00
IMO:HECO币修课|新币速递之Mimosa(含羞草)永久型通缩区块链协议_MIM

什么是Mimosa?Mimosa团队由日本经济学研究者所组成,MIMO是Mimosa的通缩型加密资产。为什么要使用MIMO?通缩币早在几年前诞生,代表是Boom.

1900/1/1 0:00:00