前言
10月15日,知道创宇区块链安全实验室监测到以太坊上的DeFi协议IndexedFinance遭遇闪电贷袭击,损失超1600万美元。知道创宇区块链安全实验室第一时间跟踪本次事件并分析。
攻击过程简述
分析攻击交易:
0x44aad3b853866468161735496a5d9cc961ce5aa872924c5d78673076b1cd95aa
首先使用闪电贷通过Uniswap和ShushiSwap获取启动资金
土耳其总统候选人Kemal K?l??daro?lu:将在上台后扩大Web3平台采用:5月14日消息,2023年土耳其总统候选人、土耳其最大反对党领袖Kemal K?l??daro?lu表示将在上台后取消对PayPal的禁令并扩大Web3平台采用,K?l??daro?lu还批评了土耳其央行禁止在国内使用加密货币作为支付方式的决定。
土耳其现任总统埃尔多安曾在2021年9月份推出反对加密货币的政策,但由于土耳其通胀一直居高不下,该国一直位于全球加密采用率前列。(Rossaprimavera)[2023/5/14 15:02:00]
2.通过借贷的AAVE/COMP/CRV/MKR/SNX代币兑换矿池DEFI5中的UNI代币(合约规定不允许转账超过矿池一半的代币存量以及兑换超过三分之一的代币存量,所以黑客进行了多次兑换)
动态 | 最近一周币价下跌ETH?Dapp单个用户平均周交易额却环比上升32.51%:据RatingDapp和RatingToken大数据监测显示,最近一周EOS/ETH/TRON三大主流公链平台Dapps活跃用户分别为EOS(153376)>TRON(92267)>ETH(62855),交易额交易额ETH($121246679.6)>TRON($84993044.2)>EOS($71845387.4),ETH?Dapp周交易额超越EOS、TRON成为第一。从单个用户平均周交易额来看,最近一周EOS?Dapp为468.43美元,环比上周下降13.79%;ETH Dapp为1928.99美元,环比上周上升32.51%;TRON Dapp为921.16美元,环比上周上升11.49%。[2019/7/19]
动态 | 昨日EOS?Dapp活跃用户环比下降其交易笔数却有所上升:据RatingDapp和RatingToken大数据监测显示,昨日EOS/ETH/TRON三大主流公链平台Dapp活跃用户分别为:EOS?95073?,环比前日下降10.32%;ETH?22082 ,环比前日下降4.45%;TRON?49004,环比前日上升5.68%。从交易笔数来看,昨日三大公链Dapp交易笔数大于零共计650款(EOS 230款,ETH261款,TRON159款),其中EOS? Dapp交易笔数总计4250340,环比前日上升3.54%;ETH?Dapp交易笔数总计82433,环比前日下降6.63%;TRON Dapp交易笔数总计569306,环比前日上升0.61%。[2019/6/20]
3.通过将UNI代币用于添加流动性铸造DEFI5LP代币
动态 | 近一周EOS/ETH/TRON?Dapp周交易笔数大于100,000有45款:据RatingDapp和RatingToken大数据监测显示,最近一周,?EOS/ETH/TRON三大主流公链平台Dapps?周交易笔数大于100,000有45款(EOS 36款,ETH无,TRON 9款),环比上周下降2.2%,其中类28款、游戏5款、市场类5款、风险类1款、其他类型6款,以类Dapp为主;从周新增用户来看,最近一周,有4款Dapp新增用户大于10,000,分别为ADM(18514)、Fishing Master(16377)、Win.town(16364)、TRON Hi-Lo(16357),其中Fishing Master、Win.town、TRON Hi-Lo三款Dapp近几个月来,周新增用户均大于10,000。[2019/5/13]
4.向DEFI5矿池添加SUSHI代币
5.燃烧DEFI5LP代币获得AAVE/COMP/CRV/MKR/SNX/SUSHI代币
6.通过将SUSHI代币用于添加流动性铸造DEFI5LP代币
7.燃烧DEFI5LP代币获得AAVE/COMP/CRV/MKR/SNX/SUSHI代币
8.归还闪电贷并将获利转移
漏洞成因分析
通过攻击简述获取有效信息
1.黑客有意控制矿池中UNI代币总量
2.黑客向矿池中添加了新代币SHSHI
3.黑客通过铸造、燃烧LP代币获利
通过源码分析漏洞成因
1.检查源码发现函数\nextrapolatePoolValueFromToken\n被用于寻找矿池中第一个初始化且具有权重的代币,据官方解释该函数作用于以该代币描述整个矿池的价值——即如果矿池中有10个UNI,权重为\n10%,那么该矿池总价值为100UNI。
由此黑客控制矿池中UNI代币总量得到解释,该行为是为了控制矿池总价值。
2.检查源码发现函数setMinimumBalance和函数gulp可以添加新代币并获得极大的权重。由此黑客向矿池添加新代币SUSHI得到解释,该行为是为了获得可控且具有极大权重的代币。
综合分析
合约设计中矿池的总价值被矿池中第一个初始化且具有权重的代币用来描述,该代币总量可被攻击者控制
合约中可添加新代币,新代币可占据极大权重,添加新代币方式可被攻击者控制
合约中的资产可通过铸造、燃烧LP代币控制,铸造LP代币方式可被攻击者控制
综述该漏洞成因就是用一种代币来描述整个矿池的价值,官方也给出了修改方案:取消该模式替换为用矿池中所有代币余额的组合值来描述。
总结
此次攻击属于对矿池价值的单一描述,很容易被他人操控,开发人员应避免此类事件。
知道创宇区块链安全实验室提醒各项目方,合约安全作为直接保障资金的防线需要得到最高的重视,合约审计、风控措施、应急计划等都有必要切实落实。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。