本发明实施例涉及电力物联网,尤其涉及一种电力物联网终端漏洞信息的识别方法及装置。
背景技术:
1、对于分析漏洞补丁,针对现有将补丁应用于漏洞检测以及漏洞分析的相关工作其中漏洞检测主要分成两种模式,第一种是基于模式的方法,第二种是基于代码相似性的方法。基于代码相似性的方法可以分为三个步骤:第一步是把程序的分成代码片段;第二步是抽象表示每个代码片段,表示方式包括标记、关系树、关系图等;第三步是通过在第二部中获得的抽象表示来计算代码之间的相似性。li提出的基于代码相似性的漏洞自动检测系统通过定义补丁的特征,给定一个漏洞能够在源代码中定位漏洞的位置。这是将补丁特征应用于相似性代码检测的方法。但是这种方法局限于检测出软件中出现漏洞代码重用的情况,不能够检测其他的漏洞产生情况。
2、对于深度学习漏洞检测的训练样本,目前国际上最好的基于深度学习的漏洞检测方法在三个复杂开源软件漏洞数据集测试的平均精确率只有41%,平均召回率只有65%,平均综合指标f1值只有48%(值越大越好)。过去用于训练源代码漏洞智能检测工具的数据集生成工作中主要有以下两种生成方法:
3、方法一:直接采用补丁修补涉及的全部函数代码作为漏洞相关代码,函数级切片方法虽然实现方式十分简单,但随之而来的问题是以补丁修补的函数作为漏洞相关代码必然包含大量与漏洞相关的语句,在模型训练过程中引入大量噪声,可能导致得到的智能检测系统无法实现目标功能,出现大规模的误报和漏报。
4、方法二:从补丁修补位置出发提取存在依赖关系的全部语句作为漏洞相关代码,该方法通过提取与补丁修补位置有关的依赖关系的方式,增强了切片代码与漏洞的相关性,但是该方法大多数只考虑到了与修补位置相关的数据流依赖而没有考虑到控制流依赖,使得相关的漏洞切片无法涵盖补丁所包含的全部语义信息,导致训练出来的模型漏报率较高。
技术实现思路
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、本发明实施例提供的电力物联网终端漏洞信息的识别方案,通过基于漏洞的补丁提取与所述漏洞相关的关联信息;基于所述关联信息确定目标补丁数据集;基于所述目标补丁数据集确定漏洞触发情况,并对目标补丁数据集中的通用权限列表类型进行归类,得到以漏洞触发情况为分类特征的覆盖多种通用权限列表类型的漏洞特征库;基于对漏洞文件和无漏洞文件进行差异比对的差异文件,识别所述漏洞的关键变量,以及生成并提取代码切片;基于所述代码切片和所述漏洞特征库识别漏洞的触发点和引用点。相比于现有技术中引入大量噪声带来的误报漏报问题或模型训练考虑到的影响条件不全导致的模型漏报率较高的问题,由本方案,基于补丁信息完成电力物联网终端漏洞信息的提取与利用,可以精准区分电力物联网系统中设备的正常行为与异常行为,且复杂度低,误报率低。