火星链 火星链
Ctrl+D收藏火星链

DEPO:Grim Finance闪电贷安全事件分析

作者:

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

0x01:前言

援引官方消息,北京时间12月19日,Fantom链上复合收益平台GrimFinance遭遇了闪电贷攻击。知道创宇区块链安全实验室第一时间对本次事件深入跟踪并进行分析。0x02:事件详情

交易细节如下图所示:

浏览上图的交易过程可知,攻击合约利用闪电贷借取代币,将借取的代币质押到SpiritSwap里增加流动性获取lp代币,而问题就出现在depositFor()函数中。通过Tenderly(https://dashboard.tenderly.co/tx/fantom/0x19315e5b150d0a83e797203bb9c957ec1fa8a6f404f4f761d970cb29a74a5dd6/debugger调试该笔交易,攻击者多次递归调用depositFor函数,利用该函数获取大量代币:

Cardano生态DEX WingRiders完成种子轮融资:3月14日消息,Cardano生态DEX WingRiders完成种子轮融资,Animoca Brands、Bitrue、Double Peak Capital、Spark Digital Capital和Matrixport等参投。(Tech Asia)[2022/3/14 13:55:27]

0x03:漏洞分析

depositFor()函数位于https://ftmscan.com/address/0x660184ce8af80e0b1e5a1172a16168b15f4136bf#code的第1115行:

Nervos基金会宣布与Grin社区合作,以集成Grin底层隐私技术:Nervos基金会宣布与Grin社区合作,以集成Grin底层隐私技术。Nervos基金会将在Nervos上探讨隐私层设计方案。通过隐私层技术,可以实现Nervos用户在使用CKB或任何其他发行在CKB上的Token交易时的隐私性和匿名性。[2020/8/7]

该函数的safeTransferFrom()方法从IERC20(token)调用,最后一次调用,也就是逆序第一次执行后,余额balance也会随之变动。当前铸造凭证数量/前一笔铸造凭证数量固定为3.54:

动态 | 以太坊开发者Virgil Griffith已保释出狱:以太坊基金会(Ethereum Foundation)前特别项目负责人Virgil Griffith今日已正式保释出狱。法律及诉讼媒体Inner City Press今日在推特上发布了保释协议的图片。Griffith与法院副书记官Kyle A. Wirshba共同签署了这份协议。保释信息显示,Griffith的父母在1月6日便已签署了协议。但并不清楚为什么在那之后其又被关押了三天。[2020/1/10]

我们推导其公式为:

动态 | 鱼池顺利挖出Grin的第一个区块 目前交易所价格虚高:神鱼微博表示,鱼池顺利挖出Grin的第一个区块 ,目前交易所价格虚高,买一 1Btc/个。[2019/1/16]

将该公式分子拆分,得到shares/totalSupply的固定比为2.54:

最后将Debug交易里的shares/totalSupply进行计算,其值与shares/totalSupply的固定比相同,因此可以确定套利值只与totalSupply()有关:

动态 | 日本Cryptact公司发布加密资产管理平台”grid@cryptact”英文版:据crypto watch报道,提供加密货币投资者支援平台的cryptact公司于10月18日正式发布了加密资产管理平台grid@cryptact的英文版。grid@cryptact是向个人及法人提供损益计算及加密货币投资组合管理平台,现在已与世界18个加密货币交易所对应,不仅可以应对日本税制也可以应对美国税制。在加密货币投资组合管理服务“portfolio@cryptact”上,除了日元以外,也可以用美元和欧元进行资产管理。截止18日,该平台已可对应2630种加密货币。[2018/10/19]

其中函数safeTransferFrom()传入的变量token可控,导致攻击者可以自己实现safeTransferFrom()方法,将该方法重入到depositFor(),拉升totalSupply()总量,最后通过_mint()方法向用户添加质押凭证实现套利。以实施了5次重入攻击为例,开始pool的值为0,在重入depositFor方法的前四次里,攻击者一直传入自己铸造的代币,pool的值会一直保持为0,但在第五次,也就是最后一次传入100个受认可的代币时,after的值会变成100,而afer-pool的差值amount也就是100,最后由于重入了5次,导致合约会向攻击者铸造100*5的质押凭证代币。

其后果就是攻击者只质押一次代币,仍能多次增加质押总量实现套利。0x04:修复方案

1.由于depositFor()方法里的token可控才是导致这次攻击事件的原因,因此只需要在传递参数的时候让token不可控就行:

2.由于套利的原因是depositFor()方法里存在修改代币数量的函数,因此还可以将修改代币的方法单独实现,这样即使token变量可控,也无法成功套利:

3.锁定交易token:

0x05:总结

经过完整分析,知道创宇区块链安全实验室明确了该次攻击事件的源头并非网传的闪电贷攻击,攻击者利用GrimBoostVault合约的depositFor方法参数可控,实施了重入攻击,将自己的铸造的无价值代币兑换成了质押凭证,最后通过withdrawAll方法实现套利,而闪电贷?攻击者只是利用闪电贷扩大了套利值。对于合约代码而言安全性是十分重要的,每一个未经验证的传入参数都可能导致巨大的经济损失,开发者在编写重要操作方法时,须记住零信任原则,谨慎对待每一个传入参数。

标签:GRIDEPOTALITFGRIND价格MetaLandmapAmbitFinance

中币交易所热门资讯
EFI:一文了解GameFi价值逻辑的新变化:以Defina、Upland、Koi Metaverse和Koi Metaverse为例

逐渐被勾勒出外形的GameFi,正在以井喷的速度涌现出更多的新兴势力,与他们的前辈相比,他们在画质、游戏性、场景方面不断的进行升级迭代,这其中或多或少的还在延续P2E的玩法.

1900/1/1 0:00:00
MATE:一文读懂MATE:Vmates的GameFi代币

本文来自Vmates,Odaily星球日报译者|Moni12月,属于GameFi。在2021年最后一个月里,GameFi领域出现了许多吸引人的项目,比如StarWars、UFOGaming等.

1900/1/1 0:00:00
BIT:星球日报 | CME宣布推出微型以太坊期货;红杉资本印度等VC寻求投资5000万至1.5亿美元支持Polygon(12月7日)

头条芝商所宣布推出微型以太坊期货芝商所宣布推出微型以太坊期货。据悉,该合约规模为一个以太坊的十分之一,它提供一种有效的、具有成本效益的新方式来微调以太坊敞口,以增强交易策略,同时保留CME规模较.

1900/1/1 0:00:00
PEN:OpenSea网站又双叒崩了,这5家NFT市场或许有机会上位

OpenSea眼中的自己: 实际上的OpenSea: 用户看到的OpenSea: OpenSea一直是寻求铸造、购买、出售和交易非同质化代币的用户的主流去中心化平台.

1900/1/1 0:00:00
APW:浅析APWine:提前卖出未来90天的流动性挖矿收益

12月29日,未来收益代币化协议「APWine」宣布其V1版本已正式上线以太坊主网及Polygon。 解释「未来收益代币化」这一定位,需要从DeFi最常见的场景——流动性挖矿说起.

1900/1/1 0:00:00
TER:获DFG等投资,跨链项目「Interlay」想先让BTC在波卡生态自由流通

随着区块链生态的扩展,跨链成为刚需,相关项目在资本市场也获得不错的关注度。近期,基于Polkadot的跨链互操作性项目Interlay宣布完成650万美元融资,DFG领投,IOSG、KR1、Hy.

1900/1/1 0:00:00