木星链 木星链
Ctrl+D收藏木星链

EFI:DeFi平台Opyn智能合约漏洞详解:攻击者空手套白狼!

作者:

时间:1900/1/1 0:00:00

北京时间2020年08月05日,DeFi期权平台Opyn的看跌期权智能合约遭到黑客攻击,损失约37万美元。

Opyn是一个通用期权协议,于今年2月份转型为保险平台,通过oTokens为DeFi平台提供可交易的ETH看跌期权,以此锚定ETH市场价格,为高波动性的DeFi市场提供相对的稳定性。

PeckShield安全团队获悉Opyn平台遭受攻击后,迅速定位到问题关键点在于:

攻击者发现?Opyn智能合约行权接口对接收到的ETH存在某些处理缺陷,其合约并没有对交易者的实时交易额进行检验,使得攻击者可以在一笔对自己发起真实的交易之后,再插入一笔伪装交易得卖方所抵押的数字资产,进而实现空手套白狼。

简单来说,由于OpynETHPut智能合约中的行权函数exercise()没有对交易者的ETH进行实时校验。根据Opyn平台的业务逻辑,看跌期权的买方给卖方转移相应价值的ETH,即可获得卖方抵押的数字资产。狡猾的攻击者,先向自己发起伪装的交易,利用这笔ETH可以重复使用的特性,再次向卖方用户发起转账,进而取卖方已经抵押的数字资产。

多链DeFi平台Rubic集成Raydium,允许用户在Solana网络完成链上交换:官方消息,多链DeFi平台Rubic集成Raydium,允许用户在Solana网络完成链上交换。此外,Rubic还完成了Phantom和Solflare钱包与Rubic生态系统的集成。[2021/12/18 7:47:02]

下面为您详细分析漏洞原因及攻击过程。

漏洞详细过程分析

先来说说,Opyn平台的业务逻辑:当用户使用Opyn合约行权即买卖期货时,需要买方向卖方转入相应数量的ETH或者ERC20Token,然后合约将销毁买方对应的oToken,而后买方将获得卖方已经抵押的资产。

例如:小王认为行情进入了下跌趋势,看到Opyn上挂着一个小李对ETH330美元的看跌期权,于是进入交易系统,向小李转账一个ETH,获得小李抵押的等额数字资产。若此刻行情已经跌至了300美元,小王便可获得其中的差价。

DeFi项目Pickle Finance在OpenSea发布首个Pickled NFT:DeFi收益聚合协议Pickle Finance发推称,刚刚在NFT交易平台OpenSea发布第一个Pickled NFT。[2021/3/14 18:43:51]

图1.exercise()?函数中循环执行传入的?vaults?地址列表

如上面的合约代码片段所示,行权函数exercise()的内部是一个循环,依据参数中传递的vaultsToExerciseFrom中的地址数量依次调用真正的行权逻辑_exercise()函数。

JD-Tron CommunityDefi实验室战略投资TEFI:据官方消息,JD-Tron CommunityDefi实验室宣布战略投资基于波场TRX主链的DEFI类借贷平台——TEFI(DEFI ON TRON)。 据了解,JD-Tron Community Defi实验室是由极豆资本与波场中国社区联合成立,共计注资上千万美元作为初始实验室投资资金。JD-Tron Community DeFi实验室专注于投资波场Defi项目,计划于8月至9月投资50个基于波场(TRON)的优质DeFi项目。[2020/8/17]

分析 | DeFi在防止恶意通货膨胀方面具备一定优势:通证通研究院发表《DeFi:未来“代码世界”的主宰》区块链研究报告。报告指出,DeFi概念产生于2018年。DeFi与金融/金融中介可优势互补。DeFi有可能进一步扩大金融的覆盖范围;采用区块链技术,可提高交易数据透明度,确保交易的不可逆和一定程度的审查抵制,在防止恶意通货膨胀方面具备一定优势。但DeFi与金融都无法覆盖全部人群。此外DeFi还面临着技术和落地应用的风险。DeFi类项目MakerDAO初步具备了“通证银行”的雏形。然而,MakerDAO通证的发行机制功能单一,并存在波动性风险和流动性风险。我们认为DeFi是对目前金融行业的有益补充。后期随着DeFi的日渐成熟与区块链技术的迭代,将扮演更多、更重要的角色,甚至有可能主导未来“代码世界”的金融体系。[2019/5/23]

图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被重复使用的风险。

标签:EFIDEFDEFIETHDeFineDeFiStarterFarm Defietha币上哪个交易所了

pepe最新价格热门资讯
DEFI:求索Defi之道,尽在“Defi之道”

经过一年蛰伏,Defi生态开始逐渐成型,其去中心化的机制、开源透明的代码、较强的流动性及互操作性让这个金融生态释放出前所未有的活力.

1900/1/1 0:00:00
UNI:币圈老虎机,Uniswap的红与黑

作者/?宋小丸注意!币圈老虎机已开启。不用注册、不需要KYC、随进随出……只需要一个ETH钱包,Uniswap大转盘即刻开始.

1900/1/1 0:00:00
比特币:华尔街上市公司“all in”比特币,2.5亿美元买入比特币是为何?

比特币已成为散户和机构投资者中流行的投资工具,但它也已成为某些公司的储备资产。根据今天早些时候发布的公告,一家在纳斯达克上市的商业智能公司现在正在转向基准加密货币来存储其资本储备,称其为可以“优.

1900/1/1 0:00:00
区块链:月薪两万起步,区块链工程师成香饽饽

在求职招聘的网站上输入「区块链」,全国有上百家企业都在招人,月薪起步价在2万元居多。除了BATJ这类传统互联网巨头外,中国建设银行、中信银行等传统银行业也加入了区块链人才储备的需求端.

1900/1/1 0:00:00
UNI:交易平台搅局者“Uniswap之父”:不会编程的“失业青年”,出手即巅峰

据TheBlockResearch统计,去中心化交易协议Uniswap在7月份新增57976名用户,环比增加132%,其网站访问量也从6月的约9万人次增加到7月的约142万次.

1900/1/1 0:00:00
比特币:比特币与以太坊的口舌之争:Vitalik Buterin对线Samson Mow激辩流通量话题

比特币和以太坊信仰之争由来已久,哪怕以太坊创始人VitalikButerin曾经是比特币的拥趸,也不影响当他开始做以太坊这个项目后,受到比特币社区的猛烈抨击.

1900/1/1 0:00:00