一种实现移动目标防御的方法及装置与流程

文档序号:15624951发布日期:2018-10-09 22:45阅读:366来源:国知局

本发明涉及信息安全技术,尤指一种实现移动目标防御的方法及装置。



背景技术:

目前,信息安全领域主要的防护方法都是建立在已知病毒、已知漏洞、已知攻击方式之上,这种基于先验知识的防御手段投入成本较高且无法防御未知的安全隐患。以病毒扫描为例,需要针对已知的病毒知识建立病毒样本库,在利用样本库中的特征与系统当前操作状态进行匹配检查,这种方式对病毒的发现效率低,且无法防御未知的安全风险。定期更新补丁也需要软件发布商对系统中代码进行充分的保护,发现漏洞及时通知用户更新漏洞;而近年来零日漏洞逐年上升,软件开发商的防守修复速度已滞后于漏洞发现的速度。

2010年5月美国总统网络空间政策规划回顾会(president’scyberpolicyreview)宣布了一个“改变游戏规则”的网络安全防御思路:移动目标防御(mtd,movingtargetdefense)。攻击者在庞大的软件系统中仅仅需要找到一个漏洞,就能够通过很少几行代码完全“攻陷”;而防御者需要对百万行、千万行的代码进行充分的保护,才能防止漏洞被利用。移动目标防御倡导随时间变化,不断的转换不同的机制和策略,使系统体现出随机性、多样性和动态性的特征。通过不断变化的攻击表面,显著的增加了攻击的难度,同时也降低了漏洞被利用的可能性。

操作系统是整个系统的底层支撑基础,并掌管了系统所有的特权操作。因此,操作系统的安全改进方案一直是业界的热点。目前已有一些应用于操作系统的移动目标防御方法,通过动态改变操作系统,从而动态变化其对外暴露的可攻击表面。

相关技术中,针对云计算中安全威胁在多个虚拟机之间传播的问题,提出一种基于嵌套虚拟化的移动目标技术方案。第一级虚拟机包括hypershell、第二级目标虚拟机以及多个提供扩展服务的嵌套虚拟机。通过hypershell动态的将第二级虚拟机和各种扩展服务的嵌套虚拟机,动态的在不同的物理机上迁移以及动态的在不同的虚拟嵌套层级上迁移。该方法利用虚拟化的技术动态改变客户机操作系统,并将扩展服务在多个客户机操作系统之间进行动态迁移,变化系统对外暴露的可攻击表面,这样,加大了攻击者在系统探测、漏洞挖掘的技术难度。但当攻击者掌握存在的某个漏洞,在某个时刻是可以攻击成功的。不断变化的攻击表面无法充分保障系统的安全性,在持续威胁情况下仍然可能攻击成功。

相关技术提出了一种基于多操作系统运转的移动目标防御方法。外部用户通过网络,访问采用该方法对应的装置,该装置由一个管理设备和多个运行不同操作系统主机系统组成,通过管理设备同步状态在多个主机系统轮流对外提供服务。该方法通过多个物理主机系统部署不同的操作系统,从而实现动态改变操作系统对外暴露的可攻击表面,使得攻击者无法预测当前服务的操作系统情况。这种实现方式需要设置多个主机系统,成本较高;而且,也存在当某个时刻攻击者命中当前操作系统或上层服务的漏洞时,系统被成功攻击的问题。

通过上述分析可以看出,相关技术中实现移动目标防御的方案,均是通过操作系统的外部技术方案(如虚拟化创建多个虚拟操作系统,或者多个物理环境运行多个实际操作系统等)来动态变化操作系统以及上层业务服务,从而动态变化系统对外暴露的可攻击表面,进而使得攻击可达路径和攻击时间窗都处于动态变化的状态,最终实现防御未知安全威胁的目的,提高系统的安全性。

但是,相关技术存在两个问题:第一,不能及时发现已发生或正在发生的安全威胁;第二、不能对命中的威胁进行防御,如当某个特定的时刻下攻击者命中被攻击对象的安全漏洞时,系统的安全性会被完全破坏。



技术实现要素:

为了解决上述技术问题,本发明提供一种实现移动目标防御的方法及装置,能够及时发现安全威胁,提高整个系统的安全级别。

为了达到本发明目的,本发明提供了一种实现移动目标防御的装置,包括:设置在主机操作系统内的虚拟运行环境管理模块、系统调用管理模块,以及虚拟运行环境模块、用户业务模块;其中,

虚拟运行环境模块,包括两个或两个以上异构的虚拟运行环境模块的镜像,用于负责对上层的用户业务模块提供虚拟的运行环境;

用户业务模块,包括两个或两个以上异构的用户业务模块的镜像,用于负责实际的用户业务功能;

虚拟运行环境管理模块,用于按照生成的虚拟运行环境的目标个数,根据建立的虚拟运行环境模块的镜像和用户业务模块的镜像创建目标个数个虚拟运行环境;按照来自系统调用管理模块的通知,管理可能存在安全问题的虚拟运行环境;

系统调用管理模块,其中设置有用于标识需要监控的系统调用的监控系统调用信息,用于按照监控系统调用信息对创建的虚拟运行环境中的系统调用进行管理,以确定可能存在安全问题的虚拟运行环境并通知虚拟运行环境管理模块;

其中,异构为功能相同但内部结构不同。

可选地,所述虚拟运行环境模块的镜像为轻量级虚拟化的基础设施组件。

可选地,所述异构的虚拟运行环境模块的镜像包括:基础设施组件的配置选项不同、基础设施组件的源代码版本不同、基础设施组件的编译选项不同。

可选地,所述异构的业务模块的镜像包括:编译优化选项不同、编译器版本不同。

可选地,所述虚拟运行环境管理模块中的创建目标个数个虚拟运行环境包括:

初始化所述虚拟运行环境模块以及所述用户业务模块,以形成不可预测的攻击面;

加载和运行建立的若干个所述虚拟运行环境,依次设置创建的虚拟运行环境的状态为正常可用状态。

可选地,所述虚拟运行环境管理模块中的初始化所述虚拟运行环境模块以及所述用户业务模块包括:

