一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

漏洞特征获取方法、装置及电子设备与流程

2021-11-20 02:01:00 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,具体涉及信息安全技术领域。


背景技术:

2.在信息安全领域中,漏洞是指一个系统存在的弱点或缺陷,系统对特定威胁攻击或危险事件的敏感性,或进行攻击的威胁作用的可能性。漏洞可能来自应用软件或操作系统设计时的缺陷或编码时产生的错误,也可能来自业务在交互处理过程中的设计缺陷或逻辑流程上的不合理之处。这些缺陷、错误或不合理之处可能被有意或无意地利用,从而对一个组织的资产或运行造成不利影响,如信息系统被攻击或控制,重要资料被窃取,用户数据被篡改,系统被作为入侵其他主机系统的跳板。漏洞特征为表征漏洞的信息,一个漏洞有多个漏洞特征,对于android系统而言,如何获取已知漏洞的漏洞特征,对系统安全分析是极为重要的。
3.现有技术中,对系统已知的漏洞,例如通过漏洞扫描扫描出的漏洞,是通过人工分析每个漏洞的漏洞特征,在检测每个漏洞特征时,根据漏洞特征编译对应的特征检测代码,将特征检测代码在被测目标机上运行,以检测漏洞特征是否存在。若系统出现的漏洞有更新,还需要人工再次分析漏洞特征以执行后续检测过程,漏洞特征的获取效率不高。


技术实现要素:

