应用漏洞自动加固的方法及装置与流程

文档序号:12123288阅读:274来源:国知局
应用漏洞自动加固的方法及装置与流程

本发明涉及软件领域,尤其涉及一种应用漏洞自动加固的方法及装置。



背景技术:

随着科技的发展,各种智能终端为用户的生活、工作、娱乐提供了极大的便利,终端设备已经得到了广泛的应用。随之而来的,应用于各终端设备上的应用程序的种类、数量也越来越多,而应用的安全问题也日益突出。不同的开发者开发出的应用存在着大量的高危漏洞,极易受到攻击,使得用户在使用时可能发生隐私泄露等问题。

应用漏洞的数量巨大,现有技术大多采用人工的传统安全检测,在检测后,使用加固方法对其进行加固。但显然这种人工的方式效率较低,不能及时的对应用进行加固,以满足用户使用的需求。且人工的方式极易出现遗漏,造成漏洞未被检测出来或未加固的情况。因此,急需一种自动检测和自动加固一体化的实现对应用漏洞安全管理的方法来提高漏洞挖掘和安全加固的效率和效果。



技术实现要素:

本发明的发明目的是针对现有技术的缺陷,提供了一种应用漏洞自动加固的方法及装置,用于解决现有技术中加固效率低、易遗漏等问题。

根据本发明的一个方面,提供了一种应用漏洞自动加固的方法,包括:检测应用,获取应用的漏洞数据结果;根据漏洞数据结果,获取相应的漏洞安全补丁;根据漏洞数据结果,利用漏洞安全补丁对应用进行加固。

根据本发明的另一个方面,还提供了一种应用漏洞自动加固的装置,包括:检测模块,用于检测应用,获取应用的漏洞数据结果;获取模块,用于根据漏洞数据结果,获取相应的漏洞安全补丁;加固模块,用于根据漏洞数据结果,利用漏洞安全补丁对应用进行加固。

根据本发明提供的应用漏洞自动加固的方法及装置,检测应用,获取应用的漏洞数据结果。根据漏洞数据结果,获取相应的漏洞安全补丁。根据漏洞数据结果,利用漏洞安全补丁对应用进行加固。实现对应用漏洞在检测后,可自动根据检测获取的漏洞数据结果,对漏洞进行针对性的加固。整个加固过程更自动、智能,加固效率更高。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的应用漏洞自动加固的方法的流程示意图;

图2示出了根据本发明另一个实施例的应用漏洞自动加固的方法的流程示意图;

图3示出了根据本发明一个实施例的应用漏洞自动加固的装置的功能结构示意图;

图4示出了根据本发明另一个实施例的应用漏洞自动加固的装置的功能结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的应用漏洞自动加固的方法的流程示意图,如图1所示,该方法具体包括如下步骤:

步骤S101,检测应用,获取应用的漏洞数据结果。

其中,本文中所述的应用可以是移动应用,例如IOS应用,安卓应用,也可以是非移动应用,例如windows系统应用等。对应用的检测,可以通过静态检测应用和动态检测应用相结合的方式进行。静态检测应用时不对应用进行执行,而采用对应用中的程序代码等内容进行检测的方式,如使用Loader工具读取、信息检索(Information Retrieval)、抽象语法树AST、符号执行(Symbolic Execution)等方式,获取漏洞数据结果。动态检测应用时对应用进行执行,执行时可以将应用设置在虚拟机上进行执行,或采用“沙盒”方式执行,并对执行后的结果进行分析,如污点分析(Taint Analysis)、内存分析(Memory Analysis)、数据流分析(Dataflow Analysis)等,获取漏洞数据结果。将通过静态检测应用和动态检测应用获取的漏洞数据结果进行交集合并,获取到最后的漏洞数据结果。

获取到的漏洞数据结果为数据键/数据值形式的数据结果。其中,数据键和数据值为一一对应的数据。数据键为漏洞标识,可以唯一的标识一种漏洞。数据值中可以包括如该漏洞标识对应的漏洞个数、产生该漏洞的漏洞代码、具体的漏洞代码位置、该漏洞对应的漏洞危险等级等。漏洞标识可以为预先设置的漏洞标识。如表1所示的数据键:

参照表1中漏洞的描述,将获取到的漏洞数据结果中的数据键设置为对应的漏洞标识。相应的还可以对不同的漏洞设置其对应的漏洞危险等级,如将数据键为activity的漏洞对应的漏洞危险等级设置为1,debug漏洞对应的漏洞危险等级设置为2等。重要的、对用户使用影响较大的漏洞对应的漏洞危险等级设置为1,其他漏洞依次设置为2、3、4等。表1中仅为一部分漏洞的举例说明,实施时根据情况进行设置,此处不做限定。

