作者:yudan@慢霧安全團隊
編者注:原標題為《詳解DeFi協議bZx二次被黑》
前言
2月18日早,bZx疑似遭遇第二次攻擊,不同的是本次的對象是ETH/sUSD交易對,但也許有人會有疑問,sUSD不是對標USD的穩定幣嗎?這都能被攻擊?攻擊手法具體是怎樣的?帶著這樣的疑問,針對此次事件,慢霧安全團隊接下來將復盤這兩次攻擊過程。
在第一次攻擊中,攻擊者結合Flashloan和Compound中的貸款,對bZx實施攻擊,主要分成以下幾步:
從dYdX借了10000個ETH
到Compound用5500ETH借了112個BTC準備拋售
到bZx中用1300個ETH開5倍杠桿做空,換了51.345576個BTC,而這里換取的BTC是通過KyberNetwork來獲取價格的,然而KyberNetwork最終還是調用Uniswap來獲取價格,5倍杠桿開完后兌換回來的51個BTC實際上是拉高了UniSwap中BTC/ETH的價格,換取價格是1/109,但是實際上大盤的價格不會拉到這么多
美國財政部正在研究如何使用數字美元來保護隱私:金色財經報道,負責金融機構的助理部長Graham Steele表示,美國財政部一直在研究如何使潛在的數字美元的零售交易盡可能保持私密和匿名,盡管他說美國還沒有決定是否推進中央銀行數字貨幣(CBDC)的發展。
然而,Steele也指出了零售業CBDC可能存在的風險,特別是運行的危險。最近的美國銀行業動蕩表明,\"使存款流動的技術只會越來越快,\"這增加了高速、恐慌性的資金流動的危險。斯蒂爾說,一個由財政部領導的小組正在研究建立美國中央銀行數據中心的可能性,\"該小組正在評估與全球金融領導地位、國家安全、隱私、非法金融和金融包容性有關的政策目標。[2023/6/14 21:34:44]
用從Compound借來的112個BTC來在UniSwap中賣掉,由于第三步中bZx中的5倍杠桿已經把價格拉高,所以這個時候出售ETH肯定是賺的,然后賣了6871個ETH
Celsius債權人:法院判決客戶并不對每個債務人實體都有索賠權:3月10日消息,Celsius官方無擔保債權人委員會 (UCC) 發推文稱:“美國聯邦法官Martin Glenn不同意UCC和Celsius的觀點,他同意優先股持有人的觀點,認為客戶并不對每個債務人實體都有索賠權。UCC不同意這一判決,并對判決結果感到失望。UCC正在考慮其選擇,以確保客戶從Celsius中獲得最大的價值。”[2023/3/10 12:54:18]
歸還dYdX中的借貸
第二次攻擊與之前稍有不同,但核心都在于控制預言機價格,并通過操縱預言機價格獲利。
注:下文中出現的WETH是ETH的token化代幣,可統一認為是ETH。與ETH之間的兌換比例是1:1
細節剖析
本次發生攻擊的交易哈希為:
今日恐慌與貪婪指數為27,等恐慌程度較昨日有所下降:金色財經報道,今日恐慌與貪婪指數為27(昨日為26),恐慌程度較昨日有所下降,等級仍為恐慌。
注:恐慌指數閾值為0-100,包含指標:波動性(25%)+市場交易量(25%)+社交媒體熱度(15%)+市場調查(15%)+比特幣在整個市場中的比例(10%)+谷歌熱詞分析(10%)。[2022/12/12 21:38:42]
0x762881b07feb63c436dee38edd4ff1f7a74c33091e534af56c9f7d49b5ecac15
通過etherscan上的分析,我們看到這筆交易中發生了大量的token轉賬。
Yuga Labs聯合創始人:Otherside官方推特賬號出現異常:10月12日消息,Yuga Labs聯合創始人Greg Solano在推特上表示,元宇宙項目Otherside的官方推特賬號出現異常,并請用戶目前不要相信該賬號發布的消息。
目前,Otherside推特簡介內容已清空,推特名也已改為無實際意義的“-”字符。
此前報道,美國證券交易委員會(SEC)正針對Yuga Labs發布的部分NFT是否更類似股票,以及ApeCoin是否違反聯邦法律的問題展開調查。Yuga Labs表示將全力配合相關調查。[2022/10/12 10:31:52]
這么多轉賬交易中,攻擊者一共購買了20次sUSD,最終獲利離場,那么攻擊者具體是怎么操作的呢?我們使用區塊瀏覽器bloxy.info來做進一步分析。
美國10年期國債收益率上升5個基點至3.21%:行情顯示,美國10年期國債收益率上升5個基點至3.21%,為2018年以來的最高水平。[2022/6/13 4:22:26]
1、賽前準備
和第一次一樣,首先攻擊者需要從Flashloan借入一定的金額開始本次的攻擊,第一次攻擊是從?dYdX?借入10000ETH,這次,攻擊者選擇從bZx本身支持的Flashloan下手,借入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發送6000ETH購買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的攻擊之后,將7500ETH歸還給bZx,完成閃電貸流程,從bZx來,再回到bZx去,還使bZx遭受了損失。
賽后復盤
通過分析攻擊者的攻擊手法,我們統計下攻擊者在攻擊過程中的支出和收入情況。
收入
7500=>bZx閃電貸+2482=>Synthetix返還+6792=>使用sUSD在bZX兌換WETH=16774ETH
支出
540+(20*18)=>拉高sUSD/WETH價格+6000=>買空sUSD+7500=>歸還bZx閃電貸=14400ETH
總的收益為:16774-14400=2374ETH
防御建議
兩次攻擊的主要原因還是因為Uniswap的價格的劇烈變化最終導致資產的損失,這本該是正常的市場行為,但是通過惡意操縱市場,攻擊者可通過多種方式壓低價格,使項目方造成損失。針對這種通過操縱市場進行獲利的攻擊,慢霧安全團隊給出如下建議:
項目方在使用預言機獲取外部價格的時候,應設置保險機制,每一次在進行代幣兌換時,都應保存當前交易對的兌換價格,并與上一次保存的兌換價格進行對比,如果波動過大,應及時暫停交易。防止市場被惡意操縱,帶來損失。
術語“治理”是一個總概性術語,它涵蓋了我們如何在規模上進行協調的方法和過程。我們如何組織我們的社會,如何定義和執行規則,如何做出集體決定。今天,我們的協調主要依靠政府和受法律保護的私營公司.
1900/1/1 0:00:00來源:哈希派 作者:LucyCheng在上一個故事“比特幣最終總量并不是2100萬”里,我們提到因某種目的或者挖礦軟件出錯而未申領全額區塊獎勵的情況并不少見.
1900/1/1 0:00:00來源:CointelegraphChina編者注:原標題為《機構托管是關鍵行業,因為據畢馬威估算,自2017年以來,有98億美元的加密貨幣被盜》 根據畢馬威3月2日與彭博社分享的一份報告.
1900/1/1 0:00:00“每一次Amaury進入我的視野,都是要錢。。。”一位BCH持幣大戶在微信上跟我抱怨這次BCH開發者對近日發表的對挖礦進行抽成,以籌集成立BCH基礎實施開發資金.
1900/1/1 0:00:002020年5月中旬左右,比特幣挖礦獎勵將減半。這種被稱為“減半”的貨幣政策被硬編碼到比特幣的協議中,大約每四年發生一次。這種情況將持續到2040年,也就是最后一批比特幣被挖出來的那一年.
1900/1/1 0:00:00來源:螞蟻金服 公益基金會如何處置愛心人士捐贈的善款一直是捐贈者關心的問題,如今,浙江再次在公益基金透明方面試水高科技,提前交卷。2月27日,浙江省財政廳聯合螞蟻金服率先上線區塊鏈捐贈電子票據.
1900/1/1 0:00:00