著名DeFi项目Furucombo被黑,损失超1500万美元。慢雾安全团队第一时间介入分析,并将攻击细节分享给大家。
攻击细节分析
本次发生问题的合约在Furucombo本身的代理合约当中。整个攻击流程很简单。攻击者通过设置了Furucombo的AaveV2Proxy的逻辑地址导致后续通过Furucombo代理合约调用的逻辑全部转发到攻击者自己的恶意合约上,导致任意资金被盗。
但是如果事情那么简单,那么本次分析不值一提。问题远比想象的复杂得多。
如上图所示攻击者的入口在Furucombo的batchExec函数,我们先对batchExec函数进行分析:
彭博分析师:SEC推迟碳配额ETF的决议对现货比特币ETF不利:金色财经报道,美国SEC推迟了就上市首个实物碳配额ETF的规则变更提案的决议,彭博资讯 (Bloomberg Intelligence) 分析师Eric Balchunas表示,这可能对Ark Invest、贝莱德 (BlackRock) 和富达 (Fidelity) 等递交现货比特币ETF申请的公司带来坏消息,因为碳配额ETF的流程与现货比特币ETF的流程“完全相同”。[2023/7/27 16:01:21]
以上是FurucomboProxy合约的batchExec函数的具体实现,其中_preProcess和_postProcess合约分别是对调用前后做一些数据上的处理,不涉及具体的调用逻辑,这边可以先忽略。我们主要观察核心的_execs函数:
加州消费者联合会再次提出旨在许可和规范加密交易活动的《数字金融资产法》:金色财经报道,非营利性倡导组织加州消费者联合会(CFC)在加利福尼亚州立法机关再次提出旨在许可和规范加密货币交易活动的法案《数字金融资产法》。
该法案由美国加州众议员Timothy Grayson于2022年提出,但被加州州长否决。CFC表示议会将在4月开始对该法案进行首次听证会。如果获得通过,该法案将于2025年1月1日成为法律,禁止公民在“满足某些标准”之前从事加密业务,监管机构将在加州金融保护和创新部授权加密公司,确保监管清晰和投资者保护问题。[2023/2/13 12:03:07]
通过对execs代码的分析不难发现,函数的主要逻辑是对configs数组的数据做检查,并根据configs数组的数据对data进行一些处理。但是回顾上文中攻击者的调用数据,不难发现攻击者的调用数据中,configs的数据是一个0地址:
Web3游戏公会Meta Masters Guild完成210万美元私募轮融资:金色财经报道,Web3游戏公会Meta Masters Guild宣布完成210万美元私募轮融资,根据其白皮书,Meta Masters Guild自称是全球首个基于移动的Web3游戏公会,主要帮助项目在以太坊区块链上开发基于加密货币的手机游戏,目前Meta Masters Guild正在构建游戏项目生态系统,并通过其即将推出的赛车游戏、NFT项目和元宇宙平台为玩家提供其原生代币的奖励。(newsbtc)[2023/2/1 11:40:08]
这里有一个trick,由于?0地址是一个EOA地址,所有对EOA地址的函数调用都会成功,但是不会返回任何结果。结合这个trick,execs函数中的关于configs数据的部分可以先暂时忽略。直接看到最后的核心_exec函数:
MAGIC上涨突破1.73美元后回落,24小时涨幅28.57%:1月28日消息,行情数据显示,MAGIC(TreasureDAO)上涨突破1.73美元后回落,现报价1,61美元,24小时涨幅28.57%。[2023/1/28 11:33:32]
_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合约。如有授权,应及时撤销相关授权,避免进一步损失。
来源:金色财经
ETH行情分析:???????以太坊的走势跟比特币大致相同,目前来看K线位于布林带上轨运行,下方支撑位1300一线;二线压力位诶1378一线;一线压力位1456一线;短期布林带呈现出喇叭口双开走.
1900/1/1 0:00:00DeFi的指数级增长和FOMO情绪吸引了许多新的加密投资者和开发者进入区块链领域,传统金融玩家也蠢蠢欲动。每个人都想在DeFi和NFT世界中寻找最佳投资项目.
1900/1/1 0:00:00英国的贵族由来已久,延续至今一直为世人所津津乐道,中国很多豪门人士都会特意把孩子送到英国的私立学校,希望把孩子培养成真正的贵族.
1900/1/1 0:00:00????我这里没有华丽的语言,只有实实在在的交易,以及明明郎朗的操作,市场只有一个方向,不是多头也不是空头,而是做对的方向.
1900/1/1 0:00:00自2017年以来,投资者一直在等待比特币ETF的批准,因为这种基金的存在是传统金融领域大规模采用和接受比特币的重要标志.
1900/1/1 0:00:00刘裘蒂:有一波美国企业正考虑通过购买比特币和加密货币来重组资产负债表,这将为资本市场带来什么样的焦虑和风险?比特币在2月19日突破总市值1万亿美元的里程碑.
1900/1/1 0:00:00