The verification that planned security mechanisms are actually implemented in the software code is a challenging endeavor. In the context of model-based development, the implemented security mechanisms must capture all intended security properties that were considered in the design models. Assuring this compliance manually is labor intensive and can be error-prone. This work introduces the first semi-automatic technique for secure data flow compliance checks between design models and code. We develop heuristic-based automated mappings between a design-level model (SecDFD, provided by humans) and a code-level representation (Program Model, automatically extracted from the implementation) in order to guide users in discovering compliance violations, and hence potential security flaws in the code. These mappings enable an automated, and project-specific static analysis of the implementation with respect to the desired security properties of the design model. We contribute with (i) a definition of corresponding elements between the design-level and the implementation-level models and a heuristic-based approach to search for correspondences, (ii) two types of security compliance checks using static code analysis, and (iii) an implementation of our approach as a publicly available Eclipse plugin, evaluated with three studies on open source Java projects. Our evaluation shows that the mappings are automatically suggested with up to 87.2% precision. Further, the two developed types of security compliance checks are relatively precise (average precision is 79.6% and 100%), but may still overlook some implemented information flows (average recall is 65.5% and 94.5%) due to the large gap between the design and implementation. Finally, our approach enables a project-specific analysis with up to 62% less false alarms raised by an existing data flow analyzer.
翻译:在基于模型的开发中,已实施的安全机制必须包含设计模型中考虑的所有预定安全属性。确保这一合规性是人工操作的,而且容易出错。这项工作引入了第一个半自动技术,用于在设计模型和代码之间进行数据流动合规检查。我们开发了一个设计级模型(由人提供的SecDFDD)和一个代码级代表制(方案模型,从执行中自动提取)之间的基于超自然的自动映像(方案模型,从执行中自动提取),以指导用户发现合规违规,从而发现代码中可能存在的安全缺陷。这些映像能够对设计模型的预期安全属性进行自动和具体项目的静态分析。我们协助(一)界定设计级和执行级模型之间的相应要素,以及基于超自然的搜索方法(二)使用静态代码分析进行两种类型的安全合规性检查,以及(三)执行我们作为公开提供的Eclipseal系统运行流程的运行流程,通过三种类型项目进行相对准确性分析,对当前项目进行了更精确性评估。