北京時間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協議總鎖倉量為2299.1億美元:金色財經報道,據Defi Llama數據顯示,目前DeFi協議總鎖倉量2299.1億美元,24小時增加0.13%。鎖倉資產排名前五分別為Curve(227.6億美元)、Convex Finance(171.2億美元)、MakerDAO(166.1億美元)、AAVE(131億美元)、WBTC(110.9億美元)[2022/1/20 9:02:11]
3)攻擊者利用STA代幣和Balancer智能合約存在的不兼容性即記賬和余額的不匹配性實施攻擊,將資金池中的其他資產耗盡,最終共計獲利價值523,616.52美元的數字資產。
4)攻擊者償還從dYdX借出的閃電貸,并卷走了攻擊所得的數字資產。
DeFi協議Minterest完成650萬美元融資:9月17日消息,DeFi協議Minterest完成650萬美元融資。此次投資方包括KR1、digisstrats、Bitscale capital、PNYX Ventures、CMT Digital等多家風投公司。Minterest打算用這筆資金開發借貸協議,據稱該協議旨在讓DeFi對用戶更加公平。根據聲明,Minterest將所有運營盈余自動回購成生態原生的MNT代幣并分發給用戶。(Cointelegraph)[2021/9/17 23:32:11]
接下來的篇幅中,我們將逐步解析黑客在該筆閃電貸交易(http://oko.palkeo.com/0x013be97768b702fe8eccef1a40544d5ecb3c1961ad5f87fee4d16fdc08c78106/)中實施的攻擊行為。
DeFi基金項目火鍋基金正式上線 首期募資超過200萬元:據官方消息,DeFi基金投資類項目火鍋基金(hotpot.fund)已于3月1日正式上線,第一期基金支持用戶使用USDT、USDC和DAI三種穩定幣進行投資,當前募資金額已超過200萬元。CTO Richard Du在火鍋基金聯合幣小白、兮達 DeFi Lab的AMA直播活動中對項目進行了剖析
火鍋基金是一個運行在以太坊上的透明化基金項目,可以為缺乏DeFi投資專業知識的用戶,提供一個易用、穩健的DeFi投資入口。[2021/3/1 18:03:48]
Balancer遭黑客攻擊全過程技術拆解
第一步:閃電貸
從dYdX閃電貸104,331WETH,這部分熟悉DeFi借貸模式的讀者應該都比較清楚,此處不再贅述。
DeFi借貸協議Liquity正式發布開發者用戶界面beta版:據官方消息,DeFi借貸協議Liquity宣布已推出開發者用戶界面,據Liquity協議創始人RobertLauko介紹,該開發者用戶界面已經在各個主要的以太坊測試網上(Ropsten、Kovan、Rinkeby和Goerli)上啟動并運行了3個月以上,現在正式開放給公眾。
RobertLauko表示,最終版本將于此次的Beta版有很大不同,將會更加完善。 此前消息,Liquity是由去中心化計算平臺Dfinity的前區塊鏈研究員RobertLauko設計的一種基于以太坊的借貸協議,該協議創建了對標美元的穩定幣LQTY,并且不同于其他中心化穩定幣的是,LQTY承諾可以按面值完全贖回基礎抵押品。(Medium)[2020/6/19]
第二步:清空Balancer的STA資產
攻擊者通過多次swapExactAmountIn()調用清空了Balancer的STA資產,為下一步實施攻擊做準備。值得一提的是,我們發現合約代碼中每次能夠兌換的資產數額其實有上限,然而狡猾的攻擊者預先計算了可兌換的WETH最大數額,并巧妙的讓Balancer只剩了0.000000000000000001STA。
由于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
轉載請注明文章出處
尊敬的ZT用戶: ZT創新板即將上線UFC,并開啟UFC/USDT交易對。具體時間安排如下: 充值:已開放; 交易:2020年6月30日16:00;ApeCoin社區關于“向以太坊社區捐贈100.
1900/1/1 0:00:00尊敬的社區用戶: “持倉DF瓜分1000HBC”活動已經結束,活動獎勵已發放完畢,根據活動規則.
1900/1/1 0:00:00尊敬的用戶: 支點國際站(zhidian.io)將于2020年6月29日上線FIL/USDT交易對.
1900/1/1 0:00:001111 1,如何判斷一家數字貨幣交易所是否靠譜?2.目前有哪些靠譜的交易所可以選擇?一、如何判斷一家交易所是否靠譜? 安全性 選擇交易所的首要標準當然是保證我們資金的安全.
1900/1/1 0:00:00端午節前,北斗三號最后一顆組網衛星發射成功,舉國歡慶。北斗衛星的發射不僅對于國家有重大的意義,對于經濟的發展和我們普通人的生活也有著非常重要的作用.
1900/1/1 0:00:00:持幣者團隊以技術分析為中心,客觀分析幣市,實事求是。絕不弄虛作假,注重實戰交易技巧,波段抓取,趨勢現貨布局,超短線合約交易,合理資金投資配比,旨在為幣友們提供技術分析服務,努力打造自身品牌.
1900/1/1 0:00:00