When assessing the potential impact of code-level vulnerabilities, e.g., discovered by automated analyzers, it is essential to consider them in the context of the system's security design. However, this is a challenging task due to the abstraction gap between security design, often specified using security DSLs, and implementation. As we will show, even security experts lack a complete understanding of this relationship. Intrigued by this gap (and the general disconnect between secure design and secure implementation) we present a study of 66 design-level security DSLs and 559 security checks from 36 code-level analyzers. We identify what concepts are common to both and capture them in the SecLan model, which has been validated by 22 security experts. Based on this, we investigate the relationship between DSLs and analyzers quantitatively and explore it qualitatively together with 9 security experts. We learn that there are few commonalities between design-level and implementation-level security; security checks are often described by overly general weaknesses, resulting in many non-obvious potential relationships between security DSLs and analyzers; and even security experts are overwhelmed by this complexity. We provide an empirical basis that helps practitioners and researchers better understand the gap and serves as a first step toward bridging it.
翻译:在评估代码级漏洞(例如,由自动分析器发现的漏洞)的潜在影响时,必须在系统安全设计的背景下考虑它们。然而,由于安全设计(通常使用安全领域特定语言(DSL)指定)与实现之间存在抽象鸿沟,这是一项具有挑战性的任务。正如我们将要展示的,即使是安全专家也缺乏对这种关系的完整理解。受这一鸿沟(以及安全设计与安全实现之间的普遍脱节)的启发,我们对66种设计级安全DSL和来自36个代码级分析器的559项安全检查进行了研究。我们识别出两者共同的概念,并将其捕获在SecLan模型中,该模型已得到22位安全专家的验证。基于此,我们定量研究了DSL与分析器之间的关系,并与9位安全专家一起定性探讨了这种关系。我们发现设计级与实现级安全性之间很少有共同点;安全检查通常由过于宽泛的弱点描述,导致安全DSL与分析器之间存在许多非显而易见的潜在关系;甚至安全专家也被这种复杂性所困扰。我们提供了一个实证基础,有助于实践者和研究人员更好地理解这一鸿沟,并作为弥合该鸿沟的第一步。