从所述两个或两个以上异构的虚拟运行环境模块的镜像中,随机选择一个镜像作为即将运行的虚拟运行环境模块的镜像;从所述两个或两个以上异构的用户业务模块的镜像中,随机选择一个镜像作为即将运行的用户业务模块的镜像;根据选择出的镜像创建一个虚拟运行环境,直到创建的虚拟运行环境的个数达到所述目标个数个。

可选地,所述系统调用管理模块中的对创建的虚拟运行环境中的系统调用进行管理包括:

基于所述监控系统调用信息识别虚拟运行环境运行中发生的受控的系统调用;收集受控的系统调用的信息;

基于所有虚拟运行环境的受控的系统调用的信息进行判决,将可能存在安全问题的虚拟运行环境通知给所述虚拟运行环境管理模块。

可选地,所述监控系统调用信息包括:用户业务的关键操作系统调用、用户业务的关键输出系统调用、操作系统管理的设备特权系统调用。

可选地,当某所述虚拟运行环境中的用户业务版本发送系统调用时,

所述系统调用管理模块具体用于:

获取当前受控的系统调用的相关信息;使用当前访问的系统调用情况与已有的监控系统调用信息中进行匹配,如果匹配不成功,则允许执行当前系统调用,继续执行原有的系统调用以及用户业务流程;如果匹配成功,则,

检查其他虚拟运行环境是否已处于系统调用等待判决的状态,

如果其他虚拟运行环境并未处于系统调用等待判决状态,则设置当前虚拟运行环境为等待判决状态,设置超时定时器;直到超时定时器到期,检查其他虚拟运行环境是否处于系统调用等待判决状态;针对超时仍未进入系统调用等待状态的虚拟运行环境被认为是非法虚拟运行环境并通知所述虚拟运行环境管理模块;

如果其他虚拟运行环境均已进入系统调用等待判决状态,对所有虚拟运行环境下的当前系统调用情况进行判决,并将判决结果通知给所述虚拟运行环境管理模块;

相应地,所述虚拟运行环境管理模块具体用于:

对判决为合法的虚拟运行环境标记为正常状态,按照系统调用的原有流程进行处理;将判决为非法的虚拟运行环境设置为异常状态,对异常状态的虚拟运行环境的进行清洗。

可选地,所述虚拟运行环境管理模块还用于:启动清洗后的异常状态虚拟运行环境和用户业务并重新设置为正常状态。

可选地,所述判决包括:

择多判决:在所有的虚拟运行环境中,认为多数相同的系统调用情况为合法访问,而与多数系统调用不同的系统调用为非法访问;或者,

一致性判决:当所有虚拟运行环境中所有系统调用情况完全一致,才认为当前访问合法,否则均为非法访问。

可选地,当发生外部事件时,所述虚拟运行环境管理模块还用于:

接收通过主机操作系统传递的外部事件;遍历处于正常状态的虚拟运行环境并依次转发接收到的外部事件。

本申请还提供了一种实现移动目标防御的方法,包括:

建立两个或两个以上异构的虚拟运行环境的镜像,以及两个或两个以上异构的用户业务的镜像;

设置用于标识需要监控的系统调用的监控系统调用信息,以及需要创建的虚拟运行环境的目标个数;

根据建立的虚拟运行环境的镜像和用户业务的镜像创建目标个数个虚拟运行环境,并按照监控系统调用信息对创建的虚拟运行环境中的系统调用进行监控,以确定可能存在安全问题的虚拟运行环境;

其中,异构为功能相同但内部结构不同。

可选地,所述虚拟运行环境模块的镜像为轻量级虚拟化的基础设施组件;

所述建立两个或两个以上异构的虚拟运行环境的镜像包括:

通过获取功能相同但源码版本不同的基础设施组件版本,对不同的基础设施组件版本使用不同的编译器以及不同的编译选项,生成所述两个或两个以上异构的虚拟运行环境模块的镜像。

可选地,所述建立两个或两个以上异构的用户业务的镜像包括:

通过使用不同版本的编译器,以及不同的编译选项,生成所述两个或两个以上异构的用户业务模块的镜像。

可选地,根据预先设置的配置信息设置所述监控系统调用信息;

所述监控系统调用信息包括:用户业务的关键操作系统调用、用户业务的关键输出系统调用、操作系统管理的设备特权系统调用。

可选地,所述创建目标个数个虚拟运行环境包括:

初始化所述虚拟运行环境模块以及所述用户业务模块,以形成不可预测的攻击面;

加载和运行建立的若干个所述虚拟运行环境,依次设置创建的虚拟运行环境的状态为正常可用状态。

可选地,所述初始化所述虚拟运行环境模块以及所述用户业务模块包括:

从所述两个或两个以上异构的虚拟运行环境模块的镜像中,随机选择一个镜像作为即将运行的虚拟运行环境模块的镜像;从所述两个或两个以上异构的用户业务模块的镜像中,随机选择一个镜像作为即将运行的用户业务模块的镜像;根据选择出的镜像创建一个虚拟运行环境,直到创建的虚拟运行环境的个数达到所述目标个数个。

可选地,当某所述虚拟运行环境中的用户业务版本发送系统调用时,所述按照监控系统调用信息对创建的虚拟运行环境中的系统调用进行监控,以确定可能存在安全问题的虚拟运行环境包括:

获取当前受控的系统调用的相关信息;使用当前访问的系统调用情况与已有的监控系统调用信息中进行匹配,如果匹配不成功,则允许执行当前系统调用,继续执行原有的系统调用以及用户业务流程;如果匹配成功,则,

检查其他虚拟运行环境是否已处于系统调用等待判决的状态,

如果其他虚拟运行环境并未处于系统调用等待判决状态,则设置当前虚拟运行环境为等待判决状态,设置超时定时器;直到超时定时器到期,检查其他虚拟运行环境是否处于系统调用等待判决状态;针对超时仍未进入系统调用等待状态的虚拟运行环境被认为是非法虚拟运行环境;

