Data-Flow Analysis Heuristic for Vulnerability Detection on Configurable Systems - Andrade, Gleyberson; Cirilo, Elder; Durelli, Vinicius; Cafeo, Bruno; Adachi, Eiji (Anais do Workshop de Visualização, Evolução e Manutenção de Software (VEM); 2020: Anais do VIII Workshop de Visualização, Evolução e Manutenção de Software, 2020)
Configurable software systems offer a variety of benefits such as supporting easy configuration of custom behaviours for distinctive needs. However, it is known that the presence of configuration options in source code complicates maintenance tasks and requires additional effort from developers when adding or editing code statements. They need to consider multiple configurations when executing tests or performing static analysis to detect vulnerabilities. Therefore, vulnerabilities have been widely reported in configurable software systems. Unfortunately, the effectiveness of vulnerability detection depends on how the multiple configurations (i.e., samples sets) are selected. In this paper, we tackle the challenge of generating more adequate system configuration samples by taking into account the intrinsic characteristics of security vulnerabilities. We propose a new sampling heuristic based on data-flow analysis for recommending the subset of configurations that should be analyzed individually. Our results show that we can achieve high vulnerability-detection effectiveness with a small sample size.