一句话:提出面向配置选项的污点分析基础设施 ConfTainter,支持显式与隐式的数据/控制流传播,准确率超 96%。
软件配置引发的缺陷普遍且严重,许多检测与诊断技术需要对配置相关变量做静态污点分析,但现有污点分析或静态切片工具难以处理配置对程序行为的复杂影响。本文作为经验论文,先对配置选项的传播策略进行实证研究,总结出配置影响程序行为的四条规则,指出隐式数据流与控制流传播常被现有工具忽略。作者据此设计并实现配置污点分析基础设施 ConfTainter,可支持显式/隐式的数据流与控制流分析,便于研究者与开发者以少量代码实现误配置检测等不同任务。在 5 个流行开源系统上的评估显示,数据流与控制流分析的准确率分别为 96.1% 与 97.7%,召回率为 94.2% 与 95.5%;在误配置检测和配置相关缺陷检测两类任务上也验证了其高适用性。
The prevalence and severity of software configuration-induced issues have driven the design and development of a number of detection and diagnosis techniques. Many of these techniques need to perform static taint analysis on configuration-related variables to analyze the data flow, control flow, and execution paths given by configuration options. However, existing taint analysis or static slicer tools are not suitable for configuration analysis due to the complex effects of configuration on program behaviors. In this experience paper, we conducted an empirical study on the propagation policy of configuration options. We concluded four rules of how configurations affect program behaviors, among which implicit data-flow and control-flow propagation are often ignored by existing tools. We report our experience designing and implementing a taint analysis infrastructure for configurations, ConfTainter. It can support various kinds of configuration analysis, e.g., explicit or implicit analysis for data or control flow. Based on the infrastructure, researchers and developers can easily implement analysis techniques for different configuration-related targets, e.g., misconfiguration detection. We evaluated the effectiveness of ConfTainter on 5 popular open-source systems. The result shows that the accuracy rate of data- and control-flow analysis is 96.1% and 97.7%, and the recall rate is 94.2% and 95.5%, respectively. We also apply ConfTainter to two types of configuration-related tasks: misconfiguration detection and configuration-related bug detection. The result shows that ConfTainter is highly applicable for configuration-related tasks with a few lines of code.
@inproceedings{WangHLLJJLL23,
title = {ConfTainter: Static Taint Analysis For Configuration Options},
author = {Teng Wang and Haochen He and Xiaodong Liu and Shanshan Li and Zhouyang Jia and Yu Jiang and Qing Liao and Wang Li},
booktitle = {ASE},
year = {2023},
doi = {10.1109/ase56229.2023.00067}
}