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

事件简述

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

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

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

“Hot Chainers 首届大学生区块链应用设计大赛”命题赛获53所高校学子报名:4月16日,“Hot Chainers 首届大学生区块链应用设计大赛”命题赛报名已截止。据悉,在命题赛阶段,有来自全国53所高校434名大学生报名参加了比赛。其中,北京地区高校有367人报名,占比84%。其余高校分别来自山东、浙江、河南、河北、福建、安徽、甘肃、黑龙江、广东、海南、江苏、上海、天津等省市。从报名阶段报名大学生对赛道兴趣表现看,公益有84人,占19.35%;游戏有48人,占11.06%;IP有37人,占8.53%;艺术有45人,占10.37%;餐饮有32人,占7.37%;人力有29人,占6.68%;未确定方向的有159人,占比36.64%。本周内参赛选手将确认参赛赛道,并开始进一步加入战队进行学习。

“Hot Chainers 首届大学生区块链应用设计大赛”由北京高校毕业生就业指导中心、北京市昌平区沙河高教园区管理委员会作为指导单位,火币中国、沙河大学城大学生创业园(筹)、沙河高教园区高校联盟大学生创新创业工作联盟主办,火币Labs、中央财经大学科技园、沙河高教园发开公司承办。北京航空航天大学、北京师范大学、北京邮电大学、中央财经大学、中国矿业大学(北京)、外交学院、北京信息科技大学、清华大学学生区块链协会等单位联合支持。[2021/4/16 20:27:09]

现场 | 远洋海运集团董事王海民:区块链在海运业的应用有助于自主制定规则:金色财经现场报道,9月25日下午,外滩大会区块链产业峰会在上海开幕。在《区块链如何推动产融结合新格局》圆桌论坛上,中国远洋海运集团有限公司董事王海民指出,作为海运业,供应链和区块链天然相适应。在海运业存在着信息不对称等多种痛点,我们希望构筑一个多方参与且互相信任的系统,而区块链技术的应用让海运业供应链贸易体系发展更加顺畅。另外,在海运业存在着多个规则,但这些规则均由其他国家订制,所有伴随着区块链技术在海运业的深入应用,也就有了立法基础,可以建立相关的应用规则。[2020/9/25]

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

0xe7870231992ab4b1a01814fa0a599115fe94203f

0xb837531bf4eb8ebfa3e20948bd14be067c18cbd3

0xb72e60ea1d0c04605f406c158dce9ac6ae6d224c

河南房屋交易生态平台将利用区块链等技术:“河南房屋交易生态平台”的整个系统建设将在10月份完成。届时,该系统将通过楼盘表实现房屋信息全面采集和动态更新,按照“互联网+网签”模式,通过网络端口,利用大数据、人脸识别、电子签名、区块链等技术,实现网签备案刷脸办、扫码办、刷证办、网上办、就近办、异地办、随时办和不见面办理,并逐步实现无纸化办公。(焦作日报)[2020/7/31]

攻击者攻击方式还原:

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

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

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

如下图所示:

人民日报:加强区块链+农业等前沿技术超前布局:6月12日,人民日报刊文“赋能农业现代化高质量发展(开卷知新)”。文章表示,智慧农业是数字技术科技创新的新场景,科技创新与农业产业的深度融合,不仅会催生农业产业发展新动能,也会引发数字技术、数据科学、人工智能和区块链等技术创新。智慧农业的关键是数据,需要解决数据获取、处理与应用三大问题。数据处理分析是支撑。进行数据挖掘与智能诊断技术创新,构建农业大数据智能处理与分析技术体系,加强人工智能、虚拟现实、区块链+农业、大数据认知分析等前沿技术超前布局,解决“数据如何处理与分析”的问题。[2020/6/12]

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

技术分析

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

动态 | 日本里索那银行宣布将与应用区块链技术的Money Tap终止合作:据Coinpost消息,日本里索那银行于4月11日在其官网上宣布,将终止其与应用区块链技术提供个人转账服务的Money Tap的合作。合作终止日期定于今年5月13日。里索那银行举出终止合作的原因是该公司“里索那钱包APP”具有相同的结算支付功能,但目前从其披露的搭载功能无法得知该app今后是否会引入区块链技术。据悉,Money Tap是SBI控股及其子公司SBI Ripple Asia主管的国内外外汇一体化财团开发的,使用了分布式分类账技术(DLT)。[2019/4/12]

攻击者首先调用了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,只是简单的验证了地址是否可以赎回。属于代码层的逻辑漏洞,并且根据官方回复,此合约是经过安全审计的。成都链安在此提醒各项目方:

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

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

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

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

金星链

[0:15ms0-0:966ms