Cointime

扫码下载App
iOS & Android

SharkTeam:合约精度计算漏洞与安全建议

近几个月,连续发生多起安全事件与合约开发过程中的价格精度计算漏洞有关,损失金额已超千万美元,MIM_SPELL 650万美元、RadiantCapital 450万美元、Onyx Protocol 210万美元等,均是因为计算时精度出现了问题导致关键变量计算错误从而被攻击。

SharkTeam将这类安全事件进行了总结,并给出行之有效的安全建议,希望后续协议可以引以为戒,保护用户加密资产安全。

1. MIM_SPELL攻击事件

发生时间:2024年1月30日,

损失金额:约650万美元,

漏洞原因:合约存在两个借贷变量elastic和base,在进行两者的精度计算时,都采用了向上取整的方式。这样操作会使本身计算结果应为0的参数最后计算得到为1,使两个参数之间的比例失衡,最终能够超额借出MIM代币。

详细分析:https://bit.ly/3ScR7TK

2. RadiantCapital攻击事件

发生时间:2024年1月2日,

损失金额:约450万美元,

漏洞原因:黑客利用了合约中对于新市场尚未进行初始化的漏洞,流动性指数并未初始化,使得黑客可以通过闪电贷函数来操纵其大小,当指数变大后,黑客利用rayDiv函数中的四舍五入精度问题,由于指数变大,通过四舍五入造成的精度损失上限同样变大,黑客重复进行存取操作获利。

3. Onyx Protocol攻击事件

发生时间:2023年11月11日,

损失金额:约210万美元,

漏洞原因:与RadiantCapital攻击事件类似,也利用了新市场尚未初始化流动性的漏洞,并且在divUint函数中存在四舍五入的漏洞造成精度损失。

详细分析:https://bit.ly/47cKeI6

4. WiseLending攻击事件

发生时间:2024年1月12日,

损失金额:约46.5万美元,

漏洞原因:合约在计算借贷份额时使用向上取整,攻击者利用这一点进行重复的存取操作来提高份额价格,份额价格提升后用自己的份额借走了大量的ETH。

5. HopeLend攻击事件

发生时间:2023年10月18日,

损失金额:约85万美元

漏洞原因:黑客最初利用目标资产对应的池中的流动性失衡,操纵与目标资产关联的hToken的流动性指数,扭曲其价值。随后,黑客利用极少量 hToken 的抵押品,借入了所有其他标的资产。此后,黑客同样利用合约分割操作中的rayDiv函数中存在的四舍五入漏洞,反复存入和提现,耗尽了在Hopelend攻击中投入的标的资产。

精度问题大体是分为两类:

1.一类是错误的向上取整,可能导致本应为0的参数取到了1,使后续计算出现严重漏洞;

2.第二类是四舍五入问题,其中尤为严重的是错误使用了rayDiv函数的项目。

安全建议:

1.针对第一类来说,如果项目逻辑需要向上取整操作,在取整变量为1或0等条件下进行多次多样的重复测试,

2.针对第二类可以采用先乘后除统一精度的方式,譬如使用10**18为后缀作为小数点后的数值。

3.无论是哪一种情况,对计算逻辑进行全方面测试,尽可能地考虑到每一种情况,尤其是在不同计算结果有不同的处理逻辑的时候,更需要慎重测试。理论上的逻辑设计与实际的代码实现相结合,全方位无死角的对合约函数进行测试。若测试用例可以覆盖各种变化情况,必然可以避免因为精度计算带来的安全性问题。

SharkTeam的愿景是保护Web3世界的安全。团队由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约底层理论。提供包括链上大数据分析、链上风险预警、KYT/AML、智能合约审计、加密资产追讨等服务,并打造了链上智能风险识别平台ChainAegis,平台支持无限层级的深度图分析,能有效对抗Web3世界的高级持续性威胁(Advanced Persistent Threat,APT)。已与Web3生态各领域的关键参与者,如Polkadot、Moonbeam、polygon、Sui、OKX、imToken、Collab.Land等建立长期合作关系。

官网:https://www.sharkteam.org

Twitter:https://twitter.com/sharkteamorg

Discord:https://discord.gg/jGH9xXCjDZ

Telegram:https://t.me/sharkteamorg

评论

所有评论

