以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads

慢霧:詳解 DeFi 協議 bZx 二次被黑_ETH

Author:

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

本文作者:yudan@慢霧安全團隊

前言

今早,bZx 疑似遭遇第二次攻擊,不同的是本次的對象是 ETH/sUSD 交易對,但也許有人會有疑問,sUSD 不是對標 USD 的穩定幣嗎?這都能被攻擊?攻擊手法具體是怎樣的?帶著這樣的疑問,針對此次事件,慢霧安全團隊接下來將復盤這兩次攻擊過程。

在第一次攻擊中,攻擊者結合 Flash loan 和 Compound 中的貸款,對 bZx 實施攻擊,主要分成以下幾步:

從 dYdX 借了 10000 個 ETH

到 Compound 用 5500 ETH 借了 112個 BTC 準備拋售

到 bZx 中用 1300個 ETH 開 5 倍杠桿做空,換了 51.345576 個 BTC,而這里換取的 BTC 是通過 Kyber Network 來獲取價格的,然而 Kyber Network 最終還是調用 Uniswap 來獲取價格,5 倍杠桿開完后兌換回來的 51 個 BTC 實際上是拉高了 UniSwap 中 BTC/ETH 的價格,換取價格是 1/109,但是實際上大盤的價格不會拉到這么多

慢霧:針對傳言火幣信息泄漏事件不涉及用戶賬戶與資金安全 請保持客觀冷靜對待:據官方消息,慢霧注意到近日有白帽子公開了此前一個火幣已經處理完畢的過往漏洞信息。經慢霧與火幣官方確認,火幣本著負責任披露信息的策略,對本次事件做以下說明:本次事件是小范圍內(4000人)的用戶聯絡信息泄露,信息種類不涉及敏感信息,不涉及用戶賬戶與資金安全。事件發生于2021年6月22日日本站測試環境S3桶相關人員不規范操作導致,相關用戶信息于2022年10月8日已經完全隔離,日本站與火幣全球站無關。本次事件由白帽團隊發現后,火幣安全團隊2023年6月21日(10天前)已第一時間進行處理,立即關閉相關文件訪問權限,當前漏洞已修復,所有相關用戶信息已經刪除。感謝白帽團隊對于火幣安全做出的貢獻。最后提醒請大家冷靜對待,切勿傳謠。[2023/7/1 22:12:01]

用從 Compound 借來的 112 個 BTC 來在 UniSwap 中賣掉,由于第三步中 bZx 中的 5 倍杠桿已經把價格拉高,所以這個時候出售 ETH 肯定是賺的,然后賣了 6871 個 ETH

慢霧:LendHub疑似被攻擊損失近600萬美金,1100枚ETH已轉移到Tornado Cash:金色財經報道,據慢霧區情報,HECO生態跨鏈借貸平臺LendHub疑似被攻擊,主要黑客獲利地址為0x9d01..ab03。黑客于1月12日從Tornado.Cash接收100ETH后,將部分資金跨鏈到Heco鏈展開攻擊后獲利,后使用多個平臺(如TransitSwap、Multichain、Uniswap、Curve和OptimismBridge)跨鏈或兌換被盜資金。截至目前,黑客已分11筆共轉1,100ETH到Tornado.Cash。被攻擊的具體原因尚待分析,慢霧安全團隊將持續跟進此事件。[2023/1/13 11:10:43]

歸還 dYdX 中的借貸

第二次攻擊與之前稍有不同,但核心都在于控制預言機價格,并通過操縱預言機價格獲利。

注: 下文中出現的 WETH 是 ETH 的 token 化代幣,可統一認為是 ETH。與 ETH 之間的兌換比例是 1:1

