宇宙链 宇宙链
Ctrl+D收藏宇宙链

慢雾:Furucombo被黑分析

作者:

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

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

攻击细节分析

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

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

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

慢雾:针对macOS系统恶意软件RustBucket窃取系统信息:金色财经报道,SlowMist发布安全警报,针对macOS 运行系统的 Rust 和 Objective-C 编写的恶意软件RustBucket,感染链由一个 macOS 安装程序组成,该安装程序安装了一个带后门但功能正常的 PDF 阅读器。然后伪造的 PDF 阅读器需要打开一个特定的 PDF 文件,该文件作为触发恶意活动的密钥。[2023/5/23 15:20:27]

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

慢雾:警惕 Terra 链上项目被恶意广告投放钓鱼风险:据慢雾区情报,近期 Terra 链上部分用户的资产被恶意转出。慢雾安全团队发现从 4 月 12 日开始至 4 月 21 日约有 52 个地址中的资金被恶意转出至 terra1fz57nt6t3nnxel6q77wsmxxdesn7rgy0h27x30 中,当前总损失约 431 万美金。

经过慢雾安全追踪分析确认,此次攻击为批量谷歌关键词广告投放钓鱼,用户在谷歌搜索如:astroport,nexus protocol,anchor protocol 等这些知名的 Terra 项目,谷歌结果页第一条看似正常的广告链接(显示的域名甚至是一样的)实为钓鱼网站。 一旦用户不注意访问此钓鱼网站,点击连接钱包时,钓鱼网站会提醒直接输入助记词,一旦用户输入并点击提交,资产将会被攻击者盗取。

慢雾安全团队建议 Terra 链上用户保持警惕不要随便点击谷歌搜索出来的链接或点击来历不明的链接,减少使用常用钱包进行非必要的操作,避免不必要的资损。[2022/4/21 14:37:55]

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

慢雾:Cover协议被黑问题出在rewardWriteoff具体计算参数变化导致差值:2020年12月29日,慢雾安全团队对整个Cover协议被攻击流程进行了简要分析。

1.在Cover协议的Blacksmith合约中,用户可以通过deposit函数抵押BPT代币;

2.攻击者在第一次进行deposit-withdraw后将通过updatePool函数来更新池子,并使用accRewardsPerToken来记录累计奖励;

3.之后将通过_claimCoverRewards函数来分配奖励并使用rewardWriteoff参数进行记录;

4.在攻击者第一次withdraw后还留有一小部分的BPT进行抵押;

5.此时攻击者将第二次进行deposit,并通过claimRewards提取奖励;

6.问题出在rewardWriteoff的具体计算,在攻击者第二次进行deposit-claimRewards时取的Pool值定义为memory,此时memory中获取的Pool是攻击者第一次withdraw进行updatePool时更新的值;

7.由于memory中获取的Pool值是旧的,其对应记录的accRewardsPerToken也是旧的会赋值到miner;

8.之后再进行新的一次updatePool时,由于攻击者在第一次进行withdraw后池子中的lpTotal已经变小,所以最后获得的accRewardsPerToken将变大;

9.此时攻击者被赋值的accRewardsPerToken是旧的是一个较小值,在进行rewardWriteoff计算时获得的值也将偏小,但攻击者在进行claimRewards时用的却是池子更新后的accRewardsPerToken值;

10.因此在进行具体奖励计算时由于这个新旧参数之前差值,会导致计算出一个偏大的数值;

11.所以最后在根据计算结果给攻击者铸造奖励时就会额外铸造出更多的COVER代币,导致COVER代币增发。具体accRewardsPerToken参数差值变化如图所示。[2020/12/29 15:58:07]

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

慢雾:攻击者系通过“supply()”函数重入Lendf.Me合约 实现重入攻击:慢雾安全团队发文跟进“DeFi平台Lendf.Me被黑”一事的具体原因及防御建议。文章分析称,通过将交易放在bloxy.info上查看完整交易流程,可发现攻击者对Lendf.Me进行了两次“supply()”函数的调用,但是这两次调用都是独立的,并不是在前一笔“supply()”函数中再次调用“supply()”函数。紧接着,在第二次“supply()”函数的调用过程中,攻击者在他自己的合约中对Lendf.Me的“withdraw()”函数发起调用,最终提现。慢雾安全团队表示,不难分析出,攻击者的“withdraw()”调用是发生在transferFrom函数中,也就是在Lendf.Me通过transferFrom调用用户的“tokensToSend()”钩子函数的时候调用的。很明显,攻击者通过“supply()”函数重入了Lendf.Me合约,造成了重入攻击。[2020/4/19]

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

参考链接:

代币授权检查地址:https://approved.zone/

攻击交易:

https://ethtx.info/mainnet/0x6a14869266a1dcf3f51b102f44b7af7d0a56f1766e5b1908ac80a6a23dbaf449

标签:PROWARCOMUCOXPRO价格Galaxy WarPala Int CommCPUcoin

比特币交易热门资讯
Mask Network 第 1 轮空投细则及领取教程

2021年2月26日,MASK代币已经通过ITO以及LBP完成了公开发行,MaskNetwork官方于2月27日发布了MaskNetwork第1轮空投细则及领取教程.

1900/1/1 0:00:00
金色荐读 | 海外市场:美债利率上行过快的挑战

美债利率上行过快的挑战 大家好, 隔夜美债市场出现大幅波动,债券市场遭到抛售推动长端美债快速收高,10年美债利率不仅突破关键关口1.5%,更是在盘中一度创下1.61%的高点,为2020年疫情爆发以来的新高.

1900/1/1 0:00:00
最近大热的NFT究竟是什么,我们应该参与吗?

加密领域的最新热潮正在改变我们在数字领域买卖商品的方式。?一些卡通猫的盲盒、一段勒布朗高空扣篮的视频、一幅清晰度仅为5000像素的数码画即将在佳士得拍卖行出售。所有的这些都是不可替代的令牌,或者说NFT.

1900/1/1 0:00:00
陶治庸:BTC呈W底上升形态,ETH回调坚定做多!

BTC行情分析: 1小时图来看,MA5均线上穿MA10均线延伸,布林通道保持向上运行,开口较大,MACD水下金叉向上,KDJ三线聚合金叉向上发散RSI指标向上延伸运行,从形态来看.

1900/1/1 0:00:00
各路币价群魔乱舞,GX交易所稳中求胜

投资”类别中第三大最受欢迎的网站,1月份的月访问量有1.36亿之多,且在2月份持续增长。"],,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

1900/1/1 0:00:00
人工智能驱动的信息运营和新公民

数字信息就是力量,如今,市民可以在我们的日常数字平台上通过反应,评论,分享,保存和搜索来掌握这种新能力。但是,这种新力量无处不在,其直接影响仍然被AI推动的技术巨头黑匣子所掩盖.

1900/1/1 0:00:00