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

bZx協議再遭黑客“二連擊”背后的技術命門_USD:bZx Protocol

Author:

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

PeckShield 團隊在上一篇文章《PeckShield:硬核技術解析,bZx協議遭黑客漏洞攻擊始末》中分析了 bZx 于02月15日遭到黑客一次可組合資產流動性攻擊,那是由于 bZx 合約對抵押品狀態判斷不完善導致的。

02月18日,bZx 再次遭遇了類似的攻擊,這一次的攻擊從技術原理與上一次不同,此次黑客是通過操縱 Oracle 價格對 bZx 合約進行了“蒙騙”。

從攻擊流程上來看,這一次與上次剛好相反,但整體上的套利手段還是一致的,根本原因主要是由于平臺間共享流動性過小以及價格機制設計缺陷導致的。

Figure: Five Exploitation Steps With Oracle Manipulation

本文的初衷是希望通過分析此漏洞的一些攻擊細節讓大家能夠更直觀的了解此次攻擊事件,并希望可以引起更深入的討論。我們相信,這些討論將對 DeFi 社區的完善和發展是十分有益的,特別是項目方在開發下一代的 DeFi 類產品時,可以有助于設計出更安全,更可靠的流動性共享模型。

bZx(BZRX)突破1.6美元,24H最高漲幅44.64%:據Gate.io行情顯示,新交易對BZRX/ USDT幣價持續上漲,今日突破1.6美元,截至今日14:00,24H漲幅最高達44.64%,當前漲幅26.42%,24H最高價1.688美元,當前報價1.574美元。據悉,BZRX/ USDT交易于8月30日在Gate.io正式上線。[2020/8/31]

漏洞的攻擊細節如下:

