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 条
  • [31] Software reliability, safety and security
    Krumov, Assen V.
    2005 IEEE INTELLIGENT DATA ACQUISITION AND ADVANCED COMPUTING SYSTEMS: TECHNOLOGY AND APPLICATIONS, 2005, : 429 - 434
  • [32] THE METHOD OF SOFTWARE BEHAVIOR DETECTION BASED-ON DYNAMIC SYMBOLIC EXECUTION
    Ding, Bao-Zhen
    Lin, Jiu-Chuan
    2011 3RD INTERNATIONAL CONFERENCE ON COMPUTER TECHNOLOGY AND DEVELOPMENT (ICCTD 2011), VOL 1, 2012, : 605 - 610
  • [33] Parallel Symbolic Execution for Automated Real-World Software Testing
    Bucur, Stefan
    Ureche, Vlad
    Zamfir, Cristian
    Candea, George
    EUROSYS 11: PROCEEDINGS OF THE EUROSYS 2011 CONFERENCE, 2011, : 183 - 197
  • [34] Accelerating SoC Security Verification and Vulnerability Detection Through Symbolic Execution
    Tang, Shibo
    Wang, Xingxin
    Gao, Yifei
    Hu, Wei
    2022 19TH INTERNATIONAL SOC DESIGN CONFERENCE (ISOCC), 2022, : 207 - 208
  • [35] Machine learning steered symbolic execution framework for complex software code
    Bu, Lei
    Liang, Yongjuan
    Xie, Zhunyi
    Qian, Hong
    Hu, Yi-Qi
    Yu, Yang
    Chen, Xin
    Li, Xuandong
    FORMAL ASPECTS OF COMPUTING, 2021, 33 (03) : 301 - 323
  • [36] Automated Search for Vulnerabilities in ARM Software Using Dynamic Symbolic Execution
    T. D. Ovasapyan
    P. V. Knyazev
    D. A. Moskvin
    Automatic Control and Computer Sciences, 2021, 55 : 932 - 940
  • [37] Automated Compatibility Testing Method for Software Logic by Using Symbolic Execution
    Uetsuki, Keiji
    Matsuodani, Tohru
    Tsuda, Kazuhiko
    2015 IEEE EIGHTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS (ICSTW), 2015,
  • [38] Integration Testing of Software Product Lines Using Compositional Symbolic Execution
    Shi, Jiangfan
    Cohen, Myra B.
    Dwyer, Matthew B.
    FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, FASE 2012, 2012, 7212 : 270 - 284
  • [39] Sound Symbolic Execution via Abstract Interpretation and Its Application to Security
    Tiraboschi, Ignacio
    Rezk, Tamara
    Rival, Xavier
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, VMCAI 2023, 2023, 13881 : 267 - 295
  • [40] Symbolic Execution vs. Search for Software Vulnerability Detection and Patching
    Roychoudhury, Abhik
    SECURITY, PRIVACY, AND APPLIED CRYPTOGRAPHY ENGINEERING, SPACE 2018, 2018, 11348