System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据安全,特别是涉及一种漏洞检测方法、模型训练方法及对应装置。
技术介绍
1、随着互联网技术和应用程序市场的迅猛发展,软件应用带来大量便利的同时,软件应用的安全漏洞风险越发突出。安全漏洞不仅造成了用户隐私的泄露,而且会破坏软件应用的正常运行。安全漏洞已经成为限制应用程序发展的重要因素。
2、未授权访问漏洞指的是在不进行请求授权的情况下,对需要权限的功能进行访问执行,通常是由于应用功能存在缺陷,无认证,安全配置不当所致。未授权访问漏洞近年来成为最常见的漏洞之一,这种由于不充分的漏洞和授权导致的漏洞在检测上尤为困难。
技术实现思路
1、有鉴于此,本申请提供了一种漏洞检测方法、模型训练方法及对应装置,以便实现对未授权漏洞的检测。
2、本申请提供了如下方案:
3、第一方面,提供了一种漏洞检测方法,所述方法包括:
4、对目标程序进行静态分析,得到至少一条代码执行路径,所述代码执行路径包括所述目标程序的代码中函数之间的调用关系;
5、对所述代码执行路径进行代码切分,得到所述代码执行路径对应的代码片段集合;
6、利用鉴权分类模型分别对所述代码片段集合包含的各代码片段进行分类,以得到所述各代码片段是否为鉴权片段的分类结果,所述鉴权分类模型基于机器学习模型预先训练得到;
7、依据所述分类结果确定所述目标程序是否存在未授权漏洞。
8、根据本申请实施例中一可实现的方式,所述对目标程序进行静态分析,得
9、对所述目标程序进行静态分析,得到所述目标程序的入口函数和敏感操作函数;
10、构造从所述目标程序的入口函数到所述敏感操作函数的至少一条代码执行路径,所述敏感操作函数包括预设操作类型对应的函数。
11、根据本申请实施例中一可实现的方式,对所述代码执行路径进行代码切分,得到所述代码执行路径对应的代码片段集合包括:
12、对所述代码执行路径进行代码切分,得到多个代码片段;
13、利用预设的鉴权函数识别规则,确定所述多个代码片段的置信度;
14、依据所述置信度,从所述多个代码片段中选择符合预设置信度要求的代码片段构成所述代码执行路径对应的代码片段集合。
15、根据本申请实施例中一可实现的方式,对所述代码执行路径进行代码切分,得到多个代码片段包括:
16、对所述代码执行路径进行小于或等于函数粒度的切分,得到多个候选代码片段;
17、基于预设的鉴权特征,对所述多个候选代码片段进行筛选,得到所述多个代码片段。
18、根据本申请实施例中一可实现的方式,所述鉴权分类模型包括:第一特征提取网络、第二特征提取网络和分类网络;
19、所述第一特征提取网络用以从输入的代码片段中提取各元素token的特征表示;
20、所述第二特征提取网络用以对所述各token的特征表示进行卷积和池化处理后,得到所述输入的代码片段的特征表示;
21、所述分类网络用以利用所述输入的代码片段的特征表示,得到所述代码片段是否为鉴权片段的分类结果。
22、根据本申请实施例中一可实现的方式,所述方法还包括以下至少一种:
23、若确定所述目标程序存在未授权漏洞,则利用所述代码片段集合扩充训练所述鉴权分类模型所采用的训练数据;其中所述扩充包括:从所述代码片段集合中选择代码片段作为代码片段样本并打上非鉴权片段的标签;和/或,从所述代码片段集合中选择代码片段,在选择的代码片段中插入鉴权函数后,将插入鉴权函数的代码片段作为代码片段样本并打上鉴权片段的标签;
24、若确定所述目标程序不存在未授权漏洞,则利用被识别为鉴权片段的代码片段扩充训练鉴权所述鉴权分类模型所采用的训练数据;其中所述扩充包括:将被识别为鉴权片段的代码片段作为代码片段样本并打上鉴权片段的标签;和/或,将被识别为鉴权片段的代码片段删除鉴权函数后作为代码片段样本并打上非鉴权片段的标签。
25、根据本申请实施例中一可实现的方式,依据所述分类结果确定所述目标程序是否存在未授权漏洞包括:
26、若所述代码执行路径对应的代码片段集合中存在鉴权片段,则确定所述目标程序不存在未授权漏洞;或者,
27、若所述代码执行路径对应的代码片段集合中存在鉴权片段且所述鉴权片段在敏感操作函数之前,则确定所述目标程序不存在未授权漏洞,所述敏感操作函数包括预设操作类型对应的函数;或者,
28、若所述目标程序对应的所有代码执行路径对应的代码片段集合中均不存在鉴权片段,则确定所述目标程序存在未授权漏洞;或者,
29、若所述目标程序对应的所有代码执行路径对应的代码片段集合中均不存在鉴权片段,且其他至少一个漏洞检测方法从所述目标程序中检测到未授权漏洞,则确定所述目标程序存在未授权漏洞。
30、第二方面,提供了一种漏洞检测方法,应用于云端服务器,所述方法包括:
31、获取用户终端上传的目标程序的文件;
32、对目标程序进行静态分析,得到至少一条代码执行路径,所述代码执行路径包括所述目标程序的代码中函数之间的调用关系;
33、对所述代码执行路径进行代码切分,得到所述代码执行路径对应的代码片段集合;
34、利用鉴权分类模型分别对所述代码片段集合包含的各代码片段进行分类,以得到所述各代码片段是否为鉴权片段的分类结果,所述鉴权分类模型基于机器学习模型预先训练得到;
35、依据所述分类结果确定所述目标程序是否存在未授权漏洞;
36、将所述目标程序是否存在未授权漏洞的信息发送至所述用户终端。
37、第三方面,提供了一种模型训练方法,所述方法包括:
38、获取包括多个训练样本的训练数据,所述训练样本包括:代码片段样本及其对应的标签,所述标签指示对应的代码片段样本是否为鉴权片段;
39、利用所述训练数据训练鉴权分类模型,其中所述鉴权分类模型包括第一特征提取网络、第二特征提取网络和分类网络;
40、所述第一特征提取网络用以从输入的代码片段样本中提取各token的特征表示;
41、所述第二特征提取网络用以对所述各token的特征表示进行卷积和池化处理后,得到所述输入的代码片段样本的特征表示;
42、所述分类网络用以利用所述输入的代码片段样本的特征表示,得到所述代码片段样本是否为鉴权片段的分类结果;
43、所述训练的目标包括:最小化所述分类结果与代码片段样本对应的标签之间的差异。
44、根据本申请实施例中一可实现的方式,所述获取包括多个训练样本的训练数据包括以下至少一种:
45、获取被确定存在未授权漏洞的应用程序;对所述应用程序进行静态分析得到至少一条代码执行路径后,对所述代码执行路径进行代码切分,得到所述代码执行路径对应的代本文档来自技高网...
【技术保护点】
1.一种漏洞检测方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述对目标程序进行静态分析,得到一个以上的代码执行路径包括:
3.根据权利要求1所述的方法,其特征在于,对所述代码执行路径进行代码切分,得到所述代码执行路径对应的代码片段集合包括:
4.根据权利要求3所述的方法,其特征在于,对所述代码执行路径进行代码切分,得到多个代码片段包括:
5.根据权利要求1所述的方法,其特征在于,所述鉴权分类模型包括:第一特征提取网络、第二特征提取网络和分类网络;
6.根据权利要求1或5所述的方法,其特征在于,所述方法还包括以下至少一种:
7.根据权利要求1至5中任一项所述的方法,其特征在于,依据所述分类结果确定所述目标程序是否存在未授权漏洞包括:
8.一种漏洞检测方法,应用于云端服务器,其特征在于,所述方法包括:
9.一种模型训练方法,其特征在于,所述方法包括:
10.根据权利要求9所述的方法,其特征在于,所述获取包括多个训练样本的训练数据包括以下至少一种:
11.一种漏洞检测装置,其特征在于,所述装置包括:
12.一种模型训练装置,其特征在于,所述装置包括:
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
14.一种电子设备,其特征在于,包括:
...【技术特征摘要】
1.一种漏洞检测方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述对目标程序进行静态分析,得到一个以上的代码执行路径包括:
3.根据权利要求1所述的方法,其特征在于,对所述代码执行路径进行代码切分,得到所述代码执行路径对应的代码片段集合包括:
4.根据权利要求3所述的方法,其特征在于,对所述代码执行路径进行代码切分,得到多个代码片段包括:
5.根据权利要求1所述的方法,其特征在于,所述鉴权分类模型包括:第一特征提取网络、第二特征提取网络和分类网络;
6.根据权利要求1或5所述的方法,其特征在于,所述方法还包括以下至少一种:
7.根据权利要求1至5中任一...
【专利技术属性】
技术研发人员:陈思依,曾九天,何君尧,李奇,
申请(专利权)人:阿里巴巴中国有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。