此攻擊事件發生在北京時間 2020-02-18 11:18:58(塊高度#9504627 )。攻擊者的交易信息可以在 etherscan 上查到。此攻擊過程可以分為以下五個步驟:

第一步:閃貸獲取可用資產

bZx 合約有一個 flashBorrowToken() 接口,允許調用者可以“零成本”從 bZx 平臺上借出資產參與 DeFi 活動,之后在完成這一筆交易的時候償還這部分資產。且調用者在借出資產的同時,可以指定資產的接收方地址。 

DeFi借貸協議bZx將于9月1日開啟流動性挖礦:8月31日,DeFi借貸協議bZx官方宣布,將于9月1日開啟流動性挖礦。此前消息,在bZx協議的通證經濟生態中,分為iToken、pToken和GovernanceToken(BZRX)三種。iToken是用于累積利息的通證,它代表了借貸池中的份額,隨著借方向其中支付利息,借貸池中的份額會不斷增加。iToken可以交易,用作抵押品,或是由開發人員組合成結構化產品。pToken是用于加杠桿的通證,它代表了某標的資產特定倍數的多頭或空頭頭寸。BZRX則是治理通證,為中繼節點收集交易手續費,有點像中心化交易平臺中有權益屬性的平臺幣。[2020/8/31]

Figure1: Flashloan Borrowing From bZx

本次攻擊者向 bZx 平臺借出 7,500 ETH,并指定攻擊者的合約(此前已經部署)為資產接收方地址,這部分是基本的借貸功能,此處不做進一步解釋。

當這一步操作過后,如下表中所示系統資產分布:

一用戶在半小時內通過交易Uniswap上bZx代幣獲利超2000枚ETH:安全工程師RomanStorm發推稱,在半個小時多的時間里,一位用戶在Uniswap上通過交易借貸協議bZx的代幣BRZX獲利2030枚ETH和30萬個BZRX代幣。具體操作步驟為,BZRX在Uniswap上市后,該用戶通過智能合約第一時間用650個ETH購入逾196.61萬個BZRX,兌換了流動池中BZRX的39.3%。兩分鐘后,該用戶開始進行一系列出售行為,共計獲利2030枚ETH和30萬個BZRX代幣。bZx回應稱,這種問題的解決方案可能是像dFusion這樣的批量拍賣,或是類似于荷蘭式拍賣等方式。不過,這不是套利,與其他買方一樣,機器人所有者也承擔了巨大的資金風險。[2020/7/14]

第二步:拉升 sUSD

首先,我們介紹一下今天攻擊者的最佳配角:sUSD,sUSD 是由 Synthetix 項目方發行的穩定幣,其幣價正常情況下與 1 美元持平,總發行量為 5,563,037 枚(統計于 2020年02月18日)。

bZx新預言機規劃公布,最終將集成Chainlink、Band和Uniswap v2:曾受閃電貸攻擊的去中心化貸款協議 bZx再次發文總結了發生在 2 月 17 日的攻擊事件,并公開了對于調整集成的價格預言機的三步路線。第一階段,bZx將采用Chainlink預言機作為bZx的參考價格,bZx認為目前Chainlink是目前市場中最佳的去中心化預言機解決方案;第二階段,bZx將采用Chainlink和Band兩個數據源,bZx認為Band的預言機地理位置更適合亞洲市場,這也能分散他們的預言機風險;第三階段,bZx將采用Chainlink、Band和Uniswap v2作為預言機,將這三者的平均價格作為 bZx的參考價格,下一代的Uniswap的價格源將會提供以時間作為權重的價格數據,這也就意味著攻擊和操縱會需要更多的成本和時間。(bzx.network)[2020/3/10]

通過第一步閃貸獲得 ETH 后,攻擊者分兩批共 900 ETH 通過 KyberNetwork DEX 換取成 sUSD。其中第一次 使用 540 ETH 換取,(KyberNetwork 內部查詢得到 KyberUniswap 的價格是最優的)攻擊者得到 92,419 枚 sUSD;第二批分 18 次,每次 20 ETH 換取,(KyberNetwork 查詢之后確認 Kyber-sUSD 的價格是最合適的),攻擊者獲得 63,584 枚 sUSD,總共獲得了 156,003 枚 sUSD。 

聲音 | bZx聯合創始人:1inch.exchange的博客文章是片面的 且違反披露政策:bZx的聯合創始人Kyle Kistner表示,1inch.exchange的博客文章是片面的。Kistner表示,我們同意支付他們一筆賞金,即使他們違反了我們的披露政策,向公眾公布了漏洞,他稱,“1inch.exchange發布博客文章是相當嚴重的違規行為。我們告訴他們,我們正在撰寫一份檢查報告,并將其安排在2月底發布。行業標準的負責任披露準則規定,披露時間為90天(例如谷歌、微軟都遵循這些準則)。我們要求他們簽署保密協議,因為他們似乎熱衷于敲詐我們”。(TheBlock)[2020/2/21]

Figure2: Pumping With Kyber (and Uniswap)

這兩步驟也是正常的 DEX 幣幣交換的過程,在這兩個批次操作之后 sUSD 對 ETH 的價格瘋漲到了 0.00899,是市場價的 2.5 倍。

在這一步之后,使得 sUSD 價格被抬高了 1.5 倍,攻擊者手里的資產還是正常與 KyberNetwork 交互,并沒有實質性的攻擊發生。然而,KybrNetwork 內部通過 Uniswap 完成 sUSD 與 ETH 轉換,這使得那些將 Uniswap 作為 sUSD/ETH Oracle 的其它平臺(比如說 bZx)誤認為當前 sUSD 價格的確有這么高,這才觸發了后面的攻擊事件。此時,系統的資產如下:

第三步:吸納更多籌碼

攻擊者希望將手里的 6,000 ETH 通過 Synthetix exchangeEtherForSynths() 接口全部換成 sUSD。而 Synthetix 這邊也沒有足額的 sUSD 來促成這筆交易,只交換了其中的 3,518 枚 ETH,并將剩余的 2,482 枚 ETH 返還給攻擊者,攻擊者獲得了 943,837 枚 sUSD。

Figure3:Hoarding From Synthetix

到此為止,攻擊者手里已經擁有的 sUSD 總量為 1,099,841 枚,占總發行量的  19.7%。

當前系統中的賬本數據如下:

第四步:抵押借款

攻擊者將手里擁有的 1,099,841 枚 sUSD 通過 bZx 的 borrowTokenFromDeposit() 接口全部抵押到 bZx 合約之中,按照 sUSD/ETH 正常價格的話,bZx 應當借給攻擊者 3,928 ETH,但是 bZx 從 Oracle Kyber 這邊獲取的價格偏高,使得借出了 6,796 枚 ETH,多借了 2,868 ETH。

Figure4: Collateralized Borrowing From bZx

到此為止,系統的賬本信息如下:

第五步:閃貸還款

攻擊者利用從 bZx 借到的 6,796 枚 ETH 以及手中剩余的資產一起還給之前從 bZx 借出來的 7,500 ETH,然后退場離開,完成閃貸操作。 

Figure5: Repay The Flashloan To bZx

完成整個閃電貸流程之后,當前資產情況:

1)bZx 平臺對攻擊者借出的 6,796 ETH;

