斯巴達陷落—BSC首次閃電貸攻擊事件分析
5月2日,DeFi項目Spartan遭到黑客的閃電貸攻擊,斯巴達協議(Spartan Protocol)是一個資產流動性項目,旨在解決現有 AMM 協議以及合成資產所出現的各類問題。斯巴達協議的流動性池是此協議的核心,所有一切系統內的相關應用都離不開流動性池的支持。SpartanSwap 應用了 THORCHAIN 的 AMM 算法。此算法采用流動性敏感資費(Liquidity-sensitive fee)來解決流動性冷啟動以及滑點問題。
攻擊者利用閃電貸攻擊盜取了項目3000萬美元。其盜取資產的交易如下:
通付盾區塊鏈安全團隊(SharkTeam)第一時間對此事件進行了攻擊分析和技術分析,并總結了安全防范手段,希望后續的區塊鏈項目可以引以為戒,共筑區塊鏈行業的安全防線。
一、事件分析
通過分析交易,該事件中,閃電貸攻擊的流程如下:
(1)攻擊者首先通過閃電貸從PancakeSwap借出1000 WBNB,交易及詳情如下:
(2)攻擊者在出現漏洞的 Spartan 兌換池WBNB-SPT1中,分五次將 WBNB 兌換成 SPARTAN,從而導致兌換池中產生巨大滑點。
交易及詳情如下:
此時攻擊者有
2536,613.206101067206978364 SPARTA和 11853.332738790033677468 WBNB。
(3)攻擊者將這些Token(持有的WBNB與SPARTA)注入WBNB-SPT1交易池中添加流動性,獲得LP憑證,由于滑點修正機制,獲得的LP數量并不是正常值。
(4)進行多次Swap操作,將WBNB兌換成SPARTA,池中WBNB增多,SPARTA減少。
(5)Swap后將持有的WBNB和SPARTA轉移給WBNB-SPT1池,進行移除流動性操作。
移除流動性時會通過池中實時的代幣數量來計算用戶的LP可獲得多少對應的代幣,由于步驟5,此時會獲得比添加流動性時更多的代幣。
(6)在移除流動性后會更新流動性池中的baseAmount與tokenAmount,由于移除流動性時沒有和添加流動性一樣存在滑點修正機制,移除流動性后兩種代幣的數量和合約記錄的代幣數量會存在一定差值。在與實際有差值的情況下,攻擊者繼續添加流動性獲得LP,然后攻擊者再次移除流動性就獲得了對應代幣。
(7)最后,攻擊者將SPARTA代幣兌換回WBNB,獲得了更多WBNB。黑客通過以上步驟,以很小的成本獲得大量的WBNB,完成閃電貸攻擊。
二、通付盾區塊鏈安全知識課堂
根據整個攻擊過程的分析,與SharkTeam之前分析過的閃電貸攻擊的常用手法相同,并已收錄在了《通付盾2021Q1智能合約安全態勢感知報告》中https://mp.weixin.qq.com/s/I3mv-eZgZg7eTcerjs1Hiw 只不過發生的平臺從以太坊轉移到了幣安智能鏈。本次通付盾區塊鏈安全知識課堂帶您復習閃電貸攻擊的常見手法與防范手段。
DeFi項目的業務邏輯設計復雜,利用閃電貸這種新型產品進行攻擊的DeFi事件在過去的一年里層出不窮。這些安全問題的深層次原因在于,在設計業務邏輯時,未考慮到某些關鍵性因素,如:彈性供應機制、增發機制、清算機制設計不合理、鏈上價格及其他信息可被低成本操控等,導致了惡意套利、惡意增發等問題。攻擊者通過操縱 AMM 資產池內的資產價格或者資產數量使關聯協議蒙受損失,我們不妨稱之為經濟攻擊。至今出現的經濟攻擊分為“哄抬套利”和“操縱預言機”兩種手法。
哄抬套利
哄抬套利攻擊的原理與 CeFi 常見的 Pump-and-Dump 市場操縱行為或者鏈上交易容易碰到的front running攻擊本質上并無差異,都是先想辦法借助他人的資本抬高自有資產的價格再高價賣出獲利。DeFi 生態中此類經濟攻擊事件之所以能夠成功,都與至少兩個核心模塊——攻擊目標和 AMM 有關。
攻擊目標與 AMM 之間存在資產轉移關系,并能由用戶自主觸發相關智能合約執行資產轉移。這里的攻擊目標可以是機槍池、借貸平臺、杠桿交易平臺等 DeFi 模塊。機槍池是運行著一定投資策略的智能合約,可以把它類比于一個基金,為用戶提供代理理財業務,用戶將自有資產存入機槍池以期獲得收益,例如 Yearn 、Harvest ;借貸平臺為出借方和貸方提供服務,賺取利息差,貸方一般要先超額抵押一部分資產,例如 Compound 、 Aave ;杠桿交易平臺允許投資者抵押一定資產作為保證金進行杠桿交易,例如 bZx 。AMM 通過一個定價函數實現自動做市商交易,用戶可兌換資產或作為流動性提供商(LP)參與流動性挖礦。
除了攻擊目標和AMM兩個核心模塊,實際攻擊過程中還要考慮到資金量、手續費、智能合約在執行交易前設置的檢查點等因素。攻擊者可通過建立優化模型找到最優參數,預測哄抬套利收益來決定是否采取行動。這種攻擊手法的一般操作步驟如下:
哄抬套利攻擊的基礎模型(序號代表攻擊步驟,實線表示必要步驟,虛線代表或有步驟;攻擊目標的凈值計算環節和 AMM 的定價函數在設計上存在被黑客利用的風險)。
一般步驟為:
假設 AMM 資產池里的流動性資產為 X、Y,流動性代幣為 C。
第一步,準備。持有即將被哄抬的初始資產 Y 及用于觸發攻擊目標自動執行策略的初始資產 A。
第二步,哄抬。將資產 A 發送至攻擊目標的相關智能合約,獲得代幣 B (代表在機槍池、借貸平臺、杠桿交易平臺等攻擊平臺中的頭寸),并觸發智能合約向 AMM 資產池投入資產 X,獲得資產 Y 或流動性代幣 C,并抬高 AMM 資產池內資產 Y 的價格。
第三步,套利。攻擊者將步驟二中的資產 Y 投入 AMM 資產池,以抬高后的價格獲得資產 X 或流動性代幣 C。需要說明的是,第二、三步中的操作對應于 swap (X、Y 之間交換)或流動性挖礦(X 或 Y 與 C 之間交換)。對于三個及以上幣種的 AMM,這里的 X 或 Y 可視為資產組合。
第四步,收尾。攻擊者根據代幣 B 的最新凈值及后續交易計劃決策是否贖回資產 D。
對于流動性充足的資產池,為了在 AMM 里制造可觀的價格滑點,往往需要投入很大的資金量,故攻擊者一般會從閃電貸借出初始資產。若閃電貸可供借貸的資產類別不滿足要求,攻擊者會去某些 AMM 或借貸平臺通過 swap、流動性挖礦、借貸等方式獲得;也不排除攻擊者直接去與攻擊目標關聯的 AMM 獲取。若攻擊者在第一步的準備過程中采用了閃電貸,那么在第四步就還需在同一筆攻擊交易中歸還閃電貸。
操縱預言機
操縱預言機攻擊可以認為是哄抬套利攻擊的一種對稱操作,其攻擊目標依賴 AMM 提供的信息對其內部資產進行定價。
操縱預言機攻擊的基礎模型(序號代表攻擊步驟,實線表示必要步驟,虛線代表或有步驟;攻擊目標的凈值計算環節和 AMM 的定價函數在設計上存在被黑客利用的風險)。
這種情況下攻擊者雖然無法利用攻擊目標內的資產去哄抬 AMM 內某資產的價格,但可以考察 AMM 模塊作為預言機能否被操縱,從而哄抬攻擊目標內的資產。
攻擊目標依賴 AMM 提供信息的主要目的有兩種:
(1)對抵押物進行估值;
(2)對頭寸代幣進行定價。
我們也可將其視為凈值計算,而攻擊者則專門尋找在凈值計算中與實際情況出現偏差的合約進行操縱。一般步驟為:
第一步,準備。獲得用于操縱 AMM 預言機的資產 Y 及準備存入攻擊目標的資產 A。
第二步,抵押。將資產 A 抵押至攻擊目標,獲得代表抵押物的頭寸代幣 B,有些情況下,不發放頭寸代幣 B,只在智能合約內部記賬。
第三步,操縱。將資產 Y 投入 AMM 兌換資產 X,改變 AMM 流動性池內資產的比例從而改變報價,更新攻擊目標合約內資產 A 或頭寸代幣 B 的定價。
第四步,收尾。若為借貸業務,則通過抬高的抵押物估值借出更多資產并不再歸還;若為機槍池業務,則通過抬高價格后的頭寸代幣 B 贖回資產,獲得增值收益。
三、安全建議
哄抬套利和操縱預言機攻擊模式本質上都是對凈值計算環節的利用和操縱行為。故而在設計 DeFi 系統的時候,妥善處理這一環節至關重要。
(1)最根本的預防措施就是取消用戶自動觸發交易策略鏈式執行或更新凈值的權限,從根本上阻斷攻擊者完成一整套連貫的操縱行為。
(2)安全審計:智能合約安全關系用戶的財產安全,至關重要!區塊鏈項目開發者應與專業的安全審計公司合作,為用戶的數字資產安全和項目本身安全提供保障。
(3)增加交易延遲:操縱價格預言機是一個對時間敏感的操作,因為套利者總是在觀察,并希望有機會優化任何次優市場。如果攻擊者想把風險降到最低,他們會希望在單筆交易中完成操縱價格預言機所需的兩筆交易,這樣就不會有套利者夾在中間。作為協議開發者,可能只需要將用戶進出系統之間的時間間隔增加1個區塊的延遲就可以一定程度上防范此類攻擊。
(4)時間加權平均價格(TWAP):Uniswap引入了一個TWAP預言機,供鏈上開發者使用。有文檔詳細地介紹了該預言機提供的具體安全保障。一般來說,對于長期沒有鏈上擁堵的大型資產池來說,TWAP預言機對預言機操縱攻擊有很強的抵抗力。不過,由于其實施的性質,在市場波動較大的時刻,它的響應速度可能不夠快,而且只適用于鏈上已經有流動性的數字資產。
(5)M-of-N報告者機制:如今很多項目都在使用這種方法。Maker運行了一組由可信實體運營的喂價來源,Compound創建了Open Oracle,并擁有Coinbase等報告者,Chainlink聚合了Chainlink運營商的價格數據,并在鏈上公開。此方法也可有效的防范操縱預言機攻擊。
四、通付盾智能合約審計(BitScan)
通付盾作為領先的區塊鏈安全服務提供商,為開發者提供智能合約審計服務。智能合約審計服務由自動化審計和人工審計構成,滿足不同客戶需求,獨家實現覆蓋高級語言層、虛擬機層、區塊鏈層、業務邏輯層四個方面111項審計內容,全面保障智能合約安全。
智能合約自動化審計在通付盾云平臺上為用戶提供智能合約進行自動化審計服務。運用符號執行、形式化驗證等智能合約分析技術,保障智能合約安全運行。
通付盾也為客戶提供高級別的區塊鏈安全服務,區塊鏈安全專家團隊7*24小時為智能合約提供全生命周期的安全保障,服務包括:VIP安全審計服務、VIP合規審計服務、安全事故應急響應等。
免責聲明:市場有風險,選擇需謹慎!此文僅供參考,不作買賣依據。
關鍵詞:
您可能也感興趣:
為您推薦
8家險企股權被掛牌轉讓,為何險企股權不再被追捧?
深圳最低工資標準調整為2360元/月 失業保險金為2124元/月
遼寧實施失業保險省級統籌 對缺口核定等作出詳細規定
排行
最近更新
- “高速上違停趕報表”警示了誰?
- 離職文書的“坑”不能僅由勞動者填平
- 脫掉K-9包袱節流減員,新東方在線駛向新“東方”
- 疫情得到控制,防疫仍不可松勁
- ?青海春天一字跌停,2021年預虧超2.65億或將被實施退市風險警示
- 金地集團子公司東莞金展房地產因虛假材料取得商品房預售許可被罰
- 幫助中小企業紓困解難,工信部明確這些舉措!
- 非學科類培訓班寒假惡意漲價需綜合施治
- 機構:2021年126家房企參與收并購 交易金額同比增長21.3%
- 北京:買四類藥品實施新政 市場監管進店查落實
- 營收凈利雙降,沃華醫藥用九成利潤給股東“發紅包”
- 東莞保越實業因虛假材料取得商品房預售許可被罰 其系保利、...
- 北京:保證春節群眾需求不脫銷、不斷檔
- 天津積分落戶新政:取消年度落戶數量限制
- 五糧液集團實現營收1400億元
- 瑞爾集團再遞表港交所:連續三年虧損 淡馬錫持股10.88% 43...
- 豐臺今天開展第二輪全員核酸篩查
- 發改委給高耗能企業定KPI:冬奧會用的神奇綠電,要引入碳交易
- 比亞迪:2021年94名員工因不廉潔、嚴重違規被查處
- 采購進口冷鏈食品需要做好個人防護
- 特斯拉反訴摩根大通 :想借馬斯克發布私有化推特獲利益
- 北京市疫情防控形勢總體可控
- 東莞中海嘉樺房地產因虛假材料取得商品房預售許可被罰 其系...
- 騰訊2021年近70人觸犯“高壓線”被辭退,13家企業進黑名單
- 東莞海逸豪庭項目存在違規行為東莞冠亞環崗湖商住區建造公司...
- 當心!玩雪引發的婦科危機
- 華夏幸福旗下幸福基業物業與捷裎控股(廣州)就住宅、酒店等...
- 里昂上調華潤萬象生活目標價約11.7%至53.6港元
- 普通癥狀還是心梗預警?一眼識破
- 德銀上調華潤置地目標價 認為其毛利率不太可能大幅低于20%