一句话:提出 VFQL——在值流图上进行组合静态分析的查询语言与框架,支持用户自定义缺陷检测。
现有值流静态分析通常依赖指针分析生成源汇摘要,再调用求解器判断路径可行性,因此用户难以在同一分析架构下方便地发现自定义缺陷。本文提出 VFQL,一种面向值流图的可表达查询语言,以及执行查询以发现用户自定义缺陷的框架。VFQL 还提供可视化值流图的 GUI,并支持无需编写代码即可定义系统库或用户库的建模语言,从而提升可用性。作者在开放基准上评估,实验结果表明 VFQL 相较其他先进工具具有有竞争力的性能;在开源程序上的案例研究也表明,灵活的查询与建模语言能有效支持用户指定缺陷的发现。
Value flow are widely used in static analysis to detect bugs. Existing techniques usually employ a pointer analysis and generate source sink summaries defined by problem domain, then a solver is invoked to determine whether the path is feasible. However, most of the tools does not provide an easy way for users to find user defined bugs within the same architecture of finding pre-defined bugs. This paper presents VFQL, an expressive query language on value flow graph and the framework to execute the query to find user defined defects. Moreover, VFQL provides a nice GUI to demonstrate the value flow graph and a modeling language to define system libraries or user libraries without code, which further enhances its usability. The experimental results on open benchmarks show that VFQL achieve a competitive performance against other state of art tools. The result of case study conducted on open source program shows that the flexible query and modeling language provide a great support in finding user specified defects.
DOI 原文 ·
@inproceedings{paperbot5355,
title = {VFQL: combinational static analysis as query language},
author = {Guang Chen and Yuexing Wang and Min Zhou and Jiaguang Sun},
booktitle = {ISSTA},
year = {2019},
doi = {10.1145/3293882.3338997}
}