一种漏洞检测方法及装置制造方法及图纸

技术编号:20546375 阅读:24 留言:0更新日期:2019-03-09 19:17
本申请实施例提供了一种漏洞检测方法及装置。所述方法包括:获取待检测文件;按照可执行代码的执行逻辑,确定针对所述待检测文件中各个叶子节点的逻辑表达式;对每个逻辑表达式进行测试,得到测试结果;根据所述测试结果,确定所述待检测文件是否存在漏洞;其中,所述待检测文件中包含可执行代码。应用本申请实施例提供的方案,能够提高对待检测文件进行漏洞检测时的准确性。

A Vulnerability Detection Method and Device

The embodiment of this application provides a vulnerability detection method and device. The method includes: acquiring the file to be detected; determining the logical expression for each leaf node in the file to be detected according to the execution logic of the executable code; testing each logical expression to obtain the test result; determining whether the file to be detected has a vulnerability according to the test result; and including the executable code in the file to be detected. \u3002 The application of the scheme provided by the embodiment of the present application can improve the accuracy of vulnerability detection for detecting files.

【技术实现步骤摘要】
一种漏洞检测方法及装置
本申请涉及安全检测
,特别是涉及一种漏洞检测方法及装置。
技术介绍
随着计算机技术的发展,用户可以通过包含可执行代码的文件来实现某些预定应用。当这些文件被电子设备执行时能够实现预定功能。对这些文件中的漏洞进行检测,能够尽可能避免损失,提高安全性。例如,基于区块链系统的以太坊平台,可以通过智能合约文件发布新型应用,区块链上的各个节点均可以通过智能合约文件实现对新型应用的使用。但是,智能合约文件的执行大多数还涉及用户之间的金钱转账,所以智能合约中的漏洞可能会造成严重后果。在对待检测漏洞的文件进行漏洞检测时,通常采用漏洞特征匹配的方式。具体的,可以对待检测漏洞的文件中的代码进行检测,当检测到存在与漏洞特征代码匹配的代码时,认为文件中存在漏洞。但是这种方式只能检测出已知的安全漏洞,无法检测可能存在的未知安全漏洞,对文件漏洞的检测准确性不够高。
技术实现思路
本申请实施例的目的在于提供了一种漏洞检测方法及装置,以提高对待检测文件进行漏洞检测时的准确性。第一方面,本申请实施例提供了一种漏洞检测方法,所述方法包括:获取待检测文件;其中,所述待检测文件中包含可执行代码;按照可执行代码的执行逻辑,确定针对所述待检测文件中各个叶子节点的逻辑表达式;对每个逻辑表达式进行测试,得到测试结果;根据所述测试结果,确定所述待检测文件是否存在漏洞。可选的,所述按照可执行代码的执行逻辑,确定针对所述待检测文件中各个叶子节点的逻辑表达式的步骤,包括:按照可执行代码的执行逻辑,生成所述待检测文件的可执行代码对应的执行流程图;根据所述执行流程图,生成针对所述待检测文件中各个叶子节点的逻辑表达式。可选的,所述对每个逻辑表达式进行测试,得到测试结果的步骤,包括:针对每个逻辑表达式,确定与所述逻辑表达式对应的输入参量;其中,所述输入参量用于对逻辑表达式进行测试;采用所述输入参量对对应的逻辑表达式进行测试,得到测试结果。可选的,所述输入参量包括输入值以及将该输入值输入对应的逻辑表达式时的标准输出结果;所述采用所述输入参量对对应的逻辑表达式进行测试,得到测试结果的步骤,包括:将所述输入值输入对应的逻辑表达式,得到参考输出结果;当所述参考输出结果与所述标准输出结果不符时,确定得到存在漏洞的测试结果;当所述参考输出结果与所述标准输出结果相符时,确定得到不存在漏洞的测试结果。可选的,所述获取待检测文件的步骤,包括:获取区块链系统中的新增区块数据,从所述新增区块数据中获取新增智能合约,作为待检测文件。可选的,当根据所述测试结果确定所述待检测文件存在漏洞时,所述方法还包括:针对每个存在漏洞的逻辑表达式,分别与预设的各个漏洞类型对应的漏洞特征进行匹配,根据匹配结果确定所述逻辑表达式的漏洞特征;根据各个逻辑表达式的漏洞类型,确定所述待检测文件的漏洞信息;从预设的各个漏洞信息与评分之间的对应关系中,将所述漏洞信息对应的评分确定为所述待检测文件的评分。第二方面,本申请实施例提供了一种漏洞检测装置,所述装置包括:获取模块,用于获取待检测文件;其中,所述待检测文件中包含可执行代码;第一确定模块,用于按照可执行代码的执行逻辑,确定针对所述待检测文件中各个叶子节点的逻辑表达式;测试模块,用于对每个逻辑表达式进行测试,得到测试结果;第二确定模块,用于根据所述测试结果,确定所述待检测文件是否存在漏洞。可选的,所述第一确定模块,具体用于:按照可执行代码的执行逻辑,生成所述待检测文件的可执行代码对应的执行流程图;根据所述执行流程图,生成针对所述待检测文件中各个叶子节点的逻辑表达式。可选的,所述测试模块,具体用于:针对每个逻辑表达式,确定与所述逻辑表达式对应的输入参量;其中,所述输入参量用于对逻辑表达式进行测试;采用所述输入参量对对应的逻辑表达式进行测试,得到测试结果。可选的,所述输入参量包括输入值以及将该输入值输入对应的逻辑表达式时的标准输出结果;所述测试模块,采用所述输入参量对对应的逻辑表达式进行测试,得到测试结果时,包括:将所述输入值输入对应的逻辑表达式,得到参考输出结果;当所述参考输出结果与所述标准输出结果不符时,确定得到存在漏洞的测试结果;当所述参考输出结果与所述标准输出结果相符时,确定得到不存在漏洞的测试结果。可选的,所述获取模块,具体用于:获取区块链系统中的新增区块数据,从所述新增区块数据中获取新增智能合约,作为待检测文件。可选的,所述装置还包括:评分模块;所述评分模块,用于:当根据所述测试结果确定所述待检测文件存在漏洞时,针对每个存在漏洞的逻辑表达式,分别与预设的各个漏洞类型对应的漏洞特征进行匹配,根据匹配结果确定所述逻辑表达式的漏洞类型;根据各个逻辑表达式的漏洞类型,确定所述待检测文件的漏洞信息;从预设的各个漏洞信息与评分之间的对应关系中,将所述漏洞信息对应的评分确定为所述待检测文件的评分。第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现本申请实施例第一方面提供的漏洞检测方法。第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例第一方面提供的漏洞检测方法。本申请实施例提供的漏洞检测方法及装置,可以按照可执行代码的执行逻辑,确定待检测文件中各个叶子节点的逻辑表达式,对每个逻辑表达式进行测试,根据测试结果确定待检测文件是否存在漏洞。这种方式可以对待检测文件中的逻辑关系进行检测,不管待检测文件中存在的安全漏洞是已知的还是未知的,均能够进行检测,无需依赖已知的安全漏洞特征,因此能够提高对待检测文件进行漏洞检测时的准确性。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的漏洞检测方法的一种流程示意图;图2A为本申请实施例中可执行代码的一种示意图;图2B为图2A中可执行代码对应的执行流程图;图3为本申请实施例中漏洞检测系统的一种架构示意图;图4为本申请实施例提供的漏洞检测装置的一种结构示意图;图5为本申请实施例提供的电子设备的一种结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。为了提高对待检测文件进行漏洞检测时的准确性,本申请实施例提供了一种漏洞检测方法及装置。下面通过具体实施例,对本申请进行详细说明。图1为本申请实施例提供的漏洞检测方法的一种流程示意图。该方法应用于具有计算处理能力的电子设备。该电子设备包括计算机、平板电脑、笔记本电脑、智能手本文档来自技高网...

【技术保护点】
1.一种漏洞检测方法,其特征在于,所述方法包括:获取待检测文件;其中,所述待检测文件中包含可执行代码;按照可执行代码的执行逻辑,确定针对所述待检测文件中各个叶子节点的逻辑表达式;对每个逻辑表达式进行测试,得到测试结果;根据所述测试结果,确定所述待检测文件是否存在漏洞。

【技术特征摘要】
1.一种漏洞检测方法,其特征在于,所述方法包括:获取待检测文件;其中,所述待检测文件中包含可执行代码;按照可执行代码的执行逻辑,确定针对所述待检测文件中各个叶子节点的逻辑表达式;对每个逻辑表达式进行测试,得到测试结果;根据所述测试结果,确定所述待检测文件是否存在漏洞。2.根据权利要求1所述的方法,其特征在于,所述按照可执行代码的执行逻辑,确定针对所述待检测文件中各个叶子节点的逻辑表达式的步骤,包括:按照可执行代码的执行逻辑,生成所述待检测文件的可执行代码对应的执行流程图;根据所述执行流程图,生成针对所述待检测文件中各个叶子节点的逻辑表达式。3.根据权利要求1或2所述的方法,其特征在于,所述对每个逻辑表达式进行测试,得到测试结果的步骤,包括:针对每个逻辑表达式,确定与所述逻辑表达式对应的输入参量;其中,所述输入参量用于对逻辑表达式进行测试;采用所述输入参量对对应的逻辑表达式进行测试,得到测试结果。4.根据权利要求3所述的方法,其特征在于,所述输入参量包括输入值以及将该输入值输入对应的逻辑表达式时的标准输出结果;所述采用所述输入参量对对应的逻辑表达式进行测试,得到测试结果的步骤,包括:将所述输入值输入对应的逻辑表达式,得到参考输出结果;当所述参考输出结果与所述标准输出结果不符时,确定得到存在漏洞的测试结果;当所述参考输出结果与所述标准输出结果相符时,确定得到不存在漏洞的测试结果。5.根据权利要求1所述的方法,其特征在于,所述获取待检测文件的步骤,包括:获取区块链系统中的新增区块数据,从所述新增区块数据中获取新增智能合约,作为待检测文件。6.根据权利要求1所述的方法,其特征在于,当根据所述测试结果确定所述待检测文件存在漏洞时,所述方法...

【专利技术属性】
技术研发人员:张文君刘争辉高春盟杨文玉
申请(专利权)人:北京金山安全软件有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1