Verification of Safety Functions Implemented in Rust - a Symbolic Execution based approach

被引:0
|
作者
Lindner, Marcus [1 ]
Fitinghoff, Nils [1 ]
Eriksson, Johan [1 ]
Lindgren, Per [1 ]
机构
[1] Lulea Univ Technol, Lulea, Sweden
关键词
D O I
10.1109/indin41052.2019.8972014
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Symbolic execution allows us to observe and assert properties of program code executing under (partially) unknown inputs and state. In this work we present a case study demonstrating that safety functions implemented in the Rust programming language can be verified by an assertion based approach. To this end, we leverage on previous developments adopting LLVM-KLEE for symbolic execution of Rust programs. In particular we show that reliability can be ensured by proven absence of undefined behavior and that safety properties (expressed as assertions) can be ensured for all reachable paths of the underlying implementation (under symbolic inputs). Moreover, the verification (besides stating assertions) is fully automatic and can be applied without any changes made to the implementation. While assertions have the advantage of being familiar to the mainstream programmer, they lack the expressiveness of dedicated logic developed for model checking. The paper also discusses complexity issues arising from path/state explosion inherent to symbolic execution. The feasibility of the approach is demonstrated on a representative use case implementing a safety function (equality) from the PLCopen library. We obtain complete path- (466) and state- (8) coverage in under 2 seconds for the given example on an i7-7700 laptop computer.
引用
收藏
页码:432 / 439
页数:8
相关论文
共 50 条
  • [21] USING SYMBOLIC EXECUTION FOR VERIFICATION OF ADA TASKING PROGRAMS
    DILLON, LK
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1990, 12 (04): : 643 - 669
  • [22] SEIF: Augmented Symbolic Execution for Information Flow Verification
    Ryan, Kaki
    Gregoire, Matthew
    Sturton, Cynthia
    PROCEEDINGS OF THE 12TH INTERNATIONAL WORKSHOP ON HARDWARE AND ARCHITECTURAL SUPPORT FOR SECURITY AND PRIVACY, HASP 2023, 2023, : 1 - 9
  • [23] Interactive verification of concurrent systems using symbolic execution
    Baeumler, Simon
    Balser, Michael
    Nafz, Florian
    Reif, Wolfgang
    Schellhorn, Gerhard
    AI COMMUNICATIONS, 2010, 23 (2-3) : 285 - 307
  • [24] PROGRAM VERIFICATION BY SYMBOLIC EXECUTION OF HYPERFINITE IDEAL MACHINES
    MORRIS, JM
    HOWARD, M
    LECTURE NOTES IN COMPUTER SCIENCE, 1991, 531 : 322 - 332
  • [25] Full contract verification for ATL using symbolic execution
    Oakes, Bentley James
    Troya, Javier
    Lucio, Levi
    Wimmer, Manuel
    SOFTWARE AND SYSTEMS MODELING, 2018, 17 (03): : 815 - 849
  • [26] Higher order symbolic execution for contract verification and refutation
    Nguyen, Phuc C.
    Tobin-Hochstadt, Sam
    Van Horn, David
    JOURNAL OF FUNCTIONAL PROGRAMMING, 2017, 27
  • [27] Symbolic string verification: An automata-based approach
    Yu, Fang
    Bultan, Tevfik
    Cova, Marco
    Ibarra, Oscar H.
    MODEL CHECKING SOFTWARE, PROCEEDINGS, 2008, 5156 : 306 - 324
  • [28] An Improved Offline Symbolic Execution Approach
    Liu, Xiaolong
    Wu, Zehui
    Wei, Qiang
    PROCEEDINGS OF 2018 THE 2ND INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND ARTIFICIAL INTELLIGENCE (CSAI 2018) / 2018 THE 10TH INTERNATIONAL CONFERENCE ON INFORMATION AND MULTIMEDIA TECHNOLOGY (ICIMT 2018), 2018, : 314 - 320
  • [29] Branch Sequence Coverage Criterion for Testing-Based Formal Verification with Symbolic Execution
    Wang, Rong
    Liu, Shaoying
    2019 COMPANION OF THE 19TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE QUALITY, RELIABILITY AND SECURITY (QRS-C 2019), 2019, : 205 - 212
  • [30] Artificial intelligence-based perioperative safety verification system improved the performance of surgical safety verification execution
    Yu, Xinran
    Wang, Zhiqin
    Wu, Jinyan
    Weng, Dongfang
    AMERICAN JOURNAL OF TRANSLATIONAL RESEARCH, 2024, 16 (04): : 1295 - 1305