前言
11月30日,知道創宇區塊鏈安全實驗室?監測到自動做市商協議MonoX.Finance遭黑客攻擊,損失超3100萬美元。實驗室第一時間跟蹤本次事件并分析。
攻擊涉及信息
此次安全事件共有兩次攻擊分別發生在以太坊和polygon上。
簡述攻擊流程
本次攻擊分析選用以太坊交攻擊交易:0x9f14d093a2349de08f02fc0fb018dadb449351d0cdb7d0738ff69cc6fef5f299
1、黑客首先通過swapExactTokenForToken函數將0.1WETH兌換為79.9MONO
2、重復利用函數removeLiquidity移除Monoswap合約中的流動性,直至全部移除
懷俄明州聯邦法官拒絕美聯儲駁回Custodia Bank針對其的訴訟請求:金色財經報道,懷俄明州聯邦法官拒絕美聯儲要求駁回數字資產銀行 Custodia Bank 針對其的訴訟請求。Custodia 于 19 個月前申請了堪薩斯城聯邦儲備銀行的主賬戶,但多次被美聯儲拒絕。目前經懷俄明州法律授權作為特殊目的存款機構(SPDI)運營,提供加密貨幣和傳統銀行服務。但是,Custodia 仍然需要在美聯儲建立一個主賬戶,以充分行使其銀行權利。因為主賬戶申請的延遲影響了 Custodia 進入金融服務市場,迫使該銀行與已經擁有主賬戶的代理銀行合作。[2023/6/9 21:26:57]
3、通過函數addLiquidity添加自己操控的流動性
4、重復調用函數swapExactTokenForToken實現MONO->MONO的不合理兌換
Abracadabra:預言機故障導致1000萬美元資產面臨風險,呼吁Sushi提供緊急援助:11月28日消息,加密借貸協議及穩定幣MIN發行方Abracadabra透露,由于預言機故障導致價值1000萬美元的加密資產面臨風險,目前已向Sushi治理論壇提交一份“緊急提案”,要求Sushi團隊提高cvxRenCrv和yvcrvstETH兩個Bento金庫抵押頭寸利率,并稱預言機故障會對持有 yvcrvstETH空頭寸的用戶構成威脅。
Abracadabra稱,這兩個代幣均未在SushiSwap上使用,其中cvxRenCrv是專為Abracadabra制作的代幣封裝器,yvcrvstETH則是由收益聚合商Yearn Finance發行的計息代幣,SushiSwap主廚Jared Gray已在Discord表示將提供協助并提高相關利率。(The Defiant)[2022/11/28 21:06:43]
5、最終利用被以上操作抬高價格的MONO兌換了WETH、WBTC、MONO、USDC、USDT、DUCK、MIM、IMX等從而獲利。
Game Space宣布將兼容EIP-4907協議,推出可租賃的NFT游戲道具:7月4日消息,GameFi as a Service平臺Game Space宣布將兼容EIP-4907協議,推出可租賃的NFT游戲道具。ERC-4907協議通過雙角色設置,可實現NFT所有權與使用權的分離,降低Utility NFT租賃的開發和集成成本。此外,通過使用Game Space提供的SDK,游戲開發者可提高開發速度,并擁有包括一、二級交易市場在內的整套區塊鏈功能。
Game Space提供的服務方案包括中心化版本與去中心化版本。推出可租賃的NFT游戲道具后,Game Space兩個版本可同時支持二級市場租賃功能。[2022/7/4 1:49:55]
漏洞成因分析
分析攻擊流程可以發現兩個不合理的地方:
Gitcoin將部署至Fantom主網并推遲贈款計劃:金色財經消息,Fantom基金會發推稱,Gitcoin將在Fantom主網部署。為確保Fantom生態系統的所有成員都能參與,在Gitcoin完成整合期間,贈款計劃會被推遲。[2022/5/18 3:23:22]
攻擊者可以通過函數removeLiquidity移除了其他人添加的流動性攻擊者通過函數swapExactTokenForToken不斷重復MONO兌換MONO的操作
檢查源碼
對函數removeLiquidity源碼進行分析
可以看到函數removeLiquidity和它包含的內部函數_removeLiquidityHelper都沒有對調用者進行權限限制,以及對需要被移除流動性的傳參地址to進行驗證,這導致了任意地址都能進行對該pool內所有流動性進行移除。
對函數swapExactTokenForToken源碼進行分析
1、發現函數swapExactTokenForToken主要功能由函數swapIn實現,對函數swapIn進行跟進分析
2、發現獲取token信息的函數getAmountOut,對函數getAmountOut進行跟進分析
3、發現tokenInPrice與tokenOutPrice的計算規則相同都是通過函數_getNewPrice計算,跟進到函數_getNewPrice
4、發現price的獲取對應兩種狀態
SELL狀態:價格=代幣初始價格*代幣存儲量/(代幣存儲量+費用)
BUY狀態:價格=代幣初始價格*代幣存儲量/(代幣存儲量-費用)
很明顯相同token在BUY狀態下獲取到的價格大于SELL狀態
5.回到swapIn函數,當傳入token價格被獲取到后會按照token種類通過_updateTokenInfo進行token信息更新。
由于傳入的token都為MONO所以:
當通過if(tokenIn==address(vCash))判斷時,MONO獲取到的價格是SELL狀態下計算的價格;
當通過if(tokenOut==address(vCash))判斷時,MONO獲取到的SELL狀態下的價格會被BUY狀態下獲取的價格覆蓋;
因此當發生MONO兌換MONO操作時,MONO的價格會上升。
重新梳理攻擊過程
第一步:黑客將0.1WETH兌換為79.9MONO作為啟動資金
第二步:黑客移除了pool內全部流動性,防止攻擊受到影響或者價格波動被檢測到
第三步:黑客添加了自己控制的流動性,便于兌換操作
第四步:黑客通過重復MONO兌換MONO的操作,不斷抬高MONO價格
第五步:利用已經被抬高的MONO兌換pool內其他資產達到獲利目的
總結
本次安全事件問題其實并不復雜,主要原因在于monoswap合約在設計時沒考慮到特殊情況下的價格覆蓋問題,而可任意移除流動性的缺陷則更加方便黑客對于價格的操縱。
知道創宇區塊鏈實驗室官網
www.knownseclab.com
創宇存證平臺|知道創宇唯一指定存證平臺
創宇存證-可信數據,價值流轉
聯系我們
blockchain@knownsec.com
知道創宇區塊鏈安全實驗室導航
微信公眾號
@創宇區塊鏈安全實驗室
官方網站
@知道創宇區塊鏈安全實驗室
微博
@知道創宇區塊鏈實驗室
https://weibo.com/BlockchainLab
知乎
@知道創宇區塊鏈安全實驗室
https://www.zhihu.com/org/zhi-dao-chuang-yu-qu-kuai-lian-an-quan-shi-yan-shi
@KS_Blockchain
https://twitter.com/KSBlockchain
Tags:KENTOKEONOTOKENLifeLine TokenfuyoutokenBonorumimtoken被更改賬戶權限
在標準形式中,大多數區塊鏈是不能相互操作的。因此,如果不使用加密貨幣交易所等中介機構的服務,你無法將你的代幣從一個分布式網絡轉移到另一個網絡.
1900/1/1 0:00:00Polkadot生態研究院出品,必屬精品時間來到了2021年的末尾,回顧區塊鏈世界過去一年的發展,用精彩紛呈來形容也不足為過,從DeFi的熱潮到NFT席卷全球,再到現在火爆出圈的GameFi.
1900/1/1 0:00:00作者:YifeiYou 好久不見,今天想和大家討論下最近思考Web3的一些想法。和很多人一樣,作為“古典產品經理”的我在初接觸這些概念時也是滿臉問號、將信將疑,直到看到了Web3能夠切實解決的問.
1900/1/1 0:00:00元宇宙概念大火,先有全球科技巨頭微軟、英偉達、Facebook宣布進軍相關領域,后有騰訊、網易等互聯網頭部企業紛紛著手布局.
1900/1/1 0:00:002021年12月1日周三十月廿七???趙長鵬榮登華人福布斯排行榜首位,此刻釋放出這一則消息目的是什么.
1900/1/1 0:00:00原文來源|Blockdata 編譯整理|白澤研究院 自2009年成立以來,比特幣網絡的正常運行時間高達99.987%。在這12年中,它發展迅速,以至于每天處理數十億美元的交易額.
1900/1/1 0:00:00