System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于网络安全领域,具体涉及一种基于预训练模型的代码片段敏感认证信息检测方法。
技术介绍
1、随着互联网和信息技术的快速发展,信息共享和数据通信变得更加便捷高效;然而,在科技进步带来各种好处的同时,人们也日益关注互联网上敏感信息的泄露问题;敏感信息的泄露给个人、企业乃至整个社会带来了重大风险,可能导致财务损失、隐私侵犯和安全威胁;因此,为了确保数据安全并保护用户隐私,检测和预防敏感信息泄露变得至关重要;
2、在渗透测试和网络攻防中,攻击者通常会通过收集用户名密码等敏感认证信息获取应用程序和服务器权限,以方便后续进一步渗透测试;现有的大部分网络系统部署的自动化漏洞扫描工具、web应用防火墙等安全设备都是针对程序漏洞进行检测,对于敏感信息泄露的检测能力较弱,误报率较高;
3、因此需要设计一种检测方法,能够高效地在目标系统或网络资源中进行扫描,检测其中是否含有潜在的敏感信息泄露,以提前做出防御和清理,降低被攻击风险。
技术实现思路
1、本专利技术的目的在于克服现有技术的至少一个不足,提供一种基于预训练模型的代码片段敏感认证信息检测方法。
2、本专利技术所采取的技术方案是:
3、一种基于预训练模型的代码片段敏感认证信息检测方法,包括如下步骤:
4、s1、定义敏感认证信息类别;
5、s2、爬取包含敏感认证信息的代码片段作为训练数据,对代码片段进行预处理和标注,所述预处理的步骤包括以下操作中的至少一种:
7、(2)删除除中英文、符号外的特殊字符;
8、(3)仅保留敏感认证信息所在行及其上下2行的代码片段;
9、(4)将换行符替换成“\\n”;
10、所述标注的目的是获得命名实体标签用于训练;
11、s3、构建基于codebert预训练模型的模型架构,使用s2中得到的训练数据对模型进行训练,并保存模型,所述模型的网络结构如下:
12、(1)基础模型:使用了codebert,这是一个基于bert的模型;
13、(2)dropout层:在bert的输出上使用了一个dropout层,用于防止过拟合,输出是经过随机丢弃一些神经元后的bert最后一层隐藏状态的表示;
14、(3)全连接层:用于将dropout层的输出转换为所需的标签数量的logits;
15、(4)crf层:条件随机场层,用于标注序列任务,提高预测标签的一致性;
16、s4、使用训练好的模型检测待测代码片段,提取敏感认证信息;
17、s5、对敏感认证信息进行过滤,输出敏感认证信息。
18、在一些代码片段敏感认证信息检测方法的实例中,s2中,所述预处理的步骤为:
19、(1)删除代码片段中字符数小于5的行及空行;
20、(2)删除除中英文、符号外的特殊字符;
21、(3)仅保留敏感认证信息所在行及其上下2行的代码片段;
22、(4)将换行符替换成“\\n”。
23、在一些代码片段敏感认证信息检测方法的实例中,s5中,因此当提取出的密码多于一条时,计算这些密码的相似度值,若相似度值大于预先定义的相似度阈值,则是为非真实的密码并舍弃,反之保留。
24、在一些代码片段敏感认证信息检测方法的实例中,s5中,使用quick_ratio算法两两计算密码,将计算结果除以计算次数得到密码的相似度值。
25、在一些代码片段敏感认证信息检测方法的实例中,s5中,相似度阈值的计算方式为各取至少500条,优选800条、1000条真实的密码、密码hash、token、密钥,计算出四类信息的相似度值,取最大值作为相似度阈值。
26、在一些代码片段敏感认证信息检测方法的实例中,s3中,模型训练过程中使用了torchcrf库中的crf层进行序列标注任务。
27、在一些代码片段敏感认证信息检测方法的实例中,在计算损失时,直接使用crf层的负对数似然损失。
28、在一些代码片段敏感认证信息检测方法的实例中,s2中,标注的方式是namedentity recognition标注。
29、在一些代码片段敏感认证信息检测方法的实例中,s2中,标注的标签包括o、o-key、o-ip、o-port、o-uname、o-secret、i-key、i-ip、i-port、i-uname、i-secret。
30、在一些代码片段敏感认证信息检测方法的实例中,s1中,定义的敏感认证信息包括目标地址、端口、用户名、密码。
31、在一些代码片段敏感认证信息检测方法的实例中,s1中,密码包括用户自定义的密码、密码hash、token、密钥。
32、在一些代码片段敏感认证信息检测方法的实例中,s2中,关键字包括“密码”、“password”、“secret”、“pwd”、“passwd”、“key”、“private”、“sec”、“token”。
33、在一些代码片段敏感认证信息检测方法的实例中,s4中,将提取的敏感认证信息以字典形式存储。
34、在一些代码片段敏感认证信息检测方法的实例中,s2中,s2中,包含敏感认证信息的代码片段的训练数据的获得方法为使用gshark工具通过关键字在github代码仓库中搜索相关代码,并进行人工判断过滤。
35、以上特征在不相冲突的情况下,可以任意组合。
36、本专利技术的有益效果是:
37、本专利技术一些实例的检测方法,利用机器学习技术,实现了自动化检测,降低人工检测的时间成本;
38、本专利技术一些实例的检测方法,利用codebert预训练模型强大的编程语言理解能力,将检测问题转化成命名实体识别问题,再加上crf层优化,不仅可以在检测过程中考虑到敏感认证信息的特征,还考虑到了上下文的语义特征,提高了从代码片段中检测敏感认证信息的准确率。
本文档来自技高网...【技术保护点】
1.一种基于预训练模型的代码片段敏感认证信息检测方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的代码片段敏感认证信息检测方法,其特征在于,S5中,当提取出的密码多于一条时,计算这些密码的相似度值,若相似度值大于预先定义的相似度阈值,则是为非真实的密码并舍弃,反之保留。
3.根据权利要求2所述的代码片段敏感认证信息检测方法,其特征在于,S5中,使用quick_ratio算法两两计算密码,将计算结果除以计算次数得到密码的相似度值。
4.根据权利要求3所述的代码片段敏感认证信息检测方法,其特征在于,S5中,相似度阈值的计算方式为各取至少500条真实的密码、密码hash、Token、密钥,计算出四类信息的相似度值,取最大值作为相似度阈值。
5.根据权利要求1所述的代码片段敏感认证信息检测方法,其特征在于,S3中,模型训练过程中使用了torchcrf库中的CRF层进行序列标注任务;和/或在计算损失时,直接使用CRF层的负对数似然损失。
6.根据权利要求1所述的代码片段敏感认证信息检测方法,其特征在于,S2中,标注的方式是
7.根据权利要求1或6所述的代码片段敏感认证信息检测方法,其特征在于,S2中,标注的标签包括O、O-KEY、O-IP、O-PORT、O-UNAME、O-SECRET、I-KEY、I-IP、I-PORT、I-UNAME、I-SECRET。
8.根据权利要求1所述的代码片段敏感认证信息检测方法,其特征在于,S1中,定义的敏感认证信息包括目标地址、端口、用户名、密码。
9.根据权利要求8所述的代码片段敏感认证信息检测方法,其特征在于,S1中,密码包括用户自定义的密码、密码hash、Token、密钥。
10.根据权利要求1所述的代码片段敏感认证信息检测方法,其特征在于,S2中,关键字包括“密码”、“password”、“secret”、“pwd”、“passwd”、“key”、“private”、
...【技术特征摘要】
1.一种基于预训练模型的代码片段敏感认证信息检测方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的代码片段敏感认证信息检测方法,其特征在于,s5中,当提取出的密码多于一条时,计算这些密码的相似度值,若相似度值大于预先定义的相似度阈值,则是为非真实的密码并舍弃,反之保留。
3.根据权利要求2所述的代码片段敏感认证信息检测方法,其特征在于,s5中,使用quick_ratio算法两两计算密码,将计算结果除以计算次数得到密码的相似度值。
4.根据权利要求3所述的代码片段敏感认证信息检测方法,其特征在于,s5中,相似度阈值的计算方式为各取至少500条真实的密码、密码hash、token、密钥,计算出四类信息的相似度值,取最大值作为相似度阈值。
5.根据权利要求1所述的代码片段敏感认证信息检测方法,其特征在于,s3中,模型训练过程中使用了torchcrf库中的crf层进行序列标注任务;和/或在计算损失时,直接使用crf层的负对数似然损失。
【专利技术属性】
技术研发人员:陈晓红,何卓丰,袁依格,刘晓亮,刘浏,
申请(专利权)人:湘江实验室,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。