如果其他虚拟运行环境均已进入系统调用等待判决状态,对所有虚拟运行环境下的当前系统调用情况进行判决,对判决为合法的虚拟运行环境标记为正常状态,按照系统调用的原有流程进行处理;将判决为非法的虚拟运行环境设置为异常状态,对异常状态的虚拟运行环境的进行清洗。

可选地,所述方法还包括:启动所述清洗后的异常状态虚拟运行环境和用户业务并重新设置为正常状态。

可选地,所述判决包括:

择多判决:在所有的虚拟运行环境中,认为多数相同的系统调用情况为合法访问,而与多数系统调用不同的系统调用为非法访问;或者,

一致性判决:当所有虚拟运行环境中所有系统调用情况完全一致,才认为当前访问合法,否则均为非法访问。

可选地,当发生外部事件时,所述方法还包括:

接收通过主机操作系统传递的外部事件;遍历处于正常状态的虚拟运行环境并依次转发接收到的外部事件。

本申请技术方案包括:建立若干个异构的虚拟运行环境的镜像,以及若干个异构的用户业务的镜像;设置用于标识需要监控的系统调用的监控系统调用信息,以及需要创建的虚拟运行环境的目标个数;根据建立的虚拟运行环境的镜像和用户业务的镜像创建目标个数个虚拟运行环境,并按照监控系统调用信息对创建的虚拟运行环境中的系统调用进行监控,以确定可能存在安全问题的虚拟运行环境。本发明提供的实现移动目标防御的装置,一方面,通过创建若干异构虚拟运行环境,虚拟运行环境模块的镜像和用户业务模块的镜像使用多种方式形成随机、多样的异构体,异构体对外攻击面也呈现随机、多样的特征;另一方面,运行时随机、动态加载虚拟运行环境模块的镜像和用户业务模块的镜像,使得运行时的对外攻击面不可预测。也就是说,本发明提供的技术方案,从用户业务和虚拟运行环境等多个角度运用移动目标防御的思想,实现了动态改变实现移动目标防御的装置对外暴露的可攻击表面以及攻击路径,便于及时发现安全威胁,提高了整个系统的安全级别。

进一步地,本发明提供的技术方案通过多个虚拟运行环境的系统调用进行多模判决,根据判决结果可及时识别和阻止各种类型的非法特权操作和非法业务操作,实现了对未知的安全威胁的应对处理。

进一步地,当若干个虚拟运行环境中的某个虚拟运行环境中的用户业务被劫持攻击后,可能对虚拟运行环境模块或用户业务模块内部进行破坏,但是,无法对外部的关键操作进行破坏,因此,不会影响整个实现移动目标防御的装置的安全性,大大降低了单个执行体的安全性直接影响整个系统的安全性的问题。仅当半数以上的虚拟运行环境在一个对外行为或特权操作上,出现完全一致的非法操作,才会影响整个实现移动目标防御的装置的安全性。然而,由于本发明中的虚拟运行环境模块和用户业务模块都是结构相异的,漏洞的成因以及利用的方法也是相异的,因此,出现半数以上完全一致的非法操作的概率是极低的。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实现移动目标防御的装置的组成结构示意图;

图2为本发明实现移动目标防御的方法的流程图;

图3为本发明实现移动目标防御的方法中创建若干虚拟运行环境的实施例的流程示意图;

图4为本发明实现移动目标防御的方法中系统调用的执行和判决的实施例的流程示意图;

图5为本发明实现移动目标防御的方法中传递外部事件的实施例的流程示意图;

图6为本发明实现移动目标防御的方法中用户业务被攻击后输出错误结果的实施例的示意图;

图7为本发明实现移动目标防御的方法中用户业务被攻击后执行非法特权操作的实施例的示意图;

图8为本发明实现移动目标防御的方法中用户业务被攻击后出现异常状况的实施例的示意图;

图9为本发明实现移动目标防御的方法中多个用户业务同时被攻击的实施例的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

图1为本发明实现移动目标防御的装置的组成结构示意图,如图1所示,至少包括:设置在主机操作系统内的虚拟运行环境管理模块、系统调用管理模块,以及虚拟运行环境模块、用户业务模块。

图1中,虚拟运行环境模块,包括若干个异构(功能相同但内部结构不同)的虚拟运行环境模块的镜像,用于负责对上层的用户业务模块提供虚拟的运行环境,实现从用户业务视角来看运行在虚拟运行环境等同于独占使用实际操作系统的目的。

可选地,虚拟机运行环境模块以轻量级虚拟化的基础设施组件如lxc容器及相关库、docker等的形式存在。各个虚拟运行环境模块的功能相同但结构不同,具体实现方式包括但不限于:基础设施组件的配置选项不同、基础设施组件的源代码版本不同、基础设施组件的编译选项不同等。

不同的虚拟运行环境模块的建立,通过获取功能相同但源码版本不同的若干基础设施组件版本,对不同的基础设施组件版本(比如v1.0、v1.2等功能相同、源代码不同的版本),使用不同的编译器(比如gcc3.1.4或gcc4.1.2等不同编译器版本)以及不同的编译选项(比如o1、o2、o3等编译优化选项)生产若干个异构(功能相同但内部结构不同)的虚拟运行环境模块的镜像。

图1中,用户业务模块,包括若干个异构(功能相同但内部结构不同)的用户业务模块的镜像,用于负责实际的用户业务功能。

可选地,每一个用户业务模块运行在一个虚拟运行环境模块之上。各个用户业务模块的功能相同但内部结构不同,具体实现方式包括但不限于:编译优化选项不同、编译器版本不同等。

不同的用户业务模块的建立,通过使用不同版本的编译器,比如:gcc3.1.4或gcc4.1.2等不同编译器版本,以及不同的编译选项,比如:o1、o2、o3等编译优化选项,以生成若干个异构(功能相同但内部结构不同)的用户业务模块的镜像。

图1中,虚拟运行环境管理模块,用于按照生成的虚拟运行环境的目标个数,根据建立的虚拟运行环境模块的镜像和用户业务模块的镜像创建目标个数个虚拟运行环境;按照来自系统调用管理模块的通知,管理可能存在安全问题的虚拟运行环境。

