USD:Formation.Fi 闪电贷安全事件分析

前?

11月21日,知道创宇区块链安全实验室?监测到以太坊上的DeFi协议?Formation.Fi?遭遇黑客攻击,损失近10万美元。实验室第一时间跟踪本次事件并分析。

攻击流程及形成漏洞成因分析

简述攻击流程

首先黑客通过合约0xd02C进行闪电贷借出启动资金200USDT

向合约Vault质押100USDT获得99FormationUSD?

交易员预计:7月份联邦基金终端利率预期从此前的5.38%左右升至5.4%左右:金色财经报道,掉期交易员继续定价美联储可能在未来三次会议上将政策利率上调25个基点的预期。交易员预计,7月份联邦基金终端利率预期从早些时候的5.38%左右升至5.4%左右。[2023/2/24 12:27:45]

通过Vault合约swapin函数置换100USDT并附带大量fee

调用Vault合约函数withdraw销毁99FormationUSD获得漏洞利润99999USDT

三星Next高管:Web3项目必须面对实用性的挑战:8月15日消息,三星Next公司的总经理Raymond Liao在一次采访中表示,虽然Web3从诞生至今已经显现出很大的潜力,但该领域的参与者必须面对一个挑战,那就是效用。Liao谈到了该公司通过投资MachineFi潜入Web3领域的举动,MachineFi是IoTeX项目创造的一个术语,用来描述一个未来的范式,即机器成为Web3技术驱动的主要劳动力。

根据Liao的说法,SamsungNext专注于投资区块链、人工智能和元宇宙。除了MachineFi,这位三星高管还表示,Web3以及加密货币的冬天对投资者来说是一个机会。此外,这位高管还强调,与其关注10倍的回报,不如专注于实施,面对实用性的挑战,扩大Web3生态系统。Liao还赞扬了NFT的效用。今年1月,三星宣布将创建一个NFT聚合器,并将其整合到智能电视中,如MicroLED、NeoQLED和TheFrame。在内置的NFT平台内,用户将能够发现和交易NFT。(Cointelegraph)[2022/8/15 12:26:54]

最后归还闪电贷将获利转到黑客地址

Solana漏洞被攻击钱包数量超1.5万个,用户损失已接近450万美元:金色财经报道,据decrypt披露数据显示,在截至目前的黑客攻击中,按照SOL、USDC、以及其他基于Solana的代币统计,用户损失以及达到446万美元。根据区块链浏览器 Solscan的说法,四名已确定的攻击者的钱包共攻击了大约 15,200 个钱包,尽管他们的目标之间可能存在重叠。另据Twitter 上的Solana Status官方账户称,与本次攻击有关联的独立钱包数量大约有 8,000 个,目前来自多个生态系统的工程师与审计和安全公司一起正在继续调查攻击的根本原因,但“似乎不是 Solana 核心代码的错误”。[2022/8/4 2:58:03]

漏洞成因分析

检查源码后发现具体问题主要出在Vault合约函数?swapIn?上,可以看到该函数调用参数?fee?能影响记录着全部代币的变量?totalTokens?的计算,fee越大totalTokens越大。

而在通过函数withdraw实际获取利润时,可以看到实际转账时totalTokens参与了计算,所以当大量的fee被带人totalTokens计算后,会造成withdraw函数的转账超过原本的转账金额。

而造成攻击获利巨大的另个原因是FormationUSD与USDT的小数点数位不同,FormationUSD为18位,USDT为6位。小数点精准数位的差距在实际转账中进一步放大了黑客的收益。

Vault:

TetherToken:

重新梳理攻击过程

第一步:选用USDT作为攻击使用的代币,目的USDT与FormationUSD的小数点精确度不同

第二步:黑客质押100USDT,目的为了后续调用withdraw函数实现套利

第三步:黑客兑换100USDT,目的添加大量的fee提升totalTokens的值

第四步:黑客取回质押的USDT,目的使用提升后totalTokens与利用代币间小数点精确度不同来套取利润

第五步:归还闪电贷,转移套取的利润

总结

本次闪电贷安全事件发生的主要原因在于项目方设计函数?swapIn?时低估了fee对totalTokens的影响,且忽视了不同代币间小数点精确度的影响。

知道创宇区块链安全实验室?再次提醒近期各链上频频爆发攻击事件,合约安全愈发需要得到迫切重视,合约审计、风控措施、应急计划等都有必要切实落实。

来源:金色财经

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:31ms0-1:404ms