Symbolic Execution and Quantitative Reasoning: Applications to Software Safety and Security

被引:0
|
作者
Pasareanu, Corina S. [1 ]
机构
[1] NASA Ames Research Center
来源
Synthesis Lectures on Software Engineering | 2020年 / 4卷 / 02期
关键词
Software reliability;
D O I
10.2200/S01010ED2V01Y202005SWE006
中图分类号
学科分类号
摘要
This book reviews recent advances in symbolic execution and its probabilistic variant and discusses how they can be used to ensure the safety and security of software systems. Symbolic execution is a systematic program analysis technique which explores multiple program behaviors all at once by collecting and solving symbolic constraints collected from the branching conditions in the program. The obtained solutions can be used as test inputs that execute feasible program paths. Symbolic execution has found many applications in various domains, such as security, smartphone applications, operating systems, databases, and more recently deep neural networks, uncovering subtle errors and unknown vulnerabilities. We review here the technique has also been extended to reason about algorithmic complexity and resource consumption. Furthermore, symbolic execution has been recently extended with probabilistic reasoning, allowing one to reason about quantitative properties of software systems. The approach computes the conditions to reach target program events of interest and uses model counting to quantify the fraction of the input domain satisfying these conditions thus computing the probability of event occurrence. This probabilistic information can be used for example to compute the reliability of an aircraft controller under different wind conditions (modeled probabilistically) or to quantify the leakage of sensitive data in a software system, using information theory metrics such as Shannon entropy. This book is intended for students and software engineers who are interested in advanced techniques for testing and verifying software systems. Table of Contents: Acknowledgments / Introduction / Symbolic Execution: The Basics / Symbolic Complexity Analysis / Probabilistic Reasoning / Side-Channel Analysis / Conclusion and Directions for the Future / Bibliography / Author's Biography Copyright © 2020 by Morgan & Claypool.
引用
收藏
页码:1 / 75
相关论文
共 50 条
  • [1] Security guarantees for the execution infrastructure of software applications
    Piessens, Frank
    Devriese, Dominique
    Muhlberg, Jan Tobias
    Strackx, Raoul
    2016 IEEE CYBERSECURITY DEVELOPMENT (IEEE SECDEV 2016), 2016, : 81 - 87
  • [2] Rethinking Pointer Reasoning in Symbolic Execution
    Coppa, Emilio
    D'Elia, Daniele Cono
    Demetrescu, Camil
    PROCEEDINGS OF THE 2017 32ND IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE'17), 2017, : 613 - 618
  • [3] Symbolic Execution and Recent Applications to Worst-Case Execution, Load Testing, and Security Analysis
    Pasareanu, Corina S.
    Kersten, Rody
    Luckow, Kasper
    Phan, Quoc-Sang
    ADVANCES IN COMPUTERS, VOL 113, 2019, 113 : 289 - 314
  • [4] SOFTWARE SPECIALIZATION VIA SYMBOLIC EXECUTION
    COENPORISINI, A
    DEPAOLI, F
    GHEZZI, C
    MANDRIOLI, D
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1991, 17 (09) : 884 - 899
  • [5] Efficient symbolic execution for software testing
    Kinder, Johannes
    2014 FORMAL METHODS IN COMPUTER-AIDED DESIGN (FMCAD), 2014, : 5 - 5
  • [6] Automatically generating test cases for safety-critical software via symbolic execution
    Kurian, Elson
    Briola, Daniela
    Braione, Pietro
    Denaro, Giovanni
    JOURNAL OF SYSTEMS AND SOFTWARE, 2023, 199
  • [7] Shadow Symbolic Execution for Testing Software Patches
    Kuchta, Tomasz
    Palikareva, Hristina
    Cadar, Cristian
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2018, 27 (03)
  • [8] Distributed Symbolic Execution for Binary Software Testing
    Wu, Bo
    Li, Mengjun
    Zhang, Bin
    Zhang, Quan
    Tang, Chaojing
    2014 IEEE WORKSHOP ON ELECTRONICS, COMPUTER AND APPLICATIONS, 2014, : 618 - 621
  • [9] APPLICATIONS OF SYMBOLIC EXECUTION TO PROGRAM TESTING
    DARRINGER, JA
    KING, JC
    COMPUTER, 1978, 11 (04) : 51 - 59
  • [10] Review of Symbolic Execution Technology and Applications
    Wu, Hao
    Zhou, Shilong
    Shi, Donghui
    Li, Qiang
    Computer Engineering and Applications, 2023, 59 (08): : 56 - 72