2)bZx 平臺持有 1,099,841 枚 sUSD;

3)攻擊者手上還持有 2,378 枚 ETH。

最終攻擊者手中持有的 2,378 ETH 部分為其獲利,合計 $665,840(當前 ETH 價格$280);而 bZx 平臺負債為 2,868 ETH(6,796 - 1,099,841/280),即 $803,040。

總結

這一次的攻擊事件中,我們能看出 DeFi 產品在設計過程中幾個明顯的問題點:

1)當引入第三方 Token 的時候,需要考察第三方 Token 的安全性,有沒有可能被單方面市場操縱,從而引起價格波動;

2)DeFi 平臺自身應當有價格容錯與檢驗機制,使用第三方 Oracle 獲取價格的時候,對他方的數據有盡可能多的驗證;

3)平臺自身對于價格也應當設立止水閥機制。

從第一次 bZx 被攻擊損失 1,271 枚 ETH,這一次又損失 2,378 枚,且這兩次攻擊之間只相差了 3 天時間,可見 DeFi 特別項目的安全問題非常嚴峻。

由于各項目由不同團隊開發,對各自產品的設計與實現理解有限,集成的產品很可能在與第三方平臺交互的過程中出現安全問題,進而腹背受敵。PeckShield 在此建議,DeFi 項目方在上線之前,應當盡可能尋找對 DeFi 各環節產品設計有深入研究的團隊做一次完整的安全審計,以避免潛在存在的安全隱患。

Tags:BZXETHUSDSUSDbZx Protocolethw幣最新消息usdt幣交易違法嗎香港PegsUSD

火必下載
金色趨勢丨BTC上升趨勢完好 有望迎來新一輪反彈_BIT:區塊鏈

金色晚報 | 10月2日晚間重要動態一覽:12:00-21:00關鍵詞:歐洲、特朗普、北京四板市場、BitMEX 1. 美國總統特朗普和第一夫人新冠病檢測陽性; 2.

1900/1/1 0:00:00
抖音海外版TikTok正成為年輕人了解比特幣和加密貨幣的平臺_ALL:Lead Wallet

周五Forbes刊文稱,短視頻共享應用抖音海外版TikTok正成為年輕人了解比特幣和加密貨幣的平臺.

1900/1/1 0:00:00
6萬枚BCH被盜 BCH滾動檢查點機制再惹爭議_ETH:比特幣鉆石未來價值

最近的BCH,可謂是風頭出盡,然而,出的盡是些惹來巨大爭議的風頭。這不,上個月剛剛因為“強捐”而引發了業界熱議,這個月,一個大戶6萬個BCH被盜發帖求助而導致的眼球效應再次讓注意力聚焦BCH,這.

1900/1/1 0:00:00
BTG疑遭鯨魚控制 大戶掌握近一半流通量_BSP:NBS

Onlyforesight的一篇文章稱,巨鯨可能控制著近一半的BTG供應量。大戶通過Bitfinex積累籌碼2018年8月,Bitfinex保證金多頭頭寸開始急劇上升,包括近200萬個BTG(交.

1900/1/1 0:00:00
2.26早間行情:行情暫時止跌未企穩 勿盲目進場抄底_BIT:BTCπ價格

AAVE跌破500美元關口 日內跌幅為2.26%:火幣全球站數據顯示,AAVE短線下跌,跌破500美元關口,現報499.81美元,日內跌幅達到2.26%,行情波動較大,請做好風險控制.

1900/1/1 0:00:00
從華爾街到幣圈 BitMax曹晶的尋找Alpha之旅_BIT:MAX

2020年2月7日,元宵節前夕。BitMax交易所創始人曹晶依然很忙。他的微信叫SeekAlpha,Seek是“尋求”,Alpha是“投資組合超額收益”,同時也是希臘字母中的“龍頭”、“榜首”.

1900/1/1 0:00:00
ads