以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > FIL幣 > Info

簡析 SushiSwap 第二次被攻擊始末_WET:Ethereum Privacy Machine

Author:

Time:1900/1/1 0:00:00

背景

2021年1月27日,據慢霧區情報,SushiSwap再次遭遇攻擊,此次問題為DIGG-WBTC交易對的手續費被攻擊者通過特殊的手段薅走。慢霧安全團隊在收到情報后立馬介入相關事件的分析工作,以下為攻擊相關細節。

SushiMaker是什么

SushiMaker是SushiSwap協議中的一個重要的組件,其用于收集SushiSwap每個交易對的手續費,并通過設置每個代幣的路由,將不同交易對的手續費最終轉換成sushi代幣,回饋給sushi代幣的持有者。這個過程就是發生在SushiMaker合約上。

說說恒定乘積

恒定乘積的公式很簡單,在不計算手續費的情況下,恒定乘積的公式為

LendHub被黑簡析:系LendHub中存在新舊兩市場:金色財經報道,據慢霧安全區情報,2023 年 1 月 13 日,HECO 生態跨鏈借貸平臺 LendHub 被攻擊損失近 600 萬美金。慢霧安全團隊以簡訊的形式分享如下:

此次攻擊原因系 LendHub 中存在兩個 lBSV cToken,其一已在 2021 年 4 月被廢棄但并未從市場中移除,這導致了新舊兩個 lBSV 都存在市場中。且新舊兩個 lBSV 所對應的 Comptroller 并不相同但卻都在市場中有價格,這造成新舊市場負債計算割裂。攻擊者利用此問題在舊的市場進行抵押贖回,在新的市場進行借貸操作,惡意套取了新市場中的協議資金。

目前主要黑客獲利地址為 0x9d01..ab03,黑客攻擊手續費來源為 1 月 12 日從 Tornado.Cash 接收的 100 ETH。截至此時,黑客已分 11 筆共轉 1,100 ETH 到 Tornado.Cash。通過威脅情報網絡,已經得到黑客的部分痕跡,慢霧安全團隊將持續跟進分析。[2023/1/13 11:11:00]

也就是說每次兌換,其實都是遵循這個公式,及交易前后K值不變,在兌換的過程中,由于要保持K值不變,公式的形式會是這個樣子

Beosin:SheepFarm項目遭受攻擊事件簡析:金色財經報道,根據區塊鏈安全審計公司Beosin旗下Beosin EagleEye 安全風險監控、預警與阻斷平臺監測顯示,BNB鏈上的SheepFarm項目遭受漏洞攻擊,Beosin分析發現由于SheepFarm合約的register函數可以多次調用,導致攻擊者0x2131c67ed7b6aa01b7aa308c71991ef5baedd049多次利用register函數增大自身的gems,再利用upgradeVillage函數在消耗gems的同時累加yield屬性,最后調用sellVillage方法把yield轉換為money后再提款。本次攻擊導致項目損失了約262個BNB,約7.2萬美元。Beosin Trace追蹤發現被盜金額仍在攻擊者賬戶,將持續關注資金走向。[2022/11/16 13:10:39]

其中X代表賣掉的代幣,Y代表要購買的代幣,那么每次能兌換到的代幣數量會是這個樣子(具體的推導過程就不演示了:D)

慢霧:Inverse Finance遭遇閃電貸攻擊簡析:據慢霧安全團隊鏈上情報,Inverse Finance遭遇閃電貸攻擊,損失53.2445WBTC和99,976.29USDT。慢霧安全團隊以簡訊的形式將攻擊原理分享如下:

1.攻擊者先從AAVE閃電貸借出27,000WBTC,然后存225WBTC到CurveUSDT-WETH-WBTC的池子獲得5,375.5個crv3crypto和4,906.7yvCurve-3Crypto,隨后攻擊者把獲得的2個憑證存入Inverse Finance獲得245,337.73個存款憑證anYvCrv3Crypto。

2.接下來攻擊者在CurveUSDT-WETH-WBTC的池子進行了一次swap,用26,775個WBTC兌換出了75,403,376.18USDT,由于anYvCrv3Crypto的存款憑證使用的價格計算合約除了采用Chainlink的喂價之外還會根據CurveUSDT-WETH-WBTC的池子的WBTC,WETH,USDT的實時余額變化進行計算所以在攻擊者進行swap之后anYvCrv3Crypto的價格被拉高從而導致攻擊者可以從合約中借出超額的10,133,949.1個DOLA。

