Over the last years, software development in domains with high security demands transitioned from traditional methodologies to uniting modern approaches from software development and operations (DevOps). Key principles of DevOps gained more importance and are now applied to security aspects of software development, resulting in the automation of security-enhancing activities. In particular, it is common practice to use automated security testing tools that generate reports after inspecting a software artifact from multiple perspectives. However, this raises the challenge of generating duplicate security findings. To identify these duplicate findings manually, a security expert has to invest resources like time, effort, and knowledge. A partial automation of this process could reduce the analysis effort, encourage DevOps principles, and diminish the chance of human error. In this study, we investigated the potential of applying Natural Language Processing for clustering semantically similar security findings to support the identification of problem-specific duplicate findings. Towards this goal, we developed a web application for annotating and assessing security testing tool reports and published a human-annotated corpus of clustered security findings. In addition, we performed a comparison of different semantic similarity techniques for automatically grouping security findings. Finally, we assess the resulting clusters using both quantitative and qualitative evaluation methods.
翻译:过去几年来,安全要求较高的领域的软件开发从传统方法过渡到软件开发和操作(DevOps)的现代化方法(DevOps)。DevOps的主要原则越来越重要,现在适用于软件开发的安全方面,从而实现加强安全活动的自动化。特别是,使用自动化的安全测试工具,在从多种角度检查软件工艺品后产生报告,这是常见的做法。然而,这提出了产生重复安全结论的挑战。为了手工查明这些重复的结论,安全专家必须投入时间、努力和知识等资源。这一进程的部分自动化可以减少分析工作,鼓励DevOps原则,减少人为错误的可能性。在这项研究中,我们研究了应用自然语言处理将类似的安全结论分组的可能性,以支持确定针对具体问题的重复结论。为实现这一目标,我们开发了一个网络应用程序,用于说明和评估安全测试工具报告,并出版了一组安全结论的附加说明材料。此外,我们比较了用于自动组合安全结论的不同语义相似技术。最后,我们利用定量和定性评估方法评估了所产生的分组。