面向Rust语言的形式化验证方法研究综述
CSTR:
作者:
作者单位:

作者简介:

通讯作者:

常瑞,E-mail:crix1021@zju.edu.cn

中图分类号:

TP311

基金项目:

国家重点研发计划项目(2022YFB4501903)


Survey on Formal Verification for Rust language
Author:
Affiliation:

Fund Project:

  • 摘要
  • |
  • 图/表
  • |
  • 访问统计
  • |
  • 参考文献
  • |
  • 相似文献
  • |
  • 引证文献
  • |
  • 资源附件
  • |
  • 文章评论
    摘要:

    Rust作为一种新兴的安全系统级编程语言,以其创新的所有权模型和借用检查机制提供了内存安全和并发安全保证.尽管Rust的设计宗旨在于安全性,但现有研究揭示了其仍面临诸多安全挑战.形式化验证作为一种基于严格数学基础的方法,为Rust安全性提升提供了强有力保障.通过构建精准清晰的语义模型,可以证明遵循Rust检查规则的程序满足安全性要求;借助Rust自动化验证工具能够帮助用户确保其Rust程序的安全性和正确性.本综述对Rust形式化验证工作进行了全面系统性分析.本文首先介绍了Rust核心语义和复杂特性,并探讨了Rust形式化语义的研究与验证工作,强调了Rust类型系统在形式化验证中的潜力.其次,本文阐述了面向Rust程序的自动化验证方法,并对比分析了不同验证工具的功能、支持的语言特性、采用的验证技术和适用场景,这对于在Rust项目实际开发流程中指导工具的选择和集成有重要意义.此外,本文还总结了Rust程序验证的典型实例,展示了形式化验证在确保程序正确性方面的显著成效,并结合验证实例总结工具使用建议供用户参考.本文最后讨论了当前领域的技术挑战,并指出未来可能的研究方向,涵盖了unsafe Rust代码的验证、并发代码的验证、可信编译,以及大模型驱动的形式化验证等.本文旨在为Rust社区提供坚实的安全基础,并推动形式化验证在Rust开发中的应用.

    Abstract:

    As an emerging safe system programming language, Rust provides guarantees for memory safety and concurrency safety with its innovative ownership model and borrowing mechanism. Although Rust focuses on safety, existing works has revealed numerous safety challenges it still faces. Formal verification is a method based on rigorous mathematical foundations. It offers strong assurance for enhancing Rust's security. By formalizing precise and clear semantic models, it is possible to prove that programs adhering to Rust's typing rules meet safety requirements. Automated Rust verification tools can assist users in ensuring the safety and correctness of Rust programs. This survey provides a comprehensive and systematic analysis of Rust formal verification. First, it introduces the core semantics and complex features of Rust, and discusses research and verification work on Rust's formal semantics afterwards, highlighting the potential of Rust's type system in formal verification. Second, the paper systematically compares the abilities, language features supported, underlying technologies, and applicable scenarios of different Rust automated verification tools. It is significant for guiding the selection and integration of tools in the actual development process of Rust projects. Additionally, this paper summarizes verified Rust systems, demonstrating the remarkable effectiveness of formal verification in ensuring program correctness, and provides tool selection recommendations for users. Finally, this paper concludes by discussing the current challenges in the field and pointing out directions for future research, including the verification of unsafe Rust code, concurrent code verification, trustworthy compilation, and formal verification driven by large models. This paper aims to provide a solid security foundation for the Rust community and promote the application of formal verification in Rust development.

    参考文献
    相似文献
    引证文献
引用本文

张卓若,常瑞,杨申毅,陈芳.面向Rust语言的形式化验证方法研究综述.软件学报,2025,36(8):0

复制
分享
文章指标
  • 点击次数:
  • 下载次数:
  • HTML阅读次数:
  • 引用次数:
历史
  • 收稿日期:2024-08-26
  • 最后修改日期:2024-10-14
  • 录用日期:
  • 在线发布日期: 2024-12-10
  • 出版日期:
文章二维码
您是第位访问者
版权所有:中国科学院软件研究所 京ICP备05046678号-3
地址:北京市海淀区中关村南四街4号,邮政编码:100190
电话:010-62562563 传真:010-62562533 Email:jos@iscas.ac.cn
技术支持:北京勤云科技发展有限公司

京公网安备 11040202500063号