A Branch History Directed Heuristic Search for Effective Binary Level Dynamic Symbolic Execution

被引:2
|
作者
Hu, Yan [1 ]
Kong, Weiqiang [1 ]
Ren, Yizhi [2 ]
Choo, Kim-Kwang Raymond [3 ]
机构
[1] Dalian Univ Technol, Sch Software, Dalian 116023, Peoples R China
[2] Hangzhou Dianzi Univ, Sch Cyberspace, Hangzhou 310018, Zhejiang, Peoples R China
[3] Univ Texas San Antonio, Dept Informat Syst & Cyber Secur, San Antonio, TX 78249 USA
来源
IEEE ACCESS | 2017年 / 5卷
基金
中国国家自然科学基金;
关键词
Dynamic symbolic execution; branch history; test case generation; heuristic search; cyber-physical system;
D O I
10.1109/ACCESS.2017.2706943
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Heuristic search is an important part of modern dynamic symbolic execution (DSE) tools, as heuristic search can be used to effectively explore the large program input space. Searching task remains one of several research challenges due to the fact that the input space grows exponentially with the increase of program size, and different programs may have very different structures. The challenge is compounded in a cyber-physical system or cloud-based Internet of Things environment. In this paper, we propose a novel heuristic search algorithm, which analyzes the program execution history and uses the refined history information to inform the search. This paper is based on the observation that the branch and input history generated during dynamic symbolic execution can help memorize the explored input space, and infer the partial structure of the program. With a summarized branch history, the proposed heuristic search makes informed (and better) decisions about which input area to search next for better efficiency. To evaluate the search algorithm, we implement the core DSE engine, integrated with modules to perform execution history collection and analysis. To make our method practical, we incorporate taint analysis and constraint solving statistics to guide the search algorithm. Experimental results demonstrate that with the rich history information, the newsearch algorithm can explore the input space more effectively, thus resulting in detecting software defects faster.
引用
收藏
页码:8752 / 8762
页数:11
相关论文
共 22 条
  • [1] Binary-level Directed Symbolic Execution Through Pattern Learning
    Zhang, Zhijie
    Chen, Liwei
    Wei, Haolai
    Dong, Guochao
    Zhang, Yuantong
    Nie, Xiaofan
    Shi, Gang
    2022 IEEE INTL CONF ON PARALLEL & DISTRIBUTED PROCESSING WITH APPLICATIONS, BIG DATA & CLOUD COMPUTING, SUSTAINABLE COMPUTING & COMMUNICATIONS, SOCIAL COMPUTING & NETWORKING, ISPA/BDCLOUD/SOCIALCOM/SUSTAINCOM, 2022, : 50 - 57
  • [2] Directed Symbolic Execution for Binary Vulnerability Mining
    Wu, Bo
    Li, Mengjun
    Zhang, Bin
    Zhang, Quan
    Tang, Chaojing
    2014 IEEE WORKSHOP ON ELECTRONICS, COMPUTER AND APPLICATIONS, 2014, : 614 - 617
  • [3] BINSEC/SE: A Dynamic Symbolic Execution Toolkit for Binary-level Analysis
    David, Robin
    Bardin, Sebastien
    Ta, Thanh Dinh
    Feist, Josselin
    Mounier, Laurent
    Potet, Marie-Laure
    Marion, Jean-Yves
    2016 IEEE 23RD INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), VOL 1, 2016, : 653 - 656
  • [4] A Survey of Search Strategies in the Dynamic Symbolic Execution
    Liu, Yu
    Zhou, Xu
    Gong, Wei-Wei
    4TH ANNUAL INTERNATIONAL CONFERENCE ON INFORMATION TECHNOLOGY AND APPLICATIONS (ITA 2017), 2017, 12
  • [5] Protocol Knowledge Combined Directed Symbolic Execution for Binary Programs
    Huang, Hui
    Lu, Yu-Liang
    Zhao, Jun
    Wu, Zhi-Yong
    2013 THIRD INTERNATIONAL CONFERENCE ON INSTRUMENTATION & MEASUREMENT, COMPUTER, COMMUNICATION AND CONTROL (IMCCC), 2013, : 120 - 124
  • [6] A Systematic Review of Search Strategies in Dynamic Symbolic Execution
    Sabbaghi, Arash
    Keyvanpour, Mohammad Reza
    COMPUTER STANDARDS & INTERFACES, 2020, 72
  • [7] 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
  • [8] Directed Dynamic Symbolic Execution for Static Analysis Warnings Confirmation
    Gerasimov, A. Yu
    PROGRAMMING AND COMPUTER SOFTWARE, 2018, 44 (05) : 316 - 323
  • [9] Directed Dynamic Symbolic Execution for Static Analysis Warnings Confirmation
    A. Yu. Gerasimov
    Programming and Computer Software, 2018, 44 : 316 - 323
  • [10] Enhancing Dynamic Symbolic Execution by Automatically Learning Search Heuristics
    Cha, Sooyoung
    Hong, Seongjoon
    Bak, Jiseong
    Kim, Jingyoung
    Lee, Junhee
    Oh, Hakjoo
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2022, 48 (09) : 3640 - 3663