推荐阅读

  • BTC跌破75000美元

    行情显示,BTC跌破75000美元,现报74988美元,24小时跌幅达到3.19%,行情波动较大,请做好风险控制。

  • Michael Saylor:Strategy 或在2026 年前出售部分比特币

    据Strategy董事长Michael Saylor 表示,公司不太可能完全不卖出比特币,或将在2026年底前出售部分BTC,并动态管理美元现金储备,以实现每股比特币数量最大化目标。截至目前,Strategy持有约84.38万枚BTC,总价值约650亿美元,平均买入成本约为7.57万美元。当前比特币价格约为7.6万美元,接近其整体持仓成本线。

  • 知情人士:美筹备对伊朗发动新一轮军事打击 但仍未最终决定

    5月23日讯,据知情人士透露,尽管外交努力仍在持续,特朗普政府当日仍在筹备对伊朗发动新一轮军事打击。截至当日下午,关于是否发动打击尚未有最终决定。特朗普在社交媒体发文称,受“与政府事务相关的特殊情况��影响,他将无法出席本周末儿子小唐纳德·特朗普的婚礼。他此前原计划在“阵亡将士纪念日”周末前往其位于新泽西州的私人高尔夫球场度假,但现已决定返回白宫。据多位消息人士透露,鉴于可能发生军事打击,美国军方和情报界的部分人员已取消了原定的“阵亡将士纪念日”周末休假计划。国防和情报官员已开始更新美国海外军事基地的紧急召回名册。与此同时,驻扎在中东的部分美军部队正分批轮换撤离战区。(央视新闻)

  • 新任美联储主席沃什:将领导一个以改革为导向的美联储

    5月23日,第17任美联储主席沃什于周五在白宫宣誓就职。沃什表示: “美联储的使命是促进物价稳定和充分就业。”他说,“当以智慧和清晰的思路、独立和坚定的决心去追求这些目标时,通胀可以降低,经济增长可以更强劲,实际到手工资可以更高,美国可以更加繁荣,而且同样重要的是,美国在世界上的地位也会更加稳固。”他补充说:“为了完成这项使命,我将领导一个以改革为导向的美联储,从过去的成功和错误中吸取教训,既要摆脱静态的框架和模式,又要坚持明确的诚信和绩效���准。”

  • 美国新版战略比特币储备法案取消“100万枚BTC”购买目标,已持有BTC拟锁定20年

    5月23日,美国众议院提出新版两党法案《American Reserve Modernization Act of 2026》(ARMA),拟将美国政府持有的比特币纳入战略储备,并要求至少锁定 20 年。与此前提出的 BITCOIN Act 不同,新法案不再要求美国政府购买 100 万枚 BTC,而是主要将通过刑事和民事没收等方式已持有或未来获得的比特币纳入储备。 同时,法案还将设立独立的数字资产库存,用于管理联邦政府持有的非比特币加密资产。根据草案,进入战略储备的比特币在 20 年内不得出售、交换、拍卖、抵押或以其他方式处置。锁定期结束后,财政部长可建议在任意两年内出售最多 10% 的储备资产。法案还要求政府按季度公开储备证明,并对比特币持仓进行第三方审计。支持者认为,美国不应出售战略性数字资产,而应将其作为现代化国家储备体系的一部分长期持有。

  • 美SEC推迟开放代币化股票交易

    5月23日,据彭博社,由于面临监管担忧及外界反对,美国 SEC 已推迟允许代币化股票交易的相关计划。报道称,SEC 目前正重新评估相关风险及市场影响。

  • BTC跌破76000美元

    行情显示,BTC跌破76000美元,现报75997.97美元,24小时跌幅达到2.28%,行情波动较大,请做好风险控制。

  • 交易员已完全预期到2026年底美联储将加息25个基点

    5月22日,市场定价显示,交易员已完全预期到2026年底美联储将加息25个基点。消息面上,美联储理事沃勒表示,美联储不应再释放降息信号,短时间内应按兵不动。

  • 现货黄金、纽约期金双双失守4500美元

    5月22日,现货黄金、纽约期金双双失守4500美元/盎司,日内跌0.94%。交易员完全定价美联储截至2026年底将加息25个基点。

  • BTC跌破77000美元

    行情显示,BTC跌破77000美元,现报76977.52美元,24小时跌幅达到0.18%,行情波动较大,请做好风险控制。