慢霧:有用戶遭釣魚攻擊,在OpenSea上架的NFT以極低匹配價格售出:據慢霧消息,有用戶在 OpenSea 掛單售賣的 NFT 被惡意的以遠低于掛單價匹配買。經慢霧安全團隊分析,此是由于該受害用戶遭受釣魚攻擊,錯誤的對攻擊者精心構造的惡意訂單進行簽名,惡意訂單中指定了極低的出售價格、買方地址為攻擊者以及出售 NFT 為受害用戶在 OpenSea 上架的待出售 NFT。攻擊者使用受害用戶已簽名的出售訂單以及攻擊者自己的購買訂單在 OpenSea 中進行匹配,并以攻擊者指定的極低價格成交,導致受害用戶的 NFT 以非預期的價格售出。[2021/12/11 7:31:47]

細節剖析

本次發生攻擊的交易哈希為:

0x762881b07feb63c436dee38edd4ff1f7a74c33091e534af56c9f7d49b5ecac15通過 etherscan 上的分析,我們看到這筆交易中發生了大量的 token 轉賬。

慢霧:Avalanche鏈上Zabu Finance被黑簡析:據慢霧區情報,9月12日,Avalanche上Zabu Finance項目遭受閃電貸攻擊,慢霧安全團隊進行分析后以簡訊的形式分享給大家參考:

1.攻擊者首先創建兩個攻擊合約,隨后通過攻擊合約1在Pangolin將WAVAX兌換成SPORE代幣,并將獲得的SPORE代幣抵押至ZABUFarm合約中,為后續獲取ZABU代幣獎勵做準備。

2.攻擊者通過攻擊合約2從Pangolin閃電貸借出SPORE代幣,隨后開始不斷的使用SPORE代幣在ZABUFarm合約中進行`抵押/提現`操作。由于SPORE代幣在轉賬過程中需要收取一定的手續費(SPORE合約收取),而ZABUFarm合約實際接收到的SPORE代幣數量是小于攻擊者傳入的抵押數量的。分析中我們注意到ZABUFarm合約在用戶抵押時會直接記錄用戶傳入的抵押數量,而不是記錄合約實際收到的代幣數量,但ZABUFarm合約在用戶提現時允許用戶全部提取用戶抵押時合約記錄的抵押數量。這就導致了攻擊者在抵押時ZABUFarm合約實際接收到的SPORE代幣數量小于攻擊者在提現時ZABUFarm合約轉出給攻擊者的代幣數量。

3.攻擊者正是利用了ZABUFarm合約與SPORE代幣兼容性問題導致的記賬缺陷,從而不斷通過`抵押/提現`操作將ZABUFarm合約中的SPORE資金消耗至一個極低的數值。而ZABUFarm合約的抵押獎勵正是通過累積的區塊獎勵除合約中抵押的SPORE代幣總量參與計算的,因此當ZABUFarm合約中的SPORE代幣總量降低到一個極低的數值時無疑會計算出一個極大的獎勵數值。

4.攻擊者通過先前已在ZABUFarm中有進行抵押的攻擊合約1獲取了大量的ZABU代幣獎勵,隨后便對ZABU代幣進行了拋售。

此次攻擊是由于ZabuFinance的抵押模型與SPORE代幣不兼容導致的,此類問題導致的攻擊已經發生的多起,慢霧安全團隊建議:項目抵押模型在對接通縮型代幣時應記錄用戶在轉賬前后合約實際的代幣變化,而不是依賴于用戶傳入的抵押代幣數量。[2021/9/12 23:19:21]

這么多轉賬交易中,攻擊者一共購買了 20 次 sUSD,最終獲利離場,那么攻擊者具體是怎么操作的呢?我們使用區塊瀏覽器 bloxy.info 來做進一步分析。

慢霧:Cover協議被黑問題出在rewardWriteoff具體計算參數變化導致差值:2020年12月29日,慢霧安全團隊對整個Cover協議被攻擊流程進行了簡要分析。

1.在Cover協議的Blacksmith合約中,用戶可以通過deposit函數抵押BPT代幣;

