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

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

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 概念板塊今日平均漲幅為4.59%:金色財經行情顯示,DeFi 概念板塊今日平均漲幅為4.59%。47個幣種中37個上漲,10個下跌,其中領漲幣種為:GXC(+46.25%)、DMG(+30.94%)、LBA(+18.98%)。領跌幣種為:HOT(-9.90%)、IDEX(-6.38%)、AST(-5.56%)。[2021/8/7 1:40:22]

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

DeFIL成功入選Filecoin格蘭特黑客馬拉松并獲得獎金:據官方消息,Filecoin Grant Hackathon于7月18日結束了投票期。來自美國、中國、印度、歐洲和非洲的45個團隊通過DoraHacks的開源開發者平臺HackerLink提交了申請,共獲得249,000美元的總資金。Filecoin去中心化金融服務平臺DeFIL成功入選獲獎名單,并獲得獎金。

DeFIL是去中心化的Filecoin借貸和金融服務平臺,旨在讓礦工有渠道獲得質押幣或通過發行標準算力通證的形式對沖風險。[2021/8/2 1:29:05]

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

漏洞詳細過程分析

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

EOS DeFi挖礦項目EMD疑似跑路:據慢霧區情報,EOS項目EMD疑似跑路,截至目前,項目合約emeraldmine1已向賬號sji111111111轉移78萬USDT, 49萬EOS及5.6萬DFS,并有12.1萬EOS已經轉移到changenow洗幣平臺。據主網部署記錄顯示,該項目在發布后曾對合約進行升級。 慢霧安全團隊提醒,請勿繼續將資金發送到該項目。同時,由于DeFi項目的火熱,投資者在參與EOS DeFi項目時應注意相關風險,盡可能選擇有安全審計公司審計過的項目,并注意項目方權限是否為多簽,由于EOS本身的特性,非多簽的EOS合約賬號可轉移合約內的資金。[2020/9/9]

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

Beam首席執行官:基于對隱私的需求,最終一切都將轉移到機密DeFi:匿名幣Beam在6月29日進行了第二次硬分叉升級,以啟用Beam上的“機密DeFi”(Confidential DeFi)。Beam首席執行官Alexander Zaidelson在接受采訪時表示,機密DeFi是“一個金融服務的生態系統,具有完全的機密性、巨大的可用性和可選擇的可審核性”。Zaidelson承認Compound和Maker等其他DeFi服務是“可靠的金融工具”。但他駁斥了最近的DeFi熱潮與2017年ICO熱潮之間的比較,并將ICO描述為“一個有缺陷的概念,人們相信入侵的承諾并損失了金錢”。他同時也指出了其他DeFi服務與Beam的DeFi的不同之處。Zaidelson表示:“它們建立在以太坊的基礎上,這是隱私的對立面。Beam 機密DeFi將提供改進的功能,加上財務隱私,所有這些都具有良好的可用性和審計交易的能力。”當被問及Beam的DeFi是否針對不同于COMP和Maker的受眾時,Zaidelson回答說:“每個人都需要隱私,因此最終,一切都會轉移到機密的DeFi。”(Cointelegraph)[2020/7/5]

圖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:ETHDEFIEFIDEFYFEthereumDeFiAICOREFIMetaegg DeFi

芝麻開門交易所下載
俄羅斯央行副行長:購買加密貨幣不是投資是“犯罪”_加密貨幣

雖然俄羅斯的數字金融資產法案本月在國家杜馬通過,但俄羅斯中央銀行仍然認為購買加密貨幣不應被視為投資.

1900/1/1 0:00:00
數讀 | DeFi幣普漲240%背后:究竟有多少玩家,哪個交易所是大贏家?_EFI

文?|Carol?編輯|畢彤彤出品|PANews金融的核心功能之一是解決激勵問題,DeFi的出現和發展為進一步實現這一功能提供了新的思路和可能.

1900/1/1 0:00:00
以太坊活躍用戶數上漲137%,平均交易手續費翻16倍_以太坊

數據分析師?|Carol?編輯|畢彤彤出品|PANews2020年,以太坊五周年,再一次成為當紅辣子雞.

1900/1/1 0:00:00
吳說:解密復雜的OK高層雙邊架構 職業經理人管理趨于穩定_okex

OKCoin是中國最早的加密貨幣交易所之一,也與幣安、火幣統稱為三大。OK在中文區的曝光量也相對更高,但由于嚴密的對外保密制度、復雜的組織體系、以及高管頻繁的變動,OK的高層組織架構最難以歸納.

1900/1/1 0:00:00
2020應屆生入職率不足13%,央視報道歐科云鏈聚焦新興職業人才缺口_區塊鏈

疫情影響下,全球經濟放緩,就業環境嚴峻,求職難、保薪難,已經成為不爭的事實。然而,作為新基建的區塊鏈行業卻逆勢迎來新風口,人社部近日發布的9個新職業中,區塊鏈就占有2席,區塊鏈頭部企業求賢若渴,

1900/1/1 0:00:00
干貨 | 非同質權益通證是什么?區塊鏈NFT有何應用?_NFT

本文為萬向區塊鏈蜂巢學院線上公開課第21期內容。在本期公開課中,AlphaWallet聯合創始人兼CEO張中南分享了區塊鏈NFT相關知識點,包括:通證和權益的關系;區塊鏈NFT的誤區;非同質權益.

1900/1/1 0:00:00
ads