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跌破60000美元

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

  • ETH跌破1600美元

    行情显示,ETH跌破1600美元,现报1597.55美元,24小时跌幅达到3.81%,行情波动较大,请做好风险控制。

  • 亿万富翁菲利普·拉丰:相比于比特币,其更愿意投资太空

    Coatue Management 创始人兼投资组合经理菲利普·拉丰在 Squawk Box 节目中表示,其目前已无法确定对比特币的看法。 菲利普·拉丰表示,其正在重新思考比特币的定位,并称相比于比特币,其更愿意投资太空。(thestreet)

  • 科技巨头数据中心租赁承诺突破8500亿美元

    6月24日,据彭博对监管文件的分析,随着科技巨头竞相扩建服务器集群,大型云计算公司未来的数据中心租赁承诺总额在过去一年中持续攀升,至超过8500亿美元。上季Meta新增租赁承诺790亿美元,较上期增长76%;截至3月31日,总额达到1829亿美元。Meta CEO扎克伯格曾表示,公司到2030年前将在AI基础设施方面投入数千亿美元。微软紧随其后,新增租赁承诺超过410亿美元,总额达到1966亿美元。

  • 18倍杠杆做多2.1万枚ETH,某地址3461万美元多单浮亏169.6万美元

    据链上分析师 Ai 姨监测,某地址昨日以 18 倍杠杆做多 2.1 万枚 ETH,约 3461 万美元,目前浮亏 169.6 万美元,开仓价 1728.5 美元,清算价 1590.1 美元。

  • 过去1小时加密市场爆仓达1.34亿美元,其中多单爆仓1.25亿美元

    据 CoinGlass 数据,最近 1 小时全网爆仓金额达 1.34 亿美元,其中多单爆仓金额为 1.25 亿美元,空单爆仓金额为 853.9 万美元。

  • BTC跌破61000美元

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

  • 美国10年期国债收益率跌至4.4138%,为5月11日以来的最低水平

    6月24日,美国10年期国债收益率跌至4.4138%,为5月11日以来的最低水平。美国30年期国债收益率跌至4.8572%,为4月15日以来的最低水平。

  • Strategy股价跌破100美元,为2024年3月以来首次

    Strategy股价跌破100美元,为2024年3月以来首次。

  • 国际油价重挫 美油期货跌破70美元整数关口

    6月24日,国际原油价格持续下挫,美国WTI原油期货盘中跌破70美元/桶整数关口,日内大跌4.4%,创3月2日以来新低,回落至伊朗战事爆发前水平。布伦特原油期货8月合约价格跌4.5%,报73.6美元/桶。市场对中东局势缓和、伊朗原油供应恢复预期升温,以及美国通胀引发的加息预期,打压油价表现。