本技术涉及计算机安全,尤其涉及一种漏洞识别方法、装置、电子设备及计算机存储介质。
背景技术:
1、由于android系统的构建基于大量的开源代码,如linux内核,第三方库(libpng,libpcap)等等,所以诸如linux内核,第三方库等开源代码中的已知漏洞也会影响到android系统的安全性。但是,安卓开源项目(android open source project,aosp)的漏洞公告中对于linux内核和第三方库等开源代码中的已知漏洞披露和修复并不及时也不全面,android系统所使用的开源代码中很有可能存在未被修复的已知漏洞。这就会造成android系统的安全隐患。
技术实现思路
1、本技术实施例提供了一种漏洞识别方法、装置、电子设备及计算机存储介质,实现准确且全面地识别出目标系统使用的目标源码中存在的已知漏洞,减少目标系统中存在的安全隐患,提高目标系统的安全性。所述技术方案如下:
2、第一方面,本技术实施例提供了一种漏洞识别方法,上述方法包括:
3、获取目标系统所使用的目标源码中的漏洞信息集,以及提取上述目标源码的提交记录中的补丁信息集;上述漏洞信息集包括至少一个漏洞对应的漏洞信息;上述补丁信息集包括至少一个补丁对应的补丁信息;
4、将上述补丁信息集中的补丁信息与上述漏洞信息集中的漏洞信息进行匹配,确定上述补丁信息集中的漏洞补丁信息;上述漏洞补丁信息对应的补丁用于修复上述漏洞信息对应的漏洞;
5、基于上述漏洞补丁信息确定上述目标源码中未被修复的漏洞。
6、在一种可能的实现方式中,上述漏洞信息包括漏洞编号;上述将上述补丁信息集中的补丁信息与上述漏洞信息集中的漏洞信息进行匹配,确定上述补丁信息集中的漏洞补丁信息,包括:
7、判断上述补丁信息中是否包括上述漏洞编号;
8、若是,则确定上述补丁信息为漏洞补丁信息。
9、在一种可能的实现方式中,上述漏洞信息还包括漏洞描述信息和漏洞代码;上述补丁信息包括补丁描述信息和补丁代码;上述判断上述补丁信息中是否包括上述漏洞编号之后,上述方法还包括:
10、若否,则基于目标词的数量、目标文件的数量、上述目标文件的占比、目标函数的数量、目标相似度中的至少一个确定上述补丁信息集中的漏洞补丁信息;
11、其中,上述目标词用于表征上述补丁描述信息和上述漏洞描述信息中相同的词;上述目标词包括上述漏洞对应的类型关键词;上述目标文件用于表征上述补丁描述信息和上述漏洞描述信息中名称相同的文件;上述目标文件的占比用于表征上述目标文件的数量与上述漏洞描述信息中所有文件数量的比例;上述目标函数用于表征上述补丁描述信息和上述漏洞描述信息中相同的函数;目标相似度用于表征上述补丁代码与上述漏洞代码之间的相似度。
12、在一种可能的实现方式中,上述将上述补丁信息集中的补丁信息与上述漏洞信息进行匹配,确定上述补丁信息集中的漏洞补丁信息,包括:
13、将上述补丁信息和上述漏洞信息输入匹配器中,输出上述补丁信息与上述漏洞信息的匹配度;上述匹配器基于多个第一漏洞信息以及上述第一漏洞信息对应的第一漏洞补丁信息进行训练得到;
14、若上述匹配度大于预设匹配度阈值,则确定上述补丁信息为上述漏洞信息对应的漏洞补丁信息。
15、在一种可能的实现方式中,上述匹配器基于从上述第一漏洞信息与上述第一漏洞补丁信息中提取的匹配特征进行训练得到;
16、其中,上述匹配特征以下至少一个维度的特征:漏洞编号维度、漏洞位置维度、漏洞补丁相似度维度、漏洞类型关键词维度以及漏洞补丁描述维度。
17、在一种可能的实现方式中,上述补丁信息包括补丁代码;上述基于上述漏洞补丁信息确定上述目标源码中未被修复的漏洞,包括:
18、将上述漏洞补丁信息中的补丁代码与上述目标源码进行代码匹配,确定上述目标源码中是否包括上述补丁代码;
19、若否,则确定上述漏洞补丁信息对应的漏洞为上述目标源码中未被修复的漏洞。
20、在一种可能的实现方式中,上述确定上述目标源码中是否包括上述补丁代码之后,上述方法还包括:
21、若是,则确定上述目标源码中的上述漏洞补丁信息对应的漏洞已被修复。
22、在一种可能的实现方式中,上述确定上述漏洞补丁信息对应的漏洞为上述目标源码中未被修复的漏洞之后,上述方法还包括:
23、利用上述漏洞补丁信息中的补丁代码修复上述目标源码中未被修复的漏洞。
24、在一种可能的实现方式中,上述目标源码包括目标内核的源码和/或目标三方库中的源码。
25、第二方面,本技术实施例提供了一种漏洞识别装置,包括:
26、获取模块,用于获取目标系统所使用的目标源码中的漏洞信息集,以及提取所述目标源码的提交记录中的补丁信息集;所述漏洞信息集包括至少一个漏洞对应的漏洞信息;所述补丁信息集包括至少一个补丁对应的补丁信息;
27、匹配模块,用于将所述补丁信息集中的补丁信息与所述漏洞信息集中的漏洞信息进行匹配,确定所述补丁信息集中的漏洞补丁信息;所述漏洞补丁信息对应的补丁用于修复所述漏洞信息对应的漏洞;
28、第一确定模块,用于基于所述漏洞补丁信息确定所述目标源码中未被修复的漏洞。
29、在一种可能的实现方式中,上述漏洞信息包括漏洞编号;上述匹配模块包括:
30、判断单元,用于判断上述补丁信息中是否包括上述漏洞编号;
31、第一确定单元,用于若上述补丁信息中包括上述漏洞编号,则确定上述补丁信息为漏洞补丁信息。
32、在一种可能的实现方式中,上述漏洞信息还包括漏洞描述信息和漏洞代码;上述补丁信息包括补丁描述信息和补丁代码;上述漏洞识别装置还包括:
33、第二确定模块,用于若上述补丁信息中不包括上述漏洞编号,则基于目标词的数量、目标文件的数量、上述目标文件的占比、目标函数的数量、目标相似度中的至少一个确定上述补丁信息集中的漏洞补丁信息;
34、其中,上述目标词用于表征上述补丁描述信息和上述漏洞描述信息中相同的词;上述目标词包括上述漏洞对应的类型关键词;上述目标文件用于表征上述补丁描述信息和上述漏洞描述信息中名称相同的文件;上述目标文件的占比用于表征上述目标文件的数量与上述漏洞描述信息中所有文件数量的比例;上述目标函数用于表征上述补丁描述信息和上述漏洞描述信息中相同的函数;目标相似度用于表征上述补丁代码与上述漏洞代码之间的相似度。
35、在一种可能的实现方式中,上述匹配模块包括:
36、匹配单元,用于将上述补丁信息和上述漏洞信息输入匹配器中,输出上述补丁信息与上述漏洞信息的匹配度;上述匹配器基于多个第一漏洞信息以及上述第一漏洞信息对应的第一漏洞补丁信息进行训练得到;
37、第二确定单元,用于若上述匹配度大于预设匹配度阈值,则确定上述补丁信息为上述漏洞信息对应的漏洞补丁信息。
38、在一种可能的实现方式中,上述匹配器基于从上述第一漏洞信息与上述第一漏洞补丁信息中提取的匹配特征进行训练得到;
39、其中,上述匹配特征以下至少一个维度的特征:漏洞编号维度、漏洞位置维度、漏洞补丁相似度维度、漏洞类型关键词维度以及漏洞补丁描述维度。
40、在一种可能的实现方式中,上述补丁信息包括补丁代码;上述第一确定模块包括:
41、代码匹配单元,用于将上述漏洞补丁信息中的补丁代码与上述目标源码进行代码匹配,确定上述目标源码中是否包括上述补丁代码;
42、第三确定单元,用于若上述目标源码中不包括上述补丁代码,则确定上述漏洞补丁信息对应的漏洞为上述目标源码中未被修复的漏洞。
43、在一种可能的实现方式中,上述漏洞识别装置还包括:
44、第三确定模块,用于若上述目标源码中包括上述补丁代码,则确定上述目标源码中的上述漏洞补丁信息对应的漏洞已被修复。
45、在一种可能的实现方式中,上述漏洞识别装置还包括:
46、修复模块,用于利用上述漏洞补丁信息中的补丁代码修复上述目标源码中未被修复的漏洞。
47、在一种可能的实现方式中,上述目标源码包括目标内核的源码和/或目标三方库中的源码。
48、第三方面,本技术实施例提供了一种电子设备,包括:处理器以及存储器;
49、所述处理器与所述存储器相连;
50、所述存储器,用于存储可执行程序代码;
51、所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行本说明书实施例第一方面或第一方面的任意一种可能的实现方式提供的方法。
52、第四方面,本技术实施例提供了一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行本技术实施例第一方面或第一方面的任意一种可能的实现方式提供的方法步骤。
53、本技术一些实施例提供的技术方案带来的有益效果至少包括:
54、在本技术一个或多个实施例中,通过获取目标系统所使用的目标源码中的漏洞信息集,漏洞信息集包括至少一个漏洞对应的漏洞信息;以及提取目标源码的提交记录中的补丁信息集,补丁信息集包括至少一个补丁对应的补丁信息;然后将补丁信息集中的补丁信息与漏洞信息集中的漏洞信息进行匹配,确定补丁信息集中的漏洞补丁信息;最后基于漏洞补丁信息确定目标源码中未被修复的漏洞,从而实现发现目标源码中已经披露,但目标系统所使用该目标源码时尚未披露和修复的漏洞,即准确且全面地识别出目标系统使用的目标源码中存在的已知漏洞,减少目标系统中存在的安全隐患,提高目标系统的安全性。
55、上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。