步骤S102,根据漏洞数据结果,获取相应的漏洞安全补丁。

根据获取的漏洞数据结果,尤其是漏洞数据结果中的数据键,可以从预设的漏洞安全补丁集合中查找数据键对应的该漏洞的漏洞安全补丁。

漏洞安全补丁集合是根据已经存在的应用的漏洞所作的安全补丁的集合。其中包括了漏洞标识及漏洞标识对应的漏洞安全补丁。根据漏洞数据结果中的数据键,将数据键中的漏洞标识与漏洞安全补丁集合中的漏洞标识比对,查找并获取到对应的该漏洞的漏洞安全补丁。

可选地,漏洞安全补丁集合可以设置在云端服务器,可以根据新产生的应用漏洞补充新的漏洞安全补丁,也可以针对之前的应用漏洞去更新新的漏洞安全补丁。

步骤S103,根据漏洞数据结果,利用漏洞安全补丁对应用进行加固。

根据获取的漏洞数据结果,尤其是漏洞数据结果中的数据值,根据数据值中漏洞标识对应的漏洞个数、产生该漏洞的漏洞代码、具体的漏洞代码位置等信息,将漏洞安全补丁设置在对应的漏洞代码位置,替换原漏洞代码;或者将漏洞安全补丁放在合适的位置以便实现对应用进行加固。

具体利用漏洞安全补丁对应用进行加固的方式可以根据实际情况进行设置,此处不做具体限定。

根据本发明提供的应用漏洞自动加固的方法,检测应用,获取应用的漏洞数据结果。根据漏洞数据结果,获取相应的漏洞安全补丁。根据漏洞数据结果,利用漏洞安全补丁对应用进行加固。实现对应用漏洞在检测后,可自动根据检测获取的漏洞数据结果,对漏洞进行针对性的加固。整个加固过程更自动、智能,加固效率更高。

图2示出了根据本发明另一个实施例的应用漏洞自动加固的方法的流程示意图,如图2所示,该方法具体包括如下步骤:

步骤S201,检测应用,获取应用的漏洞数据结果。

步骤S202,根据漏洞数据结果,获取相应的漏洞安全补丁。

以上步骤可参考图1方法实施例中的步骤S101-S102,此处不再赘述。

步骤S203,根据漏洞数据结果中的数据值,选择漏洞危险等级高于等于预设修复等级的漏洞,利用漏洞安全补丁对应用的漏洞进行加固。

在对应用检测出的漏洞进行加固处理时,还可以根据预设修复等级,选择出漏洞数据结果中的数据值的漏洞危险等级高于等于预设修复等级的漏洞进行加固。如预设修复等级为3,选择漏洞危险等级为1、2和3的漏洞,利用漏洞安全补丁对选择的漏洞进行加固。

具体利用漏洞安全补丁对应用进行加固的方式可以根据实际情况进行设置,此处不做具体限定。

步骤S204,对应用进行加壳保护。

在执行上述步骤后,对应用的漏洞进行修复加固后,还可以对应用进行加壳保护。加壳保护时可以将应用进行压缩,压缩后的应用还可以直接运行;或应用中植入一段代码,使得应用在运行的时候优先取得应用的控制权,以便隐藏应用真正的入口点,防止应用被破解。以上为举例说明,具体实施时可根据实际情况进行设置,此处不做限定。进一步,该步骤为可选步骤。

根据本发明提供的应用漏洞自动加固的方法,根据漏洞数据结果中的数据值,选择漏洞危险等级高于等于预设修复等级的漏洞,利用漏洞安全补丁对应用的漏洞进行加固。实现对应用漏洞分级,根据用户需求可以提供针对不同等级的应用漏洞安全加固。对用户影响较小的漏洞,可以根据用户需求不进行加固,更适应用户不同的需求。进一步,在检测应用漏洞,自动根据检测获取的漏洞数据结果,对漏洞进行针对性的加固后,还可以对加固修复后的应用进行加壳保护,使应用更加安全,减少被攻击的可能。整个加固过程更自动、智能,加固效率更高。

图3示出了根据本发明一个实施例的应用漏洞自动加固的装置的功能框图,如图3所示,本装置中包含以下模块:

检测模块310,用于检测应用,获取应用的漏洞数据结果。

