本文作者: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,但是實際上大盤的價格不會拉到這么多
慢霧:遠程命令執行漏洞CVE-2023-37582在互聯網上公開,已出現攻擊案例:金色財經報道,據慢霧消息,7.12日Apache RocketMQ發布嚴重安全提醒,披露遠程命令執行漏洞(CVE-2023-37582)目前PoC在互聯網上公開,已出現攻擊案例。Apache RocketMQ是一款開源的分布式消息和流處理平臺,提供高效、可靠、可擴展的低延遲消息和流數據處理能力,廣泛用于異步通信、應用解耦、系統集等場景。加密貨幣行業有大量平臺采用此產品用來處理消息服務,注意風險。漏洞描述:當RocketMQ的NameServer組件暴露在外網時,并且缺乏有效的身份認證機制時,攻擊者可以利用更新配置功能,以RocketMQ運行的系統用戶身份執行命令。[2023/7/14 10:54:22]
用從 Compound 借來的 112 個 BTC 來在 UniSwap 中賣掉,由于第三步中 bZx 中的 5 倍杠桿已經把價格拉高,所以這個時候出售 ETH 肯定是賺的,然后賣了 6871 個 ETH
慢霧:Grafana存在賬戶被接管和認證繞過漏洞:金色財經報道,據慢霧消息,Grafana發布嚴重安全提醒,其存在賬戶被接管和認證繞過漏洞(CVE-2023-3128),目前PoC在互聯網上公開,已出現攻擊案例。Grafana是一個跨平臺、開源的數據可視化網絡應用程序平臺,用戶配置連接的數據源之后,Grafana可以在網絡瀏覽器里顯示數據圖表和警告。Grafana根據電子郵件的要求來驗證Azure Active Directory賬戶。在Azure AD上,配置文件的電子郵件字段在Azure AD租戶之間是不唯一的。當Azure AD OAuth與多租戶Azure AD OAuth應用配置在一起時,這可能會使Grafana賬戶被接管和認證繞過。其中,Grafana>=6.7.0受到影響。加密貨幣行業有大量平臺采用此方案用來監控服務器性能情況,請注意風險,并將Grafana升級到最新版本。[2023/6/25 21:58:31]
歸還 dYdX 中的借貸
第二次攻擊與之前稍有不同,但核心都在于控制預言機價格,并通過操縱預言機價格獲利。
慢霧:Nomad事件中仍有超過9500萬美元被盜資金留在3個地址中:8月2日消息,慢霧監測顯示,Nomad攻擊事件中仍有超過9500萬美元的被盜資金留在3個地址中。其中0xB5C55f76f90Cc528B2609109Ca14d8d84593590E中仍有1084枚ETH、120萬枚DAI、103枚WBTC等約800萬美元的加密資產,該地址也負責將1萬枚WETH轉移到另一地址以及將其他USDC轉移;第二個地址0x56D8B635A7C88Fd1104D23d632AF40c1C3Aac4e3目前仍有1.28萬枚ETH、1.02萬枚WETH、80萬DAI等約4700萬美元的加密資產;第三個地址0xBF293D5138a2a1BA407B43672643434C43827179在收到3866.6萬USDC后兌換為了DAI,目前有約3970萬美元的加密資產。
目前慢霧經過梳理后,無法將地址3與其他兩個地址連接起來,但這些攻擊具有相同的模式。[2022/8/2 2:53:04]
注: 下文中出現的 WETH 是 ETH 的 token 化代幣,可統一認為是 ETH。與 ETH 之間的兌換比例是 1:1
慢霧: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]
細節剖析
慢霧:Moonbirds的Nesting Contract相關漏洞在特定場景下才能產生危害:據慢霧區情報反饋,Moonbirds 發布安全公告,Nesting Contract 存在安全問題。當用戶在 OpenSea 或者 LooksRare等NFT交易市場進行掛單售賣時。賣家不能僅通過執行 nesting(筑巢) 來禁止NFT售賣,而是要在交易市場中下架相關的 NFT 售賣訂單。否則在某個特定場景下買家將會繞過 Moonbirds 在nesting(筑巢)時不能交易的限制。慢霧安全團隊經過研究發現該漏洞需要在特定場景才能產生危害屬于低風險。建議 Moonbirds 用戶自行排查已 nesting(筑巢)的 NFT 是否還在 NTF 市場中上架,如果已上架要及時進行下架。更多的漏洞細節請等待 Moonbirds 官方的披露。[2022/5/30 3:50:23]
本次發生攻擊的交易哈希為:
0x762881b07feb63c436dee38edd4ff1f7a74c33091e534af56c9f7d49b5ecac15通過 etherscan 上的分析,我們看到這筆交易中發生了大量的 token 轉賬。
這么多轉賬交易中,攻擊者一共購買了 20 次 sUSD,最終獲利離場,那么攻擊者具體是怎么操作的呢?我們使用區塊瀏覽器 bloxy.info 來做進一步分析。
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
https://twitter.com/@slowmist_team
Medium
https://medium.com/@slowmist
幣乎
https://bihu.com/people/586104
知識星球
https://t.zsxq.com/Q3zNvvF
火星號
http://t.cn/AiRkv4Gz
今日凌晨一點左右,收到了幣安維護完成的消息推送,而后打開行情軟件看價格果然再次站上了10200,當時心里是松了一口氣的,夜間安安穩穩保持震蕩問題不大,即使回調也在一定范圍內.
1900/1/1 0:00:00余額大于1BTC的地址數量達84.04萬:金色財經消息,據歐科云鏈OKLink鏈上數據顯示,比特幣24h鏈上活躍地址數逾95.04萬,環比下降1.36%;鏈上實際交易量近46.52萬BTC.
1900/1/1 0:00:00如果政府腐敗影響到國家貨幣的穩定,那么公民自然會轉向黃金或BTC等其他資產來進行儲蓄投資。這種方式能在一個原本不穩定的市場中給他們提供一種財務控制感。感受到加密貨幣影響的不僅僅是投資.
1900/1/1 0:00:00以太坊社區反對ProgPow,在限制ASIC挖礦提議上存在爭議。這項提議可能導致以太坊整條鏈分裂,同時也可以決定非核心以太坊開發者能否左右治理決策.
1900/1/1 0:00:00市值第三的加密貨幣XRP周四在主要加密貨幣交易所BitMEX發生閃跌,價格一度跌至0.13美元.
1900/1/1 0:00:00本周的主流項目除了比特幣外其他的社區都有動作,本文包含以太坊、EOS、Filecoin、Polkadot、COSMOS、Hyperledger.
1900/1/1 0:00:00