可选地,对若干个虚拟运行环境进行管理包括但不限于:创建、清洗以及运行状态的管理。

可选地,虚拟运行环境管理模块中创建目标个数个虚拟运行环境包括:

首先,初始化虚拟运行环境模块以及用户业务模块,以形成不可预测的攻击面,具体包括:从若干个异构的虚拟运行环境模块的镜像中,动态的随机选择一个镜像作为即将运行的虚拟运行环境模块的镜像;从若干个异构的用户业务模块的镜像中,动态的随机选择一个镜像作为即将运行的用户业务模块的镜像;根据选择出的上述镜像创建一个虚拟运行环境;利用上述方法创建虚拟运行环境,直到创建的虚拟运行环境的个数达到目标个数个。然后,加载和运行建立的若干个虚拟运行环境,依次设置创建的虚拟运行环境的状态为正常可用状态。

图1中,系统调用管理模块,其中设置有用于标识需要监控的系统调用的监控系统调用信息,用于按照监控系统调用信息对创建的虚拟运行环境中的系统调用进行管理,以确定可能存在安全问题的虚拟运行环境并通知虚拟运行环境管理模块。

可选地,监控系统调用信息包括但不限于:用户业务的关键操作系统调用、用户业务的关键输出系统调用、操作系统管理的设备特权系统调用等安全敏感的系统调用。

其中,对创建的虚拟运行环境中的系统调用进行管理具体包括:

基于监控系统调用信息识别虚拟运行环境运行中发生的受控的系统调用;收集受控的系统调用的信息,包括系统调用号、系统调用参数等信息;基于所有虚拟运行环境的受控的系统调用的信息进行判决,将可能存在安全问题的虚拟运行环境通知给虚拟运行环境管理模块进行清洗。

可选地,

当用户业务功能涉及到关键操作、关键输出以及操作系统特权操作时,需要通过操作系统的系统调用统一的对外操作。也就是说,基于本发明图1所示的实现移动目标防御的装置中对冗余虚拟运行环境的系统调用执行和判决方式,可以对关键业务操作、关键业务输出、操作系统特权操作进行合法性判别,具体地,

当某一个虚拟运行环境中的用户业务版本发送系统调用时,

系统调用管理模块具体用于:

获取当前受控的系统调用的相关信息,包括系统调用号、系统调用参数等;使用当前访问的系统调用情况与已有的监控系统调用信息中进行匹配,如果匹配不成功则允许执行当前系统调用,继续执行原有的系统调用以及用户业务流程;如果匹配成功,则,

检查其他虚拟运行环境是否已处于系统调用等待判决的状态,

如果其他虚拟运行环境并未处于系统调用等待判决状态,则设置当前虚拟运行环境为等待判决状态,设置超时定时器;直到超时定时器到期,检查其他虚拟运行环境是否处于系统调用等待判决状态;针对超时仍未进入系统调用等待状态的虚拟运行环境被认为是非法虚拟运行环境并通知虚拟运行环境管理模块;

如果其他虚拟运行环境均已进入系统调用等待判决状态,对所有虚拟运行环境下的当前系统调用情况进行判决,并将判决结果通知给虚拟运行环境管理模块。其中,判决包括但不限于以下方式:择多判决和一致性判决。其中,择多判决包括:在所有的虚拟运行环境中,认为多数相同的系统调用情况为合法访问,而与多数系统调用不同的系统调用为非法访问。一致性判决包括:只有当所有虚拟运行环境中所有系统调用情况完全一致,才认为当前访问合法,否则均为非法访问。这里,对于安全性要求极高但对响应时间要求不高的场景可以采用一致性判决;对于安全性要求不是非常高并对响应时间要求比较高的场景可以采用择多判决。

相应地,虚拟运行环境管理模块具体用于:

对判决为合法的虚拟运行环境标记为正常状态,并按照系统调用的原有流程进行处理:执行系统调用、返回执行结果、回到用户态业务程序继续执行原有用户业务流程;将判决为非法的虚拟运行环境设置为异常状态,对异常状态的虚拟运行环境的进行清洗。进一步地,还用于:启动清洗后的异常状态虚拟运行环境和用户业务并重新设置为正常状态。

可选地,

当发生外部事件时,虚拟运行环境管理模块还用于:

接收通过主机操作系统传递的外部事件;遍历处于正常状态的虚拟运行环境并依次转发接收到的外部事件;

虚拟运行环境管理模块可以通过虚拟化运行环境所属的虚拟设备如虚拟网卡等传递外部事件;同时,将按照原有流程将接收到的外部事件传递给上层的用户业务模块,用户业务模块按照已有的业务流程处理外部事件。

本发明提供的实现移动目标防御的装置,一方面,通过创建若干异构虚拟运行环境,虚拟运行环境模块的镜像和用户业务模块的镜像使用多种方式形成随机、多样的异构体,异构体对外攻击面也呈现随机、多样的特征;另一方面,运行时随机、动态加载虚拟运行环境模块的镜像和用户业务模块的镜像,使得运行时的对外攻击面不可预测。也就是说,本发明提供的技术方案,从用户业务和虚拟运行环境等多个角度运用移动目标防御的思想,实现了动态改变实现移动目标防御的装置对外暴露的可攻击表面以及攻击路径,便于及时发现安全威胁,提高了整个系统的安全级别。

进一步地,通过多个虚拟运行环境的系统调用进行多模判决,根据判决结果可及时识别和阻止各种类型的非法特权操作和非法业务操作,实现了对未知的安全威胁的应对处理。

进一步地,当若干个虚拟运行环境中的某个虚拟运行环境中的用户业务被劫持攻击后,可能对虚拟运行环境模块或用户业务模块内部进行破坏,但是,无法对外部的关键操作进行破坏,因此,不会影响整个实现移动目标防御的装置的安全性,大大降低了单个执行体的安全性直接影响整个系统的安全性的问题。仅当半数以上的虚拟运行环境在一个对外行为或特权操作上,出现完全一致的非法操作,才会影响整个实现移动目标防御的装置的安全性。然而,由于本发明中的虚拟运行环境模块和用户业务模块都是结构相异的,漏洞的成因以及利用的方法也是相异的,因此,出现半数以上完全一致的非法操作的概率是极低的。

