程序漏洞检测方法及相关装置制造方法及图纸

技术编号:18203896 阅读:42 留言:0更新日期:2018-06-13 06:11
本申请提供了一种程序漏洞检测方法,该方法在检测某项业务对应的现有程序时,不仅获取该待检测程序的逻辑流程图,还获取分析该业务后确定出的标准逻辑流程图,将待检测程序的逻辑流程图与该标准逻辑流程图进行比对,以确定待检测程序的逻辑流程图与标准逻辑流程图中不一致的步骤,该步骤即待检测程序中的漏洞。可见,该方法不仅可以发现待检测程序现有流程中的问题,还可以发现其缺失的步骤,漏洞检查更加全面。另外,本申请还提供了程序漏洞检测装置及设备,用以保证所述方法在实际中的应用及实现。

【技术实现步骤摘要】
程序漏洞检测方法及相关装置
本申请涉及程序代码检测
,更具体地,是程序漏洞检测方法及相关装置。
技术介绍
检测程序代码是否存在漏洞的方式之一为白盒测试。白盒测试又称为结构测试,目前白盒测试的一种具体方法是逻辑覆盖,该方法分析出程序代码所有可能执行的路径,在当前分析出的路径上查找代码漏洞。但是,此种检测方法只能检测出程序代码现有流程中的问题,并不能发现现有流程本身所缺失的步骤,检测内容并不全面。
技术实现思路
有鉴于此,本申请提供了一种程序漏洞检测方法,用以检测出现有程序中可能存在的缺失漏洞,以提高检测的全面性。另外,本申请还提供了一种程序漏洞检测装置及设备,用以保证所述方法在实际中的应用及实现。为实现所述目的,本申请提供的技术方案如下:第一方面,本申请提供了一种程序漏洞检测方法,包括:接收用户输入的待检测流程逻辑图及标准逻辑流程图;其中,所述待检测逻辑流程图用于表示待检测程序的逻辑流程,所述待检测程序为实现目标业务而编写的程序,所述标准逻辑流程图用于表示所述目标业务的必需逻辑流程;对比所述待检测逻辑流程图与所述标准逻辑流程图是否一致;若一致,则提示待检测程序不存在漏洞;若不一致,则确定所述待检测逻辑流程图与所述标准逻辑流程图的不一致节点,并提示所述不一致节点。第二方面,本申请提供了一种程序漏洞检测装置,包括:逻辑流程图接收单元,用于接收用户输入的待检测流程逻辑图及标准逻辑流程图;其中,所述待检测逻辑流程图用于表示待检测程序的逻辑流程,所述待检测程序为实现目标业务而编写的程序,所述标准逻辑流程图用于表示所述目标业务的必需逻辑流程;逻辑流程图对比单元,用于对比所述待检测逻辑流程图与所述标准逻辑流程图是否一致;若一致,则触发对比一致提示单元,若不一致,则触发对比不一致提示单元;对比一致提示单元,用于提示待检测程序不存在漏洞;对比不一致提示单元,用于确定所述待检测逻辑流程图与所述标准逻辑流程图的不一致节点,并提示所述不一致节点。第三方面,本申请提供了一种程序漏洞检测设备,包括:上述程序漏洞检测装置。由以上技术方案可知,本实施例提供了一种程序漏洞检测方法,该方法在检测某项业务对应的现有程序时,不仅获取该待检测程序的逻辑流程图,还获取分析该业务后确定出的标准逻辑流程图,将待检测程序的逻辑流程图与该标准逻辑流程图进行比对,以确定待检测程序的逻辑流程图与标准逻辑流程图中不一致的步骤,该步骤即待检测程序中的漏洞。可见,该方法不仅可以发现待检测程序现有流程中的问题,还可以发现其缺失的步骤,漏洞检查更加全面。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请提供的程序代码的逻辑流程的一个示意图;图2为本申请提供的程序漏洞检测方法的一个流程图;图3A为本申请提供的标准逻辑流程图的一个示例图;图3B为本申请提供的待检测逻辑流程图的一个示例图;图3C为本申请提供的对比图3A及图3B后的检测结果的一个示例图;图4为本申请提供的程序代码的逻辑流程的另一示意图;图5A为本申请提供的标准逻辑流程图的另一示例图;图5B为本申请提供的待检测逻辑流程图的另一示例图;图5C为本申请提供的对比图5A及图5B后的检测结果的另一示例图;图6为本申请提供的程序漏洞检测装置的结构示意图;图7为本申请提供的程序漏洞检测设备的通用计算机架构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。目前用于检测程序漏洞的逻辑覆盖方法,只能发现程序代码现有流程中的问题,若现有流程本身是不完整的,这也算是一种代码漏洞,对于此种类型的漏洞,逻辑覆盖方法并不能发现。如图1所示的程序代码的逻辑流程,从程序入口分别到程序出口1、程序出口2及程序出口3,均包含多条由实线条组成的路径,此些路径是现有程序代码流程中的路径。逻辑覆盖方法可以在此些路径上查找漏洞,但现有流程中缺失一部分节点即虚线框及虚线条部分,逻辑覆盖方法不能发现与这条路径相关的漏洞。对此,本申请提供了一种程序漏洞检测方法,如图2所示该检测方法流程包括以下步骤S201~步骤S204。S201:接收用户输入的待检测逻辑流程图及标准逻辑流程图。其中,待检测逻辑流程图所示的流程为现有程序的流程,该现有程序为实现某一项业务已编写完成的程序,该程序即待检测程序。标准逻辑流程图所示的流程为实现该业务所必需的流程,为了便于描述,可以将该某一业务称为目标业务。例如,在某游戏类系统中,玩家A拥有金币(一种金钱的虚拟单位),玩家B拥有道具(一种游戏过程所使用的物品),玩家A想要使用金币购买玩家B的道具,这就是游戏系统内的一项交易业务。用户分析上述交易业务后,确定出来为了实现该交易业务所必需的逻辑流程,并向设备输入表示该逻辑流程的图示。该图示如图3A所示,玩家A发起交易请求,玩家B同意交易后,检查玩家双方是否在线,并检查道具数量是否足够,以及检查金币是否足够,检查通过后进行交易。用户获得为实现上述交易业务而编写完成的程序代码,分析该程序代码后,确定出该现有程序的逻辑流程,并向设备输入表示该逻辑流程的图示。该如图3B所示,玩家A发起交易请求,玩家B同意交易后,检查交易道具数量是否足够,以及检查金币是否足够,检查通过后进行交易。需要说明的是,用户可以使用设备提供的流程绘制工具输入流程,所输入的流程也并非局限于图3A及图3B所示,可以是本领域技术人员可以理解并预期得到的其他形式,以下具体说明逻辑流程图如何生成,此处并不赘述。S202:对比该待检测逻辑流程图及该标准逻辑流程图,若一致,则执行步骤S203,若不一致,则执行步骤S204。其中,对比的内容可以包括:待检测逻辑流程图与标准逻辑流程图的步骤个数是否相同、步骤的内容是否相同、步骤的顺序是否相同中的任意一个或多个。逻辑流程图中的步骤可以包含在输入框内,例如用户在流程绘制工具中拖拽一个文本框,并在文本框中输入步骤内容,将各个文本框按照某种顺序连接起来,便组成一个逻辑流程图。这样,对比两个逻辑流程图中的输入框个数是否相同,则可以确定两个逻辑流程图的步骤个数是否相同;对比输入框内的内容是否相同,则可以确定两个逻辑流程图的步骤内容是否相同;对比各个输入框的连接顺序是否相同,则可以确定两个逻辑流程图的步骤顺序是否相同。需要说明的是,比较输入框内的内容是否相同时,可以使用语义检测方法。可以理解的是,对比的内容越多,越能精确地确定两个逻辑流程图是否一致。若对比多项内容,则只有在每项内容均一致的情况下,才执行步骤S203,只要有任意一项内容不一致,则执行步骤S204。以图3A及图3B为例,对比该两个逻辑流程图后,发现相较于图3A所示的标准逻辑流程图,图3B所示的待检测逻辑流程图中缺省一个步骤即“检查玩家双方是否在线”,这属于两个逻辑流程图中的步骤数量并不本文档来自技高网...
程序漏洞检测方法及相关装置

【技术保护点】
一种程序漏洞检测方法,其特征在于,包括:接收用户输入的待检测流程逻辑图及标准逻辑流程图;其中,所述待检测逻辑流程图用于表示待检测程序的逻辑流程,所述待检测程序为实现目标业务而编写的程序,所述标准逻辑流程图用于表示所述目标业务的必需逻辑流程;对比所述待检测逻辑流程图与所述标准逻辑流程图是否一致;若一致,则提示待检测程序不存在漏洞;若不一致,则确定所述待检测逻辑流程图与所述标准逻辑流程图的不一致节点,并提示所述不一致节点。

【技术特征摘要】
1.一种程序漏洞检测方法,其特征在于,包括:接收用户输入的待检测流程逻辑图及标准逻辑流程图;其中,所述待检测逻辑流程图用于表示待检测程序的逻辑流程,所述待检测程序为实现目标业务而编写的程序,所述标准逻辑流程图用于表示所述目标业务的必需逻辑流程;对比所述待检测逻辑流程图与所述标准逻辑流程图是否一致;若一致,则提示待检测程序不存在漏洞;若不一致,则确定所述待检测逻辑流程图与所述标准逻辑流程图的不一致节点,并提示所述不一致节点。2.根据权利要求1所述的程序漏洞检测方法,其特征在于,所述对比所述待检测逻辑流程图与所述标准逻辑流程图是否一致,包括:对比所述待检测逻辑流程图与所述标准逻辑流程图的节点数量、节点内容及节点顺序是否一致。3.根据权利要求2所述的程序漏洞检测方法,其特征在于,所述确定所述待检测逻辑流程图与所述标准逻辑流程图的不一致节点,并提示所述不一致节点,包括:若所述待检测流程图的节点数量与所述标准逻辑流程图的节点数量不一致,则确定所述待检测流程图多余或缺失的节点,并在所述标准逻辑流程图中,以预设样式显示所述节点。4.根据权利要求2所述的程序漏洞检测方法,其特征在于,所述确定所述待检测逻辑流程图与所述标准逻辑流程图的不一致节点,并提示所述不一致节点,包括:若所述待检测流程图的节点内容与所述标准逻辑流程图的节点内容不一致,则在所述标准逻辑流程图中,以预设样式显示该内容不一致的节点。5.根据权利要求2所述的程序漏洞检测方法,其特征在于,所述确定所述待检测逻辑流程图与所述标准逻辑流程图的不一致节点,并提示所述不一致节点,包括:若所述待检测流程图的节点顺序与所述标准逻辑流程图的节点顺序不一致,则在所述标准逻辑流程图中,以预设样式显示该顺序不一致的节点及其之间的连接线。6.根据权利要求2所述的程序漏洞检测方法,其特征在于,存储所述待检测流程逻辑图的数据结构为第一树,存储所述标准逻辑流程图的数据结构为第二树;相应地,所述对比所述待检测逻辑流程图与所述标准逻辑流程图的节点数量、节点内容及节点顺序是否一致,包括:依据树遍历算法,查找所述第二树包含但所述第一树并不包含的叶子节点。7.根据权利要求2所述的程序漏洞检测方法,其特征在于,存储所述待检测逻辑流程图中的节点的数据结构为第一结构体,存储所述标准逻辑流程图中的节点的数据结构为第二结构体;相应地,所述对比所述待检测逻辑流程图与所述标准逻辑流程图的节点数量、节点内容及节点顺序是否一致,包括:对比所述第一结构体与所述第二结构体的数量是否相同;对比所述第一结构体中的信息属性的值与所述第二结构体中的信息属性的值是否相同;其中,所述信息属性的值用于表示节点内容;对比所述信息属性值相同的第一结构体与第二结构体的排列顺序是否相同。8.根据权利要求1所述的程序漏洞检测方法,其特征在于,所述待检测逻辑流程图及所述标准逻辑流程图包含起始节点及结束节点之外,还包含判断节点、事件节点及循环节点中的任意一种或多种。9.一种程序漏洞检测装置,其特征在于,包括:逻辑流程图接收单元,用于接收用户输入的待检测流程逻辑图及标准逻辑流程图;其中,所述待检测逻辑流程图用于表示待检测程序的逻辑流程,所述待检测程序为实现目标业务而编写的程序,所述标准逻辑流程图用...

【专利技术属性】
技术研发人员:童立舟丁磊江诗怡
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1