前?
11月21日,知道创宇区块链安全实验室?监测到以太坊上的DeFi协议?Formation.Fi?遭遇黑客攻击,损失近10万美元。实验室第一时间跟踪本次事件并分析。
攻击流程及形成漏洞成因分析
简述攻击流程
首先黑客通过合约0xd02C进行闪电贷借出启动资金200USDT
向合约Vault质押100USDT获得99FormationUSD?
Variant推出新的创始人奖学金孵化器:金色财经报道,加密风险投资公司 Variant 普通合伙人Jesse Walden 和 Li Jin宣布推出 Variant 的新创始人奖学金,一项为期三个月的教育计划,面向处于创业初期阶段的加密货币创始人。[2023/3/24 13:24:44]
通过Vault合约swapin函数置换100USDT并附带大量fee
调用Vault合约函数withdraw销毁99FormationUSD获得漏洞利润99999USDT
KlimaDAO 与美参议员合作讨论关于加密行业的法律框架:9月5日消息,据外媒报道,碳交易市场协议 KlimaDAO 与美国参议员 Sens. Cynthia Lummis 和 Kirstin Gillibrand 办公室的工作人员进行了多次对话,旨在明确加密行业的范畴,概述数字资产应如何征税以及它们应如何受到不同政府机构的监管,还包括定义立法者尚未确定的 DAO 等术语。
据悉,此前 6 月份 Kirsten Gillibrand 和 Cynthia Lummis 发布加密监管法案,该法案有利于美国商品期货交易委员会(CFTC)作为监管机构,并消除用户使用加密货币购买商品的税收担忧。(decrypt)[2022/9/5 13:09:10]
最后归还闪电贷将获利转到黑客地址
Injective通过与Moonbeam和Axelar集成支持Polkadot原生资产:据官方博客消息,智能合约平台Injective通过与Moonbeam和Axelar集成,新增支持Polkadot原生资产。其中,互操作性网络Axelar促进后端Polkadot资产的桥接交易。[2022/6/4 4:01:46]
漏洞成因分析
检查源码后发现具体问题主要出在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的影响,且忽视了不同代币间小数点精确度的影响。
知道创宇区块链安全实验室?再次提醒近期各链上频频爆发攻击事件,合约安全愈发需要得到迫切重视,合约审计、风控措施、应急计划等都有必要切实落实。
来源:金色财经
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。