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

事件简述

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。如下图所示:

成都链安:2022年第1季度区块链安全生态造成的损失达到12亿美元:4月20日消息,成都链安统计数据显示,加密行业2022年第1季度安全事件造成的损失达到12亿美元。[2022/4/20 14:36:00]

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

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

OneSwap智能合约代码通过慢雾、成都链安、PeckShield安全审计:据海外媒体消息,OneSwap已9月6日顺利通过智能合约代码安全审计,此次审计工作由三家业内知名的安全公司慢雾科技,派盾PeckShield,成都链安完成。在审计过程中,三家独立的审计团队采取自身独特的策略对OneSwap智能合约代码进行全方位开展代码审计工作,以最大程度确保及时发现漏洞。

审计团队分别从攻击漏洞测试、合约复杂度分析、代码通用性、链上数据安全、代码逻辑等方面对OneSwap智能合约代码进行全方位的测试分析。OneSwap智能合约代码均符合三家安全公司的安全审核标准,审计中发现的问题目前都已解决或正在解决中。

OneSwap是一个基于智能合约的完全去中心化的交易协议,在CFMM模型的基础之上引入链上订单簿来改善AMM用户的交易体验。上币无需许可,可支持自动化做市、支持挂单挖矿、流动性挖矿和交易挖矿。据官方消息,Oneswap将在2020年9月7日正式上线并开启公测。[2020/9/7]

分析 | 成都链安:钱包Safuwallet服务器是否存储了用户的私钥是关键:针对“网页加密货币钱包Safuwallet被黑与币安服务器出现问题是否存在关联”一事,成都链安在接受金色财经采访时指出:“safuwallet是第三方extension插件钱包,用户资产被盗,主要原因还是私钥被盗,发生了这样的问题,对于钱包服务器而言只要不存储用户的私钥,只做相关交易数据的处理的话,两者之间就没有关系,如果服务器存储了用户的私钥,那黑客就有可能通过攻击服务器获取到用户的私钥。推特消息称是safuwallet被注入了恶意代码,黑客可能先将恶意代码注入到safuwallet中,然后引诱受害者安装钱包,再获取到受害者的私钥后,进行相关代币的转移。事实上,对于非官方钱包,安全性确实不太好保障。对于此类钱包,私钥被盗的时间时有发生。对于这个事件,后续的影响主要是用户的损失、钱包和交易所的声誉。”[2019/10/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,只是简单的验证了地址是否可以赎回。属于代码层的逻辑漏洞,并且根据官方回复,此合约是经过安全审计的。成都链安在此提醒各项目方:1、项目上线前应当进行足够有效的安全审计,最好是多方审计2、对于合约的应当设置暂停合约交易等功能,在发生安全事件时,可以以保证资金安全3、安全是一个持续的过程,绝非一次审计就能保平安,与第三方安全公司建立长期的合作至关重要

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

水星链

[0:15ms0-0:906ms