PCT:独家 | 灵踪安全:Pinecone被攻击事件分析

本文由“灵踪安全”原创,授权“金色财经”独家发布。

8月19日,BSC上的收益聚合项目PineconeFinance的保险库受到黑客攻击,损失约350万没PCT代币。

截至写稿时为止,项目方已经针对此次攻击中受损的用户发布了补偿计划:项目团队及投资人共持有491万枚代币,将用所有代币补偿用户。

尽管此次攻击受损的金额相对近期动辄千万、上亿美元的金额不算太大,但这起攻击事件还是给我们留下了值得吸取的经验和教训。

这次攻击出现漏洞的地方在于转账过程使用的代币有损耗,而合约对这个损耗没有处理好于是就导致漏洞出现从而被黑客攻击。

在正常状况下,用户之间转账代币的时候,如果代币在转账过程中没有损耗,处理起来是比较简单的。但如果某些代币在转账过程中会出现损耗,则处理这类代币的转账就要非常小心了。

在Pinecone项目中,其代币PCT是作为资金池的质押代币,在其合约设计的代币转账过程中会有手续费的损耗。而项目将这个损耗计入了用户的份额中,于是用户份额和质押的PCT总额就会出现偏差。这个偏差就能被攻击者用来领取多余的奖励。

独家 | 欧科云链李炼炫:基于区块链的股权交易能解决腐败孳生等问题:金色财经报道,对于“北京股权交易中心获得首批开展区块链试点建设资格对于区块链行业发展和股权交易会带来哪些影响?”记者提问,欧科云链研究院首席研究员李炼炫接受采访时表示,这对区块链行业和股权交易市场都有好处。目前传统的股权交易中存在这腐败孳生,不公开透明以及无法实时结算的风险等问题,而基于区块链技术的股权交易能较好地解决这些问题。此外,区块链技术的最大应用价值正是在清结算领域,鼓励区域性股权市场参与区块链建设,有利于推动国内区块链技术和产业创新发展,推进区块链和经济社会融合发展。[2020/7/22]

具体而言,本次攻击存在漏洞的合约有:

PineconeFarm合约,其地址为:

0x4099f27fb72788b7bb5cb64e3d2b865eb82d0f8f

farm合约使用的策略合约IPineconeStrategy,其地址为:

独家 | 加密货币市值前十币种9跌1涨 EOS领跌:金色财经数据显示,截止当前,加密货币市值前十币种9跌1涨。近24小时涨跌情况分别为:BTC(9550.12美元,-5.81%)、ETH(260.80美元,-7.02%)、XRP(0.2776美元,-6.47%)、BCH(383.81美元,-8.37%)、BSV(296.84美元,-4.60%)、USDT(0.999美元,-0.22%)、LTC(71.06美元,-8.10%)、EOS(4.57美元,-12.31%)、BNB(22.07美元,-8.40%)、XTZ(3.64美元,+5.43%)。[2020/2/20]

0x1e542DB46eb87cc8E5fA8e1856eC53F89dc4bC89

PCT代币合约,其地址为:

0x6019384a802310117a6E889e7021d2d0A144fE50

漏洞涉及的相关代码片段为:

独家 | 李矿:比特币第三轮的减半涨幅不一定有上两次高:金色财经报道,在今日的“金色财经xOKEx矿池丨如何抓住矿币减半行情”直播中,Matrixport李矿表示,第一次减半和第二次减半,行情很相似,大概都是70%的涨幅,而且都是在减半后一年左右,都迎来的每次周期的大牛市,随后又是一轮大幅回调。第三轮的减半前4个月和减半后一年内,个人认为历史会相似,但是涨幅不一定有上两次高。 原因如下,1.因为比特币已经挖出了75%,市场上比特币存量比以前大很多; 2.以前买任何币可能要先买比特币,卖任何币要卖成比特币,比特币几乎是唯一的交易对,新兴币种eth以及稳定币种usdt等,蚕食了比特币不少份额。[2020/2/3]

PineconeToke的_transfer()函数:

