比特币:独家 | 灵踪安全:代币合约不匹配 Cream Finance遭二次攻击

CreamFinance是DeFi领域的知名去中心化借贷协议。项目方在业内首先推出了白名单机制的IonBank借贷机制。这一创新一方面为DeFi借贷提供了更为便捷的工具,另一方面也为黑客攻击创造了条件。

在今年2月13日,CreamFinance就因为其IonBank被黑客利用并辅以闪电贷工具遭到攻击。时隔半年,在8月30日,CreamFinance再次遭到闪电贷攻击。

本次攻击是因为项目中的APM代币合约与借贷合约的cToken合约不适配造成重入漏洞,被黑客利用。

在本次攻击中,攻击者的地址为:0xce1f4b4f17224ec6df16eeb1e3e5321c54ff6ede。

攻击合约的地址为:0x38c40427efbAAe566407e4CdE2A91947dF0bD22B。

独家 | Bakkt期货合约数据一览:金色财经报道,Bakkt Volume Bot数据显示,3月26日,Bakkt比特币月度期货合约单日交易额为609万美元,环比下降21%,未平仓合约量为420万美元,环比上升1%。[2020/3/27]

被攻击的合约有两个,合约及地址分别为:

APMtoken合约:0xff20817765cb7f73d4bde2e66e067e58d11095c2

cToken合约:0xd06527d5e56a3495252a528c4987003b712860ee

我们先看cToken合约中出现漏洞的代码片段:

独家 | QuestGroup创始人曲鸣:云算力产品已经较为金融化:在今晚由算力互联主办,金色财经独家支持直播的2020矿业新势力AMA上,QuestGroup创始人曲鸣表示,目前看来,云算力产品已经比较金融化了。对于公司而言,在产品设计的逻辑上具备很强的金融思维是非常关键的,并且是围绕如何让客户持续性的获得尽可能多的盈利来展开。现有产品除了交固定周期的算力费与电费来获得数字资产以外,还有很多其他方式,例如算力租赁,矿机租赁,算力合约甚至算力的交易所都是金融化之后的产物。对于新入场的创业者,我认为找到最合适自己的机会入场是最好的,此时新入场的创业者可以通过自己的专业知识与技能储备,自有行业相关资产评估,投资资金体量以及融资能力以及核心团队擅长点来结合一定的需求展开。[2020/2/25]

上面的代码所实现的逻辑是在转账完成之后,才修改借贷额度状态accountBorrows。

独家 | OmiseGOGold合约疑存重大交易漏洞:据第三方大数据评级机构RatingToken最新数据显示,2018年7月30日全球共新增1362个合约地址,其中371个为代币型智能合约。智能合约评分为3.48分的OmiseGOGold存在9处风险。 OmiseGOGold官网显示OmiseGOGold已经于2018年7月30日开放购买,同时也在medium宣传其空投活动。RatingToken安全团队通过攻防审计发现该合约存在交易漏洞:当合约拥有者变更汇率到达一定比例后,用户使用ETH买入OMGG代币时,购买量若存在小数(如0.5个OMGG代币), 购买金ETH会被全数扣除,但是用户不会得到如数的OMGG代币;当用户在正常买入的情况下,可能会触发token增发超出总发行量的隐患。RatingToken安全团队已经联系项目方并告知漏洞信息,目前尚未收到回复,RatingToken提醒大家,如果要购买此类存在合约漏洞的项目需谨慎。如需查看更多智能合约检测结果,请查看原文链接。[2018/8/1]

这是一个典型的竞态问题。

独家 | RatingToken:未来的公链会在易用性、拓展性等方面实现突破 ?:近期,公私链、区块链技术地位、区块链如何赋能实体经济等相关问题都比较热。RatingToken的公链研究实验室在接受金色财经独家专访时表示:当前的公链不够成熟,还处于探索期。公链不够去中心化主要体现在两个方面:首先,设计理念虽去中心化,但结果不尽人意,例如比特币、以太坊存在算力过度集中的问题;其次,为了提升性能,部分公链在设计之初,就减少共识节点的数量,但并没有做到去中心化。

另外,无法在高性能和高安全性方面寻求平衡是公链的痛点,这也是公链在未来应该努力的方向,这些问题或许可以从软硬件的配合、更好的架构、更先进的共识算法等角度解决。

DApp生态是公链的核心,未来的公链会在易用性、拓展性等方面实现较大的突破,随着开发门槛的降低,公链本身将兼容更多的应用场景,并涌现更多的行业标准。因此,未来的公链一定会朝着轻而快的方向发展,在安全的基础上,链上将有更少的数据存储、更快的交易速度,并且更加契合移动端需求。[2018/7/19]

代码中的doTransferOut函数最终会调用标的代币合约的transfer函数,在此之后再对与标的代币关联的cToken合约的状态进行修改。

独家 | Blockchain Global创始人:加密货币匿名性成为吸引黑客攻击的原因之一:加密货币交易所Bithumb因黑客攻击而损失了价值超3000万美元的加密货币,前不久韩国加密货币交易所Coinrail因为黑客攻击损失4000万美元,针对该事件金色财经独家采访了Blockchain Global 创始人兼CEO Sam Lee表示,黑客之所以盯着加密货币交易所不放,黑客攻击交易所主要是由于虚拟资产交易所聚集了大量的资金,并且相比较国家级的交易所和相应的防备技术,黑客对其具备有效的攻击手段。由于加密货币本身在传输过程中就是通过代码的方式,具有匿名性,所以无论是得手后的套现还是资产转移方面,虚拟货币的属性都会为黑客提供便利。

