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 条
  • [21] Analyzing Network Protocol Binary Software with Joint Symbolic Execution
    Wen, Shameng
    Feng, Chao
    Meng, Qingkun
    Zhang, Bin
    Wu, Ligeng
    Tang, Chaojing
    2016 3RD INTERNATIONAL CONFERENCE ON SYSTEMS AND INFORMATICS (ICSAI), 2016, : 738 - 742
  • [22] Testing Network Protocol Binary Software with Selective Symbolic Execution
    Wen, Shameng
    Feng, Chao
    Meng, Qingkun
    Zhang, Bin
    Wu, Ligeng
    Tang, Chaojing
    PROCEEDINGS OF 2016 12TH INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND SECURITY (CIS), 2016, : 318 - 322
  • [23] A survey of new trends in symbolic execution for software testing and analysis
    Corina S. Păsăreanu
    Willem Visser
    International Journal on Software Tools for Technology Transfer, 2009, 11 (4) : 339 - 353
  • [24] SIFT: A Tool for Property Directed Symbolic Execution of Multithreaded Software
    Yavuz, Tuba
    2022 IEEE 15TH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST 2022), 2022, : 433 - 443
  • [25] Embedded software verification using symbolic execution and uninterpreted functions
    Currie, D
    Feng, XS
    Fujita, M
    Hu, AJ
    Kwan, M
    Rajan, S
    INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2006, 34 (01) : 61 - 91
  • [26] Embedded Software Verification Using Symbolic Execution and Uninterpreted Functions
    David Currie
    Xiushan Feng
    Masahiro Fujita
    Alan J. Hu
    Mark Kwan
    Sreeranga Rajan
    International Journal of Parallel Programming, 2006, 34 : 61 - 91
  • [27] An Approach for Safe and Secure Software Protection Supported by Symbolic Execution
    Dorfmeister, Daniel
    Ferrarotti, Flavio
    Fischer, Bernhard
    Haslinger, Evelyn
    Ramler, Rudolf
    Zimmermann, Markus
    DATABASE AND EXPERT SYSTEMS APPLICATIONS - DEXA 2023 WORKSHOPS, 2023, 1872 : 67 - 78
  • [28] Symbolic Execution-Driven Extraction of the Parallel Execution Plans of Spark Applications
    Baresi, Luciano
    Denaro, Giovanni
    Quattrocchi, Giovanni
    ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2019, : 246 - 256
  • [29] Programming Distributed Applications with Symbolic Reasoning on WSNs
    Gaglio, Salvatore
    Lo Re, Giuseppe
    Martorella, Gloria
    Peri, Daniele
    2015 INTERNATIONAL CONFERENCE ON COMPUTING, NETWORKING AND COMMUNICATIONS (ICNC), 2015, : 196 - 201
  • [30] Symbolic Execution of NoSQL Applications using Versioned Schemas
    Winkelmann, Hendrik
    Kuchen, Herbert
    36TH ANNUAL ACM SYMPOSIUM ON APPLIED COMPUTING, SAC 2021, 2021, : 1778 - 1787