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 条
  • [41] Automated Search for Vulnerabilities in ARM Software Using Dynamic Symbolic Execution
    Ovasapyan, T. D.
    Knyazev, P., V
    Moskvin, D. A.
    AUTOMATIC CONTROL AND COMPUTER SCIENCES, 2021, 55 (08) : 932 - 940
  • [42] Automated Reasoning towards Quantitative Security Assurance
    Zhou, Zhengshu
    Zhi, Qiang
    Yamamoto, Shuichiro
    Liang, Zilong
    PROCEEDINGS OF 2019 IEEE 10TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING AND SERVICE SCIENCE (ICSESS 2019), 2019, : 394 - 399
  • [43] Event Listener Analysis and Symbolic Execution for Testing GUI Applications
    Ganov, Svetoslav
    Killmar, Chip
    Khurshid, Sarfraz
    Perry, Dewayne E.
    FORMAL METHODS AND SOFTWARE ENGINEERING, PROCEEDINGS, 2009, 5885 : 69 - 87
  • [44] Quantitative Analysis for Symbolic Heap Bounds of CPS Software
    Li, Renjian
    Wang, Ji
    Chen, Liqian
    Liu, Wanwei
    Wei, Dengping
    COMPUTER SCIENCE AND INFORMATION SYSTEMS, 2011, 8 (04) : 1251 - 1276
  • [45] Verification of Safety Functions Implemented in Rust - a Symbolic Execution based approach
    Lindner, Marcus
    Fitinghoff, Nils
    Eriksson, Johan
    Lindgren, Per
    2019 IEEE 17TH INTERNATIONAL CONFERENCE ON INDUSTRIAL INFORMATICS (INDIN), 2019, : 432 - 439
  • [46] Multi-Packet Symbolic Execution Testing for Network Protocol Binary Software
    Wen, Shameng
    Feng, Chao
    Meng, Qingkun
    Zhang, Bin
    Wu, Ligeng
    Tang, Chaojing
    PROCEEDINGS OF 2016 5TH INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND NETWORK TECHNOLOGY (ICCSNT), 2016, : 624 - 627
  • [47] Analyzing system software components using API model guided symbolic execution
    Tuba Yavuz
    Ken (Yihang) Bai
    Automated Software Engineering, 2020, 27 : 329 - 367
  • [48] Enhancing Symbolic Execution to Test the Compatibility of Re-engineered Industrial Software
    Tokumoto, Susumu
    Uehara, Tadahiro
    Munakata, Kazuki
    Ishida, Haruyuki
    Eguchi, Toru
    Baba, Masafumi
    2012 19TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC), VOL 1, 2012, : 314 - 317
  • [49] Software vulnerable trace's solving algorithm based on lazy symbolic execution
    Qin, Xiao-Jun
    Zhou, Lin
    Chen, Zuo-Ning
    Gan, Shui-Tao
    Jisuanji Xuebao/Chinese Journal of Computers, 2015, 38 (11): : 2290 - 2300
  • [50] Argon: A Toolbase for Evaluating Software Protection Techniques Against Symbolic Execution Attacks
    Adhikari, Deepak
    McDonald, J. Todd
    Andel, Todd R.
    Richardson, Joseph D.
    SOUTHEASTCON 2022, 2022, : 743 - 750