北京時間06月29日凌晨02時03分起,最近因“借貸即挖礦”模式而備受關注DeFi平臺Balancer上的STA和STONK兩個ERC20通縮代幣池遭到了黑客攻擊,共計損失了超50萬美元。
PeckShield安全人員介入分析后,迅速定位到問題的本質在于,Balancer上的通縮型代幣和其智能合約在某些特定場景不兼容,使得攻擊者可以創建價格偏差的STA/STONK流通池并從中獲利。
此次黑客實施攻擊共計分了四個步驟,具體而言:
1)攻擊者通過閃電貸從dYdX平臺借出了104,331個WETH;
2)攻擊者反復執行swapexactMountin()調用,直至Balancer擁有的大部分STA代幣被消耗殆盡,進而開始下一步攻擊。最終Balancer僅僅剩余0.000000000000000001個STA。
DeFi協議總鎖倉量達726.6億美元,24小時內跌0.52%:金色財經報道,據DefiLlama數據顯示,DeFi協議總鎖倉量(TVL)達到726.6億美元,24小時跌幅為0.52%。TVL排名前五分別為MakerDAO(77.1億美元)、AAVE(56.6億美元)、Curve(50.4億美元)、Uniswap(47.9億美元)、Lido(46.8億美元)。[2022/6/22 1:24:16]
3)攻擊者利用STA代幣和Balancer智能合約存在的不兼容性即記賬和余額的不匹配性實施攻擊,將資金池中的其他資產耗盡,最終共計獲利價值523,616.52美元的數字資產。
4)攻擊者償還從dYdX借出的閃電貸,并卷走了攻擊所得的數字資產。
DeFi資管平臺Zapper iOS移動應用程序上線:4月23日消息,DeFi資管平臺Zapper宣布iOS移動應用程序上線,功能包括跟蹤投資組合、查看和展示NFT、查找Web3錢包和代幣、查看鯨魚錢包。之后將推出交易、橋接等功能,該應用程序的Android版本將在幾個月后準備就緒。[2022/4/23 14:43:40]
接下來的篇幅中,我們將逐步解析黑客在該筆閃電貸交易(http://oko.palkeo.com/0x013be97768b702fe8eccef1a40544d5ecb3c1961ad5f87fee4d16fdc08c78106/)中實施的攻擊行為。
Balancer遭黑客攻擊全過程技術拆解
第一步:閃電貸
以太坊鏈上DeFi協議總鎖倉量突破920億美元 創歷史新高:金色財經報道,以太坊鏈上DeFi協議總鎖倉量已突破920億美元,創下歷史新高,目前為927.1億美元。該指標上一次高點出現在2021年5月11日,當時以太坊鏈上DeFi協議總鎖倉量為916.5億美元。目前以太坊鏈上鎖倉量最高的三個DeFi協議分別是Aave V2(140億美元)、Maker(140億美元)及Compound(133億美元)。[2021/9/4 22:59:02]
從dYdX閃電貸104,331WETH,這部分熟悉DeFi借貸模式的讀者應該都比較清楚,此處不再贅述。
第二步:清空Balancer的STA資產
攻擊者通過多次swapExactAmountIn()調用清空了Balancer的STA資產,為下一步實施攻擊做準備。值得一提的是,我們發現合約代碼中每次能夠兌換的資產數額其實有上限,然而狡猾的攻擊者預先計算了可兌換的WETH最大數額,并巧妙的讓Balancer只剩了0.000000000000000001STA。
幣贏CoinW將于9月29日18:00在DeFi專區上線JST:據官方消息,幣贏CoinW將于9月29日18:00在DeFi專區上線JST。 據悉,JST的目標是建立一個公平的去中心化金融系統,為全球所有用戶提供穩定幣借貸和治理機制。JST是雙代幣系統。USDJ,是一個與美元1:1錨定的穩定幣,通過在JST的CDP借貸平臺抵押TRX生成。JST是USDJ貨幣體系的一部分。持有JST可以參與社區公平治理,并在公平制度下支付CDP借款的穩定費。[2020/9/29]
由于Balancer資金池各資產間存在“動態平衡”原理,僅剩接近于0的STA會拉高STA的價值,使得任何人都可以用1STA換到大量的其他數字資產。
第三步:攻擊獲利
經過前兩個準備步驟之后,攻擊者是時候展現真正技術了!
承上所述,攻擊者通過swapExactAmountIn()函數將0.000000000000000001STA發送到BPool,以極高的價值差,立即兌換出了30,347個WETH,實現了獲利。而此時,BPool的內部記賬機制_records在BPool真正收到0.000000000000000001STA之前先加了1。
另外我們發現,在swapExactAmountIn()的底部,_pullUnderlying()嘗試從攻擊者端收集相應消耗的STA。然而,由于STA轉賬時還會燒掉1%的手續費,實際BPool是收不到任何STA的。這樣就使得BPool的實際STA余額和內部記賬產生不匹配。
接下來是最有趣的一部分,攻擊者調用gulp()不斷重置_records,使得BPool中始終保持0.000000000000000001個STA。因此攻擊者可以用極高價的0.000000000000000001個STA將流通池中的WETH、SNX、LINK等其他資產消耗光。
第四步:償還閃電貸
最終,如上圖所示,攻擊者償還了從閃電貸借出的104,331個WETH。
建議
此次攻擊事件再次暴露了DeFi可組合性存在的兼容性風險。此前不久,Uniswap和Lendf.Me兩個平臺就因和ERC777標準的兼容性問題,產生了非常嚴重的黑客攻擊事件。需要警醒的是,在未來DeFi行業類似的黑客攻擊行為或許會屢見不鮮。
如果問該怎樣才能規避這類攻擊事件的發生呢?或許有兩個優化調整思路:1)STA/STONK在執行transfer()或transferFrom()時,當轉賬數額不足以支付手續費時,應該直接回滾或者返回False;2)Balancer應該在每一次transferFrom()函數調用后檢查BPool的余額。
當然,任何安全事件事后采取措施補救都無法彌補已經產生的損失,我們相信最好的解決方案還是事前防備。DeFi項目開發者應盡可能利用好的代碼規范,并可尋求第三方安全公司協助其在上線前進行全面的攻防測試,盡可能找出一切潛在的漏洞。最后,盡可能對ERC20、ERC777和其它DeFi項目的任何組合行為都做好周密排查。
后續
毫無疑問,Balancer事件的發生勢必也會對DeFi社區帶來影響,而且這類事情接下來發生的可能性還會很大,在此提醒廣大DeFi項目開發者應務必重視合約的安全問題。
經我們統計發現,Balancer在此次攻擊事件共計損失了523,616.52美元的數字資產,詳情列表如下:
本文鏈接:https://www.8btc.com/media/615706
轉載請注明文章出處
尊敬的用戶: GJ交易所已按照計劃進行回購銷毀GP以下為2020年6月份GP回購和銷毀情況:6月份銷毀數量為623,511枚GP.
1900/1/1 0:00:00?1、短線邏輯思維比較嚴重這里所謂短暫的邏輯思維,是需要人們擁有長遠的總體目標。合理分配倉位,長期作主、短期作為輔助,短期趨勢的變化也需要跟隨.
1900/1/1 0:00:00幣人老道(7月1日)比特幣短期預計延續窄幅震蕩,并沒有走出震蕩區間 行情回顧: 昨日比特幣一直走的是窄幅震蕩修復行情,開盤9100低位震蕩上行至早間六點插針9236后快速回落.
1900/1/1 0:00:00《以太坊高手續費會吞噬DeFi的普惠愿景,怎么辦?》一文介紹了以太坊鏈上交易成本驟增的幾個原因,以及總結了短、中、長期的解決方案.
1900/1/1 0:00:00如果有一個東西被人大量的囤積,那么他們的目的就是顯而易見,希望大量低價買入吸引越來越多人關注,從而抬高這個商品的價值,甚至是捧上天價,這樣他們才能從賺取收益.
1900/1/1 0:00:00社交,是我們每一個人在生活中所必然進行的一項活動。學生上學時和同學要進行社交,上班族上班時和同事要進行社交,和朋友也需要進行社交。社交與我們的生活息息相關,我們每個人都離不開社交.
1900/1/1 0:00:00