2.攻擊者在第一次進行deposit-withdraw后將通過updatePool函數來更新池子,并使用accRewardsPerToken來記錄累計獎勵;

3.之后將通過_claimCoverRewards函數來分配獎勵并使用rewardWriteoff參數進行記錄;

4.在攻擊者第一次withdraw后還留有一小部分的BPT進行抵押;

5.此時攻擊者將第二次進行deposit,并通過claimRewards提取獎勵;

6.問題出在rewardWriteoff的具體計算,在攻擊者第二次進行deposit-claimRewards時取的Pool值定義為memory,此時memory中獲取的Pool是攻擊者第一次withdraw進行updatePool時更新的值;

7.由于memory中獲取的Pool值是舊的,其對應記錄的accRewardsPerToken也是舊的會賦值到miner;

8.之后再進行新的一次updatePool時,由于攻擊者在第一次進行withdraw后池子中的lpTotal已經變小,所以最后獲得的accRewardsPerToken將變大;

9.此時攻擊者被賦值的accRewardsPerToken是舊的是一個較小值,在進行rewardWriteoff計算時獲得的值也將偏小,但攻擊者在進行claimRewards時用的卻是池子更新后的accRewardsPerToken值;

10.因此在進行具體獎勵計算時由于這個新舊參數之前差值,會導致計算出一個偏大的數值;

11.所以最后在根據計算結果給攻擊者鑄造獎勵時就會額外鑄造出更多的COVER代幣,導致COVER代幣增發。具體accRewardsPerToken參數差值變化如圖所示。[2020/12/29 15:58:07]

1、賽前準備

和第一次一樣,首先攻擊者需要從 Flash loan 借入一定的金額開始本次的攻擊,第一次攻擊是從 dYdX 借入 10000 ETH,這次,攻擊者選擇從 bZx 本身支持的 Flash loan 下手,借入 7500個 ETH。

2、發球

在完成從 bZx 的借入之后,攻擊者開始通過 Kyber 進行 sUSD 的買入操作,第一次使用了 540 個 ETH 購買了 92,419.7 個 sUSD, 這個操作令 WETH/sUSD 的價格瞬間拉低,捧高了 sUSD 的價格。這次的交易兌換的比例大概為 1:170,而 Kyber 最終是通過 UniSwap 來進行兌換的,所以此時 Uniswap 的 WETH/sUSD 處于低位,反過來,sUSD/WETH 升高。

在完成第一次的 540 個ETH的兌換之后,攻擊者再次在 Kyber 進行 18 次小額度的兌換,每次使用 20 個 ETH 兌換 sUSD,從 etherscan 我們能夠看到,每一次的兌換回來的 sUSD 金額在不斷減少。

這表明 sUSD/WETH 的價格被進一步拉升,這加劇了 Uniswap 中 sUSD/WETH 的價格,此時價格已經達到頂峰了,大概是 1:157。

在完成以上兩步操作之后,攻擊者已經完成狩獵前的準備,隨時可以開始攻擊。

3、一桿進洞

在完成對 sUSD/WETH 的拉升后,攻擊者此時需要采集大量的 sUSD,為后續兌換 WETH 做準備。為了達成這個目的,攻擊者向 Synthetix 發起 sUSD 的購買,通過向 Synthetix 發送 6000 ETH 購買 sUSD,直接把 Synthetix 中的 sUSD 買空,Synthetix 合約返還 2482 個 ETH 給攻擊者。

完成了上面的操作后,攻擊者直接對 bZx 發動總攻,直接用之前操作得來的一共 1,099,841 個 sUSD 向 bZx 兌換 WETH,此時由于 bZx 兌換還是要去查詢 Uniswap 的 sUSD/WETH 的價格,而這個價格已經被攻擊者人為拉得很高了,此時兌換,就能通過 1,099,841 個 sUSD 換取大量的 WETH, 此次交易一共用 1,099,841 個 sUSD 換取了 6792 個 WETH,此時攻擊已經完成。

