本发明涉及网络安全技术领域,尤其涉及一种软件安全的主动防御方法及系统。
背景技术:
随着网络技术的不断发展,各种各样的软件得到了广泛的应用。由于部分软件存在漏洞后门,如果不进行防御,在软件运行过程中,安全性容易受到威胁。
因此,如何有效的对软件的进行主动防御,以提高软件在运行时的安全性,是一项亟待解决的问题。
技术实现要素:
有鉴于此,本发明提供了一种软件安全的主动防御方法,能够对软件进行安全防御,有效解决了软件运行时的安全问题。
本发明提供了一种软件安全的主动防御方法,包括:
生成辅助判决模型;
在目标软件运行时,通过所述辅助判决模型对所述目标软件的控制流进行检验,判断检验是否通过,若是,则:
输出所述目标软件。
优选地,所述生成辅助判决模型包括:
当所述目标程序作为主变体启动时,使用变体生成策略生成功能等价的多个从变体;
在所述主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决;
对一致的裁决结果进行学习,在收敛条件的限制下得到所述辅助判决模型。
优选地,所述方法还包括:
对所述主变体的多个从变体基于同步策略进行同步处理。
优选地,所述方法还包括:
当通过所述辅助判决模型对所述目标软件的控制流进行检验,检验未通过时,在所述主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决;
根据裁决结果,对所述目标软件中受到攻击的变体进行异常处理。
优选地,所述根据裁决结果,对所述目标软件中受到攻击的变体进行异常处理,包括:
根据裁决结果,对所述目标软件中受到攻击的变体进行进程终止、清洗和替换。
一种软件安全的主动防御系统,包括:
生成模块,用于生成辅助判决模型;
判决辅助模块,用于在目标软件运行时,通过所述辅助判决模型对所述目标软件的控制流进行检验,判断检验是否通过;
输出模块,用于当检验通过时,输出所述目标软件。
优选地,所述生成模块包括:
监控、调度单元,用于当所述目标程序作为主变体启动时,使用变体生成策略生成功能等价的多个从变体;
判决单元,用于在所述主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决;
正反馈学习单元,用于对一致的裁决结果进行学习,在收敛条件的限制下得到所述辅助判决模型。
优选地,所述监控、调度单元,还用于对所述主变体的多个从变体基于同步策略进行同步处理。
优选地,所述系统还包括:负反馈学习单元,其中:
所述判决单元,还用于当通过所述辅助判决模型对所述目标软件的控制流进行检验,检验未通过时,在所述主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决;
所述负反馈学习单元,用于将所述判决单元输出的不一致的裁决结果发送至所述监控、调度单元;
所述监控、调度单元,还用于根据裁决结果,对所述目标软件中受到攻击的变体进行异常处理。
优选地,所述监控、调度单元,具体用于:
根据裁决结果,对所述目标软件中受到攻击的变体进行进程终止、清洗和替换。
综上所述,本发明公开了一种软件安全的主动防御方法,当需要对软件的安全进行主动防御时,首先生成辅助判决模型,然后在在目标软件运行时,通过所述辅助判决模型对目标软件的控制流进行检验,判断检验是否通过,若是,则:输出所述目标软件。本发明能够有效的对软件的安全进行防御,使其具有安全运行能力,同时保持较高的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明公开的一种软件安全的主动防御方法实施例1的方法流程图;
图2为本发明公开的一种软件安全的主动防御方法实施例2的方法流程图;
图3为本发明公开的一种软件安全的主动防御方法实施例3的方法流程图;
图4为本发明公开的一种软件安全的主动防御方法实施例4的方法流程图;
图5为本发明公开的一种软件安全的主动防御系统实施例1的结构示意图;
图6为本发明公开的一种软件安全的主动防御系统实施例2的结构示意图;
图7为本发明公开的一种软件安全的主动防御系统实施例3的结构示意图;
图8为本发明公开的一种软件安全的主动防御系统实施例4的结构示意图;
图9为本发明公开的一种生成辅助判决模型的学习过程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明公开的一种软件安全的主动防御方法实施例1的方法流程图,所述方法可以包括以下步骤:
s101、生成辅助判决模型;
当需要对软件的安全进行主动防御时,首先需要生成用于对软件的安全进行判决的辅助判决模型。
s102、在目标软件运行时,通过辅助判决模型对所述目标软件的控制流进行检验,判断检验是否通过,若是,则进入s103:
当生成辅助判决模型后,在外部对软件再次进行操作时,其中,外部对软件进行的操作可能是正常操作,也可能是攻击操作;首先通过生成的辅助判决模型对目标软件的整体控制流进行检验,此时,在检验时不用在目标软件的各个变体间进行比较。
s103、输出目标软件。
当通过辅助判决模型对目标软件的控制流进行检验,检验通过时,直接输出,在实现对软件的安全进行主动防御的同时,具有较高的检验效率。
综上所述,在上述实施例中,当需要对软件的安全进行主动防御时,首先生成辅助判决模型,然后在在目标软件运行时,通过所述辅助判决模型对目标软件的控制流进行检验,判断检验是否通过,若是,则:输出所述目标软件。本发明能够有效的对软件的安全进行防御,使其具有安全运行能力,同时保持较高的性能。
如图2所示,为本发明公开的一种软件安全的主动防御方法实施例1的方法流程图,所述方法可以包括以下步骤:
s201、当目标程序作为主变体启动时,使用变体生成策略生成功能等价的多个从变体;
当需要对软件的安全进行主动防御时,首先需要生成用于对软件的安全进行判决的辅助判决模型。
具体的,在生成辅助判决模型时,首先当目标程序作为主变体启动时,使用预先设置的生成策略生成功能等价的多个从变体,即,使用变体生成策略为每个从变体生成一个目标程序的实例。
s202、对主变体的多个从变体基于同步策略进行同步处理;
在生成多个从变体后,进一步基于同步策略共享某些竞争类资源的访问和执行结果,以保证变体执行的一致性和透明性。
s203、在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决;
在多个从变体执行的过程中,对多个从变体控制流对象进行裁决,即,在多个从变体执行的过程中,在目标软件的各个变体间进行比较。
s204、对一致的裁决结果进行学习,在收敛条件的限制下得到辅助判决模型;
经过裁决,对于一致的裁决结果利用该数据在线生成cfg,经过进一步学习,在收敛条件的限制下得到sub-cfg,即,对一致的裁决结果进行学习,在收敛条件的限制下得到辅助判决模型;学习过程如图9所示。
s205、在目标软件运行时,通过辅助判决模型对所述目标软件的控制流进行检验,判断检验是否通过,若是,则进入s206:
当生成辅助判决模型后,在外部对软件再次进行操作时,其中,外部对软件进行的操作可能是正常操作,也可能是攻击操作;首先通过生成的辅助判决模型对目标软件的整体控制流进行检验,此时,在检验时不用在目标软件的各个变体间进行比较。
s206、输出目标软件。
当通过辅助判决模型对目标软件的控制流进行检验,检验通过时,直接输出,在实现对软件的安全进行主动防御的同时,具有较高的检验效率。
综上所述,本实施例在上述实施例的基础上,能够进一步当目标程序作为主变体启动时,使用变体生成策略生成功能等价的多个从变体,对主变体的多个从变体基于同步策略进行同步处理,在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决,对一致的裁决结果进行学习,在收敛条件的限制下得到辅助判决模型,通过得到的辅助判决模型能够高效的对软件的安全进行防御。
如图3所示,为本发明公开的一种软件安全的主动防御方法实施例3的方法流程图,所述方法可以包括以下步骤:
s301、当目标程序作为主变体启动时,使用变体生成策略生成功能等价的多个从变体;
当需要对软件的安全进行主动防御时,首先需要生成用于对软件的安全进行判决的辅助判决模型。
具体的,在生成辅助判决模型时,首先当目标程序作为主变体启动时,使用预先设置的生成策略生成功能等价的多个从变体,即,使用变体生成策略为每个从变体生成一个目标程序的实例。
s302、对主变体的多个从变体基于同步策略进行同步处理;
在生成多个从变体后,进一步基于同步策略共享某些竞争类资源的访问和执行结果,以保证变体执行的一致性和透明性。
s303、在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决;
在多个从变体执行的过程中,对多个从变体控制流对象进行裁决,即,在多个从变体执行的过程中,在目标软件的各个变体间进行比较。
s304、对一致的裁决结果进行学习,在收敛条件的限制下得到辅助判决模型;
经过裁决,对于一致的裁决结果利用该数据在线生成cfg,经过进一步学习,在收敛条件的限制下得到sub-cfg,即,对一致的裁决结果进行学习,在收敛条件的限制下得到辅助判决模型;学习过程如图9所示。
s305、在目标软件运行时,通过辅助判决模型对所述目标软件的控制流进行检验,判断检验是否通过,若是,则进入s306,若否,则进入s307:
当生成辅助判决模型后,在外部对软件再次进行操作时,其中,外部对软件进行的操作可能是正常操作,也可能是攻击操作;首先通过生成的辅助判决模型对目标软件的整体控制流进行检验,此时,在检验时不用在目标软件的各个变体间进行比较。
s306、输出目标软件。
当通过辅助判决模型对目标软件的控制流进行检验,检验通过时,直接输出,在实现对软件的安全进行主动防御的同时,具有较高的检验效率。
s307、在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决;
当通过辅助判决模型对目标软件的控制流进行检验,检验未通过时,进一步在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决。
s308、根据裁决结果,对目标软件中受到攻击的变体进行异常处理。
对于不一致的裁决结果,对结果中目标软件中受到攻击的变体进行异常处理,从而有效保证软件的安全。
综上所述,本实施例在上述实施例的基础上,在通过辅助判决模型对目标软件的控制流进行检验,检验未通过时,能够进一步在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决,对于不一致的裁决结果,能够进一步对目标软件中受到攻击的变体进行异常处理,有效实现了软件的全面安全检测与安全处理,进一步保证了软件的安全。
如图4所示,为本发明公开的一种软件安全的主动防御方法实施例4的方法流程图,所述方法可以包括以下步骤:
s401、当目标程序作为主变体启动时,使用变体生成策略生成功能等价的多个从变体;
当需要对软件的安全进行主动防御时,首先需要生成用于对软件的安全进行判决的辅助判决模型。
具体的,在生成辅助判决模型时,首先当目标程序作为主变体启动时,使用预先设置的生成策略生成功能等价的多个从变体,即,使用变体生成策略为每个从变体生成一个目标程序的实例。
s402、对主变体的多个从变体基于同步策略进行同步处理;
在生成多个从变体后,进一步基于同步策略共享某些竞争类资源的访问和执行结果,以保证变体执行的一致性和透明性。
s403、在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决;
在多个从变体执行的过程中,对多个从变体控制流对象进行裁决,即,在多个从变体执行的过程中,在目标软件的各个变体间进行比较。
s404、对一致的裁决结果进行学习,在收敛条件的限制下得到辅助判决模型;
经过裁决,对于一致的裁决结果利用该数据在线生成cfg,经过进一步学习,在收敛条件的限制下得到sub-cfg,即,对一致的裁决结果进行学习,在收敛条件的限制下得到辅助判决模型;学习过程如图9所示。
s405、在目标软件运行时,通过辅助判决模型对所述目标软件的控制流进行检验,判断检验是否通过,若是,则进入s406,若否,则进入s407:
当生成辅助判决模型后,在外部对软件再次进行操作时,其中,外部对软件进行的操作可能是正常操作,也可能是攻击操作;首先通过生成的辅助判决模型对目标软件的整体控制流进行检验,此时,在检验时不用在目标软件的各个变体间进行比较。
s406、输出目标软件。
当通过辅助判决模型对目标软件的控制流进行检验,检验通过时,直接输出,在实现对软件的安全进行主动防御的同时,具有较高的检验效率。
s407、在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决;
当通过辅助判决模型对目标软件的控制流进行检验,检验未通过时,进一步在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决。
s408、根据裁决结果,对目标软件中受到攻击的变体进行进程终止、清洗和替换。
对于不一致的裁决结果,对结果中目标软件中受到攻击的变体进行异常处理,即,对目标软件中受到攻击的变体进行进程终止、清洗和替换,从而有效保证软件的安全。
如图5所示,为本发明公开的一种软件安全的主动防御系统实施例1的结构示意图,所述系统可以包括:
生成模块501,用于生成辅助判决模型;
当需要对软件的安全进行主动防御时,首先需要生成用于对软件的安全进行判决的辅助判决模型。
判决辅助模块502,用于在目标软件运行时,通过辅助判决模型对所述目标软件的控制流进行检验,判断检验是否通过,若是,则进入s103:
当生成辅助判决模型后,在外部对软件再次进行操作时,其中,外部对软件进行的操作可能是正常操作,也可能是攻击操作;首先通过生成的辅助判决模型对目标软件的整体控制流进行检验,此时,在检验时不用在目标软件的各个变体间进行比较。
输出模块503,用于输出目标软件。
当通过辅助判决模型对目标软件的控制流进行检验,检验通过时,直接输出,在实现对软件的安全进行主动防御的同时,具有较高的检验效率。
综上所述,在上述实施例中,当需要对软件的安全进行主动防御时,首先生成辅助判决模型,然后在在目标软件运行时,通过所述辅助判决模型对目标软件的控制流进行检验,判断检验是否通过,若是,则:输出所述目标软件。本发明能够有效的对软件的安全进行防御,使其具有安全运行能力,同时保持较高的性能。
如图6所示,为本发明公开的一种软件安全的主动防御系统实施例2的结构示意图,所述系统可以包括:
监控、调度单元601,用于当目标程序作为主变体启动时,使用变体生成策略生成功能等价的多个从变体;
当需要对软件的安全进行主动防御时,首先需要生成用于对软件的安全进行判决的辅助判决模型。
具体的,在生成辅助判决模型时,首先当目标程序作为主变体启动时,使用预先设置的生成策略生成功能等价的多个从变体,即,使用变体生成策略为每个从变体生成一个目标程序的实例。
监控、调度单元601,还用于对主变体的多个从变体基于同步策略进行同步处理;
在生成多个从变体后,进一步基于同步策略共享某些竞争类资源的访问和执行结果,以保证变体执行的一致性和透明性。
判决单元602,用于在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决;
在多个从变体执行的过程中,对多个从变体控制流对象进行裁决,即,在多个从变体执行的过程中,在目标软件的各个变体间进行比较。
正反馈学习单元603,用于对一致的裁决结果进行学习,在收敛条件的限制下得到辅助判决模型;
经过裁决,对于一致的裁决结果利用该数据在线生成cfg,经过进一步学习,在收敛条件的限制下得到sub-cfg,即,对一致的裁决结果进行学习,在收敛条件的限制下得到辅助判决模型;学习过程如图9所示。
判决辅助模块604,用于在目标软件运行时,通过辅助判决模型对所述目标软件的控制流进行检验,判断检验是否通过;
当生成辅助判决模型后,在外部对软件再次进行操作时,其中,外部对软件进行的操作可能是正常操作,也可能是攻击操作;首先通过生成的辅助判决模型对目标软件的整体控制流进行检验,此时,在检验时不用在目标软件的各个变体间进行比较。
输出模块605,用于当通过辅助判决模型对目标软件的控制流进行检验,检验通过时,输出目标软件。
当通过辅助判决模型对目标软件的控制流进行检验,检验通过时,直接输出,在实现对软件的安全进行主动防御的同时,具有较高的检验效率。
综上所述,本实施例在上述实施例的基础上,能够进一步当目标程序作为主变体启动时,使用变体生成策略生成功能等价的多个从变体,对主变体的多个从变体基于同步策略进行同步处理,在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决,对一致的裁决结果进行学习,在收敛条件的限制下得到辅助判决模型,通过得到的辅助判决模型能够高效的对软件的安全进行防御。
如图7所示,为本发明公开的一种软件安全的主动防御系统实施例3的结构示意图,所述系统可以包括:
监控、调度单元701,用于当目标程序作为主变体启动时,使用变体生成策略生成功能等价的多个从变体;
当需要对软件的安全进行主动防御时,首先需要生成用于对软件的安全进行判决的辅助判决模型。
具体的,在生成辅助判决模型时,首先当目标程序作为主变体启动时,使用预先设置的生成策略生成功能等价的多个从变体,即,使用变体生成策略为每个从变体生成一个目标程序的实例。
监控、调度单元701,还用于对主变体的多个从变体基于同步策略进行同步处理;
在生成多个从变体后,进一步基于同步策略共享某些竞争类资源的访问和执行结果,以保证变体执行的一致性和透明性。
判决单元702,用于在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决;
在多个从变体执行的过程中,对多个从变体控制流对象进行裁决,即,在多个从变体执行的过程中,在目标软件的各个变体间进行比较。
正反馈学习单元703,用于对一致的裁决结果进行学习,在收敛条件的限制下得到辅助判决模型;
经过裁决,对于一致的裁决结果利用该数据在线生成cfg,经过进一步学习,在收敛条件的限制下得到sub-cfg,即,对一致的裁决结果进行学习,在收敛条件的限制下得到辅助判决模型;学习过程如图9所示。
判决辅助模块704,用于在目标软件运行时,通过辅助判决模型对所述目标软件的控制流进行检验,判断检验是否通过;
当生成辅助判决模型后,在外部对软件再次进行操作时,其中,外部对软件进行的操作可能是正常操作,也可能是攻击操作;首先通过生成的辅助判决模型对目标软件的整体控制流进行检验,此时,在检验时不用在目标软件的各个变体间进行比较。
输出模块705,用于当通过辅助判决模型对目标软件的控制流进行检验,检验通过时,输出目标软件。
当通过辅助判决模型对目标软件的控制流进行检验,检验通过时,直接输出,在实现对软件的安全进行主动防御的同时,具有较高的检验效率。
判决单元702,还用于当通过辅助判决模型对目标软件的控制流进行检验,检验未通过时,在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决;
当通过辅助判决模型对目标软件的控制流进行检验,检验未通过时,进一步在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决。
监控、调度单元701,还用于根据裁决结果,对目标软件中受到攻击的变体进行异常处理。
对于不一致的裁决结果,对结果中目标软件中受到攻击的变体进行异常处理,从而有效保证软件的安全。
综上所述,本实施例在上述实施例的基础上,在通过辅助判决模型对目标软件的控制流进行检验,检验未通过时,能够进一步在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决,对于不一致的裁决结果,能够进一步对目标软件中受到攻击的变体进行异常处理,有效实现了软件的全面安全检测与安全处理,进一步保证了软件的安全。
如图8所示,为本发明公开的一种软件安全的主动防御系统实施例4的结构示意图,所述系统可以包括:
监控、调度单元801,用于当目标程序作为主变体启动时,使用变体生成策略生成功能等价的多个从变体;
当需要对软件的安全进行主动防御时,首先需要生成用于对软件的安全进行判决的辅助判决模型。
具体的,在生成辅助判决模型时,首先当目标程序作为主变体启动时,使用预先设置的生成策略生成功能等价的多个从变体,即,使用变体生成策略为每个从变体生成一个目标程序的实例。
监控、调度单元801,还用于对主变体的多个从变体基于同步策略进行同步处理;
在生成多个从变体后,进一步基于同步策略共享某些竞争类资源的访问和执行结果,以保证变体执行的一致性和透明性。
判决单元802,用于在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决;
在多个从变体执行的过程中,对多个从变体控制流对象进行裁决,即,在多个从变体执行的过程中,在目标软件的各个变体间进行比较。
正反馈学习单元803,用于对一致的裁决结果进行学习,在收敛条件的限制下得到辅助判决模型;
经过裁决,对于一致的裁决结果利用该数据在线生成cfg,经过进一步学习,在收敛条件的限制下得到sub-cfg,即,对一致的裁决结果进行学习,在收敛条件的限制下得到辅助判决模型;学习过程如图9所示。
判决辅助模块804,用于在目标软件运行时,通过辅助判决模型对所述目标软件的控制流进行检验,判断检验是否通过;
当生成辅助判决模型后,在外部对软件再次进行操作时,其中,外部对软件进行的操作可能是正常操作,也可能是攻击操作;首先通过生成的辅助判决模型对目标软件的整体控制流进行检验,此时,在检验时不用在目标软件的各个变体间进行比较。
输出模块805,用于当检验通过时,输出目标软件。
当通过辅助判决模型对目标软件的控制流进行检验,检验通过时,直接输出,在实现对软件的安全进行主动防御的同时,具有较高的检验效率。
判决单元802,还用于当通过辅助判决模型对目标软件的控制流进行检验,检验未通过时,在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决;
当通过辅助判决模型对目标软件的控制流进行检验,检验未通过时,进一步在主变体的多个从变体执行的过程中,对多个从变体控制流对象进行裁决。
负反馈学习单元806,用于将判决单元输出的不一致的裁决结果发送至监控、调度单元;
监控、调度单元801,还根据裁决结果,对目标软件中受到攻击的变体进行进程终止、清洗和替换。
对于不一致的裁决结果,对结果中目标软件中受到攻击的变体进行异常处理,即,对目标软件中受到攻击的变体进行进程终止、清洗和替换,从而有效保证软件的安全。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。