安全检测方法、系统、生成安全检测的数据的方法及介质与流程
未命名
07-23
阅读:117
评论:0
1.本技术涉及计算机领域,并且更具体地涉及安全检测方法、生成用于安全检测的数据的方法、安全检测系统及计算机存储介质。
背景技术:
2.随着智能网联汽车的发展,汽车智能化程度越来越高,汽车中的多个系统会使用到闭源软件方案。这些闭源软件方案通常为由第三方供应商提供并且能够实现特定功能的代码库,使用者可以直接调用这些闭源软件方案来实现相应的功能。然而,一般情况下,开发人员会将这些闭源软件方案作为实现特定功能的整体模块使用,由于缺乏对第三方软件库的内部实现细节的理解,开发人员容易忽视其内部的安全问题。如果无法保证闭源软件方案的安全性,第三方软件库的漏洞也会被引入到正在开发的宿主项目中。因此,需要对闭源软件方案进行安全性检测。
3.目前的安全检测方法需要投入大量的人力,并且目前的静态分析工具无法直接用于检测闭源软件方案的安全性,导致无法高效准确识别闭源软件方案出现的安全问题。鉴于此,需要更为可靠的安全检测方案,以帮助检测闭源软件方案的安全性。
技术实现要素:
4.为了解决或至少缓解以上问题中的一个或多个,提供了以下技术方案。
5.按照本技术的第一方面,提供一种安全检测方法,所述方法包括下列步骤:获取漏洞元数据集以及基于所述漏洞元数据集生成的漏洞验证样例元数据集;至少基于所述漏洞元数据集和所述漏洞验证样例元数据集从目标闭源组件中确定漏洞检测信息集;以及处理所述漏洞检测信息集以生成安全检测结果。
6.根据本技术一实施例所述的安全检测方法,其中获取漏洞元数据集包括:从一个或多个漏洞信息公开源获取公开漏洞数据;以及根据所述公开漏洞数据获取所述漏洞元数据集。
7.根据本技术一实施例或以上任一实施例的所述的安全检测方法,其中根据所述公开漏洞数据获取所述漏洞元数据集包括:对所述公开漏洞数据进行解析以提取供应商信息、漏洞存在的组件信息、漏洞描述信息、漏洞类型信息、漏洞版本信息、漏洞验证样例链接信息中的一个或多个作为所述漏洞元数据集。
8.根据本技术一实施例或以上任一实施例的所述的安全检测方法,其中所述漏洞验证样例元数据集通过以下方式基于所述漏洞元数据集来生成:根据供应商信息对所述漏洞元数据集进行筛选以获取漏洞验证样例链接信息;基于所述漏洞验证样例链接信息获取漏洞验证样例的载体;以及根据所述漏洞验证样例的载体的格式类型提取漏洞验证样本的填充数据信息、关键词信息和方法信息中的一个或多个以生成所述漏洞验证样例元数据集。
9.根据本技术一实施例或以上任一实施例的所述的安全检测方法,其中至少基于所述漏洞元数据集和所述漏洞验证样例元数据集从目标闭源组件中确定漏洞检测信息集包
括:至少基于所述漏洞元数据集和所述漏洞验证样例元数据集从所述目标闭源组件中确定潜在漏洞函数;以及处理所述潜在漏洞函数以确定所述漏洞检测信息集。
10.根据本技术一实施例或以上任一实施例的所述的安全检测方法,其中处理所述潜在漏洞函数以确定所述漏洞检测信息集包括:处理所述潜在漏洞函数以获取潜在漏洞执行轨迹、执行轨迹中调用的关键函数、与所述关键函数相关联的数据的传输路径以及所述传输路径的源点和终点;以及将所述潜在漏洞函数、所述潜在漏洞执行轨迹、所述数据的传输路径以及所述传输路径的源点和终点确定为所述漏洞检测信息集。
11.根据本技术一实施例或以上任一实施例的所述的安全检测方法,其中处理所述漏洞检测信息集以生成安全检测结果包括:对所述漏洞检测信息集进行静态分析以确定漏洞函数;以及根据所述漏洞函数的参数评估所述漏洞函数的参数可控程度、执行可达性和危害情况中的一个或多个以生成所述安全检测结果。
12.根据本技术一实施例或以上任一实施例的所述的安全检测方法,其中对所述漏洞检测信息集进行静态分析以确定漏洞函数包括:从所述潜在漏洞函数的入口参数开始,利用污点分析算法追踪所述潜在漏洞函数中的每个函数调用所使用的参数和返回值,传递所述潜在漏洞执行轨迹中的污点;以及根据所述污点的传递确定所述漏洞函数。
13.根据本技术一实施例或以上任一实施例的所述的安全检测方法,其中根据所述漏洞函数的参数评估所述漏洞函数的参数可控程度、执行可达性和危害情况中的一个或多个包括:根据所述漏洞函数的参数的类型评估所述漏洞函数的参数可控程度、执行可达性和危害情况中的一个或多个,其中所述漏洞函数的参数的类型包括整数、字符串、指针。
14.根据本技术一实施例或以上任一实施例的所述的安全检测方法,其中所述方法还包括:根据所述安全检测结果在显示界面上显示风险提示信息,所述风险提示信息包括漏洞类型、漏洞可能造成的危害、漏洞位置和漏洞执行轨迹中的一个或多个。
15.按照本技术的第二方面,提供一种生成用于安全检测的数据的方法,所述方法包括下列步骤:从一个或多个漏洞信息公开源获取公开漏洞数据;对所述公开漏洞数据进行解析以提取供应商信息、漏洞存在的组件信息、漏洞描述信息、漏洞类型信息、漏洞版本信息、漏洞验证样例链接信息中的一个或多个作为漏洞元数据集;以及基于所述漏洞元数据集生成漏洞验证样例元数据集以作为所述用于安全检测的数据。
16.根据本技术一实施例所述的生成用于安全检测的数据的方法,基于所述漏洞元数据集生成漏洞验证样例元数据集包括:根据供应商信息对所述漏洞元数据集进行筛选以获取漏洞验证样例链接信息;基于所述漏洞验证样例链接信息获取漏洞验证样例的载体;以及根据所述漏洞验证样例的载体的格式类型提取漏洞验证样本的填充数据信息、关键词信息和方法信息中的一个或多个以生成所述漏洞验证样例元数据集。
17.按照本技术的第三方面,提供一种安全检测系统,所述系统包括:存储器;与所述存储器耦合的处理器;以及存储在所述存储器上并在所述处理器上运行的计算机程序,所述计算机程序的运行导致执行根据本技术第一方面所述的安全检测方法的步骤。
18.根据本技术的第四方面,提供一种计算机存储介质,其包括指令,所述指令在运行时执行根据本技术第一方面所述的安全检测方法的步骤。
19.根据本技术的一个或多个实施例的安全检测方案能够利用闭源组件的漏洞检测信息集自动化地检测闭源软件方案的安全性,快速准确地定位到闭源软件方案的潜在漏
洞,从而有效地解决了相关技术中安全性检测存在漏检的问题以及耗费大量人力的问题。当根据本技术的一个或多个实施例的安全检测方案应用于智能车辆时,能够快速准确地定位到智能车辆中的潜在漏洞,降低安全人员的工作量,提高智能车辆的安全性。
附图说明
20.本技术的上述和/或其它方面和优点将通过以下结合附图的各个方面的描述变得更加清晰和更容易理解,附图中相同或相似的单元采用相同的标号表示。附图包括:
21.图1示出了根据本技术的一个或多个实施例的安全检测方法的流程图。
22.图2示出了根据本技术的一个或多个实施例的安全检测系统的框图。
23.图3示出了根据本技术的一个或多个实施例的生成用于安全检测的数据的方法的流程图。
24.图4示出了根据本技术的一个或多个实施例的安全检测系统的框图。
具体实施方式
25.下面参照其中图示了本技术示意性实施例的附图更为全面地说明本技术。但本技术可以按不同形式来实现,而不应解读为仅限于本文给出的各实施例。给出的上述各实施例旨在使本文的披露全面完整,以将本技术的保护范围更为全面地传达给本领域技术人员。
26.在本说明书中,诸如“包含”和“包括”之类的用语表示除了具有在说明书和权利要求书中有直接和明确表述的单元和步骤以外,本技术的技术方案也不排除具有未被直接或明确表述的其它单元和步骤的情形。
27.除非特别说明,诸如“第一”和“第二”之类的用语并不表示单元在时间、空间、大小等方面的顺序而仅仅是作区分各单元之用。
28.在本技术的上下文中,闭源组件可以理解为由第三方供应商提供的、安装在智能终端以实现特定功能的闭源软件库,所述智能终端可以包括但不限于智能汽车的各个子系统、路由器、打印机等。
29.在下文中,将参考附图详细地描述根据本技术的各个示例性实施例。
30.图1示出了根据本技术的一个或多个实施例的安全检测方法的流程图。
31.如图1中所示,在步骤101中,获取漏洞元数据集以及基于所述漏洞元数据集生成的漏洞验证样例元数据集。
32.可选地,在步骤101中,可以例如通过网络爬虫技术(例如,python网络爬虫)从一个或多个漏洞信息公开源(例如,公开网站)实时或定期获取公开漏洞数据,以根据所述公开漏洞数据获取漏洞元数据集。示例性地,漏洞信息公开网站可以包括但不限于cnvd、cve、cnnvd等。作为示例,可以收集多个漏洞信息披露网站,如cnvd、cve、cnnvd等,作为后续公开漏洞数据的来源。可选地,收集的漏洞信息披露网站可以被动态更新,例如新增或删除。可选地,根据公开漏洞数据获取漏洞元数据集可以包括对获取的公开漏洞数据进行解析以提取供应商信息、漏洞存在的组件信息、漏洞描述信息、漏洞类型信息、漏洞版本信息、漏洞验证样例(proof-of-concept,poc)链接信息中的一个或多个作为所述漏洞元数据集。例如,根据漏洞信息公开网站的数据格式对获取的公开漏洞数据进行解析以提取供应商信息、漏
洞存在的组件信息、漏洞描述信息、漏洞类型信息、漏洞版本信息、漏洞验证样例(proof-of-concept,poc)链接信息,并将上述信息作为漏洞元数据集。示例性地,漏洞类型可以包括栈缓冲区溢出(stack-basedbuffer overflow)、堆缓冲区溢出(heap-basedbufferoverflow)、内存重复释放(doublefree)、内存释放后使用(useafterfree)、整数溢出(integer overflow)、空指针解引用(nullpointerdeference)等。
33.可选地,在步骤101中,漏洞验证样例元数据集可以通过以下方式基于漏洞元数据集来生成:根据供应商信息对所述漏洞元数据集进行筛选以获取漏洞验证样例链接信息;基于所述漏洞验证样例链接信息获取漏洞验证样例的载体;以及根据所述漏洞验证样例的载体的格式类型提取漏洞验证样本的填充数据信息、关键词信息和方法信息中的一个或多个以生成所述漏洞验证样例元数据集。在一个实施例中,当漏洞验证样例的载体的格式类型为图片时,可以定位漏洞验证样本中的异常数据块并提取该异常数据块作为漏洞验证样本的填充数据信息,同时根据图片格式中不同的偏移表示的不同的含义提取漏洞验证样本中的关键词信息。在一个实施例中,当漏洞验证样例的载体的格式类型为网络请求数据包时,可以通过网络请求包中的参数信息提取漏洞验证样本的关键词信息,同时可以通过关键词信息对应的值提取到相应的填充数据信息,另外也可以通过网络请求包中的请求链接定位到方法信息(例如,方法名)。在一个实施例中,当漏洞验证样例的载体的格式类型为程序二进制文件,可以通过对程序方法的解析定位到漏洞验证样本的方法信息,同时可以根据语义信息定位到漏洞验证样本的填充数据信息、关键词信息等。
34.在步骤103中,至少基于获取的漏洞元数据集和漏洞验证样例元数据集从目标闭源组件中确定漏洞检测信息集。
35.可选地,在步骤103中,可以至少基于获取的漏洞元数据集和漏洞验证样例元数据集从目标闭源组件中确定潜在漏洞函数,以及处理所述潜在漏洞函数以确定漏洞检测信息集。可选地,处理潜在漏洞函数以确定漏洞检测信息集可以包括:处理所述潜在漏洞函数以获取潜在漏洞执行轨迹、执行轨迹中调用的关键函数、与所述关键函数相关联的数据的传输路径以及所述传输路径的源点和终点,以及将所述潜在漏洞函数、所述潜在漏洞执行轨迹、所述数据的传输路径以及所述传输路径的源点和终点确定为漏洞检测信息集。可选地,目标闭源组件可以源自于智能汽车的子系统、路由器、打印机等。
36.在一个实施例中,可以根据供应商信息和漏洞存在的组件信息从目标智能汽车中筛选出目标闭源组件,其中供应商信息可以预先存储或者获取自漏洞元数据集,漏洞存在的组件信息可以获取自漏洞元数据集。在筛选出目标闭源组件后,可以通过例如ghidra加载该目标闭源组件反编译并进行初步分析,以根据漏洞验证样例元数据集中的关键词信息和方法信息以及漏洞元数据集中的漏洞类型信息,以函数为单位粒度(即逐个函数),从完整的目标闭源组件中筛选出潜在漏洞函数。接着,根据漏洞验证样例元数据集中的填充数据信息以及漏洞元数据集中的漏洞类型信息处理所述潜在漏洞函数以获取潜在漏洞执行轨迹和执行轨迹中调用的关键函数,以及根据漏洞验证样例元数据集中的填充数据信息的类型并且可选地结合通过人工经验预设的常见漏洞模式,得到漏洞执行轨迹中与所述关键函数相关联的数据的传输路径以及所述传输路径的源点和终点(即,source和sink)。最后,将潜在漏洞函数、潜在漏洞执行轨迹、数据的传输路径以及传输路径的源点和终点确定为漏洞检测信息集。
37.在步骤105中,处理漏洞检测信息集以生成安全检测结果。
38.可选地,在步骤105中,可以对漏洞检测信息集进行静态分析以得到漏洞函数,以及根据所述漏洞函数的参数评估漏洞函数的参数可控程度、执行可达性和危害情况中的一个或多个以生成安全检测结果。
39.可选地,在步骤105中,对漏洞检测信息集进行静态分析以确定漏洞函数可以包括:从潜在漏洞函数的入口参数开始,利用污点分析算法追踪所述潜在漏洞函数中的每个函数调用所使用的参数和返回值,传递所述潜在漏洞执行轨迹中的污点;以及根据污点的传递确定所述漏洞函数。示例性地,可以遍历每一个潜在漏洞函数,借助例如通过ghidra分析得到的代码中间表示形式(pcode),使用污点分析技术,从潜在漏洞函数的入口参数开始,追踪该漏洞函数中每一个函数调用所使用的参数以及返回值,逐个分析潜在漏洞执行轨迹中的每一个污点,确定符合对应类型漏洞模式的数据传输路径的漏洞函数,并根据所述漏洞函数的参数评估漏洞函数的参数可控程度、执行可达性和危害情况,以生成安全检测结果。
40.可选地,在步骤105中,可以根据漏洞函数的参数的类型评估所述漏洞函数的参数可控程度、执行可达性和危害情况中的一个或多个,其中所述漏洞函数的参数的类型可以包括整数、字符串、指针等类型。
41.作为示例,污点分析技术可以借助以下述代码举例进行说明:
[0042]“v1=websgetvar(input,“time”)”;
[0043]
其中,time可以理解为关键词信息,此处没有函数信息。然后可以利用time这个漏洞关键字,在二进制程序中定位污点源,可以理解为此时在二进制程序中的time就被标记为污点源,且可以通过赋值操作传播到变量v1,因此v1也可以被标记为污点源。当参数time的长度大于255则会发生栈溢出漏洞。
[0044]
在一个实施例中,对于堆缓冲区溢出漏洞,可以对漏洞检测信息集进行静态分析以得到漏洞函数memcpy,以及对memcpy的三个参数进行分析以评估漏洞函数的参数可控程度、执行可达性和危害情况中的一个或多个。如果memcpy的第三个参数被污点标记(即意味着该参数的值可控),且该参数为整数类型,则表示漏洞可以控制缓冲区溢出的长度,从而造成较大的危害;如果memcpy的第二个参数被污点标记(即意味着该参数可控),则表示漏洞可以控制写入的内容,此时可以进一步根据第一个参数的类型(例如,是否是结构体、结构体中是否包含指针等)来判断缓冲区溢出的危害性(例如,如果结构体中包含函数指针,则危害性较大;反之,则危害性较小);如果memcpy的第一个参数被污点标记(即意味着该参数可控),而该参数是一段指向纯数据的指针,则表示漏洞可以控制缓冲区写入的目标地址,危害性较大。示例性地,可以通过风险分数来表示危害性的大小,或者通过风险等级来表示危害性的大小。
[0045]
在一个实施例中,对于命令注入漏洞(commandinjection),可以对漏洞检测信息集进行静态分析以得到漏洞函数system。可以对system的参数进行分析以评估漏洞函数的危害情况。如果system的参数为指针类型,且被污点标记(即意味着该参数可控),则表示漏洞可以执行任意命令,危害性较大;如果system的参数为内部变量并且通过其他函数调用得到(例如,sprintf(cmd,“ls%s”,f),则表示漏洞可以执行部分命令,危害性相较前者较小。示例性地,可以通过风险分数来表示危害性的大小,或者通过风险等级来表示危害性的
大小。
[0046]
根据本技术的一个或多个实施例的安全检测方法还可以包括根据安全检测结果在显示界面(例如,安全人员的计算机屏幕)上显示风险提示信息,所述风险提示信息包括漏洞类型、漏洞可能造成的危害、漏洞位置和漏洞执行轨迹中的一个或多个。
[0047]
根据本技术的一个或多个实施例的安全检测方法能够用于检测闭源软件方案的安全性,该闭源软件方案能够在智能汽车的各个子系统、路由器、打印机等中使用。示例性地,当该闭源软件方案在智能汽车的各个子系统中使用时,其可以包括例如libqcomvisualizer.so、libhdmiedid.so、lib_drm_fe.so、libdrc.so等。
[0048]
根据本技术的一个或多个实施例的安全检测方法能够利用闭源组件的漏洞检测信息集自动化地检测闭源软件方案的安全性,快速准确地定位到闭源软件方案的潜在漏洞,从而有效地解决了相关技术中安全性检测存在漏检的问题以及耗费大量人力的问题。当根据本技术的一个或多个实施例的安全检测方案应用于智能车辆时,能够快速准确地定位到智能车辆中的潜在漏洞,降低安全人员的工作量,提高智能车辆的安全性。
[0049]
图2示出了根据本技术的一个或多个实施例的安全检测系统的框图。
[0050]
如图2中所示,安全检测系统200可以包括信息提取模块210和处理模块220,提取模块210包括网页信息提取子模块2101、漏洞验证样例提取子模块2102和信息汇总子模块2103,处理模块220包括闭源组件筛选子模块2201、漏洞信息处理子模块2202、静态分析子模块2203和风险等级评估子模块2204。
[0051]
信息提取模块210配置成获取公开漏洞数据并根据所述公开漏洞数据获取漏洞元数据集,基于所述漏洞元数据集生成漏洞验证样例元数据集,并且将漏洞元数据集、漏洞验证样例元数据集和供应商信息发送至处理模块220。
[0052]
网页信息提取子模块2101可以配置成例如通过网络爬虫技术(例如,python网络爬虫)从一个或多个漏洞信息公开源实时获取公开漏洞数据以及根据获取的公开漏洞数据获取漏洞元数据集。示例性地,多个漏洞信息公开网站可以包括但不限于cnvd、cve、cnnvd等。可选地,网页信息提取子模块2101可以配置成对获取的公开漏洞数据进行解析以提取供应商信息、漏洞存在的组件信息、漏洞描述信息、漏洞类型信息、漏洞版本信息、漏洞验证样例(proof-of-concept,poc)链接信息作为漏洞元数据集。
[0053]
漏洞验证样例提取子模块2102可以配置成从网页信息提取子模块2101接收漏洞元数据集并基于漏洞元数据集生成漏洞验证样例元数据集。可选地,漏洞验证样例提取子模块2102可以配置成根据供应商信息对漏洞元数据集进行筛选以获取漏洞验证样例链接信息;基于所述漏洞验证样例链接信息获取漏洞验证样例的载体;以及根据所述漏洞验证样例的载体的格式类型提取漏洞验证样本的填充数据信息、关键词信息和方法信息中的一个或多个以生成漏洞验证样例元数据集。
[0054]
信息汇总子模块2103可以配置成从漏洞验证样例提取子模块2102接收漏洞元数据集和漏洞验证样例元数据集,并且获取除了漏洞元数据集中包括的供应商信息之外的供应商信息,并将汇总的漏洞元数据集、漏洞验证样例元数据集和供应商信息发送至处理模块220。
[0055]
处理模块220配置成基于漏洞元数据集、漏洞验证样例元数据集和供应商信息得到闭源组件的漏洞检测信息集,以及处理所述漏洞检测信息集以生成安全检测结果。
[0056]
闭源组件筛选子模块2201可以配置成根据供应商信息和漏洞存在的组件信息从目标对象中筛选出目标闭源组件并将筛选出的目标闭源组件发送至漏洞信息处理子模块2202。可选地,目标对象可以包括但不限于智能汽车的子系统、路由器、打印机等。
[0057]
漏洞信息处理子模块2202可以配置成通过例如ghidra加载筛选出的目标闭源组件反编译并进行初步分析,以根据漏洞验证样例元数据集中的关键词信息和方法信息以及漏洞元数据集中的漏洞类型信息,以函数为单位粒度(即逐个函数),从完整的目标闭源组件中筛选出潜在漏洞函数。接着,漏洞信息处理子模块2202可以配置成根据漏洞验证样例元数据集中的填充数据信息以及漏洞元数据集中的漏洞类型信息处理所述潜在漏洞函数以获取潜在漏洞执行轨迹和执行轨迹中调用的关键函数,以及根据漏洞验证样例元数据集中的填充数据信息的类型并且可选地结合通过人工经验预设的常见漏洞模式,得到漏洞执行轨迹中与所述关键函数相关联的数据的传输路径以及所述传输路径的源点和终点(即,source和sink)。最后,漏洞信息处理子模块2202可以配置成将潜在漏洞函数、潜在漏洞执行轨迹、数据的传输路径以及传输路径的源点和终点作为漏洞检测信息集发送至静态分析子模块2203。
[0058]
静态分析子模块2203可以配置成对漏洞检测信息集进行静态分析以得到漏洞函数,并将漏洞函数发送至风险等级评估子模块2204进行风险评估。可选地,静态分析子模块2203可以配置成遍历每一个潜在漏洞函数,借助例如通过ghidra分析得到的代码中间表示形式(pcode),使用污点分析技术,从潜在漏洞函数的入口参数开始,追踪该漏洞函数中每一个函数调用所使用的参数以及返回值,逐个分析潜在漏洞执行轨迹中的每一个污点,确定符合对应类型漏洞模式的数据传输路径的漏洞函数,并将漏洞函数发送至风险等级评估子模块2204进行风险评估。
[0059]
风险等级评估子模块2204可以配置成根据漏洞函数的参数评估漏洞函数的参数可控程度、执行可达性和危害情况中的一个或多个,以生成安全检测结果。
[0060]
可选地,处理模块220还可以将生成的安全检测结果发送至显示模块(图2中未示出),使得显示模块可以根据安全检测结果在显示界面(例如,安全人员的计算机屏幕)上显示风险提示信息,所述风险提示信息包括漏洞类型、漏洞可能造成的危害、漏洞位置和漏洞执行轨迹中的一个或多个。
[0061]
图3示出了根据本技术的一个或多个实施例的生成用于安全检测的数据的方法的流程图。
[0062]
如图3中所示,在步骤301中,从一个或多个漏洞信息公开源获取公开漏洞数据。
[0063]
可选地,在步骤301中,可以例如通过网络爬虫技术(例如,python网络爬虫)从一个或多个漏洞信息公开源(例如,公开网站)实时或定期获取公开漏洞数据。示例性地,漏洞信息公开网站可以包括但不限于cnvd、cve、cnnvd等。作为示例,可以收集多个漏洞信息披露网站,如cnvd、cve、cnnvd等,作为后续公开漏洞数据的来源。可选地,收集的漏洞信息披露网站可以被动态更新,例如新增或删除。
[0064]
在步骤303中,对公开漏洞数据进行解析以提取供应商信息、漏洞存在的组件信息、漏洞描述信息、漏洞类型信息、漏洞版本信息、漏洞验证样例链接信息中的一个或多个作为漏洞元数据集。示例性地,可以根据漏洞信息公开网站的数据格式对获取的公开漏洞数据进行解析以提取供应商信息、漏洞存在的组件信息、漏洞描述信息、漏洞类型信息、漏
洞版本信息、漏洞验证样例链接信息,并将上述信息作为漏洞元数据集。
[0065]
在步骤305中,基于漏洞元数据集生成漏洞验证样例元数据集以作为用于安全检测的数据。
[0066]
可选地,在步骤305中,可以根据供应商信息对所述漏洞元数据集进行筛选以获取漏洞验证样例链接信息,基于所述漏洞验证样例链接信息获取漏洞验证样例的载体,以及根据所述漏洞验证样例的载体的格式类型提取漏洞验证样本的填充数据信息、关键词信息和方法信息中的一个或多个以生成所述漏洞验证样例元数据集。在一个实施例中,当漏洞验证样例的载体的格式类型为图片时,可以定位漏洞验证样本中的异常数据块并提取该异常数据块作为漏洞验证样本的填充数据信息,同时根据图片格式中不同的偏移表示的不同的含义提取漏洞验证样本中的关键词信息。在一个实施例中,当漏洞验证样例的载体的格式类型为网络请求数据包时,可以通过网络请求包中的参数信息提取漏洞验证样本的关键词信息,同时可以通过关键词信息对应的值提取到相应的填充数据信息,另外也可以通过网络请求包中的请求链接定位到方法信息(例如,方法名)。在一个实施例中,当漏洞验证样例的载体的格式类型为程序二进制文件,可以通过对程序方法的解析定位到漏洞验证样本的方法信息,同时可以根据语义信息定位到漏洞验证样本的填充数据信息、关键词信息等。
[0067]
图3所示的根据本技术的一个或多个实施例的生成用于安全检测的数据的方法可以应用于多种领域来检测闭源软件方案的安全性,例如可以用于检测车辆、路由器、打印机等中的一些第三方组件的常见漏洞,例如检测路由器厂商在路由器中使用的httpd、goform等web组件中的漏洞,以及检测usb相关的内核模块netusb等中的漏洞。
[0068]
图4示出了根据本技术的一个或多个实施例的安全检测系统的框图。
[0069]
如图4中所示,安全检测系统40包括通信单元410、存储器420(例如,诸如闪存、rom、硬盘驱动器、磁盘、光盘之类的非易失存储器)、处理器430以及存储在存储器420上并可在处理器430上运行的计算机程序440。
[0070]
通信单元410作为通信接口,被配置为在安全检测系统40与外部设备或网络(例如,漏洞信息公开网站、显示界面等)之间建立通信连接。
[0071]
存储器420存储可由处理器430执行的计算机程序440。此外。存储器420还可存储处理器430执行计算机程序时生成的数据(例如,漏洞元数据集、漏洞验证样例元数据集、闭源组件的漏洞检测信息集等)和经通信单元410从外部接收的数据或命令。
[0072]
处理器430配置为执行计算机程序440以实施根据本技术的一个或多个实施例的安全检测方法。
[0073]
根据本技术的一个或多个实施例的安全检测系统能够利用闭源组件的漏洞检测信息集自动化地检测闭源软件方案的安全性,快速准确地定位到闭源软件方案的潜在漏洞,从而有效地解决了相关技术中安全性检测存在漏检的问题以及耗费大量人力的问题。当根据本技术的一个或多个实施例的安全检测方案应用于智能车辆时,能够快速准确地定位到智能车辆中的潜在漏洞,降低安全人员的工作量,提高智能车辆的安全性。
[0074]
另外,如上所述,本技术也可以被实施为一种计算机可读存储介质,所述计算机存储介质包括指令,所述指令在运行时执行按照本技术的一个方面的安全检测方法。
[0075]
在可适用的情况下,可以使用硬件、软件或硬件和软件的组合来实现由本技术提供的各种实施例。而且,在可适用的情况下,在不脱离本技术的范围的情况下,本文中阐述
的各种硬件部件和/或软件部件可以被组合成包括软件、硬件和/或两者的复合部件。在可适用的情况下,在不脱离本技术的范围的情况下,本文中阐述的各种硬件部件和/或软件部件可以被分成包括软件、硬件或两者的子部件。另外,在可适用的情况下,预期的是,软件部件可以被实现为硬件部件,以及反之亦然。
[0076]
根据本技术的软件(诸如程序代码和/或数据)可以被存储在一个或多个计算机存储介质上。还预期的是,可以使用联网的和/或以其他方式的一个或多个通用或专用计算机和/或计算机系统来实现本文中标识的软件。在可适用的情况下,本文中描述的各个步骤的顺序可以被改变、被组合成复合步骤和/或被分成子步骤以提供本文中描述的特征。
[0077]
提供本文中提出的实施例和示例,以便最好地说明按照本技术及其特定应用的实施例,并且由此使本领域的技术人员能够实施和使用本技术。但是,本领域的技术人员将会知道,仅为了便于说明和举例而提供以上描述和示例。所提出的描述不是意在涵盖本技术的各个方面或者将本技术局限于所公开的精确形式。
技术特征:
1.一种安全检测方法,其特征在于,所述方法包括下列步骤:获取漏洞元数据集以及基于所述漏洞元数据集生成的漏洞验证样例元数据集;至少基于所述漏洞元数据集和所述漏洞验证样例元数据集从目标闭源组件中确定漏洞检测信息集;以及处理所述漏洞检测信息集以生成安全检测结果。2.根据权利要求1所述的方法,其中获取漏洞元数据集包括:从一个或多个漏洞信息公开源获取公开漏洞数据;以及根据所述公开漏洞数据获取所述漏洞元数据集。3.根据权利要求2所述的方法,其中根据所述公开漏洞数据获取所述漏洞元数据集包括:对所述公开漏洞数据进行解析以提取供应商信息、漏洞存在的组件信息、漏洞描述信息、漏洞类型信息、漏洞版本信息、漏洞验证样例链接信息中的一个或多个作为所述漏洞元数据集。4.根据权利要求1所述的方法,其中所述漏洞验证样例元数据集通过以下方式基于所述漏洞元数据集来生成:根据供应商信息对所述漏洞元数据集进行筛选以获取漏洞验证样例链接信息;基于所述漏洞验证样例链接信息获取漏洞验证样例的载体;以及根据所述漏洞验证样例的载体的格式类型提取漏洞验证样本的填充数据信息、关键词信息和方法信息中的一个或多个以生成所述漏洞验证样例元数据集。5.根据权利要求1所述的方法,其中至少基于所述漏洞元数据集和所述漏洞验证样例元数据集从目标闭源组件中确定漏洞检测信息集包括:至少基于所述漏洞元数据集和所述漏洞验证样例元数据集从所述目标闭源组件中确定潜在漏洞函数;以及处理所述潜在漏洞函数以确定所述漏洞检测信息集。6.根据权利要求5所述的方法,其中处理所述潜在漏洞函数以确定所述漏洞检测信息集包括:处理所述潜在漏洞函数以获取潜在漏洞执行轨迹、执行轨迹中调用的关键函数、与所述关键函数相关联的数据的传输路径以及所述传输路径的源点和终点;以及将所述潜在漏洞函数、所述潜在漏洞执行轨迹、所述数据的传输路径以及所述传输路径的源点和终点确定为所述漏洞检测信息集。7.根据权利要求1所述的方法,其中处理所述漏洞检测信息集以生成安全检测结果包括:对所述漏洞检测信息集进行静态分析以确定漏洞函数;以及根据所述漏洞函数的参数评估所述漏洞函数的参数可控程度、执行可达性和危害情况中的一个或多个以生成所述安全检测结果。8.根据权利要求7所述的方法,其中对所述漏洞检测信息集进行静态分析以确定漏洞函数包括:从所述潜在漏洞函数的入口参数开始,利用污点分析算法追踪所述潜在漏洞函数中的每个函数调用所使用的参数和返回值,传递所述潜在漏洞执行轨迹中的污点;以及
根据所述污点的传递确定所述漏洞函数。9.根据权利要求7所述的方法,其中根据所述漏洞函数的参数评估所述漏洞函数的参数可控程度、执行可达性和危害情况中的一个或多个包括:根据所述漏洞函数的参数的类型评估所述漏洞函数的参数可控程度、执行可达性和危害情况中的一个或多个,其中所述漏洞函数的参数的类型包括整数、字符串、指针。10.根据权利要求1所述的方法,其中所述方法还包括:根据所述安全检测结果在显示界面上显示风险提示信息,所述风险提示信息包括漏洞类型、漏洞可能造成的危害、漏洞位置和漏洞执行轨迹中的一个或多个。11.一种生成用于安全检测的数据的方法,其特征在于,所述方法包括下列步骤:从一个或多个漏洞信息公开源获取公开漏洞数据;对所述公开漏洞数据进行解析以提取供应商信息、漏洞存在的组件信息、漏洞描述信息、漏洞类型信息、漏洞版本信息、漏洞验证样例链接信息中的一个或多个作为漏洞元数据集;以及基于所述漏洞元数据集生成漏洞验证样例元数据集以作为所述用于安全检测的数据。12.根据权利要求11所述的方法,其中基于所述漏洞元数据集生成漏洞验证样例元数据集包括:根据供应商信息对所述漏洞元数据集进行筛选以获取漏洞验证样例链接信息;基于所述漏洞验证样例链接信息获取漏洞验证样例的载体;以及根据所述漏洞验证样例的载体的格式类型提取漏洞验证样本的填充数据信息、关键词信息和方法信息中的一个或多个以生成所述漏洞验证样例元数据集。13.一种安全检测系统,其特征在于,所述系统包括:存储器;与所述存储器耦合的处理器;以及存储在所述存储器上并在所述处理器上运行的计算机程序,所述计算机程序的运行根据权利要求1-10中的任一项所述的安全检测方法。14.一种计算机可读存储介质,其特征在于,所述计算机存储介质包括指令,所述指令在运行时执行根据权利要求1-10中的任一项所述的安全检测方法。
技术总结
本申请涉及计算机领域,并且更具体地涉及安全检测方法、生成用于安全检测的数据的方法、安全检测系统及计算机存储介质。按照本申请的一个方面的安全检测方法包括:获取漏洞元数据集以及基于所述漏洞元数据集生成的漏洞验证样例元数据集;至少基于所述漏洞元数据集和所述漏洞验证样例元数据集从目标闭源组件中确定漏洞检测信息集;以及处理所述漏洞检测信息集以生成安全检测结果。信息集以生成安全检测结果。信息集以生成安全检测结果。
技术研发人员:林超阳 沈明航
受保护的技术使用者:蔚来软件科技(上海)有限公司
技术研发日:2023.04.03
技术公布日:2023/7/22
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种玉米大豆带状间作种植控旺增产的方法与流程 下一篇:一种时变水声信道估计方法