4.提供了一种漏洞特征获取方法、装置及电子设备,可实现在线获取漏洞的漏洞特征,提高漏洞特征的获取效率。
5.根据第一方面,提供了一种漏洞特征获取方法,包括:
6.获取到漏洞的漏洞补丁信息后,根据所述漏洞补丁信息确定所述漏洞的类型,所述类型包括代码类型的漏洞和非代码类型的漏洞;
7.根据所述漏洞的类型对应的漏洞分析引擎提取所述漏洞的至少一个漏洞特征;
8.将所述漏洞的至少一个漏洞特征发送给电子设备。
9.根据本技术的技术,通过在获取到漏洞的漏洞补丁信息后,根据漏洞补丁信息确定漏洞是代码类型的漏洞还是非代码类型的漏洞,然后根据漏洞的类型对应的漏洞分析引擎提取漏洞的至少一个漏洞特征,最后将漏洞的至少一个漏洞特征发送给电子设备。不同类型的漏洞对应不同的漏洞分析引擎,漏洞分析引擎是根据不同类型的漏洞预先建立的,因此,可实现在线获取漏洞的漏洞特征,提高漏洞特征的获取效率,不需要人工分析获取漏洞特征,降低系统漏洞库的维护成本。
10.根据第二方面,提供了一种漏洞特征获取装置,包括:
11.获取模块,用于获取到漏洞的漏洞补丁信息;
12.确定模块,用于根据所述漏洞补丁信息确定所述漏洞的类型,所述类型包括代码类型的漏洞和非代码类型的漏洞;
13.提取模块,用于根据所述漏洞的类型对应的漏洞分析引擎提取所述漏洞的至少一
个漏洞特征;
14.发送模块,用于将所述漏洞的至少一个漏洞特征发送给电子设备。
15.根据本技术的技术,通过在获取模块获取到漏洞的漏洞补丁信息后,根据漏洞补丁信息确定漏洞是代码类型的漏洞还是非代码类型的漏洞,然后提取模块根据漏洞的类型对应的漏洞分析引擎提取漏洞的至少一个漏洞特征,最后发送模块将漏洞的至少一个漏洞特征发送给电子设备。不同类型的漏洞对应不同的漏洞分析引擎,漏洞分析引擎是根据不同类型的漏洞预先建立的,因此,可实现在线获取漏洞的漏洞特征,提高漏洞特征的获取效率,不需要人工分析获取漏洞特征,降低系统漏洞库的维护成本。
16.根据第三方面,提供了一种电子设备,包括:
17.至少一个处理器;以及
18.与所述至少一个处理器通信连接的存储器;其中,
19.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。
20.根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面所述的方法。
21.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
22.附图用于更好地理解本方案,不构成对本技术的限定。其中:
23.图1为本技术的一种应用场景示意图;
24.图2为本技术提供的漏洞特征获取方法实施例一的流程图;
25.图3为本技术提供的漏洞特征获取方法实施例二的流程图;
26.图4为本技术提供的漏洞特征获取方法实施例三的流程图;
27.图5为本技术提供的漏洞特征获取方法实施例四的流程图;
28.图6为本技术提供的一种漏洞特征获取装置的结构示意图;
29.图7为本技术提供的一种漏洞特征获取装置的结构示意图;
30.图8为本技术提供的一种漏洞特征获取装置的结构示意图;
31.图9是用来实现本技术实施例的漏洞特征获取方法的电子设备的框图。
具体实施方式
32.以下结合附图对本技术的示范性实施例做出说明,其中包括本技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
33.本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明,本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或方案不应被解释为比其它实施例或方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
34.现有技术中获取漏洞特征的方式是通过人工分析漏洞的漏洞特征,若系统出现的漏洞有更新,还需要人工再次分析漏洞特征,因此漏洞特征的获取效率不高,漏洞库的维护成本较高。为解决这一问题,本技术提供一种漏洞特征获取方法、装置及电子设备,通过预先根据不同类型的漏洞建立不同的漏洞分析引擎,对不同类型的漏洞使用不同的漏洞分析引擎分析提取漏洞特征,获取到漏洞的漏洞补丁信息后,根据漏洞补丁信息确定所述漏洞的类型,根据所述漏洞的类型对应的漏洞分析引擎提取所述漏洞的至少一个漏洞特征,将所述漏洞的至少一个漏洞特征发送给电子设备,用于电子设备进行漏洞检测。因此,可实现在线获取漏洞的漏洞特征,提高漏洞特征的获取效率,降低系统漏洞库的维护成本。下面结合附图通过具体实施例,对本技术实施例的漏洞特征获取方法的具体实现过程进行详细说明。
35.首先,下面对本技术实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
36.1、漏洞特征,为用于表征漏洞的信息,漏洞为代码类型的漏洞时,漏洞特征为漏洞的源代码和漏洞的修复代码之间的差异信息,漏洞为非代码类型的漏洞时,漏洞特征为漏洞的源文件和漏洞的修复文件的变化信息。
37.2、运行实体,为代码文件在安卓系统运行时对应的应用程序(app)或系统软件,应用程序为各类应用程序,如社交应用程序、购物应用程序等等。
38.3、测试靶机集群,为多个测试靶机,是根据不同安卓系统版本、不同处理器架构平台和不同安全补丁版本构建的用于测试漏洞特征的测试机,每一个测试靶机对应一安卓系统版本、一处理器架构平台和一安全补丁版本。
39.图1为本技术的一种应用场景示意图,如图1所示,本技术提供的漏洞特征获取装置用于获取已知漏洞的漏洞特征或者已知漏洞的漏洞特征和每一漏洞特征对应的运行实体,运行实体可以为应用程序(app)或系统软件,其中的应用程序例如为社交应用程序、购物应用程序等等,已知的漏洞例如为通过漏洞扫描软件扫描到的安卓系统的漏洞,或者是安卓官网已发布的公告中的漏洞。漏洞特征获取装置获取到的漏洞的漏洞特征或漏洞特征和对应的运行实体可用于漏洞检测,整体以漏洞特征驱动的模式来实现,可以包括:java反射机制,反编译(oatdump)等。具体可以是采用现有的检测方法,例如在检测每个漏洞特征时,根据漏洞特征编译对应的特征检测代码,将特征检测代码在被测电子设备上对应的运行实体上运行(若无运行实体,则在电子设备上的每一个运行实体上依次运行),检测漏洞特征是否存在,从而达到检测漏洞的目的。其中的被测电子设备可以是使用安卓(android)软件系统的电子设备,如手机、掌上电脑或车载设备等。本技术提供的漏洞特征获取装置可以在线获取安卓系统已知漏洞的漏洞特征,若安卓系统出现的漏洞有更新,可实时获取更新的漏洞的漏洞特征,提高了漏洞特征的获取效率,降低系统漏洞库的维护成本。下面结合附图详细说明漏洞特征的获取过程。
40.图2为本技术提供的漏洞特征获取方法实施例一的流程图,本实施例中的执行主体可以为图1所示的漏洞特征获取装置,该漏洞特征获取装置可以为硬件装置或软件模块,如图2所示,本实施例的方法可以包括:
41.s101、获取到漏洞的漏洞补丁信息后,根据漏洞补丁信息确定漏洞的类型,类型包括代码类型的漏洞和非代码类型的漏洞。
42.其中,获取漏洞的漏洞补丁信息,可以是从安卓管网安全公告信息中获取,具体地,安卓管网安全公告信息中包括漏洞如公共漏洞和暴露(common vulnerabilities and exposures,cve)的标识、参考编号、类型、严重程度以及已更新的android开放源代码项目(android open-source project,aosp)版本等信息,如下表一为安全公告信息的内容示例:其中,参考编号携带漏洞补丁信息的链接,类型为远程命令或代码执行漏洞(remote command/code execute,rce),严重程度包括高、中和低。
43.表一
[0044][0045]
获取漏洞的漏洞补丁信息,首先根据漏洞的标识确定对应的参考编号,根据参考编号获取对应的漏洞补丁信息。获取到漏洞的漏洞补丁信息后,可确定漏洞的类型是代码类型的漏洞还是非代码类型的漏洞。若漏洞的漏洞补丁信息包括漏洞的源代码和漏洞的修复代码,则可确定漏洞的类型是代码类型的漏洞;若漏洞的漏洞补丁信息包括漏洞的源文件和漏洞的修复文件,则可确定漏洞的类型是非代码类型的漏洞。
[0046]
需要说明的是,若安全公告信息中包括多个漏洞,可以一次获取到多个漏洞的漏洞补丁信息,对每个漏洞,分别获取每个漏洞的漏洞特征。若在一段时间内,安全公告信息中更新了一个漏洞,则一次获取该一个漏洞的漏洞补丁信息,然后执行后续流程获取该一个漏洞的漏洞特征。
[0047]
可选的,可以是按照预设时间周期性获取安全公告信息中的漏洞的漏洞补丁信息,该预设时间可以是半个月、一个月、3个月或6个月等,若有更新的漏洞,可实时追踪安全公告信息以获取更新的漏洞的漏洞补丁信息,然后执行后续流程获取更新的漏洞的漏洞特征。
[0048]
s102、根据漏洞的类型对应的漏洞分析引擎提取漏洞的至少一个漏洞特征。
[0049]
具体来说,不同类型的漏洞对应不同的漏洞分析引擎,代码类型的漏洞对应的是代码分析引擎,不同语言的代码对应不同的代码分析引擎,例如c/c 代码分析引擎、java代码分析引擎和内核代码分析引擎等。非代码类型的漏洞对应的是文件分析引擎,如配置文件分析引擎等。
[0050]
具体地,若漏洞的类型对应的漏洞分析引擎是c/c 代码分析引擎,则通过c/c 代码分析引擎对漏洞的漏洞补丁信息进行分析,提取漏洞的特征;若漏洞的类型对应的漏洞分析引擎是java代码分析引擎,则通过java代码分析引擎对漏洞的漏洞补丁信息进行分析,提取漏洞的特征;若漏洞的类型对应的漏洞分析引擎是内核代码分析引擎,则通过内核代码分析引擎对漏洞的漏洞补丁信息进行分析,提取漏洞的特征;若漏洞的类型对应的漏洞分析引擎是配置文件分析引擎,则通过配置文件分析引擎对漏洞的漏洞补丁信息进行分析,提取漏洞的特征。不同的漏洞分析引擎分析并提取漏洞的漏洞特征的过程不同。
[0051]
一个漏洞有至少一个漏洞特征,若有多个漏洞,则多个漏洞的漏洞特征组成一个
漏洞特征集合。
[0052]
其中,对于代码类型的漏洞来说,漏洞特征例如可以是函数符号、类或类可见成员定义的增减,还可以是代码文件中具有唯一性的字符串的增减,还可以是代码执行流变更(例如增加了到库函数xx的跳转)等等。对于非代码类型的漏洞来说,漏洞特征例如可以是字符串特征的增加、字符串特征的删除、字符串特征的修改、文件的增加和文件的删除中的任一项,其中文件的增加或删除可以是库的增加或删除。
[0053]
s103、将漏洞的至少一个漏洞特征发送给电子设备。
[0054]
具体地,将漏洞的至少一个漏洞特征发送给电子设备,用于电子设备进行漏洞检测。
[0055]
本实施例提供的漏洞特征获取方法,通过在获取到漏洞的漏洞补丁信息后,根据漏洞补丁信息确定漏洞是代码类型的漏洞还是非代码类型的漏洞,然后根据漏洞的类型对应的漏洞分析引擎提取漏洞的至少一个漏洞特征,最后将漏洞的至少一个漏洞特征发送给电子设备。不同类型的漏洞对应不同的漏洞分析引擎,漏洞分析引擎是根据不同类型的漏洞预先建立的,因此,可实现在线获取漏洞的漏洞特征,提高漏洞特征的获取效率,不需要人工分析获取漏洞特征,降低系统漏洞库的维护成本。
[0056]
图3为本技术提供的漏洞特征获取方法实施例二的流程图,本实施例中的执行主体可以为图1所示的漏洞特征获取装置,如图3所示,本实施例的方法在图2所示方法的基础上,进一步地,在s103之前,还可以包括:
[0057]
s104、对漏洞的至少一个漏洞特征中的每个漏洞特征,根据漏洞特征的源代码或源文件所在的代码文件确定漏洞特征的运行实体,得到漏洞的漏洞特征和运行实体。
[0058]
具体来说,运行实体为代码文件在安卓系统运行时对应的应用程序(app)或系统软件,若发送给电子设备的只有漏洞特征,在检测时需要尝试运行实体,检测较慢,经s102获取到了漏洞的漏洞特征,还需要确定每个漏洞特征的运行实体,用于后续漏洞检测,每个漏洞确定其对应的运行实体,这样可以提高漏洞检测的效率。根据漏洞的漏洞补丁信息可获得漏洞的源代码或源文件,源代码对应代码类型的漏洞,源文件对应非代码类型的漏洞。需要说明的是,一个漏洞的漏洞特征若有多个,多个漏洞特征的运行实体可以相同,也可以不同。
[0059]
相应地,s103具体可以为:s103’、将所述漏洞的至少一个漏洞特征和对应的运行实体发送给电子设备。
[0060]
本实施例提供的漏洞特征获取方法,通过在获取到漏洞的漏洞补丁信息后,根据漏洞补丁信息确定漏洞是代码类型的漏洞还是非代码类型的漏洞,然后根据漏洞的类型对应的漏洞分析引擎提取漏洞的至少一个漏洞特征,接着对所提取的每个漏洞特征,根据漏洞特征的源代码或源文件所在的代码文件确定漏洞特征的运行实体,最后将漏洞的至少一个漏洞特征和对应的运行实体发送给电子设备。不同类型的漏洞对应不同的漏洞分析引擎,漏洞分析引擎是根据不同类型的漏洞预先建立的,因此,可实现在线获取漏洞的漏洞特征和对应的运行实体,提高漏洞特征的获取效率,不需要人工分析获取漏洞特征,降低系统漏洞库的维护成本。
[0061]
图4为本技术提供的漏洞特征获取方法实施例三的流程图,本实施例中的执行主体可以为图1所示的漏洞特征获取装置,如图4所示,本实施例的方法可以包括:
[0062]
s201、获取到漏洞的漏洞补丁信息后,根据漏洞补丁信息确定漏洞的类型,类型包括代码类型的漏洞和非代码类型的漏洞。
[0063]
其中,获取漏洞的漏洞补丁信息,可以是从安卓管网安全公告信息中获取,具体的获取过程可参见s101的描述,此处不再赘述。若漏洞的漏洞补丁信息包括漏洞的源代码和漏洞的修复代码,可确定漏洞的类型是代码类型的漏洞,则执行s202;若漏洞的漏洞补丁信息包括漏洞的源文件和漏洞的修复文件,可确定漏洞的类型是非代码类型的漏洞,则执行s203。
[0064]
s202、根据代码类型的漏洞对应的漏洞分析引擎提取漏洞的至少一个漏洞特征。
[0065]
其中,代码类型的漏洞对应的是代码分析引擎,不同语言的代码对应不同的代码分析引擎,例如c/c 代码分析引擎、java代码分析引擎和内核代码分析引擎等。
[0066]
作为一种可实施的方式,s202可以为:通过代码类型的漏洞对应的漏洞分析引擎执行如下操作:
[0067]
s2021、对漏洞的源代码和漏洞的修复代码进行对应编码语言的语法分析,根据语法分析结果确定出漏洞的源代码和漏洞的修复代码的至少一个差异信息,差异信息例如为函数符号、类或类可见成员定义的增减,还可以是代码文件中具有唯一性的字符串的增减,还可以是代码执行流变更(例如增加了到库函数xx的跳转)等等。
[0068]
s2022、根据至少一个差异信息确定漏洞的漏洞特征,一个差异信息对应一个漏洞特征,即就是确定出差异信息后,将一个差异信息确定为一个漏洞特征。
[0069]
以下述一漏洞的漏洞补丁信息为例:
[0070]
---
a/src/android、skaandroidframeworkutils.cpp
[0071]
b src/android、skaandroidframeworkutils.cpp
[0072]
@@-17,7 17,9@@
[0073]
#include“effects/grdisablecolorxp.h”[0074]
#endif//sk_support_gpu
[0075]-#ifdef sk_build_for_android
[0076]
#ifdef sk_build_for_android_framwork
[0077]