3.借貸完DOLA之后攻擊者在把第二步獲取的75,403,376.18USDT再次swap成26,626.4個WBTC,攻擊者在把10,133,949.1DOLAswap成9,881,355個3crv,之后攻擊者通過移除3crv的流動性獲得10,099,976.2個USDT。

4.最后攻擊者把去除流動性的10,000,000個USDTswap成451.0個WBT,歸還閃電貸獲利離場。

針對該事件,慢霧給出以下防范建議:本次攻擊的原因主要在于使用了不安全的預言機來計算LP價格,慢霧安全團隊建議可以參考Alpha Finance關于獲取公平LP價格的方法。[2022/6/16 4:32:58]

從公式上可以看到,當輸出代幣Y的兌換數量上限取決于Y代幣的數量,而和X代幣數量的大小無關,反過來說,如果要賣掉的X代幣數量很大,但是Y代幣的數量很小,那么就會造成大量的X代幣只能兌換出少量的Y代幣,而這個兌換價格相比正常的交易價格會偏離很多,這就是所謂的滑點,是本次攻擊中的關鍵。

Harvest.Finance被黑事件簡析:10月26號,據慢霧區消息 Harvest Finance 項目遭受閃電貸攻擊,損失超過 400 萬美元。以下為慢霧安全團隊對此事件的簡要分析。

1. 攻擊者通過 Tornado.cash 轉入 20ETH 作為后續攻擊手續費;

2. 攻擊者通過 UniswapV2 閃電貸借出巨額 USDC 與 USDT;

3. 攻擊者先通過 Curve 的 exchange_underlying 函數將 USDT 換成 USDC,此時 Curve yUSDC 池中的 investedUnderlyingBalance 將相對應的變小;

4. 隨后攻擊者通過 Harvest 的 deposit 將巨額 USDC 充值進 Vault 中,充值的同時 Harvest 的 Vault 將鑄出 fUSDC,而鑄出的數量計算方式如下:

amount.mul(totalSupply()).div(underlyingBalanceWithInvestment());

計算方式中的 underlyingBalanceWithInvestment 一部分取的是 Curve 中的 investedUnderlyingBalance 值,由于 Curve 中 investedUnderlyingBalance 的變化將導致 Vault 鑄出更多的 fUSDC;

5. 之后再通過 Curve 把 USDC 換成 USDT 將失衡的價格拉回正常;

6. 最后只需要把 fUSDC 歸還給 Vault 即可獲得比充值時更多的 USDC;

7. 隨后攻擊者開始重復此過程持續獲利;

其他攻擊流程與上訴分析過程類似。參考交易哈希:0x35f8d2f572fceaac9288e5d462117850ef2694786992a8c3f6d02612277b0877。

此次攻擊主要是 Harvest Finance 的 fToken(fUSDC、fUSDT...) 在鑄幣時采用的是 Curve y池中的報價(即使用 Curve 作為喂價來源),導致攻擊者可以通過巨額兌換操控預言機的價格來控制 Harvest Finance 中 fToken 的鑄幣數量,從而使攻擊者有利可圖。[2020/10/26]

攻擊流程

2020年11月30日,SushiSwap就曾因為SushiMaker的問題出現過一次攻擊(詳解參閱:以小博大,簡析SushiSwap攻擊事件始末),本次攻擊和第一次攻擊相似,但流程上有區別。相較于舊合約,在新的合約中,手續費在兌換的過程中會通過bridgeFor函數為不同交易對中的代幣尋找特定的兌換路由,然后進行兌換。

其中,bridgeFor函數的邏輯如下:

根據bridgeFor的邏輯,我們不難發現,如果沒有手動設置過特定幣種的bridge,那么默認的bridge是WETH,也就是說,在未設置bridge的情況下,默認是將手續費兌換成WETH。而DIGG這個幣,就是正好沒有通過setBridge設置對應的bridge的。

