An Approach for Detecting Feasible Paths Based on Minimal SSA Representation and Symbolic Execution

被引:2
|
作者
Marashdih, Abdalla Wasef [1 ]
Zaaba, Zarul Fitri [1 ]
Suwais, Khaled [2 ]
机构
[1] Univ Sains Malaysia, Sch Comp Sci, George Town 11800, Malaysia
[2] Arab Open Univ, Fac Comp Studies, POB 84901, Riyadh 11681, Saudi Arabia
来源
APPLIED SCIENCES-BASEL | 2021年 / 11卷 / 12期
关键词
detection; feasible paths; SSA; static analysis; symbolic execution;
D O I
10.3390/app11125384
中图分类号
O6 [化学];
学科分类号
0703 ;
摘要
Static analysis is one of the techniques used today to analyze source codes and minimize the issue of software vulnerability. Static analysis has the ability to observe all possible software paths in an application through the scrutiny of a web application's source code. Among those paths, some may be considered feasible paths, which refer to any paths that the test cases can execute. The detection of feasible paths in the results of a static analysis helps to minimize the false positive rate. However, the detection of feasible paths can be challenging, especially for programs that have multiple conditions in the same branch. The aim is to ensure that each feasible path is detected only once (not duplicated). This paper proposes an approach based on minimal static single assignment (MSSA) form and symbolic execution to detect feasible paths. The proposed approach starts by converting the source code into an abstract syntax tree (AST), followed by converting the AST to minimal SSA representation, which helps to decrease the number of instructions in the SSA form. An algorithm was built to examine all of the instructions of the SSA form, identify whole paths in the source code, and extract constraints along each path. A path weight method (PWM) is proposed in this work to avoid detecting duplicated feasible paths. The satisfiability modulo theory (SMT) solver was used to check the satisfiability of each path condition. The proposed approach was tested on seven well-known test programs that have been used in related studies and 10 large scale programs. The experimental results indicate that the proposed method (PWM) can avoid detecting duplicated feasible paths, and the proposed approach reduced the time required for generating the paths compared to that in related studies.
引用
收藏
页数:27
相关论文
共 24 条
  • [1] A Detecting Method of Array Bounds Defects Based on Symbolic Execution
    Shan, Chun
    Sun, Shiyou
    Xue, Jingfeng
    Hu, Changzhen
    Zhu, Hongjin
    NETWORK AND SYSTEM SECURITY, 2017, 10394 : 373 - 385
  • [2] FlawCheck: Detecting Smart Contract Vulnerabilities Based on Symbolic Execution
    Gou, Naixiang
    Zhao, Xiangfu
    Wang, Shiji
    Zhang, Hanfeng
    Yang, Jiahui
    SECURITY AND PRIVACY, 2025, 8 (02):
  • [3] Detecting Shared Congestion Paths Based on Sparse Representation
    Yu, Lidong
    Chen, Ming
    Gong, Yong
    Bai, Huali
    Xing, Changyou
    INFORMATION-AN INTERNATIONAL INTERDISCIPLINARY JOURNAL, 2012, 15 (01): : 323 - 330
  • [4] Detecting Integer Overflow in Windows Binary Executables based on Symbolic Execution
    Zhang, Bin
    Feng, Chao
    Wu, Bo
    Tang, Chaojing
    2016 17TH IEEE/ACIS INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ARTIFICIAL INTELLIGENCE, NETWORKING AND PARALLEL/DISTRIBUTED COMPUTING (SNPD), 2016, : 385 - 390
  • [5] Dynamic symbolic execution approach based on tabu search
    Cai, Jun
    Zou, Peng
    Ma, Jinxin
    He, Jun
    Beijing Hangkong Hangtian Daxue Xuebao/Journal of Beijing University of Aeronautics and Astronautics, 2015, 41 (12): : 2348 - 2355
  • [6] An Approach for Detecting Infeasible Paths Based on a SMT Solver
    Jiang, Shujuan
    Wang, Hongyang
    Zhang, Yanmei
    Xue, Meng
    Qian, Junyan
    Zhang, Miao
    IEEE ACCESS, 2019, 7 : 68058 - 68069
  • [7] The Method for Parallel Approach to Sensitive Point Based on Dynamic Symbolic Execution
    Cao, Yan
    Wei, Qiang
    Wang, Qingxian
    PROCEEDINGS OF THE 2012 EIGHTH INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND SECURITY (CIS 2012), 2012, : 661 - 665
  • [8] 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
  • [9] A unit-based symbolic execution method for detecting memory corruption vulnerabilities in executable codes
    Baradaran, Sara
    Heidari, Mahdi
    Kamali, Ali
    Mouzarani, Maryam
    INTERNATIONAL JOURNAL OF INFORMATION SECURITY, 2023, 22 (05) : 1277 - 1290
  • [10] A unit-based symbolic execution method for detecting memory corruption vulnerabilities in executable codes
    Sara Baradaran
    Mahdi Heidari
    Ali Kamali
    Maryam Mouzarani
    International Journal of Information Security, 2023, 22 : 1277 - 1290