原标题:《独家|灵踪安全:Pinecone被攻击事件分析》
作者:灵踪安全
8月19日,BSC上的收益聚合项目PineconeFinance的保险库受到黑客攻击,损失约350万没PCT代币。
截至写稿时为止,项目方已经针对此次攻击中受损的用户发布了补偿计划:项目团队及投资人共持有491万枚代币,将用所有代币补偿用户。
尽管此次攻击受损的金额相对近期动辄千万、上亿美元的金额不算太大,但这起攻击事件还是给我们留下了值得吸取的经验和教训。
这次攻击出现漏洞的地方在于转账过程使用的代币有损耗,而合约对这个损耗没有处理好于是就导致漏洞出现从而被黑客攻击。
在正常状况下,用户之间转账代币的时候,如果代币在转账过程中没有损耗,处理起来是比较简单的。但如果某些代币在转账过程中会出现损耗,则处理这类代币的转账就要非常小心了。
比特币开发人员正在开发保险库功能,可阻止恶意黑客:金色财经报道,比特币开发人员James O'Beirne正在开发一项比特币保险库功能,当黑客试图窃取他们的比特币时提醒用户,然后通过将资金转移到更安全的钱包来阻止盗窃。该功能类似于一种比特币智能合约或“契约”,对比特币的使用方式施加限制,保险库用户必须在花费比特币(BTC)之前在两个不同的区块中传输两个单独的交易,在第一次交易(有时间延迟)后发出警报,允许用户批准交易或将代币扫到另一个钱包。O'Beirne在他的提案草案中写道:“托管比特币的风险是众所周知的,该提案引入了一种机制,可以显著减轻密钥泄露的最坏情况结果:代币丢失。”[2023/3/1 12:35:24]
在Pinecone项目中,其代币PCT是作为资金池的质押代币,在其合约设计的代币转账过程中会有手续费的损耗。而项目将这个损耗计入了用户的份额中,于是用户份额和质押的PCT总额就会出现偏差。这个偏差就能被攻击者用来领取多余的奖励。
MakerDAO与Lido Finance的新保险库WSTETH-B上线Oasis.app和DeFi Saver:5月18日消息,MakerDAO与Lido Finance的新保险库WSTETH-B上线DeFi平台Oasis.app,可用来自Lido Finance的wstETH以0.75%的稳定费铸造Dai,WSTETH-BVault的清算比率为最大15%,债务上限为1.5亿枚Dai,WSTETH-B是WSTETH-AVault类型的低费用版本。此外,一站式资产管理解决方案DeFi Saver将WSTETH-B添加到其平台,0.75%稳定费,185%清算率。[2022/5/18 3:24:51]
具体而言,本次攻击存在漏洞的合约有:
PineconeFarm合约,其地址为:
BadgerDAO与Yearn.Finance合作共同建立新的WBTC保险库:据官方博客消息,去中心化组织BadgerDAO宣布了与Yearn.Finance的一项合作计划,旨在将Yearn.Finance的可持续保险库技术带给BadgerDAO,并共同推进DeFi中的比特币的发展。BadgerDAO会将其当前的合成比特币保险库余额迁移到Yearn的帐户,Yearn保险库将显示在BadgerDAO的应用程序中。此外,这两种协议将一起建立一个新的WBTC保险库。该保险库里的费用将由BadgerDAO和Yearn.Finance协议共同承担。[2021/2/11 19:29:59]
0x4099f27fb72788b7bb5cb64e3d2b865eb82d0f8f
farm合约使用的策略合约IPineconeStrategy,其地址为:
Yearn Finance:yDAI保险库已恢复 已用YFI铸造近970万枚DAI:2月9日晚间,Yearn Finance官方发布推文表示:“yDAI保险库已恢复。Yearn用YFI从Treasury开设了一个Maker保险库,铸造了970万枚DAI,并使yDAI Vault完整。Yearn团队还附上交易信息,显示约1591.529枚YFI保证金用作铸造价值近970万枚DAI代币。此前2月5日消息,Yearn v1 yDAI保险库遭到攻击,损失1100万美元。”[2021/2/10 19:22:51]
0x1e542DB46eb87cc8E5fA8e1856eC53F89dc4bC89
PCT代币合约,其地址为:
0x6019384a802310117a6E889e7021d2d0A144fE50
比特币钱包服务商Xapo兜售前阿尔卑斯山的军用仓作为比特币保险库:比特币钱包服务商Xapo已经允许一名记者访问瑞士阿尔卑斯山的一个秘密的前军事仓库,该公司用它来为其私人客户存储比特币。这个建于1947年的地堡据称是冷战期间瑞士军队的秘密总部。记者Joon Ian Wong在最近一篇关于石英和世界经济论坛的文章中详细讨论了他在瑞士阿尔卑斯山的一座花岗岩山上的秘密军事基地之旅。截至2017年11月底,这个10000平方英尺的基地由Deltalis公司作为数据中心运营。[2017/11/27]
漏洞涉及的相关代码片段为:
PineconeToke的_transfer()函数:
在这里,PineconeToken的transferFrom的调用了_transfer()函数,在_transfer()中用户转账会收取手续费,因而实际到账的金额比transferFrom传入的amount值要小。
PineconeFarm合约的deposit()函数:
在上述代码中,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万。详细细节如下图所示:
从这次攻击的漏洞原因看,在转账时有损耗的代币在参与收益类项目时,存在较多的问题。因此灵踪安全提醒项目方要充分考虑损耗对收益计算的影响。
对此类问题,灵踪安全一直以来都会在审计时特别和项目方强调。另外我们也再次强调审计在项目中的重要性,希望项目方在项目上线前充分做好审计工作。
作者:
灵踪安全CEO谭粤飞
美国弗吉尼亚理工大学(VirginiaTech,Blacksburg,VA,USA)工业工程硕士(Master)。曾任美国硅谷半导体公司AIBTInc软件工程师,负责底层控制系统的开发、设备制程的程序实现、算法的设计,并负责与台积电的全面技术对接和交流。自2011至今,从事嵌入式,互联网及区块链技术的研究,深圳大学创业学院《区块链概论》课程教师,中山大学区块链与智能中心客座研究员,广东省金融创新研究会常务理事?。个人拥有4项区块链相关专利、3本出版著作。
标签:NFTECOINEPCTGenesis NFTfilecoin币在哪个交易所PINETWORKDEFI价格SPCT Token
据VirtualStrategy8月24日报道,根据ReportsandData最新报告显示,到2028年,全球区块链技术市场规模有望达到1729亿美元,复合年增长率达66%.
OpenSea数据显示,文本类NFT项目「FirstFirstNFTs」上线24小时销售额达到3280ETH,超过Loot,排名OpenSea24小时销售额第一位.
巴比特讯,DappRadar最新数据显示,NFT项目APEDAOREMIX!过去24小时成交量达901万美元,涨幅为2564.18%,排名第二.
有了LootNFT,不妨试试这些衍生项目! 原文链接:https://twitter.com/shmula/status/1434747560770428930原文作者:PeterAbilla译.
作者:边界的LilyKing作者简介:作为总法律顾问任职于一家管理超400亿美元资产的亚洲最大的另类投资管理基金,即将加入亚洲最大的加密资产托管平台和机构资管平台Cobo担任COO.
巴比特讯,9月8日,Yearn.finance创始人AndreCronje发文表示,类Loot游戏Rarity下一个扩展引入了“技能”机制.