System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及代码漏洞检测领域,具体为一种用于软件漏洞检测的深度学习增强大语言模型提示方法。
技术介绍
1、随着网络环境日益复杂化及攻击手段的迅速演变,软件系统的各种威胁长期困扰着软件开发组织,其中软件漏洞作为关键的风险源,可能导致信息泄露、数据篡改写及系统崩溃等问题,严重威胁系统安全和个人隐私。因此,漏洞检测成为了保护系统安全的基石,它旨在发现并减轻漏洞影响,防止恶意攻击,并且能提升软件的整体质量、可用性和可信度。现今,漏洞检测已成为现代软件开发不可或缺的一环。
2、传统上,自动化静态分析工具被广泛应用于漏洞检测,而近年来,深度学习(dl)模型因其相较于基于规则的方法展现出优越性能,在研究中强化了这一领域。然而,实践中应用dl模型于软件漏洞检测仍面临挑战,主要归咎于源代码的复杂结构、dl的黑箱特性,以及需要领域知识来解读检测后任务的“黑箱”结果。常规dl模型针对特定项目训练,故擅长于在这些项目中发现漏洞,但不适用于其他项目。它们在检测上的不佳表现,直接影响后续定位与修复等任务,且未提供开发者理解检测结果所需的解释。
3、相比之下,大型语言模型(llms)通过提示技术在解决上述问题上取得显著进展,提供了优势。然而,llms在漏洞识别方面表现并不理想,存在局限性。因此,本专利技术提出了一种深度学习增强型大语言模型提示方法,结合了dl模型与llm的优势,克服各自不足,实现了卓越的漏洞检测效能。实验验证表明,本专利技术超越了当前最先进的提示框架,提升了准确性、成本效益及可解释性。
技术实
1、本专利技术的目的在于:本专利技术的主要目的在于构建一种深度学习增强型大语言模型提示方法。此方法不仅提升漏洞识别准确性,还注重解释性,辅助开发者理解检测结果,有效指导后续的验证、定位及修复工作。
2、如图1,为实现上述目的,本专利技术的技术方案是:提供一种用于软件漏洞检测的深度学习增强大语言模型提示方法,包括以下步骤:
3、s1.上下文学习代码候选集合:运用局部敏感哈希算法于训练集中,筛选出n个与目标最相似的代码段落选;
4、s2.集成模型:集成多个维度的小规模模型,包括bert类小参数模型,图识别类小参数模型以及字符层面小参数模型,通过比较评估选择模型;
5、s3.漏洞预测:基于训练集,利用小参数模型训练网络,对漏洞进行概率预测;
6、s4.组合问答对:将候选代码与模型预测漏洞概率结合,将候选代码与小参数模型产生的漏洞预测值整合,构建问答对,以便进一步分析。
7、优选的,所述中s1中的局部敏感哈希算法主要流程包括:
8、数据预处理:特征提取与编码。从源代码库中抽取关键的特征,涉及将代码转换成机器可处理的形式,如抽象语法树、词袋模型或者词向量表示。这些特征需要能够捕获代码的结构和语义,以便后续的相似性比较。
9、构建局部敏感哈希表:基于抽取出的特征,运用ls算法构建哈希表。lsh通过特定方式将特征空间映射到一个相对小得多的“桶”或区域”,保证了相近特征的点有很大概率映射到相同的桶中,而远离的点映射到不同的桶。
10、查询与匹配:对于新的查询代码样本,同样应用lsh映射到哈希表,根据映射结果快速找到对应的“桶”。由于lsh的特性,桶内的元素具有较高相似性,进行查询代码的潜在相似候选。
11、排序与验证:获取的候选后,根据它们与查询代码的相似度(可能通过计算余弦距离、jaccord距离等)进行排序),选择最相似的作为最相似的候选。这一步可以进一步提高准确度并减少误报。
12、反馈循环优化迭代。在实际应用中,根据结论反馈优化lsh算法,调整哈希参数或更新哈希表,以提升未来查询的性能。
13、运用局部敏感哈希(lsh)算法的首要目标是在训练数据集中快速识别出与目标代码最为相似的候选片段。尽管该算法的焦点局限于衡量代码段落于相似性,但鉴于我们身处的提示框架需高效运行环境,不宜耗费过多时间于提示信息生成过程,故而采取了智能化抽样策略,高效选取多个代码片段构成相似性高的候选集,以满足既定需求。
14、优选的,所述中s2中的小参数模型选取主要包括:
15、bert类模型集成:集成bert家族的不同成员如codebert、roberta,以及xlnet,利用其在自然语言理解的强大表示力来理解代码语境。codebert特别经过训练理解代码上下文,捕捉代码语义,roberta和xlnet则提供了对长序列的深度理解,增强模型的多样性。
16、图识别类模型集成:集成使用图神经网络模型,如devign,它将代码结构信息转换成图表示,利用图结构化网络分析代码间的依赖和关系。这有助于理解代码间更深层次的联系,如控制流和调用图表示增强模型。
17、字符处理类小参数模型集成:融合了word2vec和fasttext的文本向量化方法,与深度神经网络(dnn)、双向长短时记忆网络(bilstm)、双向门控循环单元(bigru)及gru等循环神经网络模型相结合,共同构建了一个强大且多维度的字符级处理小参数模型集成框架,以提升软件漏洞检测的精确度与效率。
18、该方法将通过比较评估选择模型:通过对比三类小参数模型效果评估最终选型。
19、优选的,所述中s3中的漏洞概率预测流程主要包括:
20、数据清洗,对原始代码数据进行细致的清洗,去除无关注释、空白字符及噪声,确保训练集纯净度。
21、轻量层网络。选用适合的轻量级神经网络作为基线模型,便于快速训练并作为预训练的基础。
22、预训练策略:逐步学习:分阶段执行预训练,初始阶段使用大量无标注数据进行无监督学习,后续阶段结合少量带标签数据进行有监督微调。元学习:利用元学习策略,让模型在一系列相关任务中快速适应新任务,提高模型对新项目漏洞识别的灵活性。
23、概率评估:模型遍历待分析代码,对每一部分输出漏洞存在的概率,形成漏洞候选集合。采用概率阈值筛选或概率密度排序,确定最有可能存在漏洞的代码段,降低误报率。
24、性能评估:利用precision、recall、f1-score、fpr曲线等指标,衡量预测性能,确保模型在真实数据上的有效性。
25、优选的,所述中s4中的组合问答对流程主要包括:
26、集成信息:将小参数模型预测出的漏洞概率与候选代码片段一一对应起来,形成一个包含代码位置、代码片段、预测概率、漏洞类型及置信度的综合矩阵。
27、动态排序:利用算法对矩阵中的条目进行排序,按照漏洞严重程度、概率大小或者置信度优先级排序,便于快速定位关键的风险点。
28、与现有技术相比,本专利技术所达到的有益效果是:本专利技术是一种用于软件漏洞检测的深度学习增强大语言模型提示方法,具有三大优势:
29、高效构建精准的候选代码检索机制:通过在训练集中,采用局部敏感哈希算法(locality-sensitive 本文档来自技高网...
【技术保护点】
1.一种用于软件漏洞检测的深度学习增强大语言模型提示方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的用于软件漏洞检测的深度学习增强大语言模型提示方法,其特征在于:所述S1包括以下步骤:
3.根据权利要求1所述的用于软件漏洞检测的深度学习增强大语言模型提示方法,其特征在于:所述S2包括以下步骤:
4.根据权利要求1所述的用于软件漏洞检测的深度学习增强大语言模型提示方法,其特征在于:所述S3包括以下步骤:
5.根据权利要求1所述的用于软件漏洞检测的深度学习增强大语言模型提示方法,其特征在于:所述S4包括以下步骤:
6.根据权利要求5所述的用于软件漏洞检测的深度学习增强大语言模型提示方法,其特征在于:加权值排序算法具体过程如下:
【技术特征摘要】
1.一种用于软件漏洞检测的深度学习增强大语言模型提示方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的用于软件漏洞检测的深度学习增强大语言模型提示方法,其特征在于:所述s1包括以下步骤:
3.根据权利要求1所述的用于软件漏洞检测的深度学习增强大语言模型提示方法,其特征在于:所述s2包括以下步骤:
4.根据...
【专利技术属性】
技术研发人员:周鑫,杨焱景,毛润丰,张贺,徐近伟,张宇,
申请(专利权)人:南京匡吉信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。