宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > ADA > 正文

首发 | 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可以重复使用的特性,再次向卖方用户发起转账,进而取卖方已经抵押的数字资产。

LBANK蓝贝壳于3月22日18:00首发 DORA,开放USDT交易:据官方公告,3月22日18:00,LBANK蓝贝壳首发DORA(Dora Factory),开放USDT交易,现已开放充值。

资料显示,Dora Factory 是基于波卡的 DAO 即服务基础设施,基于 Substrate 的开放、可编程的链上治理协议平台,为新一代去中心化组织和开发者提供二次方投票、曲线拍卖、Bounty 激励、跨链资产管理等可插拔的治理功能。同时,开发者可以向这个 DAO 即服务平台提交新的治理模块,并获得持续的激励。[2021/3/22 19:07:06]

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

漏洞详细过程分析

首发 | 嘉楠耘智宣布与Northern Data在AI、区块链等高性能计算领域达成战略合作:据官方消息,2020年2月17日,嘉楠耘智宣布与区块链解决方案及数据中心服务提供商Northern Data AG达成战略合作。本次合作的内容涵盖AI、区块链及数据中心运维等高性能计算领域。

嘉楠耘智拥有丰富的高性能计算专用ASIC芯片研发经验。Northern Data AG则专注于区块链和数据中心等高性能计算基础设施的建设。通过本次战略合作,双方将在AI、区块链等新兴领域进一步释放增长潜能。[2020/2/19]

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

首发 | DVP: Bitstamp交易所存在漏洞 可导致大量KYC等信息被泄露:金色财经讯,近日,DVP收到安全人员提交的全球知名交易所Bitstamp的漏洞,攻击者可以利用该漏洞查看大量用户ID、银行卡等敏感信息,严重威胁用户信息安全。为避免发生KYC泄露的恶性事件,DVP安全团队在收到该漏洞后,第一时间通知该平台进行修复,但未收到回应。DVP提醒相关用户关注个人信息安全,以免造成损失。[2019/8/13]

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

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

IMEOS首发 EOS Go公布新增两条复选条件 :据金色财经合作伙伴IMEOS报道:今日,EOS Go在 steemit上公布新增的两条复选条件为:

1. 保证安全的计划:候选节点是否在steemit上发布文章介绍该节点的安全方法和计划,“安全方法”标准是向EOS选民展示安全最佳实践知识和组织实施计划的机会;

2. 立场:描述该节点分享通胀奖励和/或向EOS代币持有人派发股息的立场(候选节点在steemit发布)。主要阐述以下两个问题:

该组织是否会出于任何原因向EOS令牌选民提供支付,包括BP选举和社区建议?

该组织是否有书面的无票付款政策?如果是这样,请提供一个链接。[2018/4/27]

如上面的合约代码片段所示,行权函数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被重复使用的风险。

PeckShield作为业内领先的区块链安全公司,安全业务已覆盖全球范围,主要客户包括有:公链提供商(EOS、Nervos、Harmony、AVA、HBTC、NEO、IOST、Bytom、TRON、OKChain),头部钱包和矿池(imToken、SparkPool、比特派、Cobo金库,VoiceWallet),以及头部交易所(Huobi、KuCoin、Bithumb、Upbit、OKex)、DeFi应用及智能合约等。

近一年内,PeckShield已经接连审计了数十个DeFi项目,帮助DeFi协议做代码安全审计、业务逻辑风控、威胁情报风险预警等等,已经成为服务DeFi领域的头部安全公司。

标签:ETHOpynOPYPYNtogetherbnb游戏全攻略第二部分Opyn SqueethCOPYCAT币PYN价格

ADA热门资讯
紫盈说币:8.5比特币/以太坊午间分析策略,窄幅震荡

紫盈说币:8.5比特币/以太坊午间分析策略,窄幅震荡,以太坊能否再度拉起大盘寄语:认清自己所处的心理状态,合理的调整态势,让自己的投资更科学,更合理,在财富投资的路上走上更远更好.

1900/1/1 0:00:00
横盘整理 短线观望

一大早被黄金新高的消息刷屏了,现货黄金突破2000美元大关,年内涨幅34%,此外,白银等贵金属以及黄金概念股涨幅更加夸张.

1900/1/1 0:00:00
简述 DeFi 重要性、细分种类与面临的挑战

DeFi的优点是使金融服务变得去信任化和无需许可,缺陷来源于智能合约安全性与区块链网络性能。原文标题:《浅谈去中心化金融》撰文:刘南勋,Crypto.com高级研究分析师来源:Crypto.com 本文要点 去中心化金融是指基于公共区.

1900/1/1 0:00:00
比特币——欲望的富婆用来打开健身房小伙心扉的一把钥匙!

??一位美丽又富有的朋友最近迷上了健身,请了个帅气的私教,每天都在朋友圈晒照。看来,健身教练的威慑力、杀伤力是真的不小啊!我这个朋友是个离异的小富婆,离异后不仅分了几套房子和一辈子都花不完的钱,还有每天挖矿到账的以太坊和比特币,也正是.

1900/1/1 0:00:00
后疫情时代:区块链技术助力分级诊疗创新

算力说 如果说分级诊疗制度是医疗领域的全面创新,信息技术的迭代便是推动力。而信息数据一直是医疗领域的最重要的短板和核心。医疗数据在各个部门和机构之间的连通,是我国提高医疗质量的突破口.

1900/1/1 0:00:00
4项7月合约活动已完成发奖公告

亲爱的库币合约用户: 感谢大家的踊跃参与,目前以下活动均完成奖金发放。2020.7.2618:00-2020.7.3123:59(UTC8),“比特币叒破10000点,来库币合约成为犇市大赢家!”活动已圆满结束.

1900/1/1 0:00:00