PeckShield 團隊在上一篇文章《PeckShield:硬核技術解析,bZx協議遭黑客漏洞攻擊始末》中分析了 bZx 于02月15日遭到黑客一次可組合資產流動性攻擊,那是由于 bZx 合約對抵押品狀態判斷不完善導致的。
02月18日,bZx 再次遭遇了類似的攻擊,這一次的攻擊從技術原理與上一次不同,此次黑客是通過操縱 Oracle 價格對 bZx 合約進行了“蒙騙”。
從攻擊流程上來看,這一次與上次剛好相反,但整體上的套利手段還是一致的,根本原因主要是由于平臺間共享流動性過小以及價格機制設計缺陷導致的。
Figure: Five Exploitation Steps With Oracle Manipulation
本文的初衷是希望通過分析此漏洞的一些攻擊細節讓大家能夠更直觀的了解此次攻擊事件,并希望可以引起更深入的討論。我們相信,這些討論將對 DeFi 社區的完善和發展是十分有益的,特別是項目方在開發下一代的 DeFi 類產品時,可以有助于設計出更安全,更可靠的流動性共享模型。
bZx已上線Polygon網絡 并將推出Polygon治理代幣:金色財經報道,據官方消息,去中心化借貸平臺bZx在Polygon上正式推出對保證金交易和借貸的支持。在發布時,bZx提供MATIC、ETH、WBTC、AAVE、LINK、USDC和USDT相關的11種交易對。此外,bZx還將推出Polygon治理代幣PGOV。[2021/6/16 23:39:37]
漏洞的攻擊細節如下:
此攻擊事件發生在北京時間 2020-02-18 11:18:58(塊高度#9504627 )。攻擊者的交易信息可以在 etherscan 上查到。此攻擊過程可以分為以下五個步驟:
第一步:閃貸獲取可用資產
bZx 合約有一個 flashBorrowToken() 接口,允許調用者可以“零成本”從 bZx 平臺上借出資產參與 DeFi 活動,之后在完成這一筆交易的時候償還這部分資產。且調用者在借出資產的同時,可以指定資產的接收方地址。
MXC抹茶7月13日22:00考核區上線BZX,開放USDT和ETH交易:據MXC抹茶官方公告,7月13日22:00,MXC抹茶考核區上線BZRX(BZX),開放USDT和ETH交易,現已開放充值,提現將于7月13日22:00開放。
據BZRX(BZX)官方資料,BZRX是開放金融協議,構建的應用程序使貸款人借款人和交易員能夠在以太坊上使用最靈活的去中心化金融協議。詳情請閱讀相關公告。[2020/7/12]
Figure1: Flashloan Borrowing From bZx
本次攻擊者向 bZx 平臺借出 7,500 ETH,并指定攻擊者的合約(此前已經部署)為資產接收方地址,這部分是基本的借貸功能,此處不做進一步解釋。
當這一步操作過后,如下表中所示系統資產分布:
第二步:拉升 sUSD
首先,我們介紹一下今天攻擊者的最佳配角:sUSD,sUSD 是由 Synthetix 項目方發行的穩定幣,其幣價正常情況下與 1 美元持平,總發行量為 5,563,037 枚(統計于 2020年02月18日)。
動態 | 盡管DEX交易量飆升,但BzX漏洞事件凸顯行業隱憂:去年,以太坊上的DEX交易額超過23億美元,而2020年有望輕松超越。根據Dune Analytics的數據,以太坊DEX過去7天的交易額達到1.19億美元,同比增長71%。與此同時,為了滿足不斷增長的需求,新的DEX也在不斷涌現。盡管如此,DEX行業依然存在隱憂。2月15日發生的DeFi貸款協議BzX漏洞事件引發了激烈的爭論,爭論的焦點是去中心化的交易協議是否真的是去中心化的,還是一個“緊急開關”的存在會使所有這些聲明無效。此前,BzX的一個合約被操縱,損失了約35萬美元的ETH,而后該合約被關閉。注:BzX是第七大DeFi協議,鎖定了超過1800萬美元的資金。(Bitcoin.com)[2020/2/18]
通過第一步閃貸獲得 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經歷被操縱導致以太坊損失后部署合同升級:去中心化金融(DeFi)貸款協議bZx經歷被操縱導致以太坊損失后,bZx表示,除除了暫時關閉Fulcrum進行維護之外,BZX部署了合同升級,他們說這將使他們的系統對類似攻擊更有抵抗力,并表示他們將通過從銀行流向“現有iETH持有者的利息和退出流動性”來覆蓋攻擊者的貸款償還。在攻擊的事后調查中,DeFi貸款的保險經歷了嚴重的上升,在Maker,Compound,Dydx和Bzx等協議中購買了價值數十萬美元的保險。(News.Bitcoin)[2020/2/18]
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 價格的確有這么高,這才觸發了后面的攻擊事件。此時,系統的資產如下:
動態 | DeFi貸款協議bZx被利用導致部分ETH丟失:據Theblock消息,DeFi貸款協議bZx被爆漏洞。聯合創始人Kyle Kistner表示,一部分ETH已經丟失,目前尚不清楚被盜ETH的確切數量,bZx已關閉其Fulcrum交易平臺進行維護。
數據顯示,過去24小時內已從bZx協議中提取了3300 ETH(約合932,000美元)。一些市場觀察家指出,被盜ETH金額約為350,000美元。[2020/2/15]
第三步:吸納更多籌碼
攻擊者希望將手里的 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 各環節產品設計有深入研究的團隊做一次完整的安全審計,以避免潛在存在的安全隱患。
時光如梭,距離比特幣第三次產量減半的時間又近了一點。可以說這將是非常重要的一次減半,因為在這一次減半之后,比特幣的通脹率將會從現在的3.8%降到1.8%,低于國際上貨幣通貨膨脹的水平.
1900/1/1 0:00:00美國國稅局(IRS)刪除了其網站上將游戲貨幣作為可兌換虛擬貨幣示例的說法。這一澄清非常重要,因為新的稅務申報要求納稅人報告自己是否有涉足虛擬貨幣.
1900/1/1 0:00:00金色財經挖礦數據播報 | BCH今日全網算力上漲7.08%:金色財經報道,據蜘蛛礦池數據顯示: BTC全網算力122.796EH/s,挖礦難度17.35T,目前區塊高度639151.
1900/1/1 0:00:00文/孟永輝 區塊鏈時代的來臨讓越來越多的人感受到了前所未有的機遇,這個比互聯網更具顛覆性的物種一旦被人們關注便開始爆發出驚人的力量。于是,越來越多的人開始投身到區塊鏈創業的浪潮里.
1900/1/1 0:00:00過去兩周對于加密貨幣市場而言一直處于動蕩不安中,比特幣和眾多主流加密貨幣在幾周前反彈至2020年新的高點,然后遇到了無法沖過的價格阻力,從而引發了強烈的下跌趨勢.
1900/1/1 0:00:00今日上午有鯨魚賬戶稱自己的加密貨幣賬戶被黑客攻擊,被盜價值1500萬美元的BTC和3000萬美元的BCH,且該消息被幣印創始人簽名驗證過屬實.
1900/1/1 0:00:00