[0078]
#include<log/log.h>
[0079]
#if sk_support_gpu
[0080]
bool skandroidframeworkutils::clipwithstencil(skcanvas*canvas){
[0081]
@@-52,5 54,9@@
[0082]
}
[0083]
#end if//sk_support_gpu
[0084]

end if//sk_build_for_android
[0085]
void skandroidframeworkutils::safet8netlog(const char*bugnumber)
[0086]
{
[0087]
android
_
errorwritelog(0x534e4554,bugnumber);
[0088]
}
[0089]

[0090]
#end if//sk
_
build
_
for
_
android_framwork
[0091]
上述漏洞的漏洞补丁信息中,代码前是
“-”
的代码为漏洞的源代码,代码前是“ ”的代码为漏洞的修复代码,根据其中的一段“[0092]

end if//sk_build_for_android
[0093]
void skandroidframeworkutils::safet8netlog(const char*bugnumber)
[0094]
{
[0095]
android
_
errorwritelog(0x534e4554,bugnumber);”[0096]
可以分析出对应的类实现中增加了方法“void skandroidframeworkutils::safet8netlog(const char*bugnumber)”,该方法“void skandroidframeworkutils::safet8netlog(const char*bugnumber)”即为一个漏洞特征。
[0097]
本实施方式中通过代码类型的漏洞对应的漏洞分析引擎对漏洞的源代码和漏洞的修复代码进行对应编码语言的语法分析,根据语法分析结果确定出漏洞的源代码和漏洞的修复代码的至少一个差异信息,将一个差异信息确定为一个漏洞特征,从而可实现在线获取代码类型的漏洞的漏洞特征,提高漏洞特征的获取效率。
[0098]
s203、根据非代码类型的漏洞对应的漏洞分析引擎提取漏洞的至少一个漏洞特征。
[0099]
非代码类型的漏洞对应的是文件分析引擎,如配置文件分析引擎等。作为一种可实施的方式,s203可以为:通过非代码类型的漏洞对应的漏洞分析引擎执行如下操作:
[0100]
s2031、确定出漏洞的源文件和漏洞的修复文件的至少一个变化信息,变化信息包括字符串特征的增加、字符串特征的删除、字符串特征的修改、文件的增加和文件的删除中的任一项,其中文件的增加或删除可以是库的增加或删除。
[0101]
s2032、确定漏洞的源文件所在的代码文件,在漏洞的源文件所在的代码文件中检索至少一个变化信息中每一个变化信息是否是具有唯一性。
[0102]
s2033、将具有唯一性的变化信息确定为漏洞的漏洞特征。
[0103]
本实施方式中通过非代码类型的漏洞对应的漏洞分析引擎确定出漏洞的源文件和漏洞的修复文件之间的变化信息,在漏洞的源文件所在的代码文件中检索每一个变化信息是否具有唯一性,将具有唯一性的变化信息确定为漏洞的漏洞特征。从而可实现在线获取非代码类型的漏洞的漏洞特征,提高漏洞特征的获取效率。
[0104]
s204、对所述漏洞的至少一个漏洞特征中的每个漏洞特征,根据漏洞特征的源代码或源文件所在的代码文件确定漏洞特征的运行实体,得到漏洞的漏洞特征和运行实体。
[0105]
其中,作为一种可实施的方式,根据漏洞特征的源代码或源文件所在的代码文件确定漏洞特征的运行实体,具体可以为:
[0106]
s2041、确定漏洞特征的源代码或源文件所在的代码文件。
[0107]
s2042、从代码文件的编译配置文件中查找代码文件的运行实体,根据代码文件的运行实体确定漏洞特征的运行实体。
[0108]
其中,每个版本的系统对应一个编译配置文件,编译配置文件存储代码文件和对应的运行实体的映射关系,因此可以从代码文件的编译配置文件中查找到代码文件的运行实体,根据代码文件的运行实体即可确定漏洞特征的运行实体。确定出漏洞特征的运行实体,便于后续进行漏洞检测。具体地,在检测每个漏洞特征时,根据漏洞特征编译对应的特
征检测代码,将特征检测代码在被测电子设备上对应的运行实体上运行,检测漏洞特征是否存在,从而达到检测漏洞的目的,可以提高检测的效率。
[0109]
在图2-图4任一所示实施例的基础上,进一步地,还可以对获取到的漏洞特征进行验证,以提高漏洞特征获取的准确性,以图2所示方法为例,图5为本技术提供的漏洞特征获取方法实施例四的流程图,如图5所示,本实施例的方法在s204之后,还可以包括:
[0110]
s205、将漏洞的至少一个漏洞特征通过预先构建的测试靶机集群进行测试验证,得到验证通过的漏洞特征,测试靶机集群中包括漏洞已修复的测试靶机和漏洞未修复的测试靶机。
[0111]
其中,测试靶机集群为根据不同安卓系统版本、不同处理器架构平台和不同安全补丁版本构建的多个测试靶机,测试靶机集群中要包括漏洞已修复的测试靶机和漏洞未修复的测试靶机,漏洞已修复的测试靶机检测不出漏洞特征,漏洞未修复的测试靶机中能够检测出漏洞特征,这样才能保证获取到的漏洞特征的准确性,测试靶机可以是由虚拟机(如gen8motion虚拟机)和真机共同构建,其中gen8motion虚拟机为安卓模拟器,提供android虚拟环境。由于测试靶机集群为根据不同安卓系统版本、不同处理器架构平台和不同安全补丁版本构建,每一个测试靶机对应一个安卓系统版本、一个处理器架构平台和一个安全补丁版本,从而可以保证验证的全面性和准确性。
[0112]
s206、将验证通过的漏洞特征确定为漏洞的漏洞特征。
[0113]
通过将获取到的漏洞特征在预先构建的测试靶机集群进行测试验证,验证通过的漏洞特征和运行实体为最终的漏洞的漏洞特征,可提高漏洞获取的准确性,降低漏洞特征的误报率。
[0114]
可选的,s205中得到验证未通过的漏洞特征时,本实施例的方法还可以包括:s207、显示验证未通过的漏洞特征。
[0115]
对于验证未通过的漏洞特征,显示给用户,由用户(即开发人员)分析验证未通过的漏洞特征的产生原因,验证未通过的漏洞特征的产生原因可以包括未找到运行实体、漏洞特征未在对应的运行实体中找到、漏洞特征在对应的运行实体的对照版本中未体现出差异和缺少运行权限中的任一项。用户分析出原因后,可输入验证未通过的漏洞特征的产生原因。进一步地,本实施例的方法还可以包括:
[0116]
s208、接收用户输入的验证未通过的漏洞特征的产生原因,根据验证未通过的漏洞特征的产生原因增加漏洞分析引擎或者修改漏洞分析引擎。可辅助获取到正确的漏洞特征,进一步提高漏洞获取的准确性,降低漏洞特征的误报率。
[0117]
本实施例提供的漏洞特征获取方法,通过将获取到的漏洞特征在预先构建的测试靶机集群进行测试验证,验证通过的漏洞特征和运行实体为最终的漏洞的漏洞特征和运行实体,对于验证未通过的漏洞特征,根据用户输入的验证未通过的漏洞特征的产生原因增加漏洞分析引擎或者修改漏洞分析引擎,从而可辅助获取到正确的漏洞特征,进一步提高漏洞获取的准确性,降低漏洞特征的误报率。
[0118]
图6为本技术提供的一种漏洞特征获取装置的结构示意图,如图6所示,本实施例的漏洞特征获取装置100可以包括:获取模块11、确定模块12、提取模块13和发送模块14,其中,获取模块11用于获取到漏洞的漏洞补丁信息,确定模块12用于根据漏洞补丁信息确定漏洞的类型,类型包括代码类型的漏洞和非代码类型的漏洞,提取模块13用于根据漏洞的
类型对应的漏洞分析引擎提取漏洞的至少一个漏洞特征,发送模块14用于将所述漏洞的至少一个漏洞特征发送给电子设备。
[0119]
进一步地,确定模块12还用于:对所述漏洞的至少一个漏洞特征中的每个漏洞特征,根据漏洞特征的源代码或源文件所在的代码文件确定漏洞特征的运行实体。
[0120]
相应地,发送模块用于:将所述漏洞的至少一个漏洞特征和对应的运行实体发送给电子设备。
[0121]
可选的,漏洞的漏洞补丁信息包括漏洞的源代码和漏洞的修复代码,提取模块12用于:通过漏洞的类型对应的漏洞分析引擎执行如下操作:
[0122]
对漏洞的源代码和漏洞的修复代码进行对应编码语言的语法分析;
[0123]
根据语法分析结果确定出漏洞的源代码和漏洞的修复代码的至少一个差异信息,根据至少一个差异信息确定漏洞的漏洞特征,一个差异信息对应一个漏洞特征。
[0124]
可选的,漏洞的漏洞补丁信息包括漏洞的源文件和漏洞的修复文件,提取模块12用于:
[0125]
通过漏洞的类型对应的漏洞分析引擎执行如下操作:
[0126]
确定出漏洞的源文件和漏洞的修复文件的至少一个变化信息,变化信息包括字符串特征的增加、字符串特征的删除、字符串特征的修改、文件的增加和文件的删除中的任一项;
[0127]
确定漏洞的源文件所在的代码文件,在漏洞的源文件所在的代码文件中检索至少一个变化信息中每一个变化信息是否是具有唯一性;
[0128]
将具有唯一性的变化信息确定为漏洞的漏洞特征。
[0129]
进一步地,确定模块12用于:
[0130]
确定漏洞特征的源代码或源文件所在的代码文件;
[0131]
从代码文件的编译配置文件中查找代码文件的运行实体,根据代码文件的运行实体确定漏洞特征的运行实体。
[0132]
本实施例的装置,可以用于执行图2或图3或图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0133]
图7为本技术提供的一种漏洞特征获取装置的结构示意图,如图7所示,本实施例的漏洞特征获取装置200在图6所示装置的基础上,进一步地,还可以包括:验证模块15,其中,
[0134]
验证模块15用于将所述漏洞的至少一个漏洞特征通过预先构建的测试靶机集群进行测试验证,得到验证通过的漏洞特征,所述测试靶机集群中包括漏洞已修复的测试靶机和漏洞未修复的测试靶机。
[0135]
确定模块14还用于:将所述验证通过的漏洞特征确定为所述漏洞的漏洞特征。
[0136]
可选的,测试靶机集群根据不同安卓系统版本、不同处理器架构平台和不同安全补丁版本构建。
[0137]
本实施例的装置,可以用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0138]
图8为本技术提供的一种漏洞特征获取装置的结构示意图,如图8所示,本实施例的漏洞特征获取装置300在图7所示装置的基础上,进一步地,还可以包括:显示模块16,该
显示模块16用于在得到验证未通过的漏洞特征时,显示验证未通过的漏洞特征。
[0139]
进一步地,还可以包括接收模块17和处理模块18,其中,接收模块18用于接收用户输入的验证未通过的漏洞特征的产生原因,处理模块19用于根据验证未通过的漏洞特征的产生原因增加漏洞分析引擎或者修改漏洞分析引擎。
[0140]
本实施例的装置,可以用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0141]
根据本技术的实施例,本技术还提供了一种电子设备和一种可读存储介质。
[0142]
如图9所示,图9是用来实现本技术实施例的漏洞特征获取方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本技术的实现。
[0143]
如图9所示,该电子设备包括:一个或多个处理器801、存储器802,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器801为例。
[0144]
存储器802即为本技术所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本技术所提供的漏洞特征获取方法。本技术的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本技术所提供的漏洞特征获取方法。
[0145]
存储器802作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本技术实施例中的漏洞特征获取方法对应的程序指令/模块(例如,附图6所示的获取模块11、确定模块12、提取模块13和发送模块14)。处理器801通过运行存储在存储器802中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的漏洞特征获取方法。
[0146]
存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储电子设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0147]
漏洞特征获取方法的电子设备还可以包括:输入装置803和输出装置804。处理器801、存储器802、输入装置803和输出装置804可以通过总线或者其他方式连接,图8中以通过总线连接为例。
[0148]
输入装置803可接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置804可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
[0149]
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0150]
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
[0151]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0152]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0153]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
[0154]
根据本技术实施例的技术方案,通过在获取到漏洞的漏洞补丁信息后,根据漏洞补丁信息确定漏洞是代码类型的漏洞还是非代码类型的漏洞,然后根据漏洞的类型对应的漏洞分析引擎提取漏洞的至少一个漏洞特征,最后对所提取的每个漏洞特征,根据漏洞特
征的源代码或源文件所在的代码文件确定漏洞特征的运行实体,从而得到漏洞的漏洞特征和运行实体。不同类型的漏洞对应不同的漏洞分析引擎,漏洞分析引擎是根据不同类型的漏洞预先建立的,因此,可实现在线获取漏洞的漏洞特征,提高漏洞特征的获取效率,不需要人工分析获取漏洞特征,降低系统漏洞库的维护成本。
[0155]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本技术公开的技术方案所期望的结果,本文在此不进行限制。
[0156]
上述具体实施方式,并不构成对本技术保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本技术的精神和原则之内所作的修改、等同替换和改进等,均应包含在本技术保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献