以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads

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

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

DefiLlama開發者:Defillama網站遭遇惡意控制,已推出新網站llamadotfi:3月19日消息,鏈上數據分析網站DefiLlama開發者0xngmi發推表示DefiLlama團隊因Defillama網站遭遇惡意控制,已推出分叉版本的新網站llamadotfi。0xngmi解釋稱控制Defillama推特賬戶和域名的人決定發行Token,遭到團隊中所有人的反對。

0xngmi提醒用戶不要相信來自DefiLlama的任何消息和Token。[2023/3/19 13:13:29]

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

DeFi 概念板塊今日平均漲幅為3.43%:金色財經行情顯示,DeFi 概念板塊今日平均漲幅為3.43%。47個幣種中44個上漲,3個下跌,其中領漲幣種為:KCASH(+20.62%)、LBA(+11.34%)、AMPL(+9.91%)。領跌幣種為:REN(-6.49%)、LEND(-1.42%)、SWFTC(-0.20%)。[2021/7/4 0:26:05]

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

漏洞詳細過程分析

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

調查:超60%受訪者認為以太坊未來三年內仍將是第一大DeFi網絡:金色財經報道,根據Crypto Compare針對DeFi項目的一項新調查,超過60%的受訪者認為以太坊至少在未來三年內將是DeFi的主導區塊鏈,不會被其他競爭協議取代。該調查與來自Balancer、Nexus Mutual和Kyber Network等的代表進行了交談。其他受訪者包括來自Augur、Argent、DDEX、Loopring和Staked的代表。[2020/9/9]

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

以太坊交易費用逼近0.5美元創2018年8月來新高 與DeFi熱潮有關:目前以太坊交易費用逼近0.5美元,是2018年8月以來最高值。研究人員表示交易費用升高與DeFi熱潮有關,大量ERC-20標準的穩定幣的出現也推高了gas費用。(Coindesk)[2020/7/22]

圖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:ETHDEFEFIDEFIethicalsiliconpoliceDEFXDeFi11Defis

芝麻開門交易所下載
V神演講干貨全送上!關于以太坊2.0,你想知道的都在這里!_區塊鏈:區塊鏈的三個基本特征

文章來源:CSDN 8月8日,「2020以太坊技術及應用大會·中國」順利舉行。CSDN創始人&董事長、極客邦創投創始人蔣濤、以太坊創始人VitalikButerin、Unitimes、獨.

1900/1/1 0:00:00
以太坊2.0最終測試網Medalla正式上線,ETH波瀾不驚_以太坊:EDA

北京時間8月4日晚上21:00,以太坊2.0第0階段的最終測試網Medalla正式上線,這意味著以太坊2.0的主網已近在咫尺.

1900/1/1 0:00:00
兩周暴漲75%!以太坊價格上漲的三大原因_EFI:以太坊幣怎么挖礦網站下載

在過去的兩周中,以太坊的價格從222美元上漲至390美元,上漲了75%。許多投資者認為,以太坊的走勢正在提振整個市場,甚至可能推動比特幣上漲.

1900/1/1 0:00:00
巴比特專欄 | 央行數字貨幣的路徑選擇:批發型還是零售型?_TOK:TOKEN

本文原發于第一財經,作者:鄒傳偉,萬向區塊鏈首席經濟學家央行數字貨幣有多種設計方案,其中一個重要問題是CBDC是批發型還是零售型。批發型CBDC的使用限于中央銀行和金融機構之間,不面向公眾.

1900/1/1 0:00:00
高盛押注區塊鏈,正研究創建數字代幣的可能性_MOT:KISHIMOTO幣

本文來自?CNBC,作者:HughSonOdaily星球日報譯者|余順遂 摘要: 高盛上個月任命MathewMcDermott為新的全球數字資產負責人.

1900/1/1 0:00:00
Bytom成立首個IEEE區塊鏈身份密鑰標準工作組,工作組成員火熱招募中_EEE:BYT

比原鏈基金會牽頭成立的IEEE區塊鏈身份密鑰管理規范工作組,正在火熱招募工作組成員,感興趣的組織機構請立即點擊表單登記.

1900/1/1 0:00:00
ads