SharkTeam:合约精度计算漏洞与安全建议
近几个月,连续发生多起安全事件与合约开发过程中的价格精度计算漏洞有关,损失金额已超千万美元,MIM_SPELL 650?万美元、RadiantCapital 450?万美元、Onyx Protocol 210?万美元等,均是因为计算时精度出现了问题导致关键变量计算错误从而被攻击。
SharkTeam?将这类安全事件进行了总结,并给出行之有效的安全建议,希望后续协议可以引以为戒,保护用户加密资产安全。
详细分析:https://bit.ly/3ScR7TK
详细分析:https://bit.ly/47cKeI6
精度问题大体是分为两类:
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