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

Clearpool與Qredo 合作,為機構對DeFi的安全訪問提供支持:據官方消息,Clearpool與去中心化數字資產基礎設施和技術提供商Qredo合作,使機構能夠安全訪問數字資產和DeFi。

Qredo的托管解決方案將集成到Clearpool的協議中,使機構能夠在強大的基礎設施上輕松安全地將資本部署到DeFi中。此外,Qredo將把機構借款人和貸款人社區帶Clearpool的生態系統中。

Clearpool協議將機構借款人與DeFi生態系統直接聯系起來,允許流動性提供商,無論是機構還是個人,向他們選擇的機構放貸。[2022/2/3 9:28:46]

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

以國際象棋為主題的DeFi資產管理平臺Tranchess Protocol TVL突破10億美元:8月27日消息,以國際象棋為主題的DeFi資產管理平臺Tranchess Protocol宣布其TVL 突破10億美元。此前消息,7月份,Tranchess Protocol完成150萬美元種子輪融資,三箭資本(Arrows Capital)和Spartan Group領投, Binance Labs、Longhash Ventures、IMO Ventures等參投。(CoinDesk)[2021/8/27 22:41:18]

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

漏洞詳細過程分析

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

分析 | 以太坊多空勢力仍失衡 資金逐漸逃離核心DeFi應用:據TokenGazer數據分析顯示,截止至5月22日11時,以太坊價格為$256.17,交易量為$10,150.1M,總市值為$27,238.78 M,期貨方面,目前目前Bitfinex和BitMEX總多單量統計數據為$142.8M,總空單量數據為$43.6M,總多單比總空單多53.24%,目前抵押在Maker上的ETH數量繼續減少,減少了DAI的流通,較好的保證了DAI與美元的錨定比例,但TokenGazer認為DAI的發展應更多擴展需求,而非一味抑制供給,其他DeFi應用如Uniswap、Compound顯示資金流入。目前ERC20代幣總市值約為以太坊總市值的57.87%,環比昨日上升了1.47%,在活躍地址數方面,排名前五的代幣為USDC、DAI、TUSD、NPXS、ZRX,與昨日數據無較大出入,目前穩定幣應用仍占據較大比例。[2019/5/22]

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

分析 | MORECOIN研究院:DeFi現階段本質上是一個去中心化賭場:MORECOIN研究院在《DeFi用戶實證研究報告》中指出,DeFi是針對幣圈(公鏈)用戶的去中心化金融體系,而傳統金融業務是針對企業(聯盟鏈)的去中介金融服務,兩者在監管、性能、數據等方面有本質區別。從DeFi用戶數據來看,上千款產品中前面三款產品占據約90%的資金,為用戶提供了一個極低手續費甚至為0的杠杠和借貸工具。而以token來投資傳統資產標的,因預言機、項目方跑路問題,某種程度上是以token對賭投資標的。在現階段幣本位的DeFi本質上是一個去中心化賭場。[2019/5/9]

圖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:ETHDEFDEFIEFIethene和ethylene有什么區別TradeFlowDeFi.chdefi去中心化交易所下載

幣安下載
比特幣:納斯達克上市公司MicroStrategy宣布買入2.5億美元的比特幣

本文來自:TheBlock,作者:YogitaKhatriOdaily星球日報譯者|Azuma12日,納斯達克上市商業智能公司MicroStrategy正式宣布.

1900/1/1 0:00:00
EFI:Coinbase前聯合創始人:DeFi原生保險的機遇和面臨的9大挑戰

注:原文作者FredEhrsam是Coinbase前聯合創始人,目前他是Paradigm加密基金的聯合創始人,而其在新發表的文章中對DeFi保險提出了他的看法:“加密原生保險擁有巨大的潛力.

1900/1/1 0:00:00
比特幣:牛回頭還是牛到頭?這三類數據或許透露天機

沒有無緣無故的愛,也沒有無緣無故的恨,更沒有無緣無故的上漲或下跌。這兩天,加密貨幣輪動上漲,市場參與者開始相信,牛市正在醞釀中.

1900/1/1 0:00:00
以太坊:由Coinlist的崩潰,引出公鏈競爭的策略與局勢分析

本文為區塊鏈業內少有的競爭策略分析類文章,全文約4300字,閱讀時長約為8分鐘。 圖片為柯杰對戰AlphaGo第二局棋譜 本文故事結構: 引子:電話中的焦慮與資金融入的現實 今天的局勢 殺手的現.

1900/1/1 0:00:00
比特幣:Grayscale加密資產規模達成51億美元里程碑,他們究竟是如何向投資者推銷BTC的?

7月29日,全球最大的加密資產管理機構灰度宣布其管理的加密資產凈值超過了51億美元,創下歷史新高.

1900/1/1 0:00:00
SUN:觀察丨第三代DeFi代幣抵押技術正在崛起?

作者:金色財經Jason如今越來越多的人對抵押協議和以太坊2.0的推出感到興奮,一些加密項目也正在推動新一輪的抵押服務,這有助于解決權益證明網絡中諸多流動性問題.

1900/1/1 0:00:00
ads