通信学报 ›› 2019, Vol. 40 ›› Issue (3): 19-27.doi: 10.11959/j.issn.1000-436x.2019062

• 学术论文 • 上一篇    下一篇

基于输入约束的符号执行优化

汪孙律1,2,林渝淇1,杨秋松1,李明树1   

  1. 1. 中国科学院软件研究所基础软件国家工程研究中心,北京 100190;2. 中国科学院大学计算机科学与技术学院,北京 101408
  • 修回日期:2018-08-31 出版日期:2019-03-25 发布日期:2019-04-04
  • 作者简介:汪孙律(1986- ),男,安徽安庆人,中国科学院软件研究所博士生,主要研究方向为软件安全。|林渝淇(1988- ),男,山东潍坊人,博士,中国科学院软件研究所助理研究员,主要研究方向为系统安全与可信计算。|杨秋松(1977- ),男,河北泊头人,博士,中国科学院软件研究所研究员、博士生导师,主要研究方向为软件工程、形式化方法、模型检测、安全操作系统。|李明树(1966- ),男,吉林德惠人,博士,中国科学院软件研究所研究员、博士生导师,主要研究方向为操作系统与基础软件、软硬件协同设计以及软件工程方法和软件过程技术等。
  • 基金资助:
    中国科学院战略性先导科技专项基金资助项目(XDA-Y01-01)

Symbolic execution optimization method based on input constraint

WANG Sunlyu1,2, LIN Yuqi1, YANG Qiusong1, LI Mingshu1   

  1. 1. National Engineering Research Center of Fundamental Software, Institute of Software Chinese Academy of Sciences, Beijing 100190, China 2. School of Computer Science and Technology, University of Chinese Academy of Sciences, Beijing 101408, China

  • Revised:2018-08-31 Online:2019-03-25 Published:2019-04-04
  • Supported by:
    Strategic Priority Research Program of Chinese Academy of Sciences(XDA-Y01-01)

摘要:

为了解决符号执行中路径爆炸、新路径发现率低等问题,提出了基于输入约束的符号执行(ICBSE)优化框架。该方法通过分析程序代码自动提取3类输入约束,随后使用这些约束引导符号执行更关注于核心功能代码。在KLEE中实现了上述优化框架,并对coreutils、binutils、grep、patch、diff这5个程序套件中的7个常用程序做了检测。ICBSE发现了7个之前未知的缺陷(KLEE只检测其中3个)。同时,ICBSE将指令行覆盖率、分支覆盖率分别提升了约20%,时间开销降低了约15%。

关键词: 符号执行, 输入约束, 路径爆炸, 缺陷查找

Abstract:

To solve path explosion,low rate of new path’s finding in the software testing,a new vulnerability discovering architecture based on input constraint symbolic execution (ICBSE) was proposed.ICBSE analyzed program source code to extract three types of constraints automatically.ICBSE then used these input constraints to guide symbolic execution to focus on core functions.Through implemented this architecture in KLEE,and evaluated it on seven programs from five GNU software suites,such as coreutils,binutils,grep,patch and diff.ICBSE detected seven previously unknown bugs (KLEE found three of the seven).In addition,ICBSE increases instruction line coverage/branch coverage by about 20%,and decreases time for finding bugs by about 15%.

Key words: symbolic execution, input constraint, path explosion, bug finding

中图分类号: 

No Suggested Reading articles found!