据链闻消息,著名DeFi项目Furucombo被黑,损失超1500万美元。慢雾安全团队第一时间介入分析,并将攻击细节分享给大家。
攻击细节分析
本次发生问题的合约在Furucombo本身的代理合约当中。整个攻击流程很简单。攻击者通过设置了Furucombo的AaveV2Proxy的逻辑地址导致后续通过Furucombo代理合约调用的逻辑全部转发到攻击者自己的恶意合约上,导致任意资金被盗。
但是如果事情那么简单,那么本次分析不值一提。问题远比想象的复杂得多。
如上图所示攻击者的入口在Furucombo的batchExec函数,我们先对batchExec函数进行分析:
慢雾:疑似Gemini相关地址在过去5小时内共转出逾20万枚ETH:金色财经消息,慢雾监测显示,疑似加密交易所Gemini相关地址(0xea3ec2a08fee18ff4798c2d4725ded433d94151d)已在过去5小时内归集并转出逾20万枚ETH(超3亿美元)。[2022/7/19 2:22:08]
以上是FurucomboProxy合约的batchExec函数的具体实现,其中_preProcess和_postProcess合约分别是对调用前后做一些数据上的处理,不涉及具体的调用逻辑,这边可以先忽略。我们主要观察核心的_execs函数:
通过对execs代码的分析不难发现,函数的主要逻辑是对configs数组的数据做检查,并根据configs数组的数据对data进行一些处理。但是回顾上文中攻击者的调用数据,不难发现攻击者的调用数据中,configs的数据是一个0地址:
慢雾:BSC项目Value DeFi vSwap 模块被黑简析:据慢雾区情报,币安智能链项目 Value DeFi 的 vSwap 模块被黑,慢雾安全团队第一时间介入分析,并将结果以简讯的形式分享,供大家参考:
1. 攻击者首先使用 0.05 枚 WBNB 通过 vSwap 合约兑换出 vBSWAP 代币;
2. 攻击者在兑换的同时也进行闪电贷操作,因此 vSwap 合约会将兑换的 vBSWAP 代币与闪电贷借出的 WBNB 转给攻击者;
3. 而在完成整个兑换流程并更新池子中代币数量前,会根据池子的 tokenWeight0 参数是否为 50 来选择不同的算法来检查池子中的代币数量是否符合预期;
4. 由于 vSwap 合约的 tokenWeight0 参数设置为 70,因此将会采用第二种算法对池子中的代币数量进行检查;
5. 而漏洞的关键点就在于采用第二种算法进行检查时,可以通过特殊构造的数据来使检查通过;
6. 第二种算法是通过调用 formula 合约的 ensureConstantValue 函数并传入池子中缓存的代币数量与实时的代币数量进行检查的;
7. 在通过对此算法进行具体分析调试后我们可以发现,在使用 WBNB 兑换最小单位(即 0.000000000000000001) vBSWAP 时,池子中缓存的 WBNB 值与实时的值之间允许有一个巨大的波动范围,在此范围内此算法检查都将通过;
8. 因此攻击者可以转入 WBNB 进行最小单位的 vBSWAP 代币兑换的同时,将池子中的大量 WBNB 代币通过闪电贷的方式借出,由于算法问题,在不归还闪电贷的情况下仍可以通过 vSwap 的检查;
9. 攻击者只需要在所有的 vSwap 池子中,不断的重复此过程,即可将池子中的流动性盗走完成获利。详情见原文链接。[2021/5/8 21:37:37]
这里有一个trick,由于?0地址是一个EOA地址,所有对EOA地址的函数调用都会成功,但是不会返回任何结果。结合这个trick,execs函数中的关于configs数据的部分可以先暂时忽略。直接看到最后的核心_exec函数:
声音 | 慢雾:99%以上的勒索病使用BTC进行交易:据慢雾消息,勒索病已经成为全球最大的安全威胁之一,99%以上的勒索病使用BTC进行交易,到目前为止BTC的价格已经涨到了一万多美元,最近一两年针对企业的勒索病攻击也越来越多,根据Malwarebytes统计的数据,全球TO B的勒索病攻击,从2018年6月以来已经增加了363%,同时BTC的价格也直线上涨,黑客现在看准了数字货币市场,主要通过以下几个方式对数字货币进行攻击:
1.通过勒索病进行攻击,直接勒索BTC。
2.通过恶意程序,盗取受害者数字货币钱包。
3.通过数字货币网站漏洞进行攻击,盗取数字货币。[2019/8/25]
_exec函数的逻辑也很简单,在校验了_to地址后,直接就将data转发到指定的_to地址上了。而通过对攻击交易的分析,我们能发现这个_to地址确实是官方指定的合法地址。
分析 | 慢雾:韩国交易所 Bithumb XRP 钱包也疑似被黑:Twitter 上有消息称 XRP 地址(rLaHMvsPnPbiNQSjAgY8Tf8953jxQo4vnu)被盗 20,000,000 枚 XRP(价值 $6,000,000),通过慢雾安全团队的进一步分析,疑似攻击者地址(rBKRigtRR2N3dQH9cvWpJ44sTtkHiLcxz1)于 UTC 时间 03/29/2019?13:46 新建并激活,此后开始持续 50 分钟的“盗币”行为。此前慢雾安全团队第一时间披露 Bithumb EOS 钱包(g4ydomrxhege)疑似被黑,损失 3,132,672 枚 EOS,且攻击者在持续洗币。更多细节会继续披露。[2019/3/30]
最后一步,便是调用_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合约。如有授权,应及时撤销相关授权,避免进一步损失。
参考链接:
代币授权检查地址:https://approved.zone/
攻击交易:
https://ethtx.info/mainnet/0x6a14869266a1dcf3f51b102f44b7af7d0a56f1766e5b1908ac80a6a23dbaf449
尊敬的用户:Hotbit即将在开启A5T数字资产服务。具体安排如下:充值时间:现已开放?????????去充值:?https://www.hotbit.io/dw/deposit?symbol=.
1900/1/1 0:00:00尊敬的瓦特合约用户:近期行情波动较大,你永远猜不到它的“下一步”,瓦特合约为了让大家实时获得收益,特举办一金两用活动,行情平静时偃旗息鼓,持币享15%年化收益;行情波动时伺机而动.
1900/1/1 0:00:00尊敬的虎符用户,虎符将于2021年03月01日11:30(UTC8)重磅上线ALCX/USDT交易对。充值已开启,提现将于2021年03月02日10:00(UTC8)开启.
1900/1/1 0:00:00尊敬的LOEx用户:LOEx国际站上线UMA!并开放UMA/USDT交易对具体时间如下:提币:待定充币:3月2日15:00交易对:3月1日15:00注:未到充值开放时间请勿提前充值.
1900/1/1 0:00:00本文来自?Decrypt,原文作者:ScottChipolinaOdaily?星球日报译者?|念银思唐摘要:-ETP?数字资产管理规模在?2?月份增长?50%.
1900/1/1 0:00:002月26日14:00—3月5日14:00我们将开启Swingby(SWINGBY)超级空投福利,$60,000美元SWINGBY等你来拿!新用户请点击注册Gate.io并参与活动.
1900/1/1 0:00:00