比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

Uniswap和Lendf.Me遭攻擊始末:DeFi樂高組合下的“多米諾”式崩塌_TOKE

Author:

Time:1900/1/1 0:00:00

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多種資產。

NFT平臺Universe已停止開發,將在GitHub公開源代碼:6月2日消息,DefiLlama 創始人 0xngmi 發推表示,在查看一些 NFT 市場時發現 NFT 平臺 Universe 上個月關閉了,現在網站已經變成報錯頁面。而 Universe 在 5 月 17 日發推表示,項目將在 5 月停止開發(但任何人都可以接手),并且所有未公開源代碼的內容將會在 GitHub 上公開。[2023/6/2 11:54:32]

PeckShield安全團隊認為這是自年初bZx遭攻擊之后,又兩起黑客利用DeFi系統性風控漏洞實施的攻擊。一個不容忽視的問題是,DeFi?市場的風險可能不僅僅局限于平臺本身,單個平臺的模式創新很可能在與其他平臺業務接軌時產生漏洞風險。

詳細漏洞攻擊細節,我們將在文章后面做詳細介紹。

Figure1:ERC777transferFrom()

ERC777標準的業務組合兼容性問題

超1.3萬ETH轉入Uniswap,價值超500萬美元:據Whale Alert最新消息,剛剛有一筆13,302.422 ETH 轉入去中心化交易所Uniswap,價值約為5,025,871 美元。交易哈希:0x42453f0c361db96e47882c1fcf40f422d7d0b91def13a46477fd86da659c60bc。[2020/11/4 11:37:38]

我們首先介紹下ERC777標準,ERC777出現的目的是對ERC20標準進行改進。其不但實現了功能擴展,還有ERC20標準一樣良好的兼容性,愿景是成為ERC20?標準的有效繼承者。

該標準擴展的功能之一是提供了“hook”機制,可以使普通地址或合約通過注冊一個tokensToSend()hook函數來控制或拒絕發送Token。這原本是在ERC20?基礎上加強了對Token的風險控制接口,是一次有益的改進。不過由于DeFi項目的可組合特性,一個合約在不同產品之間相互調用時,其業務邏輯復雜度也會大大增加,這就給注入代碼攻擊提供了可能性。

其中最關鍵的部分是,攻擊者可以通過注冊from的tokensToSend()?來實行回調。我們從下面的代碼片段可以看到,ERC777標準中可以通過getInterfaceImplementer()獲得攻擊者的tokensToSend()接口,并在第1,056行調用此函數。而此處正是黑客劫持交易實施攻擊的入口。

警惕KuCoin黑客正利用Uniswap出貨砸盤:據PeckShield旗下資產追蹤平臺CoinHolmes數據顯示,自09月27日下午3時以來,CoinHolmes監控到標記為KuCoin黑客的多個地址,正持續將盜取的大量OCEAN代幣轉入去中心化交易所Uniswap進行砸盤出貨,PeckShield安全人認為,黑客此舉很可能對OCEAN關聯交易對價格產生較大幅度波動影響,建議在OCEAN提供了流動性的LP盡快移除相關流動性。據悉,KuCoin被盜資產目前經中心化交易所洗錢會面臨較大的封堵壓力,因此黑客正嘗試通過去中心化交易所進行洗錢。[2020/9/27]

Figure2:ERC777-CompatibletokensToSend()Hijacking

如2019年4月OpenZeppelin發布的帖子以及2019年7月發布的漏洞利用演示中所述,攻擊者可以自己定義函數tokensToSend(),并通過setInterfaceImplementer()來設置合約中的hook函數。

Coinbase現已支持UNI充提及交易:據官方公告,Coinbase現已在Coinbase.com以及在Coinbase Android和iOS應用程序中支持Uniswap(UNI)。除紐約州之外,用戶現在可以交易及充提UNI。[2020/9/18]

Figure3:OpenZeppelin'sExploitDemo(HookSetup)

之后攻擊者就可以像傳統PC上的hook函數一樣,在tokensToSend()?做任何事情。如下圖所示,攻擊者可以對同一筆交易進行多次交易。

Figure4:OpenZeppelin'sExploitDemo(HookFunction)

Uniswap?攻擊分析

TokenBetter考察區即將上線UNI:據官方公告,TokenBetter考察區將于2020年9月17日17:00(UTC+8)上線Uniswap(UNI),并開放USDT交易市場。UNI的充值現已開放。

Uniswap(UNI )是一種基于以太坊的協議,旨在促進ETH和ERC20 代幣數字資產之間的自動兌換交易,在以太坊上自動提供流動性。Uniswap完全部署在鏈上,任何個人用戶,只要安裝了去中心化錢包軟件都可以使用這個協議。Uniswap試圖利用去中心化協議來讓數字資產交易過程中徹底實現去中介化。

TokenBetter成立于2018年12月,總部位于美國,在新加坡、中國臺灣、中國香港均設有運營中心,是一家獨立的全球性的數字資產國際站,目前已擁有美國、加拿大等多國金融牌照。[2020/9/17]

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:UNIENDTOKEKENuni幣價格最新行情SolendFasttokenArcane Token

芝麻開門交易所下載
比特幣秘史:神秘的街頭比特幣交易商_比特幣

來源:哈希派 作者:LucyCheng編者注:原標題為《神秘的街頭比特幣交易商|比特幣秘史》在比特幣礦業市場競爭越發激烈且還未有太多交易所生態的早期階段.

1900/1/1 0:00:00
提升貨物放行效率,航運業巨頭攜手特斯拉共同試點區塊鏈應用_SMA

4月7日,航運物流管理解決方案供應商貨訊通CargoSmart發文稱,其聯合中遠海運集運、上海國際港務集團以及特斯拉公司,共同完成了一項關于數字化變革現有貨物放行流程的區塊鏈試點應用.

1900/1/1 0:00:00
朱嘉明:區塊鏈為什么難以理解,它對深入改革的意義何在?_數字貨幣

4月10日下午,陽煤集團與數字資產研究院合作,舉辦線上區塊鏈培訓活動。數字資產研究院學術與技術委員會主席朱嘉明以“區塊鏈技術的功能和制度意義”為題進行授課。本文系作者根據講課記錄修訂.

1900/1/1 0:00:00
巴比特專欄 |“去中心化”的進化軌跡_STARK

去中心化的金融只是第1步,去中心化的商業是第2步,后面還有很多步。無論你是沿著比特幣的功能邏輯往后倒推,推回最初那個“點對點的電子現金系統”,還是你沿著區塊鏈的技術架構往后推,推回那個原始的“最.

1900/1/1 0:00:00
深度 | 央行數字貨幣的五個“能”與“不能”_SDT

本文來源:張明宏觀金融研究,原題《央行數字貨幣:結構分析與能力展望》作者:楊曉晨,中國科技大學國際金融研究院全球經濟與國際金融研究中心研究員張明.

1900/1/1 0:00:00
比特幣收復“3·12”全部跌幅,減半行情正式啟動?_比特幣價格

據QKL123行情顯示,近期比特幣持續走高,今日8時比特幣報7790.00美元,創下3月12日以來新高,放量突破后保持高位震蕩調整.

1900/1/1 0:00:00
ads