Cream Finance是DeFi领域的知名去中心化借贷协议。项目方在业内首先推出了白名单机制的Ion Bank借贷机制。这一创新一方面为DeFi借贷提供了更为便捷的工具,另一方面也为黑客攻击创造了条件。
在今年2月13日,Cream Finance就因为其Ion Bank被黑客利用并辅以闪电贷工具遭到攻击。时隔半年,在8月30日,Cream Finance再次遭到闪电贷攻击。
本次攻击是因为项目中的APM代币合约与借贷合约的cToken合约不适配造成重入漏洞,被黑客利用。
在本次攻击中,攻击者的地址为:0xce1f4b4f17224ec6df16eeb1e3e5321c54ff6ede。
攻击合约的地址为:0x38c40427efbAAe566407e4CdE2A91947dF0bD22B。
独家 | Bakkt期货合约数据一览:金色财经报道,Bakkt Volume Bot数据显示,3月30日,Bakkt比特币月度期货合约单日交易额为680万美元,环比上升27%,未平仓合约量为406万美元,环比下降4%。[2020/3/31]
被攻击的合约有两个,合约及地址分别为:
APM token合约:0xff20817765cb7f73d4bde2e66e067e58d11095c2
cToken合约:0xd06527d5e56a3495252a528c4987003b712860ee
我们先看cToken合约中出现漏洞的代码片段:
独家 | 近30天比特币搜索指数整体同比上升76%:金色财经报道,百度指数数据显示,近30天区块链搜索指数整体日均值为3791,整体同比上升22%,移动同比上升22%;近30天比特币搜索指数整体日均值为23721,整体同比上升76%,移动同比上升93%,近30天以太坊搜索指数整体日均值为3925,整体同比上升18%,移动同比上升26%。[2020/2/24]
上面的代码所实现的逻辑是在转账完成之后,才修改借贷额度状态accountBorrows。
这是一个典型的竞态问题。
代码中的doTransferOut函数最终会调用标的代币(underling token)合约的transfer函数,在此之后再对与标的代币关联的cToken合约的状态进行修改。
通常cToken对应的标的代币合约都是标准的ERC-20代币合约,这类标准的ERC-20代币合约中的transfer函数中没有回调函数。但如果标的代币不是标准的ERC-20代币合约,其transfer函数带有回调函数,则会引发重入漏洞。
独家 | BTC24小时资金净流出28.42亿元:金色财经监测数据显示,24小时资金净流入排名中XRP排名第一, 24小时净流入5.31亿元人民币;TRX24小时资金净流入排名第二,24小时净流入2.63亿元人民币;SEELE24小时金净流入排名第三,24小时净流入1.79亿元人民币。LTC24小时资金净流入排名第四,24小时资金净流入1.66亿元人民币;ROAD 24小时资金净流入排名第五,24小时资金净流入1.51亿元人民币。BTC24小时资金净流出28.42亿元人民币。[2020/2/14]
本次攻击恰恰就是因为cToken对应的标的代币(APM代币)不是标准的ERC-20代币。APM代币合约是个基于ERC-777标准的合约。这个合约中的transfer函数最后会调用_callPostTransferHooks()函数,在这个函数的最后会有一个回调函数IAmpTokensRecipient.tokensReceived。
独家 | OKEx高级研究员李炼炫:比特币未来两至三月内上升趋势仍是主要趋势:对于接下来比特币走势,OKEx高级研究员李炼炫在接受金色财经采访时表示,从比特币市场看,目前比特币市场规模太小,根本无法充当传统市场巨额资金避险的工具;其次,比特币的波动太大,2019年上半年上涨了3倍,下半年跌了近50%,这么大的波动任何专业的投资团队都不会把它当做避险工具使用。以昨日市场行情为例,昨日开市后投资者避险情绪明显,因此股市大跌,债市迎来开门红,比特币尽管在段时间内冲高到9,600美元的位置,但随后迅速回落,甚至迎来较前一日收盘价小幅下跌。这也可以看出,目前A股市场与币市尚无明显的联动性。
目前比特币的主要趋势仍然是上升趋势,昨日比特币小幅下挫,只能证明比特币市场进入次要趋势或短暂趋势中,如果是次要趋势,比特币可能会回调1/3或2/3左右,如果是短暂趋势,一两天就会结束下跌。不过我认为用户当前不用担心回调幅度有多大,因为我们投资关注的是主要趋势,受比特币减半预期的影响,在未来两至三月内上升趋势仍是主要趋势。[2020/2/4]
下面是与此相关的代码片段:
独家 | 褚康:删除分红描述可能是为Libra合规做出的正向修正:针对“Libra白皮书删除将利息用于分红给初期投资者的内容”一事,金色财经对犇睿资本创始人褚康进行了专访。褚康指出:包含分红功能的代币在大多数司法管辖区内都很有可能被界定为“证券”,从而受到相关证券法的管辖。以发行地美国为例,2017年7月25日美国SEC关于DAO币的调查报告中公开代币使用Howey Test进行证券属性的鉴定,而代币向初始投资者分红将使得Libra很可能符合“存在共同事业”的这一标准,从而适用Howey Test项下对于证券的定义。因此,删除分红描述的这一行为很可能是为了符合合规需要的积极修正。
如上所述,删除分红描述很可能是为了Libra的合规而做出的正向修正行为,当然这不仅仅是为了符合美国的合规需求,为其长远发展来说,删除分红描述也能极大程度符合其他司法管辖区的监管要求,但也不排除这一行为本身会为Libra的稳定性带来帮助,防止分红导向下的高风险投资行为。
对于Libra的后续发展来说,删除分红描述对于Libra来说,能解决一部分的监管问题,为了Libra的前期推行和合规化将起到一定的正向推动作用。[2019/12/13]
在回调函数中,攻击者可以再次发起交易,而此时cToken还未修改用户借款的相关状态,攻击者却已经收到借款,可以利用这些借款进行后续的动作。
合约中与cToken修改借款状态的相关接口已经定义了防重入的锁 borrowInternal,使用户无法再次直接从初始的借款合约中借入资金。
borrowInternal的代码片段如下:
攻击者也注意到了这一点,于是选择从一个借贷池借来的cToken,去另一个借贷池借款,以绕开上述防重入锁的限制。
由于cToken被再次用于借款,因此超过了借款额度。如果攻击者直接还款则会因为超额借贷而导致第一次借贷交易失败。因此攻击者选择不还款,而是使用另一个地址清算了这个满足清算条件的cToken,从而完成全部攻击。
纵观整个攻击过程,导致本次攻击成功的原因有两个:
1 为AMP代币添加借贷池时,没有考虑到AMP代币与借贷合约的适配性
2 借贷生成的cToken存在竞态条件问题,代码的实现逻辑没有严格遵循状态修改要放在外部调用之前的默认规范。
在此,Fairyproof Tech提醒所有的项目方:编写Solidity合约代码时一定要遵循Solidity合约编写的安全规范,不能心存侥幸。
在此例中Cream.Finance的代码分叉复制于Compound,尽管后者已经经过考验,但依然不能认为其代码是万无一失的。
根据我们的经验,即便是利用一些成熟的、历经考验的项目代码,也不能认为它们是绝对安全的,依然要进行充分的审计。尤其是要弄清楚,这些代码适用的前提条件和安全假设,以及具体到自己的应用场景中,这些代码是否还满足这些前提和假设。
在Fairyproof Tech审计代码的过程中,对适用前提和安全假设都有严格的检验标准和审查流程,并不会因为项目代码分叉自知名项目而忽略对这些安全事项的检查。
关于Fairyproof Tech:
Fairyproof Tech科技有限公司是一家专注区块链生态安全的公司。Fairyproof Tech科技主要通过“代码风险检测+逻辑风险检测“的一体化综合方案服务了诸多新兴知名项目。公司成立于2021年01月,团队由一支拥有丰富智能合约编程经验及网络安全经验的团队创建。
团队成员参与发起并提交了以太坊领域的多项标准草案,包括ERC-1646、ERC-2569、ERC-2794,其中ERC-2569 被以太坊团队正式收入。
团队参与了多项以太坊项目的发起及构建,包括区块链平台、DAO组织、链上数据存储、去中心化交易所等项目, 并参与了多个项目的安全审计工作,在此基础上基于团队丰富的经验构建了完善的漏洞追踪及安全防范系统。
作者:
Fairyproof TechCEO 谭粤飞
美国弗吉尼亚理工大学(Virginia Tech, Blacksburg, VA, USA) 工业工程(Industrial Engineering) 硕士(Master)。曾任美国硅谷半导体公司 AIBT Inc(San Jose, CA, USA) 软件工程师,负责底层控制系统的开发、设备制程的程序实现、算法的设计,并负责与台积电的全面技术对接和交流。自2011至今,从事嵌入式,互联网及区块链技术的研究,深圳大学创业学院《区块链概论》课程教师,中山大学区块链与智能中心客座研究员,广东省金融创新研究会常务理事 。个人拥有4项区块链相关专利、3本出版著作。
标签:TOKENKENTOKETOKtybtokenKenka Metaverseitokenwallet观察钱包系统操作权限CITEX Fund Token
金融的理论基础是有效市场理论和理性人假设,所以很多对于市场的分析都是基于数学模型以及宏观经济来分析。这种分析比较适合进行超长周期的价值投资,但短期市场往往反复无常,尤其是在情绪驱动的加密市场.
1900/1/1 0:00:00我们正处于万物泡沫之中。原文标题:《我们是否处于 NFT 与公链的巨大泡沫中?》如果你打开电视或阅读财经媒体,金融专家和投资者都会谈论「万物泡沫化」的话题.
1900/1/1 0:00:00头条▌工行建行数字人民币钱包开立数占全国一半金色财经报道,据工商银行和建设银行披露的数字人民币钱包的开立数据,截至6月末,工商银行累计开立数字人民币个人钱包356万个、对公钱包70万个.
1900/1/1 0:00:00在这篇文章中,投资者Gaby Goldberg讨论了她所谓的“社交代币悖论”——一个基于排他性的社交代币社区中出现的问题.
1900/1/1 0:00:00FTX 和 FTX.US 今(8)宣布和 NBA 球星斯蒂芬库里(Stephen Curry)达成长期合作伙伴关系.
1900/1/1 0:00:001989年,哈佛大学学生约瑟夫·L·波普制作了全球首个勒索病—AIDS木马,这位哈佛高材生将勒索病隐藏在软盘中并分发给国际卫生组织艾滋病大会的参会者.
1900/1/1 0:00:00