04月18日上午08:58開始,?一DeFi平臺?被黑客利用重入漏洞實施了攻擊。PeckShield安全團隊迅速定位到問題,發現黑客利用了Uniswap和ERC777標準的兼容性問題缺陷實施了重入攻擊。
糟糕的是,僅僅在24小時后,于04月19日上午08:45,又一知名DeFi平臺?Lendf.Me也被黑客以類似的手段實施了攻擊。
黑客攻擊的原理是:攻擊者利用以太坊ERC777標準的transferFrom()回調機制,在內部調用?_callTokensToSend()?回調函數時劫持交易,并在真正更新余額的_move()函數之前進行惡意攻擊。
在Uniswap的攻擊案例中,攻擊者利用此漏洞消耗盡UniswapETH-imBTC池約1,278個ETH。而在Lendf.Me中,攻擊者則利用它來任意增加內部imBTC抵押金額,并通過從其他可用的Lendf.Me交易中借入10多種資產。
Uniswap Labs推出新功能:可直接在Uniswap錢包上瀏覽和創建NFT:5月9日消息,Uniswap Labs已宣布推出一項全新功能,允許用戶直接在Uniswap錢包上瀏覽和創建NFT 。Uniswap Labs于2022年12月初開始支持讓用戶創建NFT,隨后又推出了一個NFT聚合器平臺,允許用戶在主要市場上交易NFT。[2023/5/9 14:53:03]
PeckShield安全團隊認為這是自年初bZx遭攻擊之后,又兩起黑客利用DeFi系統性風控漏洞實施的攻擊。一個不容忽視的問題是,DeFi?市場的風險可能不僅僅局限于平臺本身,單個平臺的模式創新很可能在與其他平臺業務接軌時產生漏洞風險。
詳細漏洞攻擊細節,我們將在文章后面做詳細介紹。
Figure1:ERC777transferFrom()
ERC777標準的業務組合兼容性問題
我們首先介紹下ERC777標準,ERC777出現的目的是對ERC20標準進行改進。其不但實現了功能擴展,還有ERC20標準一樣良好的兼容性,愿景是成為ERC20?標準的有效繼承者。
Uniswap LP在網絡釣魚攻擊中已損失超350萬美元:金色財經報道,據最新數據顯示, Uniswap V3 流動資金池遭遇網絡釣魚攻擊,截至目前流動性提供者(LP)已損失了價值 3,278 ETH 的 NFT 頭寸,約合 3,563,644 美元。根據 MetaMask 安全分析師Harry Denley 表示,受害者似乎是更廣泛攻擊的一部分,該攻擊通過偽裝成 UNI 空投發送惡意鏈接以試圖讓用戶簽名,總計攻擊了大約 73,399 個地址。
此前 Binance 首席執行官趙長鵬最先披露了相關消息并質疑可能是 Uniswap V3 協議漏洞,另據最新價格數據顯示,本文撰寫時 UNI 已下挫至 5.54 美元,24 小時跌幅 10%。[2022/7/12 2:07:29]
該標準擴展的功能之一是提供了“hook”機制,可以使普通地址或合約通過注冊一個tokensToSend()hook函數來控制或拒絕發送Token。這原本是在ERC20?基礎上加強了對Token的風險控制接口,是一次有益的改進。不過由于DeFi項目的可組合特性,一個合約在不同產品之間相互調用時,其業務邏輯復雜度也會大大增加,這就給注入代碼攻擊提供了可能性。
Alpha將繼續向Uniswap上ibETH/ALPHA 池的流動性提供者發放ALPHA獎勵:1月28日,DeFi項目Alpha Finance發文宣布,將將繼續向Uniswap上ibETH/ALPHA 池的流動性提供者發放ALPHA獎勵。共計將有50萬枚ALPHA于北京時間1月28日20:00至2月3日20:00以高額交易費的形式發放給ibETH/ALPHA池的流動性提供者,獎勵將自動累積,并在流動性提供者提出流動性時分配給他們。此外,流動性提供者還將可在Alpha Homora v2上領取SUSHI獎勵。[2021/1/28 14:15:27]
其中最關鍵的部分是,攻擊者可以通過注冊from的tokensToSend()?來實行回調。我們從下面的代碼片段可以看到,ERC777標準中可以通過getInterfaceImplementer()獲得攻擊者的tokensToSend()接口,并在第1,056行調用此函數。而此處正是黑客劫持交易實施攻擊的入口。
Compound 29號提案通過:將允許UNI持有者進行cUNI團體投票:據官方消息,Compound社區發起的28號提案8因提案者代表意外減少而被取消。29號提案是28號提案的新版本。該提案旨在將cUNI市場流動性委托給社區multisig(即進行團體投票)。社區multisig將根據cUNI持有人達成的共識進行投票,但保留取消任何用于在鏈下投票中獲得優勢的操縱行為的權利。此外,如果未達到10%的法定人數,multisig將不會投票。
11月2日,Compound社區發起28號提案,允許UNI持有者進行cUNI團體投票。若該提案通過,社區將允許UNI持有者將UNI鎖定到cUNI合約地址,UNI持有者將能作為一個團體進行投票,持幣者可通過委托UNI賺取利息以及幫助社區收集足夠的投票。[2020/11/15 20:52:00]
Figure2:ERC777-CompatibletokensToSend()Hijacking
如2019年4月OpenZeppelin發布的帖子以及2019年7月發布的漏洞利用演示中所述,攻擊者可以自己定義函數tokensToSend(),并通過setInterfaceImplementer()來設置合約中的hook函數。
TokenPocket錢包平臺幣ERC-20 TPT將于7月15日15:00正式上線Uniswap:據官方消息,新加坡時間15:00 ,TokenPocket錢包平臺幣ERC-20 TPT將正式上線Uniswap,用戶可在 Uniswap 使用ETH兌換TPT。
TPT 作為多鏈通證,現已成功在ETH、EOS、IOST、BOS上運行,并通過多鏈鎖倉的方式控制總流通量恒定不變。TPT是TokenPocket生態中連接錢包、用戶以及項目開發者的重要紐帶,當前TPT可用于EOS資源費購買、錢包VIP功能解鎖、TP廣告費用支付、TP俠獎勵報酬等場景。TPT已正式上線多家交易所。[2020/7/15]
Figure3:OpenZeppelin'sExploitDemo(HookSetup)
之后攻擊者就可以像傳統PC上的hook函數一樣,在tokensToSend()?做任何事情。如下圖所示,攻擊者可以對同一筆交易進行多次交易。
Figure4:OpenZeppelin'sExploitDemo(HookFunction)
Uniswap?攻擊分析
Uniswap被率先發現利用ERC777的兼容性問題實施了攻擊。就如此惡意交易在Bloxy中的截圖所示(hash:0x9cb1d93d6859883361e8c2f9941f13d6156a1e8daa0ebe801b5d0b5a612723c1),函數內部進行了一次tokenToEthSwapInput()?調用。
這意味著攻擊者可以先通過操縱交易匯率,然后再用另一筆imBTC以較低價格兌換更多的ETH。
Figure5:UniswapHack
Lendf.Me?攻擊分析
在Uniswap遭攻擊約24小時后,又一DeFi平臺Lendf.Me也遭到了黑客攻擊。下面是其中一個攻擊交易的截圖。如圖所示,
supply()函數中調用真實轉賬函數transferFrom()?時,被hook的攻擊者合約里嵌入了盜用Lendf.Me的withdraw()的提幣操作。
Figure6:Lendf.MeHack
在這個交易例子中,攻擊者第一次supply()時確實向Lendf.Me存放了289.99999999個imBTC,而在第二個supply()中,攻擊者只存放0.00000001個imBTC,但由于攻擊者注冊了tokensToSend(),所以在執行doTransferIn()->IMBTC::transferFrom()時,調用了攻擊者函數tokensToSend(),攻擊者函數通過調用Lendf.Me的withdraw()函數把290個imBTC直接全部提走。
需要注意的是,正常的業務邏輯應該是項目合約中的Balance會減去被攻擊者提走的290個imBTC,然而當supply()?執行返回時,余額并未被重置,仍然為290imBTC。攻擊者就是通過控制修改Lendf.Me中攻擊者的imBTC抵押金額,有了足夠大的imBTC抵押,攻擊就可以從各種流動交易對中借出所有可用的10多種資產。
Figure7:Lendf.MeHackDetails
資產流向
攻擊者0x538359共計從Lendf.Me獲利25,236,849.44美元,其中各個Token分布如下:?
如上圖,攻擊者在獲利之后,馬上將各個Token轉移至其關聯賬號0xa9bf70之中,之后攻擊者數十次通過1inch.exchange,ParaSwap等平臺將其中比較搶手的WETH,PAX,BUSD等Token換成ETH,DAI,BAT代幣,另外將其中的TUSD,USDT代幣存入Aave借貸平臺。至此為止,攻擊者及其關聯賬號的余額如上所示。
修復建議
PeckShield安全團隊在此建議開發者,可以采用“Checks-Effects-Interactions”方法來防止這類重入攻擊。舉個例子,Lendf.Me的supply()里如果是先更新token余額,再調用?doTransferIn()。這將會讓攻擊在withdraw()?之后沒有重置余額的可能性。
另一方面,ERC777標準特性會不可避免地啟用hook機制,因此我們需要檢測并防止所有交易功能產生可以重入的風險。例如,如果supply()?和withdraw()?同時運行時加個互斥鎖,那么攻擊者就無法在supply()??函數內部執行withdraw()?操作。
最后并不能被忽視的一點是,我們需要認真思考下DeFi業務組合可能存在的系統性風險問題,平臺方不僅要確保在產品上線前有過硬的代碼審計和漏洞排查,還要在不同產品做業務組合時考慮因各自不同業務邏輯而潛在的系統性風控問題。
可能一個新創新,在原平臺一點問題都沒有,但組合接入另一個產品后就可能存在業務邏輯缺陷,進而成為黑客攻擊整個DeFi市場的入口。
Tags:UNISWAPENDUniswapUnicly Feevocious CollectionCafeSwap FinanceENDCEX幣uniswap幣為什么漲不起來
近兩日,DeFi項目Uniswap和Lendf.Me接連遭受重入攻擊。尤其是Lendf.Me被洗劫一空,累計損失約2500萬美元。關于攻擊詳情,自有安全團隊解答.
1900/1/1 0:00:004月14日消息,美國聯邦調查局在其官網發布警告稱,與新冠大流行有關的騙局預計將會增加,欺詐者會利用日益加劇的恐懼情緒和不確定性竊取受害者的資金,并通過復雜的加密貨幣生態系統洗錢.
1900/1/1 0:00:00來源:哈希派 作者:LucyCheng講述比特幣早期用戶起落浮沉的《寄希望于比特幣》、窺探中國加密貨幣礦業市場發展趨勢的《比特幣信仰》、幫助大眾解讀比特幣常見疑問的《神奇的比特幣:比特幣革命》.
1900/1/1 0:00:00荷蘭中央銀行周二發布了一份報告,稱其“準備在央行數字貨幣的發展中發揮領導作用”。 根據其發布的報告,DNB表示央行數字貨幣將會給其公民帶來巨大好處.
1900/1/1 0:00:00美國程序員RossUlbricht是比特幣領域最知名的人物之一。烏布利希特也因其網上綽號“恐懼海盜羅伯茨”而聞名,他因為經營絲綢之路而被很多人知曉,絲綢之路是臭名昭著的暗網市場,推動了加密貨幣的.
1900/1/1 0:00:00摘要:比特幣空頭慘遭圍剿,全網爆倉2億多美元,爆倉量創近一個月新高。周五“交割日效應”往往會帶來一定下行風險,市場有借此反殺多頭的可能.
1900/1/1 0:00:00