0x1事件背景
GrimFinance是一个智能收益优化平台,允许用户将AMMs发行的LP-Tokens押在GrimVaults中,这些LP-Tokens会自动收获并将其奖励重新押在LP-Tokens上,以获得复合效应,帮助用户收获更多的奖励。
零时科技区块链安全情报平台监控到消息,北京时间2021年12月19日,GrimFinance官方发推文称平台被外部攻击者利用,攻击者盗币价值超过3000万美元,零时科技安全团队及时对该安全事件进行复盘分析。
DeFi 概念板块今日平均涨幅为2.00%:金色财经行情显示,DeFi 概念板块今日平均涨幅为2.00%。47个币种中28个上涨,19个下跌,其中领涨币种为:RSR(+24.76%)、NEST(+19.16%)、SUSHI(+12.70%)。领跌币种为:CRV(-5.73%)、YFII(-5.10%)、WAVES(-5.01%)。[2021/1/2 16:15:03]
0x2攻击者信息
零时科技安全团队通过初步追踪分析,此次攻击发生在Fantom链,主要攻击信息如下:
攻击者钱包地址https://ftmscan.com/address/0xdefc385d7038f391eb0063c2f7c238cfb55b206c
攻击者合约地址https://ftmscan.com/address/0xb08ccb39741d746dd1818641900f182448eb5e41#code
聚币Jubi DeFi将于11月16日20:00上线一键挖矿AGS:据官方消息,聚币Jubi DeFi 将于2020年11月16日20:00(UTC+8)上线一键挖矿AGS。AGS挖矿为无损挖矿,聚币平台承担由于交易及链上费用带来的磨损。聚币Jubi将于2020年11月17日15:00(UTC+8)开放AGS/USDT交易。
Aegis是一个可扩展的DeFi平台,可让用户根据其个人信用评分访问借贷和无抵押借款服务。宙斯盾在资本桥中起着关键作用,使用户能够充分利用并无缝转移菲亚特货币和加密生态系统之间的流动性。[2020/11/16 20:57:29]
攻击交易https://ftmscan.com/tx/0x19315e5b150d0a83e797203bb9c957ec1fa8a6f404f4f761d970cb29a74a5dd6
GrimBoostVault合约https://ftmscan.com/address/0x660184ce8af80e0b1e5a1172a16168b15f4136bf#code
当前DeFi协议锁定资产总价值为78.20亿美元:金色财经报道,据DeBank数据显示,当前以太坊DeFi协议锁定资产总价值为78.20亿美元,锁定资产排名前五的分别为:Maker以14亿美元排在首位、Aave锁定资产总价值13亿美元、Curve锁定资产总价值11亿美元、Synthetix锁定资产总价值7.97亿美元、Compound锁定资产总价值为7.96亿美元。
注:总锁仓量(TVL)是衡量一个DeFi项目使用规模时最重要的指标,通过计算所有锁定在该项目智能合约中的ETH及各类ERC-20代币的总价值(美元)之和而得到。[2020/8/21]
0x3攻击分析
以下将拆解攻击者交易,方便读者更清晰地了解攻击过程。
DeFi 项目Serum上线FTX,最高涨幅达1550%:据官方消息,DeFi 项目 Serum(SRM)已于今日 21:30 上线 FTX,据 FTX 行情显示,SRM 开盘最高价为 1.650 美元,涨幅高达 1550%,SRM 暂报价 1.17 美元,SRM 公募价格为 0.11 美元,预售价格为0.16美元。
Project Serum 是一个完全去中心化的衍生品交易平台。它能够进行完全去中心化的跨链交易,并非常高效准确地给用户提供可执行交易的价格。它是基于 Solana 搭建,同时之后也会与以太坊整合。Serum 的运行速度非常快,支持跨链,稳定币,打包通证,订单簿,以及期货交易。[2020/8/11]
第一步:攻击者闪电贷借款30枚BTC和92万枚WFTM,并通过PancakePair将借款添加流动性获取0.0476枚SpiritLP。
第二步:将获取的SpiritLP质押后获得GB-BTC-FTM。
Messari分析师:没有直接原因可以解释当DeFi代币飙升时ETH必须上涨:Messari分析师Ryan Watkins近期表示,没有“直接原因”可以解释为什么当DeFi代币飙升时ETH必须上涨。Watkins援引Wang的话称:“DeFi正在‘To the Moon’。ETH为何没动静?简单来说就是,没有直接的理由说明为什么ETH必须与DeFi一起上涨。去年,Qiao Wang是第一个提出原因的人之一,他认为稳定币(加密美元)允许投资者出于投机意图绕过像ETH这样的原生加密资产。”
Watkins指出,一些DeFi代币,如Compound或Balancer,可以直接从Coinbase或Uniswap以美元购买,从而消除了2017年需要的“以太坊桥梁”。他补充道:“在过去的两年里,以太坊已经从IC0项目的存钱罐转变为一个迅速发展的数字经济。”Watkins还表示,效用(utility)是任何货币的核心驱动力。例如,美元为何比委内瑞拉玻利瓦尔更有价值,其原因就包括整体效用、全球可接受性和基础价值。随着像ETH 2.0这样的关键事件即将到来,以太坊的效用看起来不会很快被取而代之。(CryptoSlate)[2020/6/26]
第三步:通过多次质押存款获取GB-BTC-FTM。
第四步:将获取的GB-BTC-FTM归还,获得0.0663枚SpiritLP。
第五步:解除流动性获取41枚BTC和128万枚WFTM,并归还闪电贷借款及手续费,随后将获利的11枚BTC和36万枚WFTM转至攻击者钱包地址。
攻击者通过同样的攻击手法继续进行了8次攻击,如下图
至此
攻击者通过9笔攻击交易共获取累计获取26万枚BTC,1865万枚,75万枚DAI,75万枚USDC,13万枚BOO,价值约3000万美元。
下来通过合约代码了解漏洞发生的原因。
0x4漏洞细节
通过查询交易详情可以找出本次攻击中使用的合约方法主要有两个:
GrimBoostVault.depositFor方法,用户质押资金并返回相应的证明代币。
GrimBoostVault.withdrawAll方法,用户归还证明代币获取对应的质押资金。
通过交易分析我们可以得知,攻击者成功的第三步主要是由于多次运转depositFor方法造成,首先来分析该方法,通读depositFor方法流程,主要是判断用户将资金质押转入合约后,计算合约余额差值,随后将差值进行计算后发送给用户相应的质押证明代币。乍一看貌似没有安全问题,但细心的同学会发现,这里的token地址并没有做固定限制,该token地址是由用户传入,由于depositFor方法中会用到token合约地址中的safeTransferFrom方法,token合约地址为用户可控后,safeTransferFrom方法随之可控。
现在可明确攻击者的攻击路径,首先创建Token合约,并在合约中的safeTransferFrom方法中写入重新调用GrimBoostVault.depositFor方法的逻辑,在进行多次重入后最后传入一笔正常的Token代币质押,之后虽然会进入到正常流程,但是由于之前的多次重入,导致获取合约余额的前后差值过大,最终铸造了大量的证明代币。
例如:攻击者进行了6次重入,最后一次传入资金为100,那么最终得到的差值就是100*6,铸币时的计算值也是600。
重入成功后,攻击者调用withdrawAll方法归还重入获取的大量证明代币获取对应的质押资金,完成获利。
目前,GrimFinance官方已暂停所有金库,并提醒用户尽快提取自身所有资金,暂未声明合约修改方案和补偿方案。
0x5总结
通过此次攻击事件来看,攻击者主要利用GrimBoostVault合约depositFor方法未进行Token地址检查,通过多次重入造成巨大的合约余额差值,铸造大量资金,随后通过withdrawAll方法取走获利的资金,DeFi项目中类似的攻击事件居多,为何还会频频发生,对于DeFi项目而言,合约代码的安全,代币价格的相对稳定,方法传参的可控性,旧版本的及时更新都是保证项目安全极其重要的部分,任何细节的马虎都可能导致项目及用户资金受到损失。对于此类闪电贷攻击事件,零时科技安全团队给出以下建议。
0x6安全建议
对于合约代码安全,可找多家安全审计公司进行审计。对于涉及资金转账的方法,应进行严格的权限控制。对敏感性较强的代码,要做到及时更新完善。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。