4、歸還借貸

完成了對 bZx 的攻擊之后,將 7500 ETH 歸還給 bZx, 完成閃電貸流程,從 bZx 來,再回到 bZx 去,還使 bZx 遭受了損失。

賽后復盤

通過分析攻擊者的攻擊手法,我們統計下攻擊者在攻擊過程中的支出和收入情況。

7500 => bZx 閃電貸+2482 => Synthix 返還+6792 => 使用 sUSD 在 bZX 兌換 WETH=16774 ETH支出

540 + (20*18) => 拉高 sUSD/WETH 價格+6000  => 買空sUSD+7500 => 歸還bZx閃電貸=14400 ETH總的收益為: 16774 - 144002374 = 2374 ETH

防御建議

兩次攻擊的主要原因還是因為 Uniswap 的價格的劇烈變化最終導致資產的損失,這本該是正常的市場行為,但是通過惡意操縱市場,攻擊者可通過多種方式壓低價格,使項目方造成損失。針對這種通過操縱市場進行獲利的攻擊,慢霧安全團隊給出如下建議:

項目方在使用預言機獲取外部價格的時候,應設置保險機制,每一次在進行代幣兌換時,都應保存當前交易對的兌換價格,并與上一次保存的兌換價格進行對比,如果波動過大,應及時暫停交易。防止市場被惡意操縱,帶來損失。

慢霧導航

慢霧科技官網

https://www.slowmist.com/

慢霧區官網

https://slowmist.io/

慢霧 GitHub

https://github.com/slowmist

Telegram

https://t.me/slowmistteam

Twitter

https://twitter.com/@slowmist_team

Medium

https://medium.com/@slowmist

幣乎

https://bihu.com/people/586104

知識星球

https://t.zsxq.com/Q3zNvvF

火星號

http://t.cn/AiRkv4Gz

Tags:ETHUSDSUSDABUETH官方地址USD ReceiptPegsUSDShiba Shabu

芝麻開門交易所下載
爆倉6.29億美元 比特幣凌晨跳水背后發生了什么?_BTC

據qkl123.com提供的數據顯示,北京時間2月20日凌晨5時左右,比特幣價格在短時間內下跌850美元,從高點10200美元跌至最低9350美元,截至發稿時,其已回升至9630美元附近.

1900/1/1 0:00:00
區塊鏈已入圍22省區市今年政府報告 產業機遇來了?_區塊鏈

隨著地方兩會接近尾聲,政府工作報告將成為地方部署工作的重要指南。作為新一代信息技術的代表,區塊鏈成為2020年政府工作報告的高頻詞匯,全國大多數省區市均重點提及到區塊鏈.

1900/1/1 0:00:00
摩根大通為什么并購區塊鏈公司Consensys?_COIN

根據本周早些時候發布的一份全新的報告稱,銀行業巨頭摩根大通(JP Morgan)目前正在推動其內部區塊鏈部門Quorum與以太坊軟件開發商 ConsenSys的并購計劃.

1900/1/1 0:00:00
比特幣價格牛市可能會持續1000天_比特幣

比特幣在2020年的價值要超過其存在的任何一年。歷史數據表明,其價格還將繼續攀升19個月。基金合作伙伴James Todaro在2月21日上傳到Twitter的數據顯示,就交易量加權平均價格而言.

1900/1/1 0:00:00
比特幣交易規模達7270億美元 超越Visa只需要一次減半_比特幣

比特幣(BTC)處理的交易規模已經相當于世界GDP的1%,并且在每個減半周期中,其數量都在以“數量級”的速度增長.

1900/1/1 0:00:00
瑞士證券交易所SIX投資數字資產機構交易平臺Omniex_ETP

瑞士領先的證券交易所SIX已經投資機構交易平臺Omniex,并計劃將其用作進入數字資產領域的“門戶”.

1900/1/1 0:00:00
ads