《Future Generation Computer Systems》:An explainable method for security requirements classification through transformer models
编辑推荐:
软件需求安全分类研究采用LoRA微调四款Transformer模型,对比全微调与参数高效方法在计算效率与分类精度上的平衡。通过超参数优化与三种可解释性分析技术(注意力可视化/集成梯度/SHAP),基于SecReq工业数据集验证了模型性能,为需求工程提供透明化安全要求识别方案。
卢卡·佩特里洛(Luca Petrillo)|弗朗切斯科·梅尔卡尔多(Francesco Mercaldo)|安东内拉·桑托内(Antonella Santone)
意大利比萨信息学与电信学研究所(CNR)
摘要
对软件需求进行分类是一项具有挑战性的任务,因为这些需求通常是用自然语言表述的。此外,尤其是在早期阶段识别与安全相关的需求,有助于将这些概念尽早纳入开发过程,从而降低未经授权的访问、数据泄露和其他安全威胁的可能性。在本文中,我们提出了一种用于分类安全需求的方法。我们通过在训练过程中利用所有模型权重,并采用低秩适应(Low-Rank Adaptation)方法对多个Transformer模型进行了微调,这种方法能够更高效、更有效地将预训练的Transformer模型适配到特定任务中。为了优化模型性能,我们还进行了超参数调整。此外,我们比较并分析了这两种方法下最佳模型的性能,并通过三种常见方法(注意力权重可视化、集成梯度和SHAP)提供了可解释性,以帮助我们更好地理解模型的决策过程。
引言
软件需求定义了系统在合同、标准或规范下必须满足的基本功能、约束和期望。明确的需求能够指导开发人员和测试人员在整个开发生命周期中的设计、实现和验证工作。需求收集和定义需要涉及不同角色的参与,如客户、最终用户和开发团队。这种协作应确保项目范围、时间表和预算得到妥善安排。然而,需求的本质是复杂的;它们必须平衡相互竞争的优先事项,适应不断变化的需求,并解决技术约束。因此,正确理解这些需求有助于最小化风险并降低成本,从而交付符合用户期望的高质量软件。研究表明[1],在需求分析阶段犯错的成本远高于后期阶段,这强调了这一阶段的重要性。另一个重要方面是,用户参与不足、规划不当、需求不完整、资源缺乏以及成本估算错误都可能导致项目失败[2]。虽然所有软件需求都很重要,但与安全直接相关的需求用于采取措施保护系统免受未经授权的访问、数据泄露和其他安全威胁。相比之下,其他需求则关注系统的功能性、性能、可用性以及其他操作方面。不同之处在于,安全需求是主动采取的措施,旨在降低风险,因为在过去几年中,尤其是医疗保健[3]、各种Web应用程序[4]和安全关键系统[5]中,软件系统的安全漏洞数量有所增加。
在当今快速发展的技术环境中,自动化识别安全需求起着重要作用。软件系统的复杂性和相互关联性不断增加,从而增加了安全漏洞的潜在风险。自动化确保从开发过程一开始就融入安全考虑,减少了可能导致高风险的疏忽。然而,软件需求规范通常是用自然语言(NL)编写的[7],在其中识别安全需求可能具有挑战性,因为这些需求是隐含的、分散的,并隐藏在多个文档部分中。在需求收集过程中手动搜索和评估既繁琐又容易出错。此外,识别过程应基于客观规则进行,以确保尽可能的一致性和可重复性。
利用自然语言规范中识别安全需求的挑战可以通过自然语言处理(NLP)和深度学习方法的最新进展来解决,这些方法提供了高效且更准确的方法,特别是基于Transformer的模型。它们在许多文本分类研究中取得了最先进的结果,这些研究使用了大规模的预训练和对特定任务的微调[8]。
由于Transformer方法带来的诸多优势,对其进行文本分类的微调已成为一种非常流行的方法。使用特定的数据集可以让它们适应手头的任务,从而提高性能并实现良好的泛化能力[9]。这种技术的关键优势之一是它们能够利用从大规模预训练数据集中学习到的知识和表示。这一步使得模型能够发展出复杂的语言模式、关系和细微差别,从而为任何特定的文本分类任务进行微调。此外,这种方法通常比从头开始训练所需的标记数据更少,因此可能更高效。然而,Transformer微调的最大挑战之一是需要大量的计算资源,这是一个耗时且成本高昂的过程。因此,人们开始寻求替代方法,例如LoRA[10],它试图提供更高效、更有效地将预训练的Transformer模型适配到特定任务的方法。与之前依赖传统机器学习技术(如SVM、朴素贝叶斯、k-NN[11])[12]或静态嵌入(Word2Vec[13])[13]的方法不同,我们的方法引入了超参数优化阶段来提升性能。此外,我们还提出了对全微调(利用所有模型权重)和参数高效LoRA适应方法的评估,这揭示了计算效率和准确性之间的权衡。基于这一前提,我们微调了四种不同的模型:BERT[15]、RoBERTa[16]、DistilBERT[17]和DistilRoBERTa。然后,我们使用LoRA方法对这四种模型进行了进一步的微调,并比较了它们的性能。在实验分析中,我们对两种方法都进行了超参数调整,以优化机器学习模型在特定任务或数据集上的性能。尽管Transformer模型的性能令人印象深刻,但它们就像“黑箱”一样,难以理解其内部工作原理。因此,在本文中,我们采用了可解释性方法来理解微调模型在需求分类方面的决策过程。具体来说,我们通过从数据集中抽取两个需求(每个类别一个)并将其提交给模型,来研究单个词的贡献如何影响决策。本研究扩展了我们之前的工作[9],提供了对安全需求分类的更深入分析。虽然之前的研究分析了增强技术对Transformer模型整体性能的影响,但本次分析主要关注了微调模型的可解释性。本文的结构如下:第3节描述了所提出的方法,第4节提供了实验分析的详细概述;第2节介绍了需求分类的相关工作;最后,第5节给出了结论性意见和我们的未来工作方向。
相关研究
相关工作
本节回顾了当前关于需求分类任务的最新研究文献。然而,许多研究不仅关注安全需求和非安全需求的分类,还进行了其他任务,例如功能需求和非功能需求的分类。相关研究的总结见表1。
方法
图1展示了所提出的将软件需求分类为安全相关需求的整体工作流程。我们通过不同的阶段完成了这一过程。第一阶段包括整理收集到的需求数据集。每个需求都被分解成句子,并根据软件必须满足的条件类型进行标注。
第二阶段是图1所示的令牌化(Tokenization)过程,即将文本分解成单独的单词
数据集
对于这项任务,我们使用了Knauss等人[6]开发的名为SecReq[1]的数据集。该数据集包含三个工业需求文档:通用电子钱包规范(ePurse)[37]、客户场所网络规范(CPN)[38]和全球平台规范(GP)[39]。
结论与未来工作
在本文中,我们研究了基于Transformer的模型在自动分类安全相关软件需求中的应用。该数据集包含了从三个工业文档中提取的真实世界案例。我们提出了四种Transformer模型用于这项分类任务。此外,我们对这四种模型进行了额外的微调,但采用了LoRA(PEFT)技术来降低与适应这些模型相关的计算和内存成本
CRediT作者贡献声明
卢卡·佩特里洛(Luca Petrillo):撰写 – 审稿与编辑、撰写 – 原稿、可视化、软件开发、资源管理、方法论、形式分析、数据整理、概念化。弗朗切斯科·梅尔卡尔多(Francesco Mercaldo):撰写 – 审稿与编辑、可视化、验证、监督、方法论、形式分析、概念化。安东内拉·桑托内(Antonella Santone):撰写 – 审稿与编辑、监督、项目管理、资金获取、形式分析、概念化。
利益冲突声明
作者声明他们没有已知的财务利益或个人关系可能影响本文所述的工作。
致谢
本研究部分得到了EU DUCA、EU CyberSecPro、SYNAPSE、PTR 22–24 P2.01(网络安全)和SERICS(PE00000014)的支持,这些项目由EU - NextGenerationEU项目资助,通过MUR - REASONING提供:用于成像诊断和预测的计算分析的正式方法(PRIN)、e-DAI(集成分析异构健康数据的数字生态系统,涉及高影响力疾病:创新护理和研究模型)、健康