图2为本发明实现移动目标防御的方法的流程图,如图2所示,包括:

步骤200:建立若干个异构的虚拟运行环境的镜像,以及若干个异构的用户业务的镜像。

其中,用户业务包括两个或两个以上负责实际的用户业务功能的用户业务模块,虚拟运行环境包括两个或两个以上负责对上层的用户业务模块提供虚拟的运行环境的虚拟运行环境模块。

每一个用户业务模块运行在一个虚拟运行环境模块之上。各个业务模块的功能相同但内部结构不同,具体实现方式包括但不限于:编译优化选项不同、编译器版本不同等。

不同的用户业务模块的建立,通过使用不同版本的编译器,比如:gcc3.1.4或gcc4.1.2等不同编译器版本,以及不同的编译选项,比如:o1、o2、o3等编译优化选项,以生成若干个异构(功能相同但内部结构不同)的用户业务模块的镜像。

虚拟运行环境模块负责对上层的用户业务模块提供虚拟的运行环境,实现从用户业务视角来看运行在虚拟运行环境等同于独占使用实际操作系统的目的。虚拟机运行环境模块以轻量级虚拟化的基础设施组件如lxc容器及相关库、docker等的形式存在。各个虚拟运行环境模块的功能相同但结构不同,具体实现方式包括但不限于:基础设施组件的配置选项不同、基础设施组件的源代码版本不同、基础设施组件的编译选项不同等。

不同的虚拟运行环境模块的建立,通过获取功能相同但源码版本不同的若干基础设施组件版本,对不同的基础设施组件版本(比如v1.0、v1.2等功能相同、源代码不同的版本),使用不同的编译器(比如gcc3.1.4或gcc4.1.2等不同编译器版本)以及不同的编译选项(比如o1、o2、o3等编译优化选项)生成若干个异构(功能相同但内部结构不同)的虚拟运行环境模块的镜像。

步骤201:设置用于标识需要监控的系统调用的监控系统调用信息,以及需要创建的虚拟运行环境的目标个数。

本步骤中,根据用户业务的安全需求设置监控系统调用信息,包括监控系统调用信息的配置信息中需要监控的系统调用包括但不限于用户业务的关键操作系统调用等。监控系统调用信息包括但不限于:用户业务的关键操作系统调用、用户业务的关键输出系统调用、操作系统管理的设备特权系统调用等安全敏感的系统调用。

本步骤中的虚拟运行环境的目标个数可以是生成的一个随机数。

步骤202:根据建立的虚拟运行环境的镜像和用户业务的镜像创建目标个数个虚拟运行环境,并按照监控系统调用信息对创建的虚拟运行环境中的系统调用进行监控,以确定可能存在安全问题的虚拟运行环境。

本步骤中的创建目标个数个虚拟运行环境包括:

首先,初始化虚拟运行环境模块以及用户业务模块,以形成不可预测的攻击面,具体包括:

从若干个异构的虚拟运行环境模块的镜像中,动态的随机选择一个镜像作为即将运行的虚拟运行环境模块的镜像;从若干个异构的用户业务模块的镜像中,动态的随机选择一个镜像作为即将运行的用户业务模块的镜像;根据选择出的上述镜像创建一个虚拟运行环境;利用上述方法创建虚拟运行环境,直到创建的虚拟运行环境的个数达到目标个数个。

然后,加载和运行建立的若干个虚拟运行环境,依次设置创建的虚拟运行环境状态为正常可用状态。

每一个基于虚拟运行环境的用户业务模块都可以独立的执行即在不同虚拟运行环境中的用户业务模块之间不存在业务上的耦合关系,每个用户业务都可以相互独立的执行;但是,当用户业务功能涉及到关键操作、关键输出以及操作系统特权操作时,需要通过操作系统的系统调用统一的对外操作,其中,系统调用是用户业务的关键操作的接口,例如操作系统特权操作、用户业务对外的输入和输出操作等等。

可选地,

基于本发明图1所示的实现移动目标防御的装置中对冗余虚拟运行环境的系统调用执行和判决的方法,可以对关键业务操作、关键业务输出、操作系统特权操作进行合法性判别,包括:

当某一个虚拟运行环境中的用户业务版本发送系统调用时,步骤202中的按照监控系统调用信息对创建的虚拟运行环境中的系统调用进行监控,以确定可能存在安全问题的虚拟运行环境,具体包括:

获取当前受控的系统调用的相关信息,包括系统调用号、系统调用参数等;使用当前访问的系统调用情况与已有的监控系统调用信息进行匹配,如果匹配不成功则允许执行当前系统调用,继续执行原有的系统调用以及用户业务流程;如果匹配成功,则,

检查其他虚拟运行环境是否已处于系统调用等待判决的状态,

如果其他虚拟运行环境并未处于系统调用等待判决状态,则设置当前虚拟运行环境为等待判决状态,设置超时定时器;直到超时定时器到期,检查其他虚拟运行环境是否处于系统调用等待判决状态;针对超时仍未进入系统调用等待状态的虚拟运行环境被认为是非法虚拟运行环境;

如果其他虚拟运行环境均已进入系统调用等待判决状态,对所有虚拟运行环境下的当前系统调用情况进行判决,并根据判决结果获知虚拟运行环境的合法性。其中,判决包括但不限于以下方式:择多判决和一致性判决。其中,择多判决包括:在所有的虚拟运行环境中,认为多数相同的系统调用情况为合法访问,而与多数系统调用不同的系统调用为非法访问。一致性判决包括:只有当所有虚拟运行环境中所有系统调用情况完全一致,才认为当前访问合法,否则均为非法访问。这里,对于安全性要求极高但对响应时间要求不高的场景可以采用一致性判决;对于安全性要求不是非常高并对响应时间要求比较高的场景可以采用择多判决。

