#ifdef是否影响漏洞的出现?Linux内核的实证研究
软件工程
2016-05-24 v1
摘要
预处理器通过 #ifdef 支持软件产品的多样化,但也要求开发者付出额外努力来维护和理解可变代码。我们推测 #ifdef 导致开发者产生更多有漏洞的代码,因为他们需要同时推理多个特性并维护可配置代码依赖的复杂心智模型。我们提取了跨 Linux 内核所有配置的变分调用图,并使用配置复杂度度量来比较考虑其漏洞历史的有漏洞与无漏洞函数。我们的目标是了解是否能观察到配置复杂度对漏洞出现的可测量影响。我们的结果表明,除其他外,有漏洞函数比无漏洞函数具有更高的可变性,并且受更少的配置选项约束。这表明开发者倾向于注意到出现在频繁编译的产品变体中的函数。我们旨在提高开发者的意识以更系统地处理可变性,因为配置复杂度是软件产品线中重要但常被忽略的方面。
引用
@article{arxiv.1605.07032,
title = {Do #ifdefs Influence the Occurrence of Vulnerabilities? An Empirical Study of the Linux Kernel},
author = {Gabriel Ferreira and Momin Malik and Christian Kästner and Jürgen Pfeffer and Sven Apel},
journal= {arXiv preprint arXiv:1605.07032},
year = {2016}
}