但是這里還有一個問題,就是在swap的過程中,如果這個交易對不存在,兌換的過程是失敗的。本次攻擊中,DIGG-WETH這個交易對一開始并不存在,所以攻擊者預先創建一個DIGG-WETH的交易對,然后添加少量的流動性。這個時候如果發生手續費兌換,根據前面說的恒定乘積的特性,由于DIGG-WETH的流動性很少,也就是DIGG-WETH中的WETH上限很小,而SushiMaker中的要轉換的手續費數量相對較大,這樣的兌換會導致巨大的滑點。兌換的過程會拉高DIGG-WETH交易對中WETH兌DIGG的價格,并且,DIGG-WETH的所有DIGG手續費收益都到了DIGG-WETH交易中。通過觀察DIGG-WETH交易對的流動性情況,流動性最大的時候也才只有不到2800美元的流動性,這個結果也能和公式的推導相互驗證。

攻擊者在SushiMaker完成手續費轉換后,由于DIGG-WETH交易對中WETH兌DIGG的價格已經被拉高,導致少量的WETH即可兌換大量的DIGG,而這個DIGG的數量,正是DIGG-WBTC交易對的大部分手續費收入。

總結

本次攻擊和SushiSwap第一次攻擊類似,都是通過操控交易對的兌換價格來產生獲利。但是過程是不一樣的。第一次攻擊是因為攻擊者使用LP代幣本身和其他代幣創建了一個新的交易對,并通過操縱初始流動性操控了這個新的交易對的價格來進行獲利,而這次的攻擊則利用了DIGG本身沒有對WETH交易對,而攻擊者創建了這個交易對并操控了初始的交易價格,導致手續費兌換過程中產生了巨大的滑點,攻擊者只需使用少量的DIGG和WETH提供初始流動性即可獲取巨額利潤。

相關參考鏈接如下:

SushiMaker歸集手續費交易:

https://etherscan.io/tx/0x90fb0c9976361f537330a5617a404045ffb3fef5972cf67b531386014eeae7a9

攻擊者套利交易:

https://etherscan.io/tx/0x0af5a6d2d8b49f68dcfd4599a0e767450e76e08a5aeba9b3d534a604d308e60b

DIGG-WETH流動性詳情:

https://www.sushiswap.fi/pair/0xf41e354eb138b328d56957b36b7f814826708724

Sushi第一次被攻擊詳解:

https://mp.weixin.qq.com/s/-Vp9bPSqxE0yw2hk_yogFw

Tags:ETHUSDWETWETHEthereum Privacy MachineTUSDWETAweth幣價格

FIL幣
顯卡一卡難求 礦工又盯上筆記本電腦?_RTX:ETC

當游戲玩家們的趁手兵器——顯卡,突然用來改變金融世界,游戲娛樂需求遭到掙錢原始沖動的正面硬剛,而這場爭奪戰,甚至已升級到了搶高端筆記本電腦的新地步! 礦工盯上游戲筆記本 加密貨幣的大漲.

1900/1/1 0:00:00
Umbrella Network 與 Polkastarter 達成合作關系,將為 UMB 進行代幣生成和 IDO_ITH:UMB

UmbrellaNetwork與Polkastarter達成合作關系,將為UMB進行代幣生成和IDO鏈聞消息.

1900/1/1 0:00:00
楚悅辰:1.26比特幣白天一路下跌,晚間能否逆襲?_比特幣:VentiSwap

走過的是時間,看過的是行情,嘗過的是盈與虧,回味的是得與失,沉淀的是經驗,成就的是境界,苦辣酸甜感慨萬千別在過去徘徊,別在此時迷失,別在未來后悔.

1900/1/1 0:00:00
比特幣是唯一的投資級數字資產_CEO:BCEO幣

每隔四年左右,比特幣看似周期性的特性就會再次出現,另一個牛市的興起就會開始。主流媒體的頭條新聞會夸耀著比特幣的價格走勢,成群結隊的人也會開始出來宣稱他們已經看多比特幣多年!然而與此同時,一個邪惡.

1900/1/1 0:00:00
Balancer 啟動 Gas 費補貼計劃,平均補貼 Gas 費用的 40%_ALA:NCE

鏈聞消息,去中心化交易協議Balancer宣布啟動為期四周的Gas費補貼試行計劃,社區已批準3萬枚BAL用于Gas費補貼.

1900/1/1 0:00:00
比特大陸之爭落幕,吳忌寒和平退出_BIT:ESS

皆大歡喜,昨晚,比特幣大陸聯合創始人吳忌寒以加密信件的獨特方式,宣布與另一位聯創詹克團達成和解。至此,這個加密貨幣頭部礦商持續兩年的內訌終于落下帷幕.

1900/1/1 0:00:00
ads