对判决为合法的虚拟运行环境标记为正常状态,并按照系统调用的原有流程进行处理:执行系统调用、返回执行结果、回到用户态业务程序继续执行原有用户业务流程;将判决为非法的虚拟运行环境设置为异常状态,对异常状态的虚拟运行环境的进行清洗。进一步地,还包括:启动清洗后的异常状态虚拟运行环境和用户业务并重新设置为正常状态。

可选地,

当发生外部事件时,本发明方法还包括:

接收通过主机操作系统传递的外部事件;遍历处于正常状态的虚拟运行环境并依次转发接收到的外部事件;

虚拟运行环境管理模块可以通过虚拟化运行环境所属的虚拟设备如虚拟网卡等传递外部事件;同时,将按照原有流程将接收到的外部事件传递给上层的用户业务模块,用户业务模块按照已有的业务流程处理外部事件。

本发明提供的实现移动目标防御的方法,一方面,通过创建若干异构虚拟运行环境,虚拟运行环境模块的镜像和用户业务模块的镜像使用多种方式形成随机、多样的异构体,异构体对外攻击面也呈现随机、多样的特征;另一方面,运行时随机、动态加载虚拟运行环境模块的镜像和用户业务模块的镜像,使得运行时的对外攻击面不可预测。也就是说,本发明提供的技术方案,从用户业务和虚拟运行环境等多个角度运用移动目标防御的思想,实现了动态改变实现移动目标防御的装置对外暴露的可攻击表面以及攻击路径,便于及时发现安全威胁,提高了整个系统的安全级别。

进一步地,通过多个虚拟运行环境的系统调用进行多模判决,根据判决结果可及时识别和阻止各种类型的非法特权操作和非法业务操作,实现了对未知的安全威胁的应对处理。

进一步地,当若干个虚拟运行环境中的某个虚拟运行环境中的用户业务被劫持攻击后,可能对虚拟运行环境模块或用户业务模块内部进行破坏,但是,无法对外部的关键操作进行破坏,因此,不会影响整个实现移动目标防御的装置的安全性,大大降低了单个执行体的安全性直接影响整个系统的安全性的问题。仅当半数以上的虚拟运行环境在一个对外行为或特权操作上,出现完全一致的非法操作,才会影响整个实现移动目标防御的装置的安全性。然而,由于本发明中的虚拟运行环境模块和用户业务模块都是结构相异的,漏洞的成因以及利用的方法也是相异的,因此,出现半数以上完全一致的非法操作的概率是极低的。

下面结合图1所示的实现移动目标防御的装置,对本发明实现移动目标防御的方法的具体实施方式进行详细描述。

图3为本发明实现移动目标防御的方法中创建若干异构虚拟运行环境的实施例的流程示意图,如图3所示,具体包括:

首先,建立若干个作为执行体的异构(功能相同但内部结构不同)的基础设施组件(包括虚拟运行环境模块的镜像和用户业务模块的镜像),使得这些基础设施组件的对外攻击面呈现随机、多样的特征。以便破坏攻击者所依赖的系统固定的规律,比如缓存区溢出攻击依赖符号的布局规律等。具体包括:

步骤300:针对不同源代码版本的虚拟运行环境的基础设施组件配置不同的扩展功能选项,使用不同的编译器版本以及不同编译优化选项生成若干个基本功能相同但结构不同的虚拟运行环境模块的镜像。也就是说,

针对虚拟运行环境模块,获取功能相同但源码版本不同的基础设施组件版本,针对不同的基础设施组件版本(比如v1.0、v1.2等功能相同、源代码不同的版本),使用不同的编译器(比如gcc3.1.4或gcc4.1.2等不同编译器版本)以及不同的编译选项(比如o1、o2、o3等编译优化选项)生产若干个异构(功能相同但内部结构不同)的虚拟运行环境模块的镜像。

步骤301:针对用户业务模块,使用不同的编译器版本以及不同编译优化选项生成若干个功能相同但结构不同的用户业务模块的镜像。也就是说,

针对用户业务模块,使用不同的版本的编译器(比如gcc3.1.4或gcc4.1.2等不同编译器版本)以及不同的编译选项(比如o1、o2、o3等编译优化选项)生成若干个异构(功能相同但内部结构不同)的用户业务模块的镜像。

然后,初始化系统调用管理模块,具体包括步骤302:从预先设置(如由业务人员预先填写)的配置信息中读取并设置监控系统调用信息。

监控系统调用信息可以采用监控系统调用表的形式存在,用于标识需要监控的系统调用。监控系统调用表中的内容包括但不限于:用户业务的关键操作系统调用、用户业务的关键输出系统调用、操作系统管理的设备特权系统调用等安全敏感的系统调用。

接着,初始化虚拟运行环境管理模块,具体包括步骤303:生成一个随机数用于标识需要创建的虚拟运行环境的目标个数;

最后,初始化虚拟运行环境模块以及用户业务模块以创建若干个虚拟运行环境,从而形成不可预测的攻击面。具体包括:

步骤304:判断已创建的虚拟运行环境个数是否小于目标个数,如果小于,则进入步骤305;如果不小于,则进入步骤308。

步骤305:从若干个异构的虚拟运行环境模块的镜像中,动态的随机选择一个镜像作为即将运行的虚拟运行环境模块的镜像。

步骤306:从若干个异构的用户业务模块的镜像中,动态的随机选择一个镜像作为即将运行的用户业务模块的镜像;根据选择出的上述镜像创建一个虚拟运行环境。

步骤307:虚拟运行环境管理模块使用选择出的虚拟运行环境模块的镜像及用户业务模块的镜像创建一个虚拟运行环境。之后返回步骤304。

步骤308:虚拟运行环境管理模块加载和运行建立的目标个数个虚拟运行环境,依次设置创建的虚拟运行环境状态为正常可用状态。

通过本发明创建若干异构虚拟运行环境,为虚拟运行环境模块的镜像和用户业务模块的镜像使用多种方式形成随机、多样的异构体,异构体对外攻击面也呈现随机、多样的特征;而且,运行时随机、动态加载虚拟运行环境模块的镜像和用户业务模块的镜像,使得运行时的对外攻击面不可预测。实现了动态改变系统对外暴露的可攻击表面以及攻击路径,便于及时发现安全威胁,提高了整个系统的安全级别。

