信息网络安全 ›› 2018, Vol. 18 ›› Issue (9): 86-94.doi: 10.3969/j.issn.1671-1122.2018.09.014

• • 上一篇    下一篇

针对特定文件结构和关键指令的符号执行优化方法

陈虎1, 周瑶1, 赵军锁2   

  1. 1.华南理工大学软件学院, 广东广州 510006
    2.中国科学院软件研究所, 北京 100190
  • 收稿日期:2018-07-17 出版日期:2018-09-30 发布日期:2020-05-11
  • 作者简介:

    作者简介:陈虎(1974—),男,江苏,副教授,博士,主要研究方向为高性能计算、信息安全;周瑶(1995—),男,湖北,硕士研究生,主要研究方向为自动化漏洞挖掘;赵军锁(1973—),男,河北,研究员,硕士,主要研究方向为先进计算、智能信息处理、软件定义卫星。

Symbolic Execution Optimization Methods for Specific File Structures and Key Instructions

Hu CHEN1, Yao ZHOU1, Junsuo ZHAO2   

  1. 1.School of Software Engineering, South China University of Technology, Guangzhou Guangdong 510006, China
    2.Institute of Software, Chinese Academy of Science, Beijing 100190, China
  • Received:2018-07-17 Online:2018-09-30 Published:2020-05-11

摘要:

针对符号执行面临的文件结构信息缺失和路径爆炸问题,文章分别提出了优化方法。参数固定方法维持文件结构信息字段在新生成的测试案例中为固定值,以保证文件格式的合法性。针对关键指令的剪枝方法融合了静态分析技术,确保符号执行仅产生可以覆盖关键指令的测试案例。此外,文章还提出了基于路径深度和覆盖率的测试案例选择策略和约束求解并行化两种优化方法,以提高符号执行效率。实验表明,采用文章方法可以发现原有符号执行工具不能发现的漏洞,符号执行效率提高43倍,证实了优化方法的有效性。

关键词: 符号执行, 静态分析, 约束求解

Abstract:

In view of the lack of file structure information and path explosion in symbol execution, this paper puts forward the optimization method respectively. The parameter immobilization method maintains the file structure information field as a fixed value in the newly generated test case to ensure the legality of the file format. The pruning method for key instruction that combines static analysis technology ensures symbol execution to only produce test cases that can cover key instructions. This paper also proposes two optimization methods which are test case selection strategy based on path depth and the coverage rate and constraint solving parallelization to improve the efficiency of symbol execution. Experiments show that the proposed optimization method can find vulnerabilities that the original symbolic execution tool can't detect. The efficiency of symbolic execution is increased by nearly 43 times, which confirms the effectiveness of the optimization methods.

Key words: symbolic execution, static analysis, constraint solving

中图分类号: