程序漏洞路径追踪方法、装置、计算机设备及存储介质与流程

文档序号:22125394发布日期:2020-09-04 17:14阅读:187来源:国知局
程序漏洞路径追踪方法、装置、计算机设备及存储介质与流程

本发明属于计算机技术领域,尤其涉及一种程序漏洞路径追踪方法、装置、计算机设备及存储介质。



背景技术:

静态分析是在不实际运行程序的前提下对程序语义和行为进行分析。本质上,它把代码转换为数据并进行分析。此过程可以在软件开发生命周期(sdlc)的多个阶段中实现——即在编码后、测试阶段之前、主要项目检查点等处。它通过识别漏洞并突出显示风险级别来支持开发团队。

现有的静态分析工具在分析识别出程序漏洞后,通常都只展示存在程序漏洞的源代码行,并描述该源代码行存在的漏洞。事实上,在很多复杂的源代码中,会存在与源代码行关联的多条执行路径,而在不同的执行路径上执行到该源代码行时通常会对应产生不同原因的漏洞。也就是说,现有的静态分析工具所分析识别出的程序漏洞都是在某一条执行路径上执行到该源代码行时所确定出的程序漏洞,该程序漏洞并不能全面的描述在多条执行路径上的漏。对于相关负责人而言,如果无法获取不同执行路径上的漏洞信息,仅凭单一路径上的漏洞信息,他将难以对漏洞建立起正确和全面的认识,难以确定漏洞的复杂性以及修复的优先级,从而影响程序漏洞的修复准确率和效率。最常见的情况时仅该执行路径下的漏洞被修复了,而在其他执行路径下该漏洞仍然存在。

可见,现有的静态分析工具还存在着在识别出程序漏洞后,无法展示在不同路径下漏洞的漏洞信息,相关负责人无法确定不同执行路径上漏洞的复杂性以及修复的优先级,从而影响到程序漏洞的修复准确率和效率的技术问题



技术实现要素:

本发明实施例的目的在于提供一种程序漏洞路径追踪方法,旨在解决现有的静态分析工具所存在的在识别出程序漏洞后,无法展示在不同路径下漏洞的漏洞信息,相关负责人无法确定不同执行路径上漏洞的复杂性以及修复的优先级,从而影响到程序漏洞的修复准确性和效率的技术问题。

本发明实施例是这样实现的,一种程序漏洞路径追踪方法,包括:

根据预设的程序静态分析软件对待检测程序进行检测,并确定所述待检测程序中存在程序漏洞的触发源代码行;

确定所述触发源代码行的源头源代码行;

确定所述源头源代码行到所述触发源代码行的至少一条执行路径;

根据所述执行路径生成与所述执行路径对应的程序漏洞路径追踪流程视图,并展示。

本发明实施例的另一目的在于提供一种程序漏洞路径追踪装置,包括:

程序漏洞检测单元,用于根据预设的程序静态分析软件对待检测程序进行检测,并确定所述待检测程序中存在程序漏洞的触发源代码行;

源头源代码确定单元,用于确定所述触发源代码行的源头源代码行;

执行路径确定单元,用于确定所述源头源代码行到所述触发源代码行的至少一条执行路径;

路径追踪流程图展示单元,用于根据所述执行路径生成与所述执行路径对应的程序漏洞路径追踪流程视图,并展示。

本发明实施例的另一目的在于提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述所述程序漏洞路径追踪方法的步骤。

本发明实施例的另一目的在于提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上述所述程序漏洞路径追踪方法的步骤。

本发明实施例提供的一种程序漏洞路径追踪方法,在根据程序静态分析软件对待检测程序进行检测确定出存在程序漏洞的触发源代码行后,通过确定触发源代码行的源头源代码行,并自动识别出源头源代码行到所述触发源代码行之间的至少一条执行路径,根据所述执行路径生成与所述执行路径对应的程序漏洞路径追踪流程视图,并展示。本发明实施例提供的一种程序漏洞路径追踪方法,能够完整展示与存在程序漏洞的触发源代码行关联的多个执行路径下的程序漏洞路径追踪流程视图,相关负责人可以更全面的获取触发源代码行在不同路径上的漏洞信息,确定漏洞的复杂性以及修复的优先级,或进一步针对性的指派合适的程序修复人员,提高程序漏洞的修复准确性和效率,而程序修复人员在修复程序漏洞的过程中也能全面的获取到程序漏洞的完整代码信息,从而能够结合代码信息更加精确地对程序漏洞进行修复,防止漏洞仅部分被修复的情况出现。

附图说明

图1为本发明实施例提供的一种程序漏洞路径追踪方法的步骤流程图;

图2为本发明实施例提供的一种携带有漏洞描述信息的程序漏洞路径追踪方法的步骤流程图;

图3为本发明实施例提供的一种可展示漏洞描述信息的程序漏洞路径追踪方法的步骤流程图;

图4为本发明实施例提供的一种基于标识展示漏洞描述信息的程序漏洞路径追踪方法的步骤流程图;

图5为本发明实施例提供的一种携带有路径节点信息的程序漏洞路径追踪方法的步骤流程图;

图6为本发明实施例提供的一种可展示路径节点信息的程序漏洞路径追踪方法的步骤流程图;

图7为本发明实施例提供的另一种程序漏洞路径追踪方法的步骤流程图;

图8为本发明实施例提供的一种程序漏洞路径追踪装置的结构示意图;

图9为本发明实施例提供的一种可用于执行程序漏洞路径追踪方法的计算机设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,为本发明实施例提供的一种程序漏洞路径追踪方法的步骤流程图,具体包括以下步骤:

步骤s102,根据预设的程序静态分析软件对待检测程序进行检测,并确定所述待检测程序中存在程序漏洞的触发源代码行。

在本发明实施例中,利用常用的程序静态分析软件对待检测程序进行检测,同样可以确定待检测程序中存在程序漏洞的源代码行。但是目前的程序静态分析软件在检测出触发源代码行后,仅仅展示该源代码行以及在某执行路径下该源代码行所存在的程序漏洞类型。

在本发明实施例中,为了更好的展示本发明在多路径下触发源代码行所存在的程序漏洞,本发明是利用可以提供多路径检测服务的程序静态分析软件进行程序检测,而可提供多路径检测服务的程序静态分析软件属于本发明人在先已经研发出的功能产品,在此不再赘述。

步骤s104,确定所述触发源代码行的源头源代码行。

在本发明实施例中,通过对源代码上下文进行分析,可以追溯到与所述源代码行关联的源头源代码行,具体的,源头源代码行至触发源代码行之间的源代码行可以理解为一个功能模块。

步骤s106,确定所述源头源代码行到所述触发源代码行的至少一条执行路径。

在本发明实施例中,基于常用的程序静态分析软件对待检测程序进行检测,通常只能检测出一条执行路径,而基于前述提到的可提供多路径检测服务的程序静态分析软件进行程序检测,可以得到多条执行路径,视具体的存在程序漏洞的触发源代码行而定。

步骤s108,根据所述执行路径生成与所述执行路径对应的程序漏洞路径追踪流程视图,并展示。

在本发明实施例中,现有技术仅仅展示存在程序漏洞的触发源代码行,而本发明通过展示从源头源代码行到触发源代码行的一条或者多条具体的执行路径,能够描述出触发源代码行的上下文完整信息,当源头源代码行到触发源代码行存在多条执行路径时,更便于负责人通过分析在多条路径上源头源代码行到触发源代码行的执行过程,确定不同路径下触发源代码行存在的程序漏洞的复杂性与风险度,从而便于负责人确定出触发源代码行的在多条路径上的优先级,指派更加合适的专业修复技术人员,提高程序漏洞的修复准确性和效率。

在本发明实施例中,通过利用程序漏洞路径追踪流程视图来描述从源头源代码行到触发源代码行的执行路径,能便于负责人直观的了解到触发源代码行的总体概述。

本发明实施例提供的一种程序漏洞路径追踪方法,在根据程序静态分析软件对待检测程序进行检测确定出存在程序漏洞的触发源代码行后,通过确定触发源代码行的源头源代码行,并自动识别出源头源代码行到所述触发源代码行之间的至少一条执行路径,根据所述执行路径生成与所述执行路径对应的程序漏洞路径追踪流程视图,并展示。本发明实施例提供的一种程序漏洞路径追踪方法,能够完整展示与存在程序漏洞的触发源代码行关联的多个执行路径下的程序漏洞路径追踪流程视图,相关负责人可以更全面的获取触发源代码行在不同路径上的漏洞信息,确定漏洞的复杂性以及纠正的优先级,并进一步针对性的指派合适的程序修复人员,提高程序漏洞的修复效率,而程序修复人员在修复程序漏洞的过程中也能全面的获取到程序漏洞的完整代码信息,从而能够结合代码信息更加精确地对程序漏洞进行修复,防止漏洞仅在部分执行路径下被修复的情况出现。

如图2所示,为本发明实施例提供的一种携带有漏洞描述信息的程序漏洞路径追踪方法的步骤流程图,详述如下。

在本发明实施例中,与图1所示出的一种程序漏洞路径追踪方法的步骤流程图的区别在于,所述步骤s108,具体包括:

步骤s202,确定触发源代码行在所述执行路径下的漏洞描述信息。

在本发明实施例中,利用程序静态分析软件对待检测程序进行检测,通常可以获取在某一执行路径下的漏洞描述信息,而本发明同样的,当执行路径有多条时,分别确定触发源代码行在每一条执行路径下的漏洞描述信息。

步骤s204,根据所述执行路径以及与所述触发源代码行在所述执行路径下的漏洞描述信息生成与所述执行路径对应的程序漏洞路径追踪流程视图,并展示。

在本发明实施例中,分别通过进一步根据触发源代码行在不同执行路径下的漏洞描述信息生成对应的程序漏洞路径追踪流程视图,可以对用户起到较优的指导效果,具体的可以参阅图3中关于如何展示漏洞描述信息的方法。

如图3所示,为本发明实施例提供的一种可展示漏洞描述信息的程序漏洞路径追踪方法的步骤流程图,详述如下。

在本发明实施例中,与图2所示出的一种携带有漏洞描述信息的程序漏洞路径追踪方法的区别在于,在所述步骤s204后,还包括:

步骤s302,根据用户对所述程序漏洞路径追踪流程视图的选定操作,展示与所述程序漏洞路径追踪流程视图对应的漏洞描述信息。

在本发明实施例中,具体的用户可以通过拖拽鼠标的方式对程序漏洞路径追踪流程视图进行选定,具体的,当拖拽到程序漏洞路径追踪流程视图的某个流程上时,会展示在与该流程对应的执行路径下触发源代码行所存在的漏洞描述信息。

如图4所示,为本发明实施例提供的一种基于标识展示漏洞描述信息的程序漏洞路径追踪方法的步骤流程图,详述如下。

在本发明实施例中,与图2所示出的一种携带有漏洞描述信息的程序漏洞路径追踪方法的区别在于,在所述步骤s204后,还包括:

步骤s402,根据所述触发源代码行在所述执行路径下的漏洞描述信息,并按照预设的漏洞重要度标识规则对与所述执行路径对应的程序漏洞路径追踪流程视图进行标识。

在本发明实施例中,考虑到存在不同类型的漏洞描述信息,且不同漏洞描述信息的重要性不同,可以通过预先设定漏洞重要度标识规则,再根据触发源代码行在不同执行路径下的漏洞描述信息,分别对程序漏洞路径追踪流程视图进行不同的标识。具体的,作为本发明的一个可行实施例,采用颜色对程序漏洞路径追踪流程视图进行标识,例如对重要度高的、复杂程度高的漏洞利用红色进行标识,以直观提醒负责人对此路径下的漏洞进行优先修复。

如图5所示,为本发明实施例提供的一种携带有路径节点信息的程序漏洞路径追踪方法的步骤流程图,详述如下。

在本发明实施例中,与图1所示出的一种程序漏洞路径追踪方法的步骤流程图的区别在于,所述步骤s108,具体包括:

步骤s502,确定在所述执行路径中的执行源代码行。

在本发明实施例中,从源代码中可以获取到从源头源代码行到触发源代码行在不同执行路径下的完整源代码,即执行源代码行。

步骤s504,确定与所述执行源代码行对应的路径节点。

在本发明实施例中,对于每一个执行源代码行建立一个与该执行源代码行对应的路径节点,从而在形成的程序漏洞路径追踪流程视图中每一条执行路径上都会存在若干个节点。

步骤s506,根据所述执行路径将所述路径节点依次连接,生成与所述执行路径对应的程序漏洞路径追踪流程视图并展示。

在本发明实施例中,通过进一步获取在执行路径中的源代码行,可以建立包含多个节点的程序漏洞路径追踪流程视图。进一步,利用该节点,可以便于用户查看此处的源代码行信息,更有利于后续的修复处理,修复技术人员可通过查看执行路径下的执行源代码行对存在程序漏洞的触发源代码行进行修复。

如图6所示,为本发明实施例提供的一种可展示路径节点信息的程序漏洞路径追踪方法的步骤流程图,详述如下。

在本发明实施例中,与图5所示出的一种携带有路径节点信息的程序漏洞路径追踪方法的步骤流程图的区别在于,在所述步骤s506之后,还包括:

步骤s602,根据用户对所述路径节点的选定操作,展示与所述路径节点对应的执行源代码。

在本发明实施例中,与前述步骤s302相似,用户可以通过拖拽鼠标的方式对程序漏洞路径追踪流程视图中各路径节点进行选定,具体的,当拖拽到程序漏洞路径追踪流程视图的某个节点上时,会展示在与该节点对应的执行源代码行,以便于修复技术人员进行修复。

如图7所示,为本发明实施例提供的另一种程序漏洞路径追踪方法的步骤流程图,详述如下。

在本发明实施例中,与图1所示出的一种程序漏洞路径追踪方法的步骤流程图的区别在于,所述步骤s102,具体为:

步骤s702,根据基于控制流分析和数据流跟踪实现的程序静态分析软件对所述待检测程序进行异常分支跟踪检测,并确定所述待检测程序中存在程序漏洞的触发源代码行。

在本发明实施例中,提出了一种可提供多路径检测服务的程序静态分析软件进行程序检测的过程,具体的,本发明人在先研发出的产品是基于控制流分析和数据流跟踪来实现对待检测程序进行异常分支跟踪检测的技术,是一款能够实现多路径检测服务的程序静态分析软件。

如图8所示,为本发明实施例提供的一种程序漏洞路径追踪装置的结构示意图,详述如下。

在本发明实施例中,所述程序漏洞路径追踪装置包括:

程序漏洞检测单元810,用于根据预设的程序静态分析软件对待检测程序进行检测,并确定所述待检测程序中存在程序漏洞的触发源代码行。

在本发明实施例中,利用常用的程序静态分析软件对待检测程序进行检测,同样可以确定待检测程序中存在程序漏洞的源代码行。但是目前的程序静态分析软件在检测出触发源代码行后,仅仅展示该源代码行以及在某执行路径下该源代码行所存在的程序漏洞类型。

在本发明实施例中,为了更好的展示本发明在多路径下触发源代码行所存在的程序漏洞,本发明是利用可以提供多路径检测服务的程序静态分析软件进行程序检测,而可提供多路径检测服务的程序静态分析软件属于本发明人在先已经研发出的功能产品,在此不再赘述。

源头源代码确定单元820,用于确定所述触发源代码行的源头源代码行。

在本发明实施例中,通过对源代码上下文进行分析,可以追溯到与所述源代码行关联的源头源代码行,具体的,源头源代码行至触发源代码行之间的源代码行可以理解为一个功能模块。

执行路径确定单元830,用于确定所述源头源代码行到所述触发源代码行的至少一条执行路径。

在本发明实施例中,基于常用的程序静态分析软件对待检测程序进行检测,通常只能检测出一条执行路径,而基于前述提到的可提供多路径检测服务的程序静态分析软件进行程序检测,可以得到多条执行路径,视具体的存在程序漏洞的触发源代码行而定。

路径追踪流程图展示单元840,用于根据所述执行路径生成与所述执行路径对应的程序漏洞路径追踪流程视图,并展示。

在本发明实施例中,现有技术仅仅展示存在程序漏洞的触发源代码行,而本发明通过展示从源头源代码行到触发源代码行的一条或者多条具体的执行路径,能够描述出触发源代码行的上下文完整信息,当源头源代码行到触发源代码行存在多条执行路径时,更便于负责人通过分析在多条路径上源头源代码行到触发源代码行的执行过程,确定不同路径下触发源代码行存在的程序漏洞的复杂性与风险度,从而便于负责人确定出触发源代码行的在多条路径上的优先级,指派更加合适的专业修复技术人员,提高程序漏洞的修复效率。

在本发明实施例中,通过利用程序漏洞路径追踪流程视图来描述从源头源代码行到触发源代码行的执行路径,能便于负责人直观的了解到触发源代码行的总体概述。

本发明实施例提供的一种程序漏洞路径追踪装置,在根据程序静态分析软件对待检测程序进行检测确定出存在程序漏洞的触发源代码行后,通过确定触发源代码行的源头源代码行,并自动识别出源头源代码行到所述触发源代码行之间的至少一条执行路径,根据所述执行路径生成与所述执行路径对应的程序漏洞路径追踪流程视图,并展示。本发明实施例提供的一种程序漏洞路径追踪装置,能够完整展示与存在程序漏洞的触发源代码行关联的多个执行路径下的程序漏洞路径追踪流程视图,相关负责人可以更全面的获取触发源代码行在不同路径上的漏洞信息,确定漏洞的复杂性以及纠正的优先级,并进一步针对性的指派合适的程序修复人员,提高程序漏洞的修复效率,而程序修复人员在修复程序漏洞的过程中也能全面的获取到程序漏洞的完整代码信息,从而能够结合代码信息更加精确地对程序漏洞进行修复。

图9示出了一个实施例中计算机设备的内部结构图。如图9所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现程序漏洞路径追踪方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行程序漏洞路径追踪方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的程序漏洞路径追踪装置可以实现为一种计算机程序的形式,计算机程序可在如图9所示的计算机设备上运行。计算机设备的存储器中可存储组成该程序漏洞路径追踪装置的各个程序模块,比如,图8所示的程序漏洞检测单元810、源头源代码确定单元820、执行路径确定单元830以及路径追踪流程图展示单元840。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的程序漏洞路径追踪方法中的步骤。

例如,图9所示的计算机设备可以通过如图8所示的程序漏洞路径追踪装置中的程序漏洞检测单元810执行步骤s102;计算机设备可通过源头源代码确定单元820执行步骤s104;计算机设备可通过执行路径确定单元830执行步骤s106;计算机设备可通过路径追踪流程图展示单元840执行步骤s108。

在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

根据预设的程序静态分析软件对待检测程序进行检测,并确定所述待检测程序中存在程序漏洞的触发源代码行;

确定所述触发源代码行的源头源代码行;

确定所述源头源代码行到所述触发源代码行的至少一条执行路径;

根据所述执行路径生成与所述执行路径对应的程序漏洞路径追踪流程视图,并展示。

在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:

根据预设的程序静态分析软件对待检测程序进行检测,并确定所述待检测程序中存在程序漏洞的触发源代码行;

确定所述触发源代码行的源头源代码行;

确定所述源头源代码行到所述触发源代码行的至少一条执行路径;

根据所述执行路径生成与所述执行路径对应的程序漏洞路径追踪流程视图,并展示。

应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1