密钥识别模型训练方法、密钥识别方法及装置制造方法及图纸

技术编号:39419313 阅读:7 留言:0更新日期:2023-11-19 16:08
本申请实施例提供一种密钥识别模型训练方法、密钥识别方法及装置,该方法包括:获取训练样本集,每一训练样本包括样本代码文件和样本代码文件的标注信息,标注信息包括样本代码文件中存在密钥的至少一个样本代码片段和样本代码片段的密钥信息,密钥信息包括密钥类型和密钥定位信息,针对训练样本集中的每一训练样本,以训练样本中的样本代码文件为密钥识别模型的输入,输出样本代码文件的至少一个密钥预测信息,密钥预测信息包括密钥预测类型和密钥定位信息,根据每次迭代过程得到的样本代码文件的至少一个密钥预测信息和样本代码文件的标注信息,对密钥识别模型的参数进行调整,直到满足停止训练条件,得到已训练的密钥识别模型。模型。模型。

【技术实现步骤摘要】
密钥识别模型训练方法、密钥识别方法及装置


[0001]本申请实施例涉及人工智能
,尤其涉及一种密钥识别模型训练方法、密钥识别方法及装置。

技术介绍

[0002]敏感密钥指各类软件即服务(Software as a Service,SaaS)、平台即服务(Platform as a Service,PaaS)和数据存储系统的通用密钥凭证,例如:云平台应用程序编程接口(Application Programming Interface,API)密钥或数据库的连接账密等。一般开发人员会把敏感密钥明文写在Web接口响应内容、小程序或应用程序(Application,APP)等源代码内,由于源代码内容是公开的,所有人都可以通过简单地逆向分析源代码获取到敏感密钥,进而操作与敏感密钥关联的敏感资源。如何对不同编程语言的源代码中的敏感密钥进行准确地识别,对防止信息泄露而言尤为重要。
[0003]现有技术中,根据敏感密钥特征(如变量名、常用的密钥格式、字符串长度以及字符串是否连续等)构造正则表达式,通过正则表达式进行代码匹配识别出源代码中的敏感密钥。
[0004]然而,敏感密钥种类繁多,不同类别密钥的格式不同,部分密钥容易与正常的变量名和代码结构混淆,因此上述方法易产生漏报,而为了减少漏报,则需要更宽泛地匹配疑似存在密钥的变量名和代码结构,导致容易产生误报。

技术实现思路

