区块链:区块链安全 | 用户余额无故消失?Opyn ETH Put逻辑漏洞技术分析

事件简述

8月5日凌晨四点,有用户在opyn论坛反馈自己的账户余额无故消失,并有用户发现可疑的交易信息,如下图所示:

Opyn项目方再对情况初步分析后做出回应表示:已经转移了资金,并正在寻找问题原因

截至发稿前,官方发文回应此次事件:遭到黑客攻击,并已对可能遭受攻击的资产进行转移,但此次漏洞只涉及ETH合约,并不影响其他合约。如下图所示:

动态 | 炒作区块链概念涉嫌集资,两男子被检方提起公诉:据澎湃新闻报道,江苏省盐城市盐都区人民检察院在人民检察院信息公开网公布了被告人付某某、姜某某非法集资一案的起诉书。起诉书显示,付某某、姜某某在互联网非法设立虚拟币交易平台,炒作区块链概念,发行虚拟货币,非法集资人民币948961元,涉嫌集资罪。[2019/8/16]

成都链安-安全实验室第一时间对本次事件进行跟踪分析,以下是态势感知系统检测盗的攻击者合约地址:

0xe7870231992ab4b1a01814fa0a599115fe94203f

0xb837531bf4eb8ebfa3e20948bd14be067c18cbd3

声音 | Brendan:区块链可作为具革命性的沟通工具:据 IMEOS 报道,block.one CEO BrendanBlumer在其个人社交媒体表示,区块链可以作为一款具革命性的沟通工具,链接监管目的和公共行为。[2018/9/29]

0xb72e60ea1d0c04605f406c158dce9ac6ae6d224c

攻击者攻击方式还原:

攻击者调用合约向合约发送n个USDC增加抵押,并得到合约币oETH

攻击者调用合约发送ETH进行抵押,并销毁oETH以赎回自己的USDC

攻击者赎回自己抵押的ETH。

如下图所示:

分析 | 2023年区块链医疗市场总规模将达8.29亿美元:据行业情报公司Reportbuyer最近发布的一份报告,预计到2023年,医疗保健区块链市场将从2018年的5390万美元增至8.29亿美元,复合年增长率为72.8%。据该报告,由于医疗保健数据泄露的情况越来越多,假药的威胁不断增加,BaaS的采用越来越多,有着透明性和不变性的分布式账本技术成为该市场的迫切需求。然而,不愿披露数据,缺乏中央实体和共同标准仍在一定程度上抑制该市场的增长。[2018/7/31]

在步骤二中,攻击者调用exercise函数,并向其传递了两个地址A、B和两倍自己应得的USDC,程序正常执行,这导致地址B的资金受损。

技术分析

以交易0x56de6c4bd906ee0c067a332e64966db8b1e866c7965c044163a503de6ee6552a为例,攻击者通过合约0xe7870231992ab4b1a01814fa0a599115fe94203f对合约0x951D51bAeFb72319d9FBE941E1615938d89ABfe2发动攻击,此笔交易中共获利$9907。如下图所示:

华大基因发布华大区块链白皮书:今日华大基因发布《华大区块链白皮书V1.0数字化生命的价值交换》,白皮书中提到,“为推动区块链在生命大数据行业的应用,加速行业伙伴对其应用理解,华大区块链项目组编写了《华大区块链白皮书 V1.0》。白皮书总结了华大对于区块链的理解及相关核心技术积累,分享了区块链及密码学在生命大数据共享、生物智能计算、个人健康激励等实际应用场景的实践案例,并提出了相关建议。白皮书内容详尽、分析透彻、落地场景扎实,具有较好的参考价值。我们认为,从基础设施建设到最终大规模应用,没有捷径可走,在经过基础研发、概念验证、节点部署、开发测试等一系列流程后,华大逐步将生产级的联盟链 BaaS 平台开放给内部各体系及外部合作机构,共同推动行业发展,打造基于区块链的共赢生态。”[2018/5/30]

纽约明日起将迎来“区块链周”:纽约将于当地时间5月11日至17日迎来“区块链周(BlockchainWeek)”主题活动,届时纽约将会举办大约8场区块链相关峰会。[2018/5/11]

攻击者首先调用了addERC20CollateralOption函数,向合约中发送了9900个USDC,如下图所示:

此函数中的addERC20Collateral(msg.sender,amtCollateral);负责代理转账USDC;函数中的issueOTokens(amtToCreate,receiver);负责铸币oETH,此笔交易铸币30个oETH并发送给了攻击者,如下图所示:

在此完成后,攻击者的vault参数进行了变化。vault.oTokensIssued和vault.collateral分别更新300000000和9900000000为如下图所示:

然后攻击者开始将oETH兑换出来。

调用exercise,构造参数oTokensToExercise为60,vaultsToExerciseFrom为两个地址,其中一个是也满足条件的他人地址。如下图所示:

Exercise函数运行_exercise(vault.oTokensIssued,vaultOwner);分支,将30oETH相应比例的USDC发送给调用者,如下图所示:

我们可以注意到,在最终转账时,_exercise是将USDC转给了msg.sender,也就是攻击者。

我们回头看exercise中存在者for循环,攻击者输入的oTokensToExercise为60,所以合约再验证了第二个地址符合条件的情况下,依旧会将余额转给msg.sender,也就是攻击者。这就使得攻击者可以获得两次USDC,从而获得利润。

总结建议

此次事件攻击者利用了exercise函数的逻辑缺陷。此函数在进行最后转账前并未验证调用者是否有权限赎回此地址的USDC,只是简单的验证了地址是否可以赎回。属于代码层的逻辑漏洞,并且根据官方回复,此合约是经过安全审计的。成都链安在此提醒各项目方:

项目上线前应当进行足够有效的安全审计,最好是多方审计

对于合约的应当设置暂停合约交易等功能,在发生安全事件时,可以以保证资金安全

安全是一个持续的过程,绝非一次审计就能保平安,与第三方安全公司建立长期的合作至关重要

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

币赢BTC:一件悲伤的事,你跑赢比特币了吗?

从机会成本上说,加密世界确定性最强的BTC是你买任何一个币种的“机会成本”。昨天统计了下自312以来的资产收益率,由于在DeFi热潮中算是抓住了几次机遇,对这次收益统计比较有自信.

[0:15ms0-1:39ms