以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads

ETH:DeFi平臺Opyn智能合約漏洞詳解:攻擊者空手套白狼!

Author:

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

北京時間2020年08月05日,DeFi期權平臺Opyn的看跌期權智能合約遭到黑客攻擊,損失約37萬美元。

Opyn是一個通用期權協議,于今年2月份轉型為保險平臺,通過oTokens為DeFi平臺提供可交易的ETH看跌期權,以此錨定ETH市場價格,為高波動性的DeFi市場提供相對的穩定性。

PeckShield安全團隊獲悉Opyn平臺遭受攻擊后,迅速定位到問題關鍵點在于:

攻擊者發現?Opyn智能合約行權接口對接收到的ETH存在某些處理缺陷,其合約并沒有對交易者的實時交易額進行檢驗,使得攻擊者可以在一筆對自己發起真實的交易之后,再插入一筆偽裝交易騙得賣方所抵押的數字資產,進而實現空手套白狼。

Polygon鏈上DeFi協議總鎖倉量為51.4億美元:金色財經報道,據DefiLlama數據顯示,目前Polygon鏈上DeFi協議總鎖倉量為51.4億美元,24小時減少2.62%。鎖倉資產排名前五分別為AAVE(23.1億美元)、Quickswap(7.65億美元)、Curve(3.5億美元)、SushiSwap(3.35億美元)、Balancer(2.07億美元)。[2022/1/9 8:35:41]

簡單來說,由于OpynETHPut智能合約中的行權函數exercise()沒有對交易者的ETH進行實時校驗。根據Opyn平臺的業務邏輯,看跌期權的買方給賣方轉移相應價值的ETH,即可獲得賣方抵押的數字資產。狡猾的攻擊者,先向自己發起偽裝的交易,利用這筆ETH可以重復使用的特性,再次向賣方用戶發起轉賬,進而騙取賣方已經抵押的數字資產。

ZG FINANCE首期封閉式DeFi挖礦產品首期已結束:據官方消息,ZG.COM FINANCE首期封閉式DeFi基金募集金額50萬USDT,根據ETH網絡和TRON網絡上多個流動性挖礦項目收益率做動態調整投資比例,首期基金運行1個月,參與項目包含Sushi(壽司),Pearl(珍珠),JFI,CRV,Mini,YFV等,年化收益超600%。

ZG.COM FINANCE將于9月2日發布第二期開放式DeFi挖礦產品,為用戶進行挖礦、賣幣、提取收益等一站式服務。[2020/9/2]

下面為您詳細分析漏洞原因及攻擊過程。

漏洞詳細過程分析

先來說說,Opyn平臺的業務邏輯:當用戶使用Opyn合約行權即買賣期貨時,需要買方向賣方轉入相應數量的ETH或者ERC20Token,然后合約將銷毀買方對應的oToken,而后買方將獲得賣方已經抵押的資產。

OKEx CEO:DeFi已為各幣種在區塊鏈應用層開拓創新奠定基礎:8月28日,OKEx CEO Jay Hao發推稱,盡管存在缺陷,但DeFi已經為各幣種在區塊鏈應用層開拓創新奠定了堅實的基礎,未來可期。[2020/8/28]

例如:小王認為行情進入了下跌趨勢,看到Opyn上掛著一個小李對ETH330美元的看跌期權,于是進入交易系統,向小李轉賬一個ETH,獲得小李抵押的等額數字資產。若此刻行情已經跌至了300美元,小王便可獲得其中的差價。

圖1.exercise()?函數中循環執行傳入的?vaults?地址列表

Curve成為第三個總鎖倉價值達10億美元的DeFi協議:在Aave總鎖倉價值突破10億美元之后,Curve成為第三個總鎖倉價值達到10億美元的DeFi協議。上周早些時候,一名匿名開發人員在Curve團隊不知情的情況下部署智能合約,之后Curve被迫提前推出其治理平臺和原生代幣CRV。自那以來,隨著用戶試圖獲取CRV代幣獎勵,該平臺出現大量資本存款流入。

根據DeFi Pulse數據,通過DeFi協議鎖定的總價值已超過60億美元。按交易量計算,Curve是第二大DEX。7月份,該平臺占DEX總交易量的24%。(The Block)[2020/8/17]

如上面的合約代碼片段所示,行權函數exercise()的內部是一個循環,依據參數中傳遞的vaultsToExerciseFrom中的地址數量依次調用真正的行權邏輯_exercise()函數。

圖2.重用傳入合約的ETH來獲得抵押資產