图4为本发明实现移动目标防御的方法中系统调用的执行和判决的实施例的流程示意图,如图4所示,具体包括:

步骤400:当某一个虚拟运行中的用户业务版本发送系统调用时,系统调用管理模块会获取当前系统调用的相关信息,包括系统调用号、系统调用参数等。

步骤401:系统调用管理模块将当前访问的系统调用与已有的监控系统调用表中的系统调用进行匹配,如果匹配不成功,则允许当前系统调用执行,返回步骤400继续执行原有的系统调用以及用户业务流程;如果匹配成功,进入步骤402。

步骤402:操作系统检查其他虚拟运行环境是否都已处于系统调用等待判决的状态,如果其他虚拟运行环境并未处于系统调用等待判决的状态,则进入步骤403;如果其他虚拟运行环境均已进入系统调用等待判决的状态,则进入步骤405。

步骤403:设置当前虚拟运行环境为等待判决状态,设置超时定时器并阻塞当前虚拟运行环境,进入步骤404。

步骤404:超时定时器到期后检查其他虚拟运行环境是否处于系统调用等待判决的状态。对于已进入系统调用等待状态的虚拟运行环境,执行步骤405;针对超时仍未进入系统调用等待状态的虚拟运行环境被认为是非法虚拟运行环境,则进入步骤407的清洗流程。

步骤405~步骤406:对所有虚拟运行环境下的当前系统调用情况进行判决,并根据判决结果获知虚拟运行环境的合法性,对于判决结果为合法虚拟运行环境,进入步骤411;对于判决结果为非法虚拟运行环境,进入步骤407。

本步骤中,判决包括但不限于以下方式:择多判决和一致性判决。其中,择多判决包括:在所有的虚拟运行环境中,认为多数相同的系统调用情况为合法访问,而与多数系统调用不同的系统调用为非法访问。一致性判决包括:只有当所有虚拟运行环境中所有系统调用情况完全一致,才认为当前访问合法,否则均为非法访问。这里,对于安全性要求极高但对响应时间要求不高的场景可以采用一致性判决;对于安全性要求不是非常高并对响应时间要求比较高的场景可以采用择多判决。

步骤407:虚拟运行环境管理模块针对判决为非法的虚拟运行环境,设置该虚拟运行环境为异常状态,对异常状态的虚拟运行环境的进行清洗,停止并销毁异常的虚拟运行环境。

步骤408:从若干个虚拟运行环境模块和若干个用户业务模块中,重新随机选择异构的虚拟运行环境模块的镜像和用户业务模块的镜像。

本步骤中,有多少个异常的虚拟运行环境就重新创建多少个新的虚拟运行环境。

步骤409:组合随机选择出的镜像,创建并运行新的虚拟运行环境。

步骤410:初始化新的虚拟运行环境完成,设置该虚拟运行环境为正常状态。结束本流程。

步骤411:虚拟运行环境管理模块针对判决为合法的虚拟运行环境标记为正常状态,并按照系统调用的原有流程进行处理:执行系统调用、返回执行结果、回到用户态业务程序继续执行原有用户业务流程。

本实施例中,由多个虚拟运行环境的系统调用进行多模判决,根据判决结果可及时识别和阻止各种类型的非法特权操作和非法业务操作,实现了对未知的安全威胁的应对处理。

图5为本发明实现移动目标防御的方法中传递外部事件的实施例的流程示意图,如图5所示,具体包括:

首先步骤500:外部事件发生后首先通过主机操作系统传递到虚拟运行环境管理模块。

接着,虚拟运行环境管理模块遍历处于正常状态的虚拟运行环境,并依次注入收到的外部事件。具体包括:

步骤501:虚拟运行环境管理模块选择一个未注入外部事件的虚拟化运行环境。

步骤502:虚拟运行环境管理模块通过虚拟运行环境所属的虚拟设备如虚拟网卡传递外部事件。

步骤503:虚拟运行环境模块接收到外部事件后,按照原有流程传递给上层的用户业务模块,用户业务模块按照已有的业务流程处理外部事件。

步骤504:判断是否所有的虚拟运行环境都已经转发了外部事件,如果是,结束本流程;如果不是,返回步骤501。

下面结合四个不同的攻击实例和攻击过程,详细描述本发明异构虚拟运行环境的执行过程。

图6为本发明实现移动目标防御的方法中用户业务被攻击后输出错误结果的实施例的示意图。假设本实施例中,已按照图3所示的异构虚拟运行环境的创建方法创建出如图6所示的5个虚拟运行环境的异构冗余系统,并完成相应模块的初始化流程。当用户业务通过网络收到外部的控制命令时,如图6所示,包括:

主机操作系统的虚拟运行环境管理模块首先收到外部发送的网络报文,虚拟运行环境管理模块通过各个虚拟运行环境的虚拟网卡设备依次给5个虚拟运行环境转发外部发来的网络报文;

5个虚拟运行环境以及用户业务模块依次通过系统调用感知到虚拟网卡有待接收的网络报文,虚拟运行环境依次执行接收网络报文的系统调用;

系统调用管理模块收集当前系统调用情况,并与监控系统调用表进行匹配。由于接收报文不属于监控系统调用,因此,系统调用管理模块是允许5个虚拟运行环境读取网络报文数据的。

如图6所示,本实施例中,假设在五个虚拟运行环境及用户业务模块读取并处理网络数据报文时,其中有一个用户业务模块或虚拟运行环境模块,如图6中的虚拟运行环境3存在漏洞并被这次数据报文攻击成功(如图6中的六角星型标志所示),而且假设还篡改了此用户业务对控制命令的执行结果;而由于其他的用户业务模块或虚拟运行环境模块与被攻击的模块结构不同,因此,不存在相同的漏洞或存在漏洞但利用方式不同,在当前数据报文的攻击下表现不同,并未被篡改用户业务的对控制命令的执行结果。

