買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > USDC > Info

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

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存在某些處理缺陷,其合約并沒有對交易者的實時交易額進行檢驗,使得攻擊者可以在一筆對自己發起真實的交易之后,再插入一筆偽裝交易騙得賣方所抵押的數字資產,進而實現空手套白狼。

以DeFi為重點的交易應用程序Structure在薩爾瓦多推出:金色財經報道,DeFi交易應用程序Structure.fi宣布新交易應用程序正在薩爾瓦多推出,該應用程序可在 98 個國家/地區使用。它目前支持 28 個股票代幣和 37 個加密代幣。

該公司表示正在參與英屬維爾京群島的監管沙盒,于 12 月完成了2000 萬美元的融資,其中包括來自Polychain Capital的種子資金和出售其STXR代幣的收益。據其網站稱,該公司由麻省理工學院和 Jump Trading 的校友于 2020 年創立。[2022/8/12 12:19:52]

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

鏈游 DeFi Kingdoms 宣布推出其子網絡 DeFi Kingdoms 鏈:3月9日消息,鏈游 DeFi Kingdoms 宣布推出與 Ava Labs 聯合研發的子網絡 DeFi Kingdoms 區塊鏈(DFK Chain)。同時,官方表明JEWEL將被賦予權力,除作為Serendale Governance代幣外,還被用于支付DFK Chain的網絡gas費。

此外,DeFi Kingdoms 與 Avalanche 基金會合作,將通過新一輪1500萬美元的 Avalanche Multiverse 激勵措施,促進 Crystalvale 在 DFK 鏈上啟動的早期階段。[2022/3/9 13:46:12]

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

DeFi 概念板塊今日平均跌幅為1.72%:金色財經行情顯示,DeFi 概念板塊今日平均跌幅為1.72%。47個幣種中11個上漲,36個下跌,其中領漲幣種為:WNXM(+17.37%)、ANT(+14.65%)、BTM(+5.43%)。領跌幣種為:NEST(-17.10%)、AST(-10.50%)、DMG(-10.05%)。[2021/11/5 6:32:45]

漏洞詳細過程分析

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

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

V神推薦Libra項目負責人關注預測市場類DeFi項目:針對今日早間Libra項目負責人David Marcus在推特詢問“應該關注哪些DeFi項目?”,V神剛剛發推回應稱,可以關注預測市場,如果這些也算作DeFi的話。[2020/11/3 11:31:56]

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

如上面的合約代碼片段所示,行權函數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:ETHEFIDEFDEFISETHPi Network DeFiLendefiStingDefi

USDC
加密貨幣:機構FOMO?芝商所BTC期貨未平倉金額達8.41億美元創新高_SMA

本文來源:律動BlockBeats8月12日,芝加哥商業交易所比特幣(BTC)期貨未平倉價達到8.41億美元,創歷史新高。進一步突顯出機構投資者對比特幣日益增長的興趣.

1900/1/1 0:00:00
ALA:DEX聚合商1inch宣布獲得280萬美元種子資金,Binance Labs牽頭_INC

要點: 去中心化交易所聚合商1inch.exchange已籌集了280萬美元的種子資金。該輪融資由BinanceLabs牽頭,FTX,GalaxyDigital等參與了該輪融資.

1900/1/1 0:00:00
區塊鏈:螞蟻、百度、分布科技牽頭發布IEEE C/BDL跨鏈互操作系列標準_CHA

小明在旅游旺季想前往拉薩來一場凈化心靈的修身之旅,在某航空公司定好時間和機票后,突然發現布達拉宮的門票已經售罄,這場旅行反而平添了更多煩惱.

1900/1/1 0:00:00
OIN:Bitfinex開出4億美元天價懸賞,被盜的12萬BTC有望找回了?_bitkeeporg錢包app下載

如果你有一筆價值13億美元的比特幣被黑客盜走,你要如何去追回它?這就是擺在加密貨幣交易所Bitfinex面前的一個問題.

1900/1/1 0:00:00
MIT:看!這兒有區塊鏈er們仰望的宇宙星空!_CBD

5月份的時候,鏈作曾與賽凡科幻空間合作,推出了《三體》官方授權的系列周邊,當時受到了不少區塊鏈er的喜愛,系列產品一度售磬.

1900/1/1 0:00:00
CBD:觀察 | 央行積極穩妥數字人民幣研發,試點加速可期_BDC

事件 8月3日,央行召開2020年下半年工作電視會議,會議指出,2020年下半年,法定數字貨幣封閉試點已經順利啟動;將積極穩妥推進法定數字貨幣研發.

1900/1/1 0:00:00
ads