独家 | 郑世俊:小牛市到来前期参与项目投资:区块链行业发展中,不同的投资机构之间投资逻辑不同,在不同的投资阶段,每个投资机构的选择也不相同。对此,HeightFund合伙人郑世俊对金色财经指出:“我们从好几个维度去分析项目,技术,经济模型,团队,估值,锁仓,退出周期等这些方面。之前看公链会多一些,但随着底层公链做的人越来越多,大多数都是炒概念,最后能跑出来的底层公链顶多三四家,而且技术不断迭代更新,底层公链这个市场会死掉一大批。随着长期熊市,考虑市场下行风险,最近我们没有投项目了,就算投了,二级市场流动性差,也无法退出,之后在预判小牛市到来前期应该会参与一些项目。”[2018/8/3]

在这里,PineconeToken的transferFrom的调用了_transfer()函数,在_transfer()中用户转账会收取手续费,因而实际到账的金额比transferFrom传入的amount值要小。

PineconeFarm合约的deposit()函数:

金色独家 浮点资本CEO郑虎:二级市场的机会大于一级市场:金色财经独家专访,本次金色财经对浮点资本CEO郑虎进行了采访,针对区块链行业项目,郑虎指出:“实际上一些好的项目,在二级市场的价格并不高,二级市场已经出现了很多很好的标的,而且很有可能会诞生出公链领域的黑马。反观一级市场,实际上还存在很多坑。很多项目进入二级市场前,在登陆交易所的过程中,经过长时间的滚动与关注,一些比较差的项目已经被洗掉了。就这个角度而言,二级市场的机会是远远大于一级市场的。此外,不论选择哪个市场进行投资,最终都要选择有具体价值方向的项目,比如身份认证、数据存储等具体层面。”[2018/6/13]

在上述代码中,PineconeFarm将存入的PCT质押到IPineconeStrategy合约中获取收益。通过使用BSC的vm?trace工具,可以发现这个IPineconeStrategy是一个VaultRabbitCake合约。PineconeFarm对用户份额share的计算会用到_wantAmt。而这个_wantAmt和下面的函数片段又有关联。

策略合约的deposit()函数

从上述代码可以看出,在计算sharesAdded时,其分母是wantTotal,而wantTotal依赖balance()。balance是关联的总锁仓PCT余额。由于实际的PCT余额小于deposit传入的金额_wantAmt,这就会造成用户份额在计算时增加了。

最后,当攻击者调用withdraw函数时,只要输入比deposit值大的参数就可以赎回超过质押数的PCT代币。

按照这个机制,黑客在攻击时,可以重复重复调用deposit和withdraw功能,从而导致合约质押的PCT损耗不断增加、资金池持有的PCT余额不断变小。然后在计算奖励时,由于使用资金池中的余额作为分母,而分母越小,则可额外领取的奖励就越多。

了解了代码的漏洞及相关机制后,我们再来看黑客诸多攻击中的一次攻击:

这次攻击中,黑客的地址为:0xfc6682db7e9f57882e8b18ebc9adc7a19f770494,其交易流程如下:

可以看出第一笔交易0xe446f质押了8.1万PCT,然后在0x76d33提取奖励时却提取了16万PCT。

我们继续查看withdraw交易的参数,可以看出传入amount值为22603495a2af5d0ccc34,将其转换为10进制数就是16万,远超质押金额8.1万。详细细节如下图所示:

从这次攻击的漏洞原因看,在转账时有损耗的代币在参与收益类项目时,存在较多的问题。因此灵踪安全提醒项目方要充分考虑损耗对收益计算的影响。

对此类问题,灵踪安全一直以来都会在审计时特别和项目方强调。另外我们也再次强调审计在项目中的重要性,希望项目方在项目上线前充分做好审计工作。

关于灵踪安全:

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

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

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

作者:

灵踪安全CEO谭粤飞

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

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

金星链

AAVEAME:GameFi 下一个发展大趋势?

玩游戏是为了休闲还是为了赚钱?小孩子才做选择题,我们当然是全都要!过去,提起“游戏”,与之绑定最多概念的可能是休闲娱乐、浪费时间、甚至玩物丧志;但是如今,玩游戏可能已经不仅仅只是玩游戏.

[0:46ms0-0:884ms