慢雾:Furucombo被黑分析

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

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

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

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

消息人士:花旗集团执行了一笔错误的交易,导致欧洲股市周一开盘闪崩:5月3日消息,消息人士称,花旗集团执行了一笔错误的交易,导致欧洲股市周一开盘闪崩,该交易涉及纳斯达克指数对瑞典公司的计算错误。(财联社)[2022/5/3 2:46:09]

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

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

当前Near Raibow桥接总资产为18.68亿美元:金色财经消息,Dune Analytics数据显示,当前Near Raibow桥接总资产为18.68亿美元,总用户数10553,总交易数28441。[2022/4/24 14:45:54]

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

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

法国政府提议设立一个机构来监管整个欧盟的加密货币:7月20日消息,法国政府提议欧洲证券和市场管理局 (ESMA) 应监管整个欧盟的数字货币活动。如果颁布,这将在整个贸易集团的加密行业建立一个单一的权威,并将通过 ESMA 在整个联盟内制定统一的法规,正如法国证券监管机构 Autorite des Marches Financiers 或 AMF 所建议的那样。AMF 的提案指出:“同样,授予 ESMA 直接监管欧盟加密资产公开发售(白皮书审查)和加密资产服务提供商的权力,将为所有国家监管机构创造明显的规模经济,并以有效的方式集中专业知识,为了欧洲的共同利益。”(cointelegraph)[2021/7/20 1:04:08]

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

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

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

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

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

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

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

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

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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块博客

币安下载金色观察丨平台币迎来大涨 交易所竞争格局悄然改变

金色财经 区块链2月21日讯? 最近一段时间,平台币似乎迎来了集体上涨,与此同时,我们也发现加密货币交易所彼此之间的竞争格局正在悄然发生改变。 牛年伊始,就在伊隆·马斯克“大力喊单”以及机构投资者强势入场等一系列“利好”刺激下,比特币飙升到近49,000美元的历史高位。而比特币的价格飙升也导致了整个市场在这个加密货币之王的引领下出现普涨。

SAND观察:比特币以太坊链上数据解析

2月24日,一则“巨鲸抛售14万枚比特币”的新闻牵动着加密货币投资者的神经。随着比特币价格一路上涨,近期大户钱包地址数据的确出现了一些变化,本文将通过数据分析为比特币市场走势提供一些参考。 自2020年3月以来,拥有1000至10000 BTC的钱包地址的持币数量一直处于强劲的上升趋势,至2021年2月5日,该数据增长了14.18%。

UNI深度分析:美联储首提5个央行数字货币发行先决条件

货币是一种以信任为基础的社会和法律结构,但现在,货币的概念已经发生演变。 1914年,美联储首次发行纸币,也开创了一个全新的货币时代。 现在,人们开始套利一种新形式的央行货币,与实物现金完全不同,它就是——央行数字货币。

欧易okex官网SUSHI、UNI双创新高 发展差异显现 DEX龙头花落谁家?

截止2月21日,DeFi协议总锁仓量已达到接近630亿美元的水平,DeFi一路走高,其重要领域——去中心化交易所(DEX)的竞争也分外激烈。Tokenlon、Matcha后来者虽势头强劲,Uniswap和SushiSwap两大巨头本身竞争亦更激烈,并且现稳居去中心化交易所前两位,可谓是当之无愧的引领当前DeFi牛市走向新高的领头羊。

[0:31ms0-8:740ms