其中,本文中所述的应用可以是移动应用,例如IOS应用,安卓应用,也可以是非移动应用,例如windows系统应用等。检测模块310对应用的检测,可以通过静态检测应用和动态检测应用相结合的方式进行。检测模块310利用静态检测应用时不对应用进行执行,而采用对应用中的程序代码等内容进行检测的方式,如检测模块310使用Loader工具读取、信息检索(Information Retrieval)、抽象语法树AST、符号执行(Symbolic Execution)等方式,获取漏洞数据结果。检测模块310利用动态检测应用时对应用进行执行,检测模块310执行应用时可以将应用设置在虚拟机上进行执行,或采用“沙盒”方式执行,并对执行后的结果进行分析,如污点分析(Taint Analysis)、内存分析(Memory Analysis)、数据流分析(Dataflow Analysis)等,获取漏洞数据结果。检测模块310将通过静态检测应用和动态检测应用获取的漏洞数据结果进行交集合并,获取到最后的漏洞数据结果。

检测模块310获取到的漏洞数据结果为数据键/数据值形式的数据结果。其中,数据键和数据值为一一对应的数据。数据键为漏洞标识,可以唯一的标识一种漏洞。数据值中可以包括如该漏洞标识对应的漏洞个数、产生该漏洞的漏洞代码、具体的漏洞代码位置、该漏洞对应的漏洞危险等级等。漏洞标识可以为预先设置的漏洞标识。数据键可以如表1所示。

参照表1中漏洞的描述,检测模块310将获取到的漏洞数据结果中的数据键设置为对应的漏洞标识。相应的检测模块310还可以对不同的漏洞设置其对应的漏洞危险等级,如将数据键为activity的漏洞对应的漏洞危险等级设置为1,debug漏洞对应的漏洞危险等级设置为2等。重要的、对用户使用影响较大的漏洞对应的漏洞危险等级设置为1,其他漏洞依次设置为2、3、4等。表1中仅为一部分漏洞的举例说明,实施时根据情况进行设置,此处不做限定。

获取模块320,用于根据漏洞数据结果,获取相应的漏洞安全补丁。

获取模块320根据获取的漏洞数据结果,尤其是漏洞数据结果中的数据键,可以从预设的漏洞安全补丁集合中查找数据键对应的该漏洞的漏洞安全补丁。

漏洞安全补丁集合是根据已经存在的应用的漏洞所作的安全补丁的集合。其中包括了漏洞标识及漏洞标识对应的漏洞安全补丁。获取模块320根据漏洞数据结果中的数据键,将数据键中的漏洞标识与漏洞安全补丁集合中的漏洞标识比对,查找并获取到对应的该漏洞的漏洞安全补丁。

可选地,漏洞安全补丁集合可以设置在云端服务器,可以根据新产生的应用漏洞补充新的漏洞安全补丁,也可以针对之前的应用漏洞去更新新的漏洞安全补丁。

加固模块330,用于根据漏洞数据结果,利用漏洞安全补丁对应用进行加固。

加固模块330根据获取的漏洞数据结果,尤其是漏洞数据结果中的数据值,根据数据值中漏洞标识对应的漏洞个数、产生该漏洞的漏洞代码、具体的漏洞代码位置等信息,将漏洞安全补丁设置在对应的漏洞代码位置,替换原漏洞代码;或者将漏洞安全补丁放在合适的位置以便实现对应用进行加固。

可选地,加固模块330进一步用于根据漏洞数据结果中的数据值,选择漏洞危险等级高于等于预设修复等级的漏洞,利用漏洞安全补丁对应用的漏洞进行加固。如预设修复等级为3,选择漏洞危险等级为1、2和3的漏洞,利用漏洞安全补丁对选择的漏洞进行加固。

具体利用漏洞安全补丁对应用进行加固的方式可以根据实际情况进行设置,此处不做具体限定。

根据本发明提供的应用漏洞自动加固的装置,检测应用,获取应用的漏洞数据结果。根据漏洞数据结果,获取相应的漏洞安全补丁。根据漏洞数据结果,利用漏洞安全补丁对应用进行加固。实现对应用漏洞的检测后,可自动根据检测获取的漏洞数据结果,对漏洞进行针对性的加固。进一步,根据漏洞数据结果中的数据值,选择漏洞危险等级高于等于预设修复等级的漏洞,利用漏洞安全补丁对应用的漏洞进行加固。实现对应用漏洞分级,根据用户需求可以提供针对不同等级的应用漏洞安全加固。对用户影响较小的漏洞,可以根据用户需求不进行加固,更适应用户不同的需求。整个加固过程更自动、智能,加固效率更高。

图4示出了根据本发明另一个实施例的应用漏洞自动加固的装置的功能框图,如图4所示,与图3相比,本装置还包括如下模块:

加壳模块340,用于对应用进行加壳保护。

加壳模块340可以对应用进行加壳保护。加壳保护时可以将应用进行压缩,压缩后的应用还可以直接运行;或应用中植入一段代码,使得应用在运行的时候优先取得应用的控制权,以便隐藏应用真正的入口点,防止应用被破解。以上为举例说明,具体实施时可根据实际情况进行设置,此处不做限定。该模块为可选模块。

除以上模块之外的其他模块可参考图3装置实施例的描述,此处不再赘述。

根据本发明提供的应用漏洞自动加固的装置,检测应用,获取应用的漏洞数据结果。根据漏洞数据结果,获取相应的漏洞安全补丁。根据漏洞数据结果,利用漏洞安全补丁对应用进行加固。进一步,在检测应用漏洞,自动根据检测获取的漏洞数据结果,对漏洞进行针对性的加固后,还可以对加固修复后的应用进行加壳保护,使应用更加安全,减少被攻击的可能。整个加固过程更自动、智能,加固效率更高。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了:A1、一种应用漏洞自动加固的方法,其中,包括:

检测应用,获取所述应用的漏洞数据结果;

根据所述漏洞数据结果,获取相应的漏洞安全补丁;

根据所述漏洞数据结果,利用所述漏洞安全补丁对所述应用进行加固。

A2、根据A1所述的方法,其中,所述检测所述应用,获取所述应用的漏洞数据结果进一步包括:

利用静态检测应用和动态检测应用结合检测所述应用,获取所述应用的漏洞数据结果。

A3、根据A1所述的方法,其中,所述漏洞数据结果为数据键/数据值的数据结果;其中,所述数据键为漏洞标识,所述数据值包括漏洞个数、漏洞代码、漏洞代码位置和/或漏洞危险等级。

A4、根据A3所述的方法,其中,所述根据所述漏洞数据结果,获取相应的漏洞安全补丁进一步包括:

根据所述漏洞数据结果中的数据键,从预设的漏洞安全补丁集合中查找获取相应的漏洞安全补丁。

A5、根据A3所述的方法,其中,所述根据所述漏洞数据结果,利用所述漏洞安全补丁对所述应用进行加固进一步包括:

根据所述漏洞数据结果中的数据值,利用所述漏洞安全补丁对所述应用进行加固。

A6、根据A5所述的方法,其中,所述根据所述漏洞数据结果中的数据值,利用所述漏洞安全补丁对所述应用进行加固进一步包括:

根据所述漏洞数据结果中的数据值,选择漏洞危险等级高于等于所述预设修复等级的漏洞,利用所述漏洞安全补丁对所述应用的所述漏洞进行加固。

A7、根据A1所述的方法,其中,在所述根据所述漏洞数据结果,利用所述漏洞安全补丁对所述应用进行加固之后,所述方法还包括:

对所述应用进行加壳保护。

A8、根据A1所述的方法,其中,所述应用为移动应用或非移动应用。

本发明还公开了:B9、一种应用漏洞自动加固的装置,其中,包括:

检测模块,用于检测应用,获取所述应用的漏洞数据结果;

获取模块,用于根据所述漏洞数据结果,获取相应的漏洞安全补丁;

加固模块,用于根据所述漏洞数据结果,利用所述漏洞安全补丁对所述应用进行加固。

B10、根据B9所述的装置,其中,所述检测模块进一步用于:

利用静态检测应用和动态检测应用结合检测所述应用,获取所述应用的漏洞数据结果。

B11、根据B9所述的装置,其中,所述漏洞数据结果为数据键/数据值数据结果;其中,所述数据键为漏洞标识,所述数据值包括漏洞个数、漏洞代码、漏洞代码位置和/或漏洞危险等级。

B12、根据B11所述的装置,其中,所述获取模块进一步用于:

根据所述漏洞数据结果中的数据键,从预设的漏洞安全补丁集合中查找获取相应的漏洞安全补丁。

B13、根据B11所述的装置,其中,所述加固模块进一步用于:

根据所述漏洞数据结果中的数据值,利用所述漏洞安全补丁对所述应用进行加固。

B14、根据B13所述的装置,其中,所述加固模块进一步用于:

根据所述漏洞数据结果中的数据值,选择漏洞危险等级高于等于所述预设修复等级的漏洞,利用所述漏洞安全补丁对所述应用的所述漏洞进行加固。

B15、根据B9所述的装置,其中,在所述加固模块之后,所述装置还包括:

加壳模块,用于对所述应用进行加壳保护。

B16、根据B9所述的装置,其中,所述应用为移动应用或非移动应用。

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