EXE:成都链安:Opyn ETH Put逻辑漏洞技术分析

事件简述

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

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

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

BSN开放联盟链成都链已上线:金色财经报道,近日,区块链服务网络BSN表示,开放联盟链成都链已在BSN环境内上线,这是基于BSN环境上线的第9条开放联盟链。BSN开放联盟链(简称OPB)包括多条基于公有链框架和联盟链框架搭建的公用链,此次上线的成都链是基于公链Casper框架进行合规化改造而来。[2022/12/15 21:46:38]

成都链安-安全实验室第一时间对本次事件进行跟踪分析,以下是态势感知系统检测盗的攻击者合约地址:0xe7870231992ab4b1a01814fa0a599115fe94203f0xb837531bf4eb8ebfa3e20948bd14be067c18cbd30xb72e60ea1d0c04605f406c158dce9ac6ae6d224c攻击者攻击方式还原:1、攻击者调用合约向合约发送n个USDC增加抵押,并得到合约币oETH2、攻击者调用合约发送ETH进行抵押,并销毁oETH以赎回自己的USDC3、攻击者赎回自己抵押的ETH。如下图所示:

成都链安:bDollar项目遭受价格操控攻击,目前攻击者获利2381BNB存放于攻击合约中:据成都链安“链必应-区块链安全态势感知平台”安全舆情监控数据显示,bDollar项目遭受价格操控攻击。攻击者地址:0x9dadbd8c507c6acbf1c555ff270d8d6ea855178e

攻击交易eth:0x9b16b1b3bf587db1257c06bebd810b4ae364aab42510d0d2eb560c2565bbe7b4

攻击合约:0x6877f0d7815b0389396454c58b2118acd0abb79a

目前攻击者获利2381BNB,存放于攻击合约中。[2022/5/21 3:32:53]

成都链安:BaconProtocol遭受攻击事件分析:据成都链安链必应-区块链安全态势感知平台舆情监测显示,BaconProtocol遭受黑客攻击损失约958,166 美元,关于本次攻击,成都链安团队第一时间进行了分析:1. 本次攻击利用重入漏洞,并凭借闪电贷扩大收益额。2:目前攻击者地址还没有被加入USDC的黑名单中。[2022/3/6 13:40:01]

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

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

动态 | 成都链安推出Beosin-AML虚拟资产调查取证和反合规系统:为帮助虚拟资产服务商(VASP)监测交易风险、执行反合规程序,帮助监管部门监督VASP合规流程执行情况,帮助执法部门快速收集虚拟资产犯罪案件证据,为受害者提供技术协助,成都链安科技推出可视化的虚拟资产合规监测和调查取证分析系统Beosin-AML。系统上线技术援助服务,受害者被盗币或不慎参与了跑路盘、资金盘等非法项目后,可在网站提交相关信息,平台开展调查、分析和追踪等取证服务。成都链安Beosin-AML虚拟资产调查取证和反合规系统,采集链上交易数据,分析加密货币犯罪和安全事件,结合机器学习模型综合分析链上交易的合规和安全风险。帮助区块链行业建立合法、合规的应用生态。[2019/12/10]

攻击者首先调用了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,只是简单的验证了地址是否可以赎回。属于代码层的逻辑漏洞,并且根据官方回复,此合约是经过安全审计的。成都链安在此提醒各项目方:1、项目上线前应当进行足够有效的安全审计,最好是多方审计2、对于合约的应当设置暂停合约交易等功能,在发生安全事件时,可以以保证资金安全3、安全是一个持续的过程,绝非一次审计就能保平安,与第三方安全公司建立长期的合作至关重要

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

金星链

[0:0ms0-1:429ms