如图6所示,5个虚拟运行环境执行完成后将执行结果提交到系统调用控制模块,如图6所示,虚线表示虚拟运行环境3提交执行结果。本实施例中,假设系统调用控制模块对5个虚拟运行环境的执行结果进行择多判决:由于有有4个虚拟运行环境的输出结果是一致的,只有一个虚拟运行环境即虚拟运行环境3的输出结果是不一致的。因此,判定虚拟运行环境3为非法虚拟运行环境,而其他虚拟运行环境为合法虚拟运行环境;

按照合法的输出结果执行系统调用,统一对外输出正确的结果;对于非法虚拟执行环境3则执行清洗流程,并重新选择并加载虚拟运行环境模块和用户业务模块。

图7为本发明实现移动目标防御的方法中用户业务被攻击后执行非法特权操作的实施例的示意图,假设本实施例中,已按照图3所示的异构虚拟运行环境的创建方法创建出如图7所示的5个虚拟运行环境的异构冗余系统,并完成相应模块的初始化流程。如图7所示,包括:

当某个用户业务模块或虚拟运行环境模块,如本实施例中的虚拟运行环境4自身存在安全漏洞(如图7中的六角星型标志所示),并且在合法的输入情况下被注入攻击代码,比如图6所示的用户业务被攻击后输出错误结果实施例的接收网络报文过程,如果预先设置在某个用户业务执行流程时触发注入代码执行非法特权操作,那么,如图7所示,当5个虚拟运行环境执行到触发攻击代码时,被注入攻击代码的虚拟运行环境4会企图执行非法的特权操作,而其他的虚拟运行环境则按照原有的业务流程执行正常的系统调用过程。

之后,所有的虚拟运行环境的系统调用请求都提交到系统调用控制模块,如图7所示,虚线表示虚拟运行环境4提交系统调度请求。系统调用控制模块对5个虚拟运行环境的执行结果进行择多判决。本实施例中,由于有4个虚拟运行环境的系统调用请求是一致的,只有一个虚拟运行环境即虚拟运行环境4的系统调用请求是不一致的。因此,判定虚拟运行环境4为非法虚拟运行环境,其他的虚拟运行环境为合法虚拟运行环境;

这样,允许合法的系统调用请求按照原有的业务流程正常处理;对于非法的系统调用请求即虚拟运行环境4执行清洗流程,并重新选择并加载虚拟运行环境模块和用户业务模块。

图8为本发明实现移动目标防御的方法中用户业务被攻击后出现异常状况的实施例的示意图,假设本实施例中,已按照图3所示的异构虚拟运行环境的创建方法创建出如图8所示的5个虚拟运行环境的异构冗余系统,并完成相应模块的初始化流程。当外部事件如外部网络报文,通过虚拟运行环境管理模块、虚拟运行环境模块以及相关虚拟设备传递到如图8所示的5个虚拟运行环境及相应的用户业务模块中,如图8所示,包括:

本实施例中,如图8中的六角星型标志所示,假设在该外部网络报文的攻击下,命中虚拟运行环境5的漏洞,并导致虚拟运行环境5进入挂起或死循环等异常状态。而其他虚拟运行环境由于镜像结构不同,漏洞情况不同或相同漏洞下利用方式不同,在当前报文攻击下仍可正常执行,并通过系统调用反馈输出结果;

当其他4个虚拟运行环境提交系统调用后,进入到系统调用等待判决阶段,并设置了超时定时器;但是,处于异常状态的虚拟运行环境5始终处于挂起或死循环状态;

当超时定时器超时后,对于已经进入系统调用等待判决阶段的虚拟运行环境进行判决处理:由于此时所有虚拟运行环境输出的是一致性的结构,所以均判决为合法;而超时未通过系统调用反馈输出结果的虚拟运行环境5则被标记为非法寻你运行环境;

对于合法的虚拟运行环境,允许其执行系统调用并输出结果,按照原有的业务流程正常处理;对于非法的虚拟运行环境5则执行清洗流程,并重新选择并加载虚拟运行环境模块和用户业务模块。

图9为本发明实现移动目标防御的方法中多个用户业务同时被攻击的实施例的示意图,假设本实施例中,已按照图3所示的异构虚拟运行环境的创建方法创建出如图9所示的5个虚拟运行环境的异构冗余系统,并完成相应模块的初始化流程。并且,按照图5所示的传递外部事件的实施例流程,在发生外部网络数据时已依次将外部事件传递给如图9所示的5个虚拟运行环境。如图9所示,

假设本实施例中,有两个用户业务模块或虚拟运行环境模块,如虚拟运行环境1和虚拟运行环境5存在相同的漏洞,并且,在外部事件即给定的输入网络攻击报文下漏洞会被利用。

由于虚拟运行环境1和虚拟运行环境5使用了不同编译器、不同的编译选项等手段,因此自身结构不同。而相同的攻击报文下只能针对特定的结构产生相同的攻击效果,因此,结构相异的漏洞在相同的攻击方式下产生了不同的攻击结果,如图9中的的八角型标志和六角星型标志分别所示。其他3个虚拟运行环境不存在此漏洞的情况下,反馈正常的处理结果。

5个虚拟运行环境都通过系统调用反馈结果,如图9所示,系统调用管理模块对5个异构虚拟运行环境的结果进行判决,由于3个虚拟运行环境输出为一致性的结果,而2个虚拟运行环境输出不同结果。因此,判定反馈一致性结果的3个虚拟运行环境为合法寻你运行环境,而反馈不同结果的两个虚拟运行环境为非法虚拟运行环境即虚拟运行环境1和虚拟运行环境5。

对于合法的虚拟运行环境,允许其执行系统调用并输出结果,按照原有的业务流程正常处理;对于非法的虚拟运行环境1和非法的虚拟运行环境5则执行清洗流程,并重新选择并加载虚拟运行环境模块和用户业务模块。

通过上述实施例可以看出,本发明提供的技术方案,通过对关键系统调用进行判决,及时发现了未知的安全威胁。而且,当单个或少数虚拟运行环境出现安全问题时不影响整个系统的安全性,且及时清洗了出现安全问题的虚拟运行环境,确保了系统持续的安全性和健壮性。

本发明还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行本发明任一项的实现移动目标防御的方法的方法。

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

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