The notion of Attack Surface refers to the critical points on the boundary of a software system which are accessible from outside or contain valuable content for attackers. The ability to identify attack surface components of software system has a significant role in effectiveness of vulnerability analysis approaches. Most prior works focus on vulnerability techniques that use an approximation of attack surfaces and there has not been many attempt to create a comprehensive list of attack surface components. Although limited number of studies have focused on attack surface analysis, they defined attack surface components based on project specific hypotheses to evaluate security risk of specific types of software applications. In this study, we leverage a qualitative analysis approach to empirically identify an extensive list of attack surface components. To this end, we conduct a Grounded Theory (GT) analysis on 1444 previously published vulnerability reports and weaknesses with a team of three software developers and security experts. We extract vulnerability information from two publicly available repositories: 1) Common Vulnerabilities and Exposures, and 2) Common Weakness Enumeration. We ask three key questions: where the attacks come from, what they target, and how they emerge, and to help answer these questions we define three core categories for attack surface components: Entry points, Targets, and Mechanisms. We extract attack surface concepts related to each category from collected vulnerability information using the GT analysis and provide a comprehensive categorization that represents attack surface components of software systems from various perspectives. The comparison of the proposed attack surface model with the literature shows in the best case previous works cover only 50% of the attack surface components at network level and only 6.7% of the components at code level.
翻译:攻击表面的概念是指从外部可以进入的软件系统边界的临界点,或含有攻击者的宝贵内容。软件系统攻击表面组成部分的识别能力在脆弱性分析方法的有效性方面起着重要作用。大多数先前的工作侧重于使用攻击表面近似值的脆弱程度技术,而没有多次尝试建立攻击表面组成部分的综合清单。虽然研究数量有限,侧重于攻击地面分析,但它们根据具体项目假设界定攻击地面组成部分,以评价特定类型软件应用的安全风险。在本研究中,我们利用定性分析方法,从经验角度确定攻击表面组成部分的广泛清单。为此,我们与一个由三名软件开发者和安全专家组成的小组一起,对先前公布的1444份脆弱性报告和弱点进行了基底理论分析。我们从两个公开的储存库中提取了脆弱性信息:(1) 常见的弱点和暴露,(2) 常见度数字。我们只询问三个拟议的主要问题:攻击的来源、目标、以及它们如何出现,以及帮助回答这些问题。我们从攻击地面组成部分的三种核心文献类别,我们从攻击地面组成部分的地面分析角度,我们从攻击地面组成部分的每个分析角度,从地面分析中选取了各种地面概念。