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

事件简述

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

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

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

成都链安:fortress被盗金额已被转换成1048eth并转入了Tornado Cash:5月9日消息,据成都链安安全舆情监控数据显示,fortress 遭受预言机价格操控攻击,被盗金额已被转换成1048eth并转入了Tornado Cash。经成都链安技术团队分析,本次攻击原因是由于fortress项目的预言机FortressPriceOracle的数据源Chain合约的价格提交函数submit中,将价格提交者的权限验证代码注释了,导致任何地址都可以提交价格数据。攻击者利用这个漏洞,提交一个超大的FST价格,导致抵押品价值计算被操控,进而借贷出了项目中所有的代币。

攻击交易:0x13d19809b19ac512da6d110764caee75e2157ea62cb70937c8d9471afcb061bf

攻击者地址:0xa6af2872176320015f8ddb2ba013b38cb35d22ad

攻击者合约:0xcd337b920678cf35143322ab31ab8977c3463a45[2022/5/9 3:00:21]

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

成都链安:InuSaitama疑似遭遇套利攻击,损失约430个ETH:3月27日消息,据成都链安技术团队分析,InuSaitama疑似遭遇套利攻击,攻击者(0xAd0C834315Abfa7A800bBBB5d776A0B07b672614)在 Saitamask(0x00480b0abBd14F2d61Aa2E801d483132e917C18B)中通过swap交换出了几乎10倍价值的SAITAMA Token,之后再通过uniswap交换回ETH,将其转移到0x63493e679155c2f0aAd5Bf96d65725AD6427faC4,共获利约430个ETH。[2022/3/27 14:19:43]

仙人掌CTS智能合约已通过Beosin(成都链安)安全审计:据官方消息,Beosin(成都链安)近日已完成仙人掌CTS智能合约项目的安全审计服务。

?仙人掌CTS是基于波场底层打造的一个去中心化开放金融底层基础设施。结合跨链,同时包含去中心化稳定数字货币,去中心化预言机,去中心化保险,流动性挖矿,智能挖矿等等功能的创新和聚合,进而打造全面的去中心化金融平台。仙人掌CTS代币无ICO、零预挖且零私募,社区高度自治。仙人掌CTS将会在9月28日晚20点上线Justswap,并开启流动性挖矿。

合约地址:TST5pvck2DSYXJk3hkuGH3t1AisCAT4t1s

审计报告编号:202009262149[2020/9/28]

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

成都链安CEO杨霞:DeFi项目方应重视合约安全问题:据官方消息,在由OKEx主办的“后疫情时代:DeFi的机遇与挑战”社群活动上,成都链安创始人兼CEO杨霞谈到最近dForce攻击事件,她表示,DeFi项目正在快速发展壮大,据我们统计截止2020年,锁定在以太坊DeFi应用中资产已达到10亿美元。DeFi项目火爆主要来源它的高收益。DeFi又被称为“去中心化金融”,开放式金融基础,则是高达8%-10%收益率必然会伴随巨大风险。各方DeFi团队开发自己合约产品也是自由发挥;但并没有一个统一的、标准的安全方案去遵守,或者说是必须通过严格安全审计,这就导致各种合约漏洞与相关安全问题层出不穷,此次事件项目方就应该进行重入防护:比如使用OpenZeppelin的ReentrancyGuard,另一方面先修改本合约状态变量,再进行外部调用。任何Defi项目方在开发合约时应重视合约安全问题,以应对各种突发情况和各种非正常使用合约情况,从而避免造成损失;同时建议做好相关安全审计工作,借助专业的区块链安全公司的力量,避免潜在的安全隐患。[2020/4/30]

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

攻击者首先调用了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:15ms0-0:852ms