针对这类问题,一方面,当前很多交易所在安全领域,尤其是在底层钱包的安全性方面还需要提高。相信随着行业认知以及交易所安全防护的等级的不断提升,这类状况在全球范围内都会得到持续性的改善。

另一方面,正是由于现在的虚拟资产交易所融合了撮合系统、资金存储以及结算清算等功能,一旦某一个点被攻破,交易所整体就会面临危险。在这点上可以借鉴传统证券二级市场的规则,撮合交易的单位(证券方)以及交易之后的清算结算(中证登)是相互独立的两个机构,同时也有第三方来进行监管。[2018/6/26]

通常cToken对应的标的代币合约都是标准的ERC-20代币合约,这类标准的ERC-20代币合约中的transfer函数中没有回调函数。但如果标的代币不是标准的ERC-20代币合约,其transfer函数带有回调函数,则会引发重入漏洞。

本次攻击恰恰就是因为cToken对应的标的代币不是标准的ERC-20代币。APM代币合约是个基于ERC-777标准的合约。这个合约中的transfer函数最后会调用_callPostTransferHooks()函数,在这个函数的最后会有一个回调函数IAmpTokensRecipient.tokensReceived。

下面是与此相关的代码片段:

在回调函数中,攻击者可以再次发起交易,而此时cToken还未修改用户借款的相关状态,攻击者却已经收到借款,可以利用这些借款进行后续的动作。

合约中与cToken修改借款状态的相关接口已经定义了防重入的锁?borrowInternal,使用户无法再次直接从初始的借款合约中借入资金。

borrowInternal的代码片段如下:

攻击者也注意到了这一点,于是选择从一个借贷池借来的cToken,去另一个借贷池借款,以绕开上述防重入锁的限制。

由于cToken被再次用于借款,因此超过了借款额度。如果攻击者直接还款则会因为超额借贷而导致第一次借贷交易失败。因此攻击者选择不还款,而是使用另一个地址清算了这个满足清算条件的cToken,从而完成全部攻击。

纵观整个攻击过程,导致本次攻击成功的原因有两个:

1为AMP代币添加借贷池时,没有考虑到AMP代币与借贷合约的适配性

2借贷生成的cToken存在竞态条件问题,代码的实现逻辑没有严格遵循状态修改要放在外部调用之前的默认规范。

在此,灵踪安全提醒所有的项目方:编写Solidity合约代码时一定要遵循Solidity合约编写的安全规范,不能心存侥幸。

在此例中Cream.Finance的代码分叉复制于Compound,尽管后者已经经过考验,但依然不能认为其代码是万无一失的。

根据我们的经验,即便是利用一些成熟的、历经考验的项目代码,也不能认为它们是绝对安全的,依然要进行充分的审计。尤其是要弄清楚,这些代码适用的前提条件和安全假设,以及具体到自己的应用场景中,这些代码是否还满足这些前提和假设。

在灵踪安全审计代码的过程中,对适用前提和安全假设都有严格的检验标准和审查流程,并不会因为项目代码分叉自知名项目而忽略对这些安全事项的检查。

关于灵踪安全:

灵踪安全科技有限公司是一家专注区块链生态安全的公司。灵踪安全科技主要通过“代码风险检测+逻辑风险检测“的一体化综合方案服务了诸多新兴知名项目。公司成立于2021年01月,团队由一支拥有丰富智能合约编程经验及网络安全经验的团队创建。

团队成员参与发起并提交了以太坊领域的多项标准草案,包括ERC-1646、ERC-2569、ERC-2794,其中ERC-2569被以太坊团队正式收入。

团队参与了多项以太坊项目的发起及构建,包括区块链平台、DAO组织、链上数据存储、去中心化交易所等项目,并参与了多个项目的安全审计工作,在此基础上基于团队丰富的经验构建了完善的漏洞追踪及安全防范系统。

作者:

灵踪安全CEO谭粤飞

美国弗吉尼亚理工大学(VirginiaTech,Blacksburg,VA,USA)工业工程硕士(Master)。曾任美国硅谷半导体公司AIBTInc软件工程师,负责底层控制系统的开发、设备制程的程序实现、算法的设计,并负责与台积电的全面技术对接和交流。自2011至今,从事嵌入式,互联网及区块链技术的研究,深圳大学创业学院《区块链概论》课程教师,中山大学区块链与智能中心客座研究员,广东省金融创新研究会常务理事?。个人拥有4项区块链相关专利、3本出版著作。

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

链链资讯

酷币NFT:为什么比特币的开发如此保守?

当今世界,软件每周升级已是常规,甚至可以随时发布补丁,而比特币的软件开发似乎陷入了某种保守主义。基础层不断固化,软件的运行方式日益严格,而开发者还在开发不会破坏节点间共识的可选性优化.

EthereumEFI:视觉中国进军NFT领域 或是自救的良药

NFT已成为近期加密货币出圈的代表,吸引着大量品牌名企入场布局。大量企业开始尝试探索NFT与品牌营销相结合的方式,比如腾讯试水“NFT”交易平台“幻核”,网易旗下游戏《永劫无间》IP也授权发行了.

[0:4ms0-3:181ms