買以太坊 買以太坊
Ctrl+D 買以太坊
ads

OPY:首發 | DeFi平臺Opyn智能合約漏洞詳解 攻擊者空手套白狼_ethylenepropylene

Author:

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

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

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

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

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

LBank藍貝殼于4月10日01:00首發 BOSON,開放USDT交易:據官方公告,4月10日01:00,LBank藍貝殼首發BOSON(Boson Protocol),開放USDT交易,4月9日23:00開放充值,4月12日16:00開放提現。上線同一時間開啟充值交易BOSON瓜分10,000 USDT。

LBank藍貝殼于4月10日01:00開啟充值交易BOSON瓜分10,000 USDT。用戶凈充值數量不少于1枚BOSON ,可按凈充值量獲得等值1%的BOSON的USDT獎勵;交易賽將根據用戶的BOSON交易量進行排名,前30名可按個人交易量占比瓜分USDT。詳情請點擊官方公告。[2021/4/7 19:54:33]

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

《精靈達人3D》正式首發 Cocos-BCX 主網:據官方消息,近日,由生態合伙人 DAPPX 參與開發的《精靈達人3D》正式首發于游戲公鏈 Cocos-BCX 主網。《精靈達人3D》是一款以精靈寶可夢為題材的抓寵游戲,游戲美術采用全3D 制作。用戶可通過 CocosWallet , DAPPX 或 IMCOCOS 登錄 COCOS 主網賬號即可體驗。截至目前,Cocos-BCX 主網已上線《加密騎士團》《惡龍必須死》《XPEX怪獸世界》《Go Block》《可可奪幣》《熊貓運動會》等多款玩法多樣的趣味性鏈游,游戲公鏈生態在逐步壯大和完善。[2020/8/20]

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

漏洞詳細過程分析

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

首發 | 嘉楠耘智宣布與Northern Data在AI、區塊鏈等高性能計算領域達成戰略合作:據官方消息,2020年2月17日,嘉楠耘智宣布與區塊鏈解決方案及數據中心服務提供商Northern Data AG達成戰略合作。本次合作的內容涵蓋AI、區塊鏈及數據中心運維等高性能計算領域。

嘉楠耘智擁有豐富的高性能計算專用ASIC芯片研發經驗。Northern Data AG則專注于區塊鏈和數據中心等高性能計算基礎設施的建設。通過本次戰略合作,雙方將在AI、區塊鏈等新興領域進一步釋放增長潛能。[2020/2/19]

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

動態 | 可信教育數字身份在廣州白云區首發 采用區塊鏈等技術:12月25日,可信教育數字身份(教育卡)廣東省應用試點首發儀式與應用研討在廣州市白云區舉行。

據介紹,可信教育數字身份融合采用國產密碼、區塊鏈等核心技術,創新簽發“云計算、邊緣計算、移動計算”網絡環境下的一體化數字身份,實現一體化密鑰管理,構建“可信教育身份鏈”。(中國新聞網)[2019/12/25]

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

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

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

函數處理 ERC20 Token 時,和大部分的 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 購入了 75 oETH 為進一步調用函數行權做好籌備;2、攻擊者創建了一個 Vault 地址,作為看空期權賣方,并且抵押24,750 USDC 鑄造出75 oETH,但并未賣出這些期權,等于自己同時買入了以 330 的價格賣出75 ETH 的權利;3、攻擊者在 Opyn 合約中調用了 exercise(),在持有 150 oETH 看空期權的情況下,先向自己的 Vault 地址轉入了75個 ETH,獲得自己事先抵押的 24,750 個 USDC,再重利用了這75個 ETH,成功吃掉了另一個用戶的 24,750 個 USDC,進而實現非法獲利。

修復建議

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

Tags:ETHOPYPYNOpyneth價格今日行情ethylenepropyleneOpyn Squeeth

酷幣下載
THE:加密貨幣的可使用性 或是生存必備條件_bkcash

編者按:軟件的人機交互、操作邏輯、界面外觀,這些都是用戶衡量一款好用軟件的指標。無論在互聯網還是區塊鏈領域,UI設計都是項目方所需要重視的.

1900/1/1 0:00:00
UNI:晚間必讀5篇 | DeFi崛起對中心化交易所意味著什么?_以太坊

BCH再鬧分叉:社區反響激烈 幣價平平今日,幣圈博主“Bitcoin”爆料,ViaBTC礦池CEO楊海坡將發起對BCH的再一次分叉,新的分叉鏈代碼為BCC.

1900/1/1 0:00:00
區塊鏈:技術周刊|以太坊2.0的Medalla測試網已滿足啟動要求_DOT

本周技術周刊包含比特幣、以太坊、波卡、Filecoin四個網絡的技術類新聞。Bitcoin Core 0.20.1現已發布據比特幣核心開發團隊消息,Bitcoin Core 0.20.1現已發布.

1900/1/1 0:00:00
DEF:點亮紅海上的燈塔 霍比特攜手殿堂級預言機NEST開啟DeFi新航路_EST

7月 13日,由匿名團隊開發的去中心化預言機系統 NEST Protocol正式發布了 3.0 版本,并正式對外開放,提供外部調用接口為其他 DeFi 開發者所用.

1900/1/1 0:00:00
BSP:社科院楊濤:探索數字貨幣首先需要明確概念_BSPAY價格

當前,數字貨幣成為國際組織、各國央行、業界與學界所共同關注的熱點問題,在此我們需要圍繞數字貨幣的基本概念范疇進行梳理,從而盡量避免誤讀.

1900/1/1 0:00:00
NCE:金色觀察丨yearn.finance上托管資金真的安全嗎?_Reflexer Ungovernance Token

金色財經 區塊鏈8月10日訊  DeFi收益聚合平臺yearn.finance在今年七月中旬發行了治理代幣YFI,該代幣因為發行公平且分配廣泛而受到社區稱贊.

1900/1/1 0:00:00
ads