OKLink:2023年7月安全事件盘点
链上卫士:2022年4月安全事件盘点
一、基本信息
2022年4月发生较典型安全事件接近『30』起,造成的损失合计约2.7亿美元,与3月份7亿美损失相比总体损失数额有所下降,考虑到3月份跨链桥Ronin单一事件损失超6亿美元,4月份损失数额还是很可观的。
从本月安全事件来看,利用闪电贷操控价格和利用权限控制漏洞占比较大。另外,本月【诈骗盘Rug Pull】相关跑路事件和【社媒诈骗和钓鱼】安全事件数量与上个月基本持平,黑客攻破项目方社媒账号,发布钓鱼信息的攻击方式更加普遍,作为用户要注意多方验证信息准确性。
1.1 REKT盘点
No.1
4月1日,Inverse Finance被黑客利用闪电贷操控资产TWAP价格,损失高达1560万美元。攻击者从Tornado Cash提取901个ETH,通过Disperse将1.5ETH转移到241个干净的地址。攻击者通过SushiSwap上的INV-WETH对,将500个ETH换成1700 INV,由于该池流动性低,INV价格被推高50倍。同时攻击者利用241个账号进行垃圾交易,保证攻击交易在下一个块成功,Inverse Finance的预言机通过Keeper Network使用SushiSwap TWAP数值,返回的是被操控后的价格。使得攻击者可以将他的1700个INV作为抵押品存入,借走1560万美元。
攻击者地址:0x117C0391B3483E32AA665b5ecb2Cc539669EA7E9
恶意合约地址:0xeA0c959BBb7476DDD6cD4204bDee82b790AA1562
被攻击合约地址
1)anETH: 0x697b4acAa24430F254224eB794d2a85ba1Fa1FB8
2)anWBTC: 0x17786f3813E6bA35343211bd8Fe18EC4de14F28b
3)anDola: 0x7Fcb7DAC61eE35b3D4a51117A7c58D53f0a8a670
4)anYFI: 0xde2af899040536884e062D3a334F2dD36F34b4a4
攻击交易:0x600373f67521324c8068cfd025f121a0843d57ec813411661b07edc5ff781842
No.2
4月8日,以太坊二层网络 Metis 上的收益聚合器 Starstream Finance的 distributor treasury 合约漏洞导致Agora DeFi 中的价值约 820 万美金的资产损失。在 Starstream 的 StarstreamTreasury 合约中存在 withdrawTokens 函数,此函数只能由 owner 调用以取出合约中储备的资金。该合约新owner被设置为DistributorTreasury合约,但是DistributorTreasury合约中存在任意用户可调用的execute函数,攻击者直接通过此函数调用 StarstreamTreasury合约中的withdrawTokens 函数取出合约中储备的 532,571,155.859 个 STARS,并将 STARS 抵押至 Agora DeFi 中后借出大量资金。
No.3
4月9日,BNB Chain项目GymDeFi的LiquidityMigrationV2合约遭受黑客攻击,黑客获利1,327WBNB。黑客首先闪电贷获得2,400WBNB,并将部分WBNB兑换为GYM后,在GYM-WBNB添加流动性获得LP代币。完成流动性添加后,黑客通过攻击合约调用LiquidityMigrationV2合约中的migrate函数进行迁移。由于LiquidityMigrationV2合约迁移时未查询GYM和GYMNET代币实际价格,移除流动性返回的GYM数量直接作为添加流动性的GYMNET数量传入(根据攻击发生时的GYM和GYMNET价格,GYM和GYMNET的比例约为130:1)。之后再移除流动性,将获得的1,166,737.57 GYMNET兑换成WBNB。
攻击者地址:0x74298086C94dAb3252C5DAC979C9755c2EB08e49
恶意合约地址:0x4e284686FBCC0F2900F638B04C4D4b433C40a345
被攻击合约地址:0x1BEfe6f3f0E8edd2D4D15Cae97BAEe01E51ea4A4
攻击交易:0xa5b0246f2f8d238bb56c0ddb500b04bbe0c30db650e06a41e00b6a0fff11a7e5
No.4
4月11日,BNB Chain上Creat Future代币合约被发现存在漏洞,它允许任何人转移他人的CF余额。损失约为 190 万美元。_transfer() 函数是transfer() 和transferFrom() 的具体实现,但该函数的修饰器是public,因此任何人都可以直接调用它。而当变量 useWhiteListSwith 设置为 False 时,该函数不会检查调用地址和传输地址是否合规,直接将代币转移到指定地址。而在区块高度为 16841993 时,管理员把useWhiteListSwith 设置为 False。
攻击者地址之一:0xee0221D76504Aec40f63ad7e36855EEbF5eA5EDd
被攻击合约地址:0x8B7218CF6Ac641382D7C723dE8aA173e98a80196
攻击交易之一:0xc7647406542f8f2473a06fea142d223022370aa5722c044c2b7ea030b8965dd0
No.5
4月13日,稳定币平台Elephant Money遭受闪电贷攻击,损失达2200万美元。攻击者利用了TRUNK代币的赎回机制,通过操纵价格预言机以赎出更多的代币,并从一个Treasury合约中窃取了ELEPHANT。攻击者首先使用通过闪电贷获得WBNB,并用WBNB买入大量ELEPHANT,然后利用BUSD铸造TRUNK稳定币。在铸造过程中,Elephant合约会将BUSD兑换成WBNB然后再兑换成ELEPHANT从而抬高ELEPHANT价格。然后攻击者将ELEPHANT卖出降低其价格,并触发烧毁TRUNK赎回操作,从而获得更多的ELEPHANT。攻击者重复该过程,最后卖出ELEPHANT获利。
攻击者地址:0xE552133Cc829A7F7e98e349763fAC7aB0F3828b0
恶意合约地址:0xBCEda90b2880feA5d511d54716229145508996dA
被攻击合约:0xD520a3B47E42a1063617A9b6273B206a07bDf834
攻击交易:0xec317deb2f3efdc1dbf7ed5d3902cdf2c33ae512151646383a8cf8cbcd3d4577
No.6
4月15日,元宇宙 DeFi 协议 Rikkei Finance遭到黑客攻击,攻击者利用合约漏洞发起预言机攻击并获利约110万美元。由于 Rikkei Finance 项目中的 SimplePriceOracle 合约文件中的 setOracleData 函数缺少鉴权,可以被任意调用。攻击者通过 setOracleData 函数将恶意 Oracle 合约加入到 SimplePriceOracle 中,在借贷时攻击者持有的少量抵押物,由于抵押物的价格是从恶意 Oracle 合约中获取,导致攻击者的抵押物被误认为具有很高价值,从而允许攻击者用少量的抵押物将 Rikkei Finance 池子中的 USDC, BTC, DAI, USDT, BUSD 全部借出,最后全部兑换成BNB获利。
攻击者地址:0x803e0930357ba577dc414b552402f71656c093ab
恶意合约地址:0xe6df12a9f33605f2271d2a2ddc92e509e54e6b5f
被攻击合约:0xd55f01b4b51b7f48912cd8ca3cdd8070a1a9dba5
攻击交易:0x93a9b022df260f1953420cd3e18789e7d1e095459e36fe2eb534918ed1687492
No.7
4月17日,算法稳定币项目Beanstalk Farms遭黑客攻击,损失超过 8000 万美元,包括 24830 ETH 和 3600 万 BEAN。攻击者在主要攻击交易前一天,将73ETH兑换为BEAN并存储Beanstalk合约获取提案权,并调用提案方法创建以恶意提案合约地址为参数的提案。攻击者在发动攻击时,首先通过闪电贷获得大量资金:350,000,000 枚 DAI,500,000,000 枚 USDC ,150,000,000 枚 USDT ,32,100,950 枚 BEAN 和 11,643,065 枚 LUSD ,并最终兑换为BEAN3CRV-f 和 BEANLUSD-f用来对提案进行投票,导致提案通过,从而Beanstalk: Beanstalk Protocol 合约向攻击合约转入了大量Token代币。
攻击者地址:0x1c5dCdd006EA78a7E4783f9e6021C32935a10fb4
恶意合约地址:0x728ad672409da288ca5b9aa85d1a55b803ba97d7
被攻击合约:0xc1e088fc1323b20bcbee9bd1b9fc9546db5624c5
攻击交易:0xcd314668aaa9bbfebaf1a0bd2b6553d01dd58899c508d4729fa7311dc5d33ad7
No.8
4月21日,DeFi 协议ZEED 遭到黑客攻击。攻击者共获利超 100 万美元,但未将其取出就将合约设置为自动销毁,导致获利资金被永远锁在了合约中。YEED在进行transfer时,如果to地址是流动性池地址(即卖币的时候),会把数额分成三部分,第一部分90%转给目标地址,第二部分5%按照2:1:1的比例分给三个流动性池,第三部分5%会燃烧掉。但是在奖励分发的代码中对各个流动性池的balance增加的仍然用的总的数值rewardFee,相当于每次多分发了两份奖励。攻击者将闪电贷借来的资金直接tranfer给YEED-USDT流动性池,触发上述分配逻辑,然后调用流动性池的skim接口,将池子原有的$YEED一并提取出来。攻击者将skim出来的代币接收地址设置为流动性池地址,会自动再次触发transfer逻辑。攻击者用三个流动性池循环操作了三百多次,最终将获利的$YEED代币转移到恶意合约,并兑换成USDT。
攻击者地址:0xEc14207D56E10F72446576779d9b843e476e0fB0
恶意合约地址:0x05e55d051AC0a5fb744E71704a8fA4Ee3B103374
被攻击合约:0xe7748FCe1D1e2f2Fd2dDdB5074bD074745dDa8Ea
攻击交易:0x0507476234193a9a5c7ae2c47e4c4b833a7c3923cefc6fd7667b72f3ca3fa83a
No.9
4月23日,NFT项目方Akutar的11,539.5 ETH(约合3,400万美元)被永久锁定在拍卖合约。Aku采用的是类似荷兰降价拍卖的形式,拍卖结束后会按照结束价格给用户退还超过最低价格的部分。但处理退款的函数processRefunds() 会被恶意合约阻断,实现DoS攻击,虽有用户利用该漏洞但后来撤销,是退款处理正常运行结束。但项目方调用claimProjectFunds()取出合约内的ETH时,要求满足refundProgress >= totalBids,refundProgress记录的是参与购买用户数,最终数值为3669,而totalBids记录的是NFT的数量,最终数值为5495,从而导致项目方无法提取合约内的11539.5 ETH。
漏洞合约地址:0xF42c318dbfBaab0EEE040279C6a2588Fa01a961d
No.10
4月24日,Wiener DOGE, Last Kilometer, Medamon以及PIDAO项目先后被黑客攻击,共造成6.5万美元损失。攻击发生的根本原因是通缩代币转账收取费用机制将LP对中的通货紧缩代币耗尽,进而导致货币对价格失衡。攻击值首先利用闪电贷获得大量WBNB,并将部分BNB兑换为通缩代币,然后添加流动性获得LP。攻击值再将大量通缩代币转入流动性池,并调用skim()使得流动性池支付大量费用,从而清空了流动性池内通缩代币的数量。最终使得攻击者可以使用少量通缩代币兑换出流动性池内BNB,从而获利。
攻击交易
WDOGE:0x4f2005e3815c15d1a9abd8588dd1464769a00414a6b7adcbfd75a5331d378e1d
LastKilometer:0x8eeb0591a7e3a153ed3511eec46783edd1e865c857bb9eb0d24d749445d22859
Medamon:0x584a28f8a7dbd97fa7b2114219bac2022e1d65cdddf3d6ce76be6089c329bb06
PI-DAO:0xc6f2e10a856dcc89e856fc626cd91c2edc5c123309fbb3314e14d19b62e1d1bd
No.11
4月28日,多链衍生品协议Deus Finance遭闪电贷攻击,黑客获利约1340万美元。该项目曾在3月15日遭受攻击,损失约300万美元。攻击者通过闪电贷获得143,200,000 USDC,然后兑换为9,547,716个DEI,从而大幅提高DEI价格,从而实现DeiLenderSolidex合约中通过提供少量的抵押品提取了大量的DEI。黑客将攻击所得转到以太坊上并换成ETH,随后将5,446个ETH(总价值约1570万美元)存入Tornado Cash。
No.12
4月29日,LFW 生态系统DEX因代码漏洞遭遇攻击,黑客获利约21.9万美元。DEX代码在swap()函数中判断token兑换后恒定积数值变化处存在错误,导致黑客可以从流动性池中提取资产获利。
攻击者地址:0xd0ef261dcefb88eb86884def0303d85e47a2e694
攻击交易:0x8e47bdfbf0ba217498beb985418d1e79c35d6404b031748933e0c26bcf3bf68a
No.13
4月30日,DeFi借贷项目RariCapital遭遇重入攻击,黑客获利约8000万美元。RariCapital基于Compound代码,而Compound代码多处不满足check-effects-interactions模式,从而引入重入攻击。此次黑客首先将闪电贷获得资产抵押到Rari,借出ETH,在doTransferOut()中发起重入攻击,调用Comptroller的exitMarket()函数,将抵押品取回并偿还闪电贷,从而无成本获得ETH。黑客重复该操纵,获得20,000ETH,价值约8000万美元。
攻击者地址:0x6162759edad730152f0df8115c698a42e666157f
恶意合约:0x32075bad9050d4767018084f0cb87b3182d36c45
攻击交易:0xab486012f21be741c9e674ffda227e30518e8a1e37a5f1d58d0b0d41f6e76530
No.14
4月30日,Saddle Finance遭闪电贷攻击,黑客获利约1000万美元。这次攻击发生的主要原因是MetaSwapUtils最新代码部署在0x824dcd7b044d60df2e89b1bb888e66d8bcf41491,但是MetaSwap计算时,使用了部署在0x88cc4aa0dd6cf126b00c012dda9f6f4fd9388b17的旧版本代码。新版代码对baseLpTokenIndex做了特别处理,旧版本代码无相关逻辑,导致黑客使用sUSD兑换saddleUSD-V2后,可以反向用saddleUSD-V2兑换回更多的sUSD。黑客重复多次来回兑换过程,最终获利离场。
攻击者地址:0x63341ba917de90498f3903b199df5699b4a55ac0
恶意合约:0x7336f819775b1d31ea472681d70ce7a903482191
攻击交易1:0x2b023d65485c4bb68d781960c2196588d03b871dc9eb1c054f596b7ca6f7da56
攻击交易2:0xe7e0474793aad11875c131ebd7582c8b73499dd3c5a473b59e6762d4e373d7b8
1.2 Rug Pull 盘点
No.1
P2E游戏Crypto Klash项目删除了社交账号,将800枚BNB转入Tornado Cash。
No.2
BNB Chain自动质押协议MaxAPY Finance发生Rug Pull,项目方删除官方Twitter帐户和Telegram群组。
No.3
BNB Chain项目 ANA 发生 Rug Pull,Token 价格下跌 91%。
No.4
Avalanche元宇宙房地产项目 Universe 发生 Rug Pull,项目方铸造约 16 万亿枚 UNIV并进行销售。
No.5
BNB Chain 项目MetalSwap 发生 Rug Pull,代币 Metal 短时下跌 99%。
No.6
BNB Chain 项目 BuccaneerFi 发生 Rug Pull,项目社交媒体账号及社群被删除,约 841 枚 BNB 被已转入 Tornado Cash。
No.7
BNB Chain 项目 Legends of Optimus和SolarCity Finance发生Rug Pull,Optimus和SolarCity代币下跌98%。
No.8
BNB Chain 项目 ZTZ是貔貅盘骗局,价格下跌99%。
No.9
BNB Chain协议Bnbinsane发生Rug Pull,删除官方推特帐户和Telegram群组,Bnbinsane合约所有者已将1800枚BNB(约74万美元)转入Tornado Cash。
No.10
BNB Chain项目OP代币发生Rug Pull,币价下跌99%。开发人员已将约2000枚BNB(价值82万美元)转入Tornado Cash。
1.3 社媒诈骗与钓鱼盘点
No.1
NFT游戏WonderHero因私钥泄露遭受攻击,损失约280万美元。
No.2
BAYC 官方 Instagram 账号被黑,黑客发布了网络钓鱼链接,导致 91 个 NFT 被盗,黑客获利约240万美元。
No.3
一用户因“假验证”骗局损失了价值57万美元的BAYC NFT。
No.4
FaceDAO以太坊链上的一个钱包遭攻击,大量FACE代币被抛售。
二、代表性事件复盘
2.1 Inverse Finance — 价格攻击操纵攻击
三、安全总结
2022年4月区块链安全事件数量与3月份总体持平,攻击类安全事件被盗总金额约2.7亿美元。其中利用权限控制漏洞的攻击事件有3起,利用闪电贷操纵价格的攻击事件有3起。4月份发生的权限控制漏洞攻击中,Starstream Finance项目中的execute函数,Creat Future项目中的_transfer函数以及Rikkei Finance项目中的setOracleData函数,因不同原因失去权限控制,变为任何人可以公开调用的接口,相当于为黑客打开了大门,可以直接操纵资产转移。另外,利用闪电贷获得大量资金影响预言机价格,也是常见的攻击手法,项目方应重点检查预言机机制,保证价格不能受即时交易干扰。