函數處理ERC20Token時,和大部分的DeFi項目做法一樣,使用transferFrom(),如代碼1882行所示,從msg.sender轉賬到address(this)。

但是當函數處理的資產為ETH時,處理的方式就完全不一樣了。因為在Solidity中,msg.value的意思是合約調用者在調用具有payable接口時所轉給該合約的ETH數量,僅是一個量值,所以在合約代碼的1879行中,檢查msg.value==amtUnderlyingToPay僅能確保合約確實收到了amtUnderlyingToPay數量的ETH,并不會對msg.value的值造成任何影響。

但是正如上面講到的在exercise()中會循環調用_exercise()函數,這導致盡管合約實際只收到一次ETH,然而在循環過程中卻可以重復使用。

攻擊點就在這里,由于合約少了一步對ETH實時數量的檢驗,使得攻擊者可以先偽造一筆指向自己的交易,然后再把已經花掉的本金再次利用,和平臺其他用戶完成一筆正常交易。

圖3.?攻擊交易分析

在圖3中,我們通過Bloxy瀏覽器顯示的調用過程來展示攻擊的過程。由于攻擊者吃掉了很多筆訂單,我們以其中一筆交易為例,向大家展示其攻擊邏輯:

1、攻擊者先從Uniswap購入了75oETH為進一步調用函數行權做好籌備;

2、攻擊者創建了一個Vault地址,作為看空期權賣方,并且抵押24,750USDC鑄造出75oETH,但并未賣出這些期權,等于自己同時買入了以330的價格賣出75ETH的權利;

3、攻擊者在Opyn合約中調用了exercise(),在持有150oETH看空期權的情況下,先向自己的Vault地址轉入了75個ETH,獲得自己事先抵押的24,750個USDC,再重利用了這75個ETH,成功吃掉了另一個用戶的24,750個USDC,進而實現非法獲利。

修復建議

PeckShield安全團隊建議,在Solidity中,合約可使用一個局部變量msgValue來保存所收到ETH。這樣,在后續的步驟中通過操作msgValue,就能準確的標記有多少ETH已經被花費,進而避免資產被重復利用。此外,我們還可以使用address(this).balance來檢查合約余額來規避msg.value被重復使用的風險。

Tags:ETHEFIDEFDEFIEthereum Privacy Machinegamefi幣種CredefiDefiPlaza

POL幣最新價格
以太坊:一天一輛路虎!據說,以太坊礦工這波賺翻了……

最近,以太坊礦工很興奮,不僅僅是因為賺錢了,還因為被邊緣化太久了,這下終于可以在比特幣礦工面前挺直腰板,“揚眉吐氣”了!有以太坊礦工開玩笑說:一天一輛陸虎,心情美美的.

1900/1/1 0:00:00
TAL:周刊 | DeFi板塊融資持續火爆,Uniswap獲投1100萬美元

文?|冰棒編輯|畢彤彤出品|PANews摘要:Uniswap完成1100萬美元A輪融資;四大行大規模內測央行數字貨幣App;紐約發布加密貨幣綠色名單;俄羅斯聯邦儲蓄銀行計劃推出穩定幣;ETC網絡.

1900/1/1 0:00:00
TOKEN:OKEx投研 | 漲勢進入休整期,關鍵位不破繼續看漲

免責聲明:本專欄內容概不構成任何投資意見,內容亦并非就任何個別投資者的特定投資目標、財務狀況及個別需要而編制。投資者不應只按本專欄內容進行投資.

1900/1/1 0:00:00
MPL:AMPL被列入Coinbase評估名單,利好出盡還是王者歸來?

文:陀螺財經nick 導語:7月29日,當紅DeFi項目AMPL“崩盤”了,這個無抵押資產、無固定總量的穩定幣一天之內跌超60%.

1900/1/1 0:00:00
區塊鏈:區塊鏈安全 | 用戶余額無故消失?Opyn ETH Put邏輯漏洞技術分析

事件簡述 8月5日凌晨四點,有用戶在opyn論壇反饋自己的賬戶余額無故消失,并有用戶發現可疑的交易信息,如下圖所示: Opyn項目方再對情況初步分析后做出回應表示:已經轉移了資金.

1900/1/1 0:00:00
DERI:我們研究了所有成功的衍生品交易所,發現了這樣的共同點

觀點綜述 在傳統金融世界,衍生品的交易量均比現貨市場的交易量要高。以外匯市場為例,衍生品成交額為現貨的3倍.

1900/1/1 0:00:00
ads