[0005]本申请实施例提供一种密钥识别模型训练方法、密钥识别方法及装置,可以提高密钥识别的准确性,降低误报和漏报的概率。r/>[0006]第一方面,本申请实施例提供一种密钥识别模型训练方法,包括:
[0007]在任一次迭代过程中,获取训练样本集,每一训练样本包括样本代码文件和所述样本代码文件的标注信息,所述标注信息包括所述样本代码文件中存在密钥的至少一个样本代码片段和所述样本代码片段的密钥信息,所述密钥信息包括密钥类型和密钥定位信息;
[0008]针对所述训练样本集中的每一训练样本,以所述训练样本中的样本代码文件为密钥识别模型的输入,输出所述样本代码文件的至少一个密钥预测信息,所述密钥预测信息包括密钥预测类型和密钥定位信息;
[0009]根据每次迭代过程得到的所述样本代码文件的至少一个密钥预测信息和所述样本代码文件的标注信息,对所述密钥识别模型的参数进行调整,直到满足停止训练条件;
[0010]将满足所述停止训练条件的迭代过程所确定的密钥识别模型确定为已训练的密钥识别模型。
[0011]第二方面,本申请实施例提供一种密钥识别方法,包括:
[0012]获取目标代码文件;
[0013]将所述目标代码文件输入预先训练的密钥识别模型,输出所述目标代码文件中存在预设类型密钥的代码片段所在的目标文件标识和密钥定位信息,所述密钥识别模型根据第一方面所述的方法训练得到。
[0014]第三方面,本申请实施例提供一种密钥识别模型训练装置,包括:
[0015]获取模块,用于在任一次迭代过程中,获取训练样本集,每一训练样本包括样本代码文件和所述样本代码文件的标注信息,所述标注信息包括所述样本代码文件中存在密钥的至少一个样本代码片段和所述样本代码片段的密钥信息,所述密钥信息包括密钥类型和密钥定位信息;
[0016]处理模块,用于针对所述训练样本集中的每一训练样本,以所述训练样本中的样本代码文件为密钥识别模型的输入,输出所述样本代码文件的至少一个密钥预测信息,所述密钥预测信息包括密钥预测类型和密钥定位信息;
[0017]参数调整模块,用于根据每次迭代过程得到的所述样本代码文件的至少一个密钥预测信息和所述样本代码文件的标注信息,对所述密钥识别模型的参数进行调整,直到满足停止训练条件;
[0018]确定模块,用于将满足所述停止训练条件的迭代过程所确定的密钥识别模型确定为已训练的密钥识别模型。
[0019]第四方面,本申请实施例提供一种密钥识别装置,包括:
[0020]获取模块,用于获取目标代码文件;
[0021]识别模块,用于将所述目标代码文件输入预先训练的密钥识别模型,输出所述目标代码文件中存在预设类型密钥的代码片段所在的目标文件标识和密钥定位信息,所述密钥识别模型根据第一方面所述的方法训练得到。
[0022]第五方面,本申请实施例提供一种计算机设备,包括:处理器和存储器,该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以执行第一方面或第二方面的方法。
[0023]第六方面,本申请实施例提供一种计算机可读存储介质,包括指令,当其在计算机程序上运行时,使得所述计算机执行如第一方面或第二方面的方法。
[0024]第七方面,本申请实施例提供一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得所述计算机执行如第一方面或第二方面的方法。
[0025]综上,在本申请实施例中,通过获取训练样本集,根据训练样本集基于深度学习训练出密钥识别模型,每一训练样本包括样本代码文件和样本代码文件的标注信息,标注信息包括样本代码文件中存在密钥的至少一个样本代码片段和样本代码片段的密钥信息,密钥信息包括密钥类型和密钥定位信息,从而密钥识别模型可学习到代码文件中存在密钥的代码片段的密钥类型,可提高密钥识别的准确性,降低误报和漏报的概率,还可减少人工维护成本。
[0026]进一步地,在本申请实施例中,正则表达式可以预设多种,而且由于本申请实施例中是取候选密钥代码和候选密钥代码所在行的前后各N行代码组成候选密钥代码片段,然后对该候选密钥代码片段进行密钥类型的识别,因此还可以解决部分密钥本身没有很强的特性,需要结合所处代码上下文环境判断的情况。从而,可提供更强的密钥泛化匹配能力,可减少漏报,可更准确地分类识别出有效密钥和无意义字符串,进而降低误报。
附图说明
[0027]图1为本申请实施例提供的一种密钥识别模型训练方法和密钥识别方法的应用场景示意图;
[0028]图2为本申请实施例提供的一种密钥识别模型训练方法的流程图;
[0029]图3为本申请实施例提供的一种分类模型的结构示意图;
[0030]图4为本申请实施例提供的一种密钥识别模型训练方法的流程图;
[0031]图5为本申请实施例提供的密钥识别模型训练方法的过程示意图;
[0032]图6为本申请实施例提供的一种密钥识别方法的流程图;
[0033]图7为本申请实施例提供的一种密钥识别模型训练装置的结构示意图;
[0034]图8为本申请实施例提供的一种密钥识别装置的结构示意图;
[0035]图9是本申请实施例提供的计算机设备的示意性框图。
具体实施方式
[0036]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有做出创造性劳动本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种密钥识别模型训练方法,其特征在于,包括:在任一次迭代过程中,获取训练样本集,每一训练样本包括样本代码文件和所述样本代码文件的标注信息,所述标注信息包括所述样本代码文件中存在密钥的至少一个样本代码片段和所述样本代码片段的密钥信息,所述密钥信息包括密钥类型和密钥定位信息;针对所述训练样本集中的每一训练样本,以所述训练样本中的样本代码文件为密钥识别模型的输入,输出所述样本代码文件的至少一个密钥预测信息,所述密钥预测信息包括密钥预测类型和密钥定位信息;根据每次迭代过程得到的所述样本代码文件的至少一个密钥预测信息和所述样本代码文件的标注信息,对所述密钥识别模型的参数进行调整,直到满足停止训练条件;将满足所述停止训练条件的迭代过程所确定的密钥识别模型确定为已训练的密钥识别模型。2.根据权利要求1所述的方法,其特征在于,所述获取训练样本集,包括:获取训练数据集;将所述训练数据集按照预设方式划分,得到所述训练样本集和验证集。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:根据所述验证集确定所述停止训练条件。4.根据权利要求1所述的方法,其特征在于,所述密钥识别模型包括数据预处理模型和分类模型,所述以所述训练样本中的样本代码文件为密钥识别模型的输入,输出所述样本代码文件的至少一个密钥预测信息,包括:以所述样本代码文件为所述数据预处理模型的输入,输出所述样本代码文件的至少一个候选密钥代码片段和所述候选密钥代码片段的密钥定位信息;针对所述至少一个候选密钥代码片段中的每个候选密钥代码片段,以所述候选密钥代码片段为所述分类模型的输入,得到所述候选密钥代码片段的密钥预测类型;根据所述至少一个候选密钥代码片段中每个所述候选密钥代码片段的密钥预测类型和所述候选密钥代码片段的密钥定位信息,得到所述至少一个密钥预测信息并输出。5.根据权利要求4所述的方法,其特征在于,所述数据预处理模型用于:根据预设的正则表达式对所述样本代码文件进行扫描匹配,得到至少一个候选密钥代码和所述候选密钥代码的密钥定位信息;针对每个所述候选密钥代码,提取所述候选密钥代码和所述候选密钥代码所在行的前后各N行代码组成候选密钥代码片段,所述N为正整数;将每个所述候选密钥代码片段和所述候选密钥代码片段的密钥定位信息输出。6.根据权利要求4所述的方法,其特征在于,所述分类模型用于:对所述候选密钥代码片段中的每个字符依次进行特征提取,得到一个L*M的二维特征向量,所述L为所述候选密钥代码片段的代码长度,所述M为预设正整数;对所述二维特征向量进行层归一化,应用自注意力机制对层归一化后的向量中的数值进行加权,得到目标特征向量;对所述目标特征向量分别进行平均池化和最大池化后拼接,得到一维特征向量;对所述一维特征向量进行线性输出,得到所述候选密钥代码片段的密钥预测类型。7.根据权利要求6所述的方法,其特征在于,所述分类模型包括特征自动提取器和分类
器,所述特征自动提取器包括字符嵌入模块和双向长短期记忆LSTM神经网络模型;所述字符嵌入模块用于:对所述候选密钥代码片段中的每个字符进行字符嵌入处理,得到每个字符对应的向量;所述LSTM网络模型用于:以所述每个字符对应的向量为输入,得到所述每个字符的特征向量,所述候选密钥代码片段中的每个字符的特征向量组成所述二维特征向量。8.根据权利要求6所述的方法,其特征在于,所述分类器包括层归一化层、自注意力层、平均池化和最大池化层以及线性层。9.根据权利要求1

8任一项...

【专利技术属性】
技术研发人员:骆克云周雨阳朱季峰
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1