基于Xen的虚拟机个性化安全监控系统及监控方法

文档序号:6515287阅读:253来源:国知局
基于Xen的虚拟机个性化安全监控系统及监控方法
【专利摘要】本发明公开的一种基于Xen的虚拟机个性化安全监控系统及监控方法,系统由安全决策模块、安全响应模块、安全呼叫模块构成。安全决策模块部署在管理域中,用于实现与安全呼叫模块协商虚拟机的安全监控服务方案,调用安全响应模块执行虚拟机安全监控服务方案,记录并反馈执行结果;安全响应模块部署在管理域中,执行虚拟机安全监控服务方案并返回执行结果;安全呼叫模块部署在虚拟机用户空间中,实现与安全决策模块协商虚拟机的安全监控服务方案。本发明的监控方法基于Xen的虚拟机个性化安全监控服务方案的协商和执行。具有实时监控的能力,能对系统的安全性进行分析,提供详细准确的监控日志记录,适用于半虚拟化系统和HVM系统。
【专利说明】基于Xen的虚拟机个性化安全监控系统及监控方法
【技术领域】
[0001]本发明涉及计算机虚拟化【技术领域】,进一步涉及计算机安全领域,是一种基于Xen安全监控系统及监控方法,用于虚拟机操作系统为linux, Windows系统等操作系统的Xen平台上,实现为虚拟机平台上多个虚拟机提供个性化的实时监控服务,为运行在虚拟化平台的操作系统和整个虚拟化平台提供安全保障。
【背景技术】
[0002]计算机世界里,“虚拟化”无处不在。Xen是剑桥大学教授Ian Pratt等发起的一个开源的虚拟机项目,Xen是可以在一套物理硬件上执行多个虚拟机的虚拟机监控器,由于其优越的性能和开源性,所以被业界广泛看好,被认为是未来最有前途的虚拟化解决方案之一。Xen的安全问题也自然成为人们关注的焦点,而在管理域内对多个虚拟机进行监控的技术也已经应用很广泛,这种监控技术既能够节省资源,而且又能够防止由于一个虚拟机出现问题而导致整个虚拟化平台崩溃的情况发生。但是这种监控技术却忽视了虚拟机自身的安全监控需求,同一个Xen平台上有多个虚拟机,而每个虚拟机的监控需求都有可能是不同的,而虚拟化服务的提供者在保证Xen平台安全性的基础上为每个虚拟机提供个性化的监控服务是有很重要的意义的。
[0003]现有的基于Xen平台用于为虚拟机提供个性化的安全监控服务的监控方法比较多,典型的有三类解决方法:第一类解决方法:将虚拟机平台中的系统管理域权限下放,使得每个虚拟机都有属于自己的管理域,同时新增安全服务域,这样就实现了对每个虚拟机都进行各自分别的安全监控。这种方法的代表是Self-service CloudComputing【2012年 10 月 16 日-Published in Proceedings of thel9th ACM Conference on Computerand Communications Security (CCS' 12), 0ctober2012.】中米用 SSC 计算框架来解决上述问题,SSC将传统Xen平台上 的管理域的管理权限下放给系统管理域和每个虚拟机的管理域。每个虚拟机可以独自承担自己系统的安全监控服务,保证了监控服务的个性化。但是该方法对Xen的修改过多,容易引入大量的漏洞;第二类解决方法是直接深入到虚拟平台的硬件层去进行系统安全的保护。这种方法一般是建立在管理域不会被恶意软件控制的基础上。在虚拟化平台上一个安全的虚拟机中部署安全监控服务,在硬件层次上,对系统的异常进行监控,这类方法的代表是Cloud Security is not (just) VirtualizationSecurity[【2009 年 11 月 13 日 Published by ACM2009Article.Bibliometrics DataBibliometrics.】它假设恶意侵犯者并不能够控制管理域,其从正在运行的虚拟机中获取中段描述符表和其他系统运行依赖的数据结构等硬件元素来探测该虚拟机的内核完整性,该方法从一定程度上保证了灵活的监控,但是该方法同样对Xen平台的修改比较多,同时对操作系统内核修改也多,这样更危险;第三种方法是从架构即服务的角度出发,为服务用户提供平台,让其能够运行自己的虚拟机平台,同时,能够实现自己监控虚拟机,为用户提供个性化的服务。这种方法主要是采用一种嵌套虚拟化方法,设计自己的虚拟化平台。这种方法的代表是 The Turtles Project:Design and Implementation of NestedVirtualization,它提出了基于因特尔x86平台的嵌套虚拟化架构的设计,实现,分析与评估。在嵌套虚拟化当中,一个虚拟化平台可以运行多个虚拟化平台,而它们上面又可以运行多个虚拟机。该方法同样对VMM的修改过多,容易引入更多漏洞。现有的监控技术均不能满足在不修改VMM的基础上,为Xen平台上不同的虚拟机提供个性化的监控服务。
[0004]Libvmi是由美国的Sandia国家实验室的Brian D.Payne等人开发的提供虚拟机内省功能的函数库。它能够使我们从Xen的管理域中对虚拟机进行内存的读写等功能。利用Libvmi提供的函数,能够实现从管理域对虚拟机进行内存相关的安全监控行为。

【发明内容】

[0005]1.发明所要解决的技术问题
[0006]本发明在分析总结了现有基于Xen平台的虚拟机安全监控技术缺点的基础上,针对虚拟化技术和计算机安全的发展对虚拟机安全监控提出新的需求,提供一种实时,实用性强,可扩展性强的基于Xen平台对虚拟机实行个性化安全监控的系统及监控方法。
[0007]2.发明采用的技术方案
[0008]本发明所涉及的Xen平台可运行全虚拟化和半虚拟化客户操作系统,虚拟机中客户操作系统可以为Linux系统或者Windows系统,管理域中操作系统为Iinux操作系统。安全监控系统包括三大模块:安全决策模块、安全响应模块、安全呼叫模块。安全决策模块和安全响应模块部署在管理域的用户空间,安全呼叫模块部署在Xen平台上的各个虚拟机的用户空间中。管理域中的安全决策模块内部包含决策逻辑和协商逻辑,其主要负责与虚拟机中的安全呼叫模块通讯和对监控服务方案进行分析决策。管理域中的安全响应模块则根据协商后的特定虚拟机的安全监控服务方案从管理域中对特定虚拟机进行安全监控。虚拟机中的安全呼叫模块主要负责与管理域进行通信,协商虚拟机所需的安全监控服务。
[0009]所述安全决策模块主要功能是与安全呼叫模块通信,协商虚拟机的安全监控服务方案,并对方案进行分析,并进行决策,判断其是否符合要求,并根据判断结果作出重新协商的决策还是调用安全响应模块执行结果方案的决策。提供日志记录功能,记录协商和执行过程中的相关信息。
[0010]所述安全响应模块主要功能是执行结果方案的安全监控服务集合,其调用Iibvmi库的相关函数完成安全监控服务,同时在实时监控过程中形成监控信息,提供用户接口,可以人工干预判断,若发现安全威胁,则发出警报,安全监控服务部署成功后发出反馈信息。
[0011]所述安全呼叫模块主要功能是与安全决策模块协商虚拟机用户的安全监控服务方案,该模块主要表达虚拟机用户的监控需求。
[0012]上述模块都不会对虚拟机监控器做任何修改,不会为系统引入新的安全漏洞,在保证Xen平台安全的基础上为虚拟机提供个性化安全监控服务。
[0013]本发明应用基于Xen平台的安全监控系统实现安全监控的方法,本发明的安全监控方法主要内容包括虚拟机个性化安全监控服务方案的协商和虚拟机个性化安全监控服务方案的执行。
[0014]所述虚拟化个性化安全监控服务方案的协商主要解决从管理域对虚拟机系统进行安全监控时缺乏多样性,无法满足多个虚拟机自身安全监控需求不一致的问题,以期能够为虚拟机提供个性化的安全监控服务。虚拟机和管理域之间的协商主要包括两种方式,一种是主动监控协商,这种协商方式主要从虚拟机用户的角度考虑,虚拟机用户出于自身系统安全的考虑,而主动向Xen平台的管理域发出安全监控请求,以保护虚拟机操作系统。另一种是被动监控协商,这种协商方式主要从Xen平台的管理者的角度考虑,出于考虑Xen平台的安全需要,需要在该平台上部署安全监控服务,此时虚拟机是被动的要求被监控的。协商过程中,安全决策模块的安全监控准线的存在能够使得服务的提供者能够保证Xen平台的安全性,而安全监控附加内容的存在则使得虚拟机能够自由的选择自身需要的安全监控服务,制定虚拟机自身个性化的安全监控服务方案。协商协议则为二者提供沟通方式,通过二者的协商,最终制定出既能保护Xen平台安全性,又能够满足虚拟机个性化监控需求的安全监控服务方案。
[0015]所述虚拟机个性化安全服务方案的执行,则解决从管理域对虚拟机按照虚拟机个性化安全监控服务的协商制定的安全监控服务方案对虚拟机进行监控的问题。安全监控服务方案的执行主要是调用Iibvmi库的函数来提供监控功能。虚拟机安全监控服务主要包括监控进程列表功能和监控系统调用表功能。
[0016]上述本发明的监控方法能够在保护Xen平台安全的基础上最大程度的为虚拟机提供个性化的安全监控服务,同时监控方法中的虚拟机个性化安全监控服务方案的两种协商方式能够满足无论是Xen平台的管理者还是虚拟机用户的多种需要。而监控方法中的虚拟机个性化安全监控服务方案的执行中监控服务集合是可以根据Xen平台管理者和虚拟机用户的需要进行扩展和变更的,最大限度的为用户提供了方便。
[0017]本发明包括虚拟机个性化安全监控服务方案协商和虚拟机个性化安全监控服务方案执行两大步,具体流程如下:
[0018]所述虚拟机个性化安全监控服务方案的协商有主动监控协商和被动监控协商:
[0019](I)主动监控协商过程如下:
[0020]Ia)安全呼叫模块向部署管理域的安全策略模块发送监控请求。
[0021]Ib)安全策略模块收到请求,向安全呼叫模块发送所有的安全监控服务的集合;
[0022]Ic)安全呼叫模块根据选择安全监控服务,并将结果方案发送给安全决策模块;
[0023]Id)安全决策模块分析其方案是否符合要求,若符合要求,协商停止,不符合要求,回到Ib);
[0024](2)被动监控协商过程如下:
[0025]2a)安全决策模块向安全呼叫模块发送所有的安全监控服务集合;
[0026]2b)安全呼叫模块选择安全监控服务,并将结果方案发送给安全决策模块;
[0027]2c)安全决策模块分析方案是否符合要求,若符合要求,协商停止,不符合要求,回到 2a);
[0028](3)所述虚拟机个性化安全监控服务方案的执行过程如下:
[0029]3a)安全决策模块调用安全响应模块,将虚拟机的安全监控需求发送给安全响应模块;
[0030]3b)安全响应模块执行安全监控需求,若执行成功,则返回成功代码,若执行失败则返回失败代码;
[0031]3c)安全决策模块分析安全响应模块的执行代码,若成功则将成功消息与虚拟机信息记录成文件格式,并将成功的消息发送给安全呼叫模块,若失败则将此次执行记录下来,并且返回到消息协商模块,重新进行协商;
[0032]3d)安全呼叫模块收到执行成功的消息后,请求断开连接,此次安全监控服务部署成功。
[0033]3.本发明与现有技术相比具有以下优点:
[0034]第一,由于本发明调用Iibvmi库提供的函数从管理域对虚拟机进行监控,因此对虚拟机监控器不做任何修改,不会引入新的安全漏洞,不会从监控的角度给Xen平台带来新的安全威胁,增强了系统的安全性。
[0035]第二,由于本发明主要通过虚拟机和管理域之间的协商来确定虚拟机的安全监控服务方案,这样使得所实施的方案更符合虚拟机用户需求,实现了为虚拟机用户提供个性化的安全监控服务。同时该方案通过安全决策模块的分析决策,从Xen平台的安全保障出发制定虚拟机的安全监控服务方案,更增强了系统的安全性。同时,由于安全决策模块的安全监控服务集合和安全响应模块能够提供的安全监控服务都是可扩展的,因此该系统的可扩展性非常强。
[0036]第三,由于本发明的安全监控服务方案协商包括两种:主动监控和被动监控,使得无论是服务提供者需要提供监控服务还是虚拟机要求被监控都有相应的解决方法,增强了系统的可实施性。
[0037]第四,由于本发明的安全决策模块包括日志记录模块,因此无论何时想要知道系统的监控部署情况,都是有据可查的。
【专利附图】

【附图说明】
[0038]图1为本发明安全监控系统架构图;
[0039]图2为本发明安全监控方法流程图;
[0040]图3为本发明协议消息字段图;
[0041]图4为本发明名协议消息分类图;
[0042]图5为本发明安全呼叫模块构成图;
[0043]图6为本发明安全呼叫模块消息发送与接收部分主动监控逻辑图;
[0044]图7为本发明安全呼叫模块消息发送与接收部分被动监控逻辑图;
[0045]图8为本发明安全呼叫模块消息分析部分逻辑分析参照图;
[0046]图9为本发明安全决策模块构成图;
[0047]图10为本发明安全决策模块消息发送与接收部分主动监控逻辑图;
[0048]图11为本发明安全决策模块消息发送与接收部分被动监控逻辑图;
[0049]图12为本发明安全决策模块消息分析部分逻辑分析参照图;
[0050]图13为本发明安全决策模块日志记录格式图;
[0051]图14为本发明安全响应模块构成图;
[0052]图15为本发明安全响应模块监控进程列表算法流程图;
【具体实施方式】
[0053]下面结合附图对本发明作进一步的描述。
[0054]1.总体结构设计[0055]基于Xen平台的虚拟机个性化安全监控系统主要由三个基本模块组成,分别是:安全决策模块、安全响应模块、安全呼叫模块。图1展示了三大模块在安全监控系统中的部署情况和三者之间的相互关系。安全决策模块、安全响应模块部署在管理域中,安全呼叫模块部署在虚拟机中,安全决策模块和安全呼叫模块之间存在协商关系,安全决策模块与安全响应模块之间为调用关系,而安全响应模块实现对虚拟机的监控。
[0056]从管理域对虚拟机进行安全监控与传统的在系统内部对虚拟机进行安全监控的监控方式相比,有其非常明显的优势,首先管理域拥有系统特权,从管理域可以实现对虚拟机的外部监控。而若监控部署在虚拟机内,一旦虚拟机内部的安全监控软件出现问题,那么影响的不仅仅是该虚拟机的系统安全,更因为该虚拟机与Xen平台上其他虚拟机共享一个硬件平台而造成安全危害的蔓延。因此安全响应模块必须部署在管理域内,同时由于一般从管理域对虚拟机进行安全监控时使用的是同一个安全监控软件工具,因此其对平台上所有虚拟机都使用同样的安全监控方式,这种统一的监控方式会使得监控行为缺乏多样性,而各个虚拟机的安全监控需求是各不相同的,有的要求全面监控,而有的也许需要监控系统某一部分的数据即可,因此从这点出发,本发明的安全监控系统的安全决策模块应当部署在管理域内,而安全呼叫模块应当部署在虚拟机中。安全呼叫模块负责将虚拟机用户的监控需求表达给安全监控软件。而安全决策模块则负责分析虚拟机用户的监控需求,并从系统的安全性出发与安全呼叫模块协商,最终制定虚拟机的安全监控服务方案。
[0057]本发明虚拟机中的安全呼叫模块与管理域的安全决策模块需要进行通信,那么就需要遵守一定的规则,这样二者进行通信的时候就能够准确的知道对方所表达的意思,因此本发明设计了安全呼叫模块与安全决策模块之间的协商协议,用于二者之间的通讯。
[0058]2.基于Xen平台虚拟机个性化安全监控方法的实现
[0059]虚拟机个性化安全监控方法主要包括两大步:一是虚拟机个性化安全监控服务方案的协商;二是虚拟机个性化安全监控服务方案的执行。图2展示了个性化安全监控方法的具体流程。图2中包含了虚拟机个性化安全监控服务方案的协商过程和虚拟机个性化安全监控服务方案的执行过程。
[0060]虚拟机个性化安全监控服务方案的协商:
[0061]协商方法包括两种方式:一种是主动监控协商,一种是被动监控协商。这两种协商方式中使用的协商协议是相同的,不同的是安全呼叫模块和安全决策模块二者在不同的协商中发送消息、接收消息的顺序和对消息的处理不同。在协商的过程中,通过安全呼叫模块与安全决策模块二者的不断沟通,制定出的安全监控方案既能够保护Xen平台管理者(即服务的提供者)的利益,又最大限度的满足虚拟机用户的安全监控需求。
[0062]如图2所示,在安全决策模块调用安全响应模块之前的过程都是个性化安全监控服务方案协商的流程,其具体过程如下:
[0063]( I)主动监控协商过程如下:
[0064]Ia)部署在虚拟机的安全呼叫模块向部署在管理域的安全呼叫模块发送监控请求。
[0065]Ib)安全策略模块收到请求,向安全呼叫模块发送安全监控服务的集合;
[0066]Ic)安全呼叫模块根据自己的需求制定安全监控服务方案,并将结果方案发送给安全决策模块;[0067]Id)安全决策模块其安全监控服务方案是否符合要求,若符合要求,协商停止,不符合要求,回到Ib);
[0068](2)被动监控协商过程如下:
[0069]2a)部署在管理域中的安全决策模块向部署在虚拟机中的安全呼叫模块发送安全监控服务的集合。
[0070]2b)安全呼叫模块根据自己的需求制定安全监控服务方案,并将结果方案发送给安全决策模块;
[0071]2c)安全决策模块分析其方案是否符合要求,若符合要求,协商停止,不符合要求,回到2a);
[0072]虚拟机个性化安全监控服务方案的执行:
[0073]如附图2所示,安全决策模块调用安全响应模块之后的流程为虚拟机个性化安全监控服务方案的执行过程。
[0074](I)安全决策模块调用安全响应模块,将虚拟机的安全监控服务方案发送给安全响应模块;
[0075](2)安全响应模块执行安全监控服务方案,若执行成功,则返回成功代码,若执行失败则返回失败代码;
[0076](3)安全决策模块分析安全响应模块的执行代码,若成功则将成功消息与虚拟机信息记录成文件格式,并将成功的消息发送给安全呼叫模块,若失败则将此次执行记录下来,并且返回到消息协商模块,重新进行协商;
[0077](4)安全呼叫模块收到执行成功的消息后,请求断开连接,此次安全监控服务部署成功。
[0078]在本发明的安全监控系统中,个性化安全监控服务方案的执行主要包括两大监控功能;一个是系统进程列表的监控,另一种是系统调用表的监控。作为系统运行的基础单元,进程在系统中的地位是非常重要的。而进程的安全就从根本上保证了系统的安全,因此本发明将进程列表的监控作为安全监控服务集合的安全监控准线,每个虚拟机都应当部署该监控服务。而该监控服务的算法由本发明设计,将在安全响应模块详述。而系统调用表监控则作为安全监控附加内容提供给虚拟机。虚拟机可以选择部署也可以不选择。服务的执行主要通过调用Iibvmi库函数实现从管理域对虚拟机进行安全监控。
[0079]3.协商协议的设计
[0080]由于安全呼叫模块与安全决策模块之间需要进行通信,而安全监控系统所要执行的安全监控服务方案就是二者协商的产物,因此协商协议在本安全监控系统中有着举足轻重的作用。
[0081]首先协议消息应当分为三大类:一类是表示状态的消息,即此时的消息表示申请监控或者是仅仅表示执行成功或者失败等;第二类表示含有具体信息的消息,表示在协商过程中,具有实际协商内容的消息,比如消息此时承载了安全监控服务集合等等。第三类则是表示二者协商断开连接的消息。而在每个消息中又应当含有该消息是从哪个模块发送给哪个模块的,众所周知,Xen平台上的每个虚拟机都是有ID号的,因此消息中又应当包含有ID号以区别不同的虚拟机。同时每个协议消息也应当有主体,主体包含消息的主要信息。
[0082](I)通过以上的分析,协议消息的字段包含的部分如图3所示,具体字段含义如下:
[0083]la)MOUDLE:该字段表示发送信息的是哪个模块,其实在系统交互过程中只有两个模块:安全呼叫模块(在协议消息中用a表示)和安全决策模块(在协议消息中用SD表示)。
[0084]lb) ID:该字段表示的发送消息或者接收消息的是哪个虚拟机,ID号用来区别,此时ID号取值范围为数字I?9。
[0085]lc)TYPE:该字段表示该消息是属于状态类消息还是传输具体内容的消息的类型。取值为state (表示此时消息为状态类消息)message (表示此时消息为含重要信息的消息)over (表示此时消息为协商断开连接类消息)。
[0086]Id) BODY:该字段表示消息的主体内容,其中包含的安全监控服务集合,安全监控服务集合是有具体格式的,具体将在安全决策模块具体实现中进行介绍。字段之间以分号隔开,在BODY字段的最后用END结束消息,以利于协议分析。
[0087](2)协议的消息分类如图4所示,图4中X表示数字。具体消息含义如下:
[0088]2a)如图4中A消息所示该消息由虚拟机中的安全呼叫模块发送给管理域中的安全决策模块,表示请求监控。
[0089]2b)如图4中B消息所示该消息由管理域中的安全决策模块发送给虚拟机中的安全呼叫模块,表示安全监控方案执行成功。
[0090]2c)如图4中C消息所示由虚拟机中的安全呼叫模块发送给管理域中的安全决策模块,虚拟机用户选择的安全监控服务方案。
[0091]2d)如图4中D消息所示由管理域中的安全决策模块发送给虚拟机中的安全呼叫模块,表示安全监控系统可以提供的安全监控服务的集合。
[0092]2e)如图4中E消息所示由虚拟机中的安全呼叫模块发送给管理域中的安全决策模块,表示虚拟机请求断开连接。
[0093]2f)如图4中F消息所示由管理域中的安全决策模块发送给虚拟机中的安全呼叫模块,表示管理域同意断开连接。
[0094]4.安全呼叫模块具体实现
[0095]安全呼叫模块部署在虚拟机中,它既能够与管理域中的安全决策模块进行协商,它还应当为虚拟机用户提供接口,使虚拟机用户可以选择自己想要的服务,然后自动产生消息。由此可见,安全呼叫模块应当具有分析协议消息,产生协议消息,为用户提供选择接口,同时还可以接受和发送消息的功能。如图5所示安全呼叫模块主要包括四个部分:一是消息发送与接收部分,该部分可以接受安全决策模块发送来的消息,并且可以发送给安全决策模块消息。二是消息分析部分,该部分可以分析接收到的消息,同时根据相应逻辑调用消息生成部分或者转到用户接口部分,三是消息生成部分,该部分产生相应的消息,并将产生的消息交付到消息发送与接收部分,发送出去。四是用户接口部分,该部分主要是提供给用户选择安全监控选择的接口。
[0096](I)消息发送与接收部分的具体实现
[0097]该部分主要是完成于安全决策模块的交互,即消息的发送与接收。这主要采用TCP流套接字完成,虚拟机中的安全呼叫模块作为客户端,管理域中的安全响应模块作为服务端。这样能够保证通信的顺序性,协商的正确性。消息发送与接收部分的实现根据安全监控系统的功能有两种协商方式一种是主动监控协商,一种是被动监控协商。其两种协商方式内部逻辑如图6和图7所示。其中图6表示主动监控协商消息发送与接收部分的逻辑,图7表示被动监控协商消息发送与接收部分的逻辑。
[0098]( 2)消息分析部分的具体实现
[0099]该部分主要对接收的消息进行分析,该部分对消息的每个字段值进行分析,出现不同的情况则调用消息产生部分来产生相应的正确的消息。分析与产生消息的逻辑主要按照图8进行,图中大写字母表示协议消息的编号,协议消息编号具体对应内容参照图4。
[0100]如图8所示,安全呼叫模块可以接收的协议消息为D、B、F (协议编号参照图5),当消息分析部分分析发现接收到的消息为D (安全决策模块发送给安全呼叫模块包含安全监控服务集合的消息)时,消息分析部分就提供用户接口给虚拟机用户,虚拟机用户选择安全监控服务,此时消息生成部分就生成消息C(安全呼叫模块发送给安全监控模块包含用户选择监控服务方案的消息),发送给安全决策模块。当消息分析部分分析发现接收到的消息为B (安全决策模块发送给安全呼叫模块通知部署成功的消息)时,消息分析部分得知服务部署完毕,则生成消息E (安全呼叫模块发送给安全决策模块请求断开连接的消息),发送给安全决策模块。当消息分析部分分析发现接收到的消息为F (安全决策模块发送给安全呼叫模块同意断开连接的消息)时,得知管理域已经做好断开连接准备,那么安全呼叫模块就断开和安全决策模块的连接。
[0101]用户接口部分和消息生成部分实现比较简单,这里不再赘述。
[0102]5.安全决策模块的具体实现
[0103]安全决策模块与安全呼叫模块协商虚拟机的安全监控服务方案,分析用户选择是否合理,同时提供日志记录功能。安全决策模块主要包含下面四个部分:消息分析,消息生成,日志记录,消息发送与接收,图9为该模块构成图。消息发送与接收部分实现与安全呼叫模块的消息交互过程。而消息分析部分则实现对接收到的消息进行分析,同时调用消息生成部分,产生相应的消息。此时消息分析部分不仅仅包含对收到的消息进行分析,也包含了对虚拟机安全监控服务方案的分析决策,日志记录部分则主要完成记录何时哪个虚拟机选择了方案,该方案的执行成功与否的信息。
[0104](I)安全监控服务集合
[0105]在介绍安全决策模块的构成之前,首先介绍安全监控服务集合的内容。安全监控服务集合指的是安全监控系统提供的安全监控服务的集合。其在协商协议消息中是有固定的格式的。其集合主要包括两大部分:安全监控准线和安全监控附加内容。
[0106]Ia)安全监控准线
[0107]它的存在是为了保护Xen平台安全的安全监控服务的集合。安全监控准线是每个虚拟机都必须执行的安全监控服务,因为只有执行了这些安全监控服务,服务的提供者才能保证自己的平台是安全的。
[0108]Ib)安全监控附加内容
[0109]它是虚拟机可以自由选择的一些安全监控服务内容。服务提供者不会强制要求虚拟机用户执行该内容。
[0110]而由安全决策模块向安全呼叫模块发送安全监控服务集合一定指的是安全监控系统能够提供的所有的安全监控服务。而安全呼叫模块发送给安全响应模块的安全监控服务集合则是虚拟机选择的结果方案。[0111]lc)本发明安全监控系统提供的安全监控服务集合
[0112]本发明能够提供的安全监控服务集合极其格式为:安全监控准线:1.监控进程列表;安全监控附加内容:2.监控系统调用表;
[0113]由上述可以看出,监控服务内容必须标号,必须是按序标号的,因为安全呼叫模块的结果方案中仅仅包含安全监控服务的序号。
[0114](2)消息发送与接收部分
[0115]安全决策模块的消息发送与接收部分是与安全呼叫模块的消息发送与接收部分是对应的,它也分为两大部分,一部分是主动监控协商,一部分是被动监控协商。主动监控协商是虚拟机主动向管理域发送监控请求,而被动监控协商则是管理域向虚拟机发送安全监控服务集合开始协商的。消息发送与接收部分的主动监控协商逻辑如图10所示,被动监控协商逻辑如图11所示。
[0116](3)消息分析部分
[0117]安全决策模块的消息分析部分较为复杂,因为它不仅仅要能够对接收到的消息进行分析,以作出合适的响应。也要能够对虚拟机用户返回的安全监控服务结果方案进行分析,以确定是要结束协商还是要继续进行协商。因此相当于它包括两大部分,一部分是消息的分析,另一部分是对虚拟机安全监控方案的分析。
[0118]3a)消息的分析,消息分析逻辑图如图12所示,其中字母编号表示消息的编号,参照图4消息分类。
[0119]3b)虚拟机安全监控方案的分析,当安全决策模块收到用户发送过来包含了选择信息的消息的时候,首先消息分析模块将用户的选择过滤出来。然后消息分析模块分析集合中的选择,当发现集合并没有包括安全监控准线中的内容或者是没有全部包含的时候,消息分析模块就调用消息生成部分,重新协商。当发现集合包含了安全准线全部内容的时候,则结束协商,调用安全响应模块执行安全监控服务方案。
[0120]图12表示安全决策模块可以接收的协议消息为A、C、E(协议消息编号参照图4),当消息分析部分接收到协议消息A (安全呼叫模块发送给安全决策模块请求监控的消息)的时候,此时得知虚拟机请求监控,则调用消息生成部分生成消息D (安全决策模块发送给安全呼叫模块包含了安全监控服务集合的消息),并发送给安全呼叫模块。当消息分析部分接收到消息C (安全呼叫模块发送给安全决策模块包含了用户选择方案的消息)的时候,此时开始分析C中包含的安全服务监控方案,发现该方案全部包含了安全监控准线的时候,就调用安全响应模块执行该服务,并生成消息B(安全决策模块发送给安全呼叫模块包含了执行结果的消息)发送给安全呼叫模块。若发现该方案并没有包含或者没有全部包含安全监控准线的时候,就调用消息生成部分生成消息D(安全决策模块发送给安全呼叫模块包括了安全监控服务集合的消息)发送给安全呼叫模块。当消息分析部分接收到消息E (安全呼叫模块发送给安全决策模块请求断开连接的消息)的时候,说明此时虚拟机请求断开连接了,则调用消息生成部分生成消息F(安全决策模块发送给安全呼叫模块同意断开连接的消息),发送给安全呼叫模块,并断开连接。
[0121](4)日志记录部分具体实现
[0122]日志记录部分主要是对执行后的信息进行记录,以便服务提供者随时查看提供的服务类型等等信息。这里只要虚拟机协商完毕并且执行,无论成功与否都会对相关信息进行记录。这里记录的信息主要包括:虚拟机ID号,选择的服务有哪些,执行时间,执行结果。将该类信息写入文件中,已被不时之需。记录的格式如图13所示。图中X表示O?9之间的数字。
[0123]6.安全响应模块的具体实现
[0124]安全响应模块的功能是执行虚拟机选择的安全策略,安全响应模块主要包括三大部分:一是执行集合生成部分;二是安全监控服务实现部分,三是用户接口部分。如图14所
/Jn ο
[0125](I)执行集合生成部分。
[0126]实现生成执行集合部分主要是将安全决策模块传递下来的虚拟机的安全监控服务方案按照其内容放在不同的集合中,以实现根据其要求对系统进行监控的过程。这里主要使用数组对其要求的监控内容进行存储。即生成执行集合。
[0127](2)实现安全监控服务部分
[0128]根据安全决策模块对安全监控服务集合的设计,安全响应模块应当能够提供的服务一是监控进程列表二是监控系统调用表。二者的算法设计如下:
[0129]2a)监控进程列表
[0130]首先对系统在安全的状况下对系统进行监控,将此时干净的进程列表记录入文件。然后对系统进行监控,当发现与之前文件的进程列表中的进程名不同的时候,就对此进程进行分析,如果安全的话就接着扫描,扫描完成后都安全的话,将此时的进程列表替换掉之前的进程列表文件。整个过程如图15所示。这个算法第一步是监控虚拟机的进程列表,它的逻辑流程如下:
[0131]a调用Iibvmi库函数vmi_init ()初始化vmi句柄
[0132]b调用Iibvmi库函数vmi_get_ostype ()判断虚拟机操作系统类型。
[0133]c调用Iibvmi库函数vmi_get_offset ()获得进程列表偏移地址。
[0134]d调用Iibvmi库函数vmi_read_addr_va ()获得进程列表初始地址
[0135]e调用Iibvmi库函数vmi_read_str_va ()利用偏移地址对进程列表遍历
[0136]f获得进程列表相关信息
[0137]g记录相关信息到process-list文件中
[0138]h调用Iibvmi库函数vmi_destroy ()销毁vmi句柄,释放内存第二步是比较相关文件,逻辑流程如下:
[0139]a比较文件process-list file和文件process-listlfile,出现不一致时提供用户接口,由人工分析该进程是否安全,若安全,则放行,不安全则反馈该信息给安全决策模块。
[0140]b如果分析结束后process-listlfile所有进程都安全,则删除文件process-list file,并将文件 process-listlfile 更名为 process-list file。
[0141]c若分析结束后不安全,则发出警报,并反馈执行信息。
[0142]2b)通过程序内部运行找到系统调用表,对调用表进行扫描,将整个系统调用表扫描出来,以供分析。其具体算法如下:
[0143]a调用Iibvmi库函数vmi_init ()初始化vmi句柄
[0144]b调用Iibvmi库函数vmi_get_ostype ()判断系统类型[0145]c调用Iibvmi库函数vmi—translate—ksym2v ()获得系统调用表首地址
[0146]d调用Iibvmi库函数vmi—read—addr—va ()获得系统调用表偏移地址
[0147]e遍历系统调用表并打印
[0148]f调用Iibvmi库函数vmi—destroy ()销毁vmi,释放内存。
【权利要求】
1.一种基于Xen的虚拟机个性化安全监控系统,其特征在于:安全监控系统由安全决策模块、安全响应模块和安全呼叫模块组成,所述安全决策模块部署在管理域中,用于实现与安全呼叫模块协商虚拟机的安全监控服务方案,调用安全响应模块执行虚拟机安全监控服务方案,记录并反馈执行结果;所述安全响应模块部署在管理域中,用于执行虚拟机安全监控服务方案并返回执行结果;所述安全呼叫模块部署在虚拟机用户空间中,用于实现与安全决策模块协商虚拟机的安全监控服务方案; 所述安全决策模块由消息分析、消息生成、日志记录、消息发送与接收部分构成,消息发送与接收部分实现与安全呼叫模块的消息交互,消息分析部分实现对接收消息进行分析,同时调用消息生成部分,产生相应的消息及对虚拟机安全监控服务方案的分析决策,日志记录部分记录虚拟机选择的方案及该方案的执行成功与否的信息; 所述安全响应模块调用Iibvmi库的相关函数完成安全监控服务,由执行集合生成部分、安全监控服务实现部分和用户接口部分构成,执行集合生成部分将安全决策模块传递的虚拟机的安全监控服务方案按照内容抽取放到数组中,根据要求对系统进行监控;安全监控服务实现部分根据安全决策模块对安全监控服务集合的设计,以监控进程列表和监控系统调用表提供服务,用户接口部分进行人工干预判断,若发现安全威胁则发出警报; 所述安全呼叫模块与安全决策模块协商虚拟机用户的安全监控服务方案,表达虚拟机用户的监控需求,安全呼叫模块由消息发送与接收部分,消息分析部分、消息生成部分和用户接口部分构成,消息发送与接收部分负责接收安全呼叫模块发送给安全决策模块的消息和发送消息生成部分生成的消息,消息分析部分分析接收到的消息,同时根据相应逻辑调用消息生成部分或者转到用户接口部分消息生成部分产生相应的消息,将产生的消息交付到消息发送与接收部分发送出去,用户接口部分主要是提供给用户选择安全监控选择的接口。
2.根据权利要求1所述的基于Xen的虚拟机个性化安全监控系统,其特征在于:所述安全决策模块、安全响应模块和安全呼叫模块不对虚拟机监控器做修改,在保证Xen平台安全的基础上为虚拟机提供个性化安全监控服务。
3.根据权利要求1所述的基于Xen的虚拟机个性化安全监控系统,其特征在于:包括安全监控准线和安全监控附加内容,所述安全监控准线为监控进程列表,为每个虚拟机提供必须执行的安全监控服务内容;安全监控附加内容是虚拟机自由选择的安全监控服务内容,安全监控附加内容为监控系统调用表。
4.根据权利要求1所述的基于Xen的虚拟机个性化安全监控系统,其特征在于:所述安全决策模块的消息发送与接收部分和安全呼叫模块的消息发送与接收部分以主动监控协商和被动监控协商的方式进行协商,主动监控协商是虚拟机主动向管理域发送监控请求,而被动监控协商则是管理域向虚拟机发送安全监控服务集合开始协商。
5.一种应用权利要求1所述系统实现基于Xen的虚拟机个性化安全监控方法,其特征包括虚拟机个性化安全监控服务方案的协商方法和虚拟机个性化安全监控服务方案的执行方法; 所述安全监控服务方案的协商包括两种协商方式,一种是主动监控协商,虚拟机用户从自身系统安全的考虑,主动向Xen平台的管理域发出安全监控请求,以保护虚拟机操作系统;另一种是被动监控协商,这种协商方式主要从Xen平台的管理者的角度考虑,出于考虑Xen平台的安全需要,需要在该平台上部署安全监控服务,此时虚拟机是被动的要求被监控的; 所述虚拟机个性化安全监控服务方案的执行,则解决从管理域对虚拟机按照虚拟机个性化安全监控服务的协商制定的安全监控服务方案对虚拟机进行监控的问题,安全监控服务方案的执行调用Iibvmi库的函数来提供监控功能,虚拟机安全监控服务的执行主要包括监控进程列表功能和监控系统调用表功能; 所述虚拟机个性化安全监控服务方案的协商有主动监控协商和被动监控协商两种方法: (1)主动监控协商过程如下: Ia)部署在虚拟机的安全呼叫模块向部署在管理域的安全呼叫模块发送监控请求; Ib)安全策略模块收到请求,向安全呼叫模块发送安全监控服务的集合; Ic)安全呼叫模块根据自己的需求制定安全监控服务方案,并将结果方案发送给安全决策模块; Id)安全决策模块判断安全监控服务方案是否符合要求,若符合要求,协商停止,不符合要求,回到Ib); (2)被动监控协商过程如下: 2a)部署在管理域中的安全决策模块向部署在虚拟机中的安全呼叫模块发送安全监控服务的集合; 2b)安全呼叫模块根据自己的需求制定安全监控服务方案,并将结果方案发送给安全决策模块; 2c)安全决策模块分析其方案是否符合要求,若符合要求,协商停止,不符合要求,回到2a); 所述虚拟机个性化安全监控服务方案的执行过程如下: a)安全决策模块调用安全响应模块,将虚拟机的安全监控服务方案发送给安全响应模块; b)安全响应模块执行安全监控服务方案,若执行成功,则返回成功代码,若执行失败则返回失败代码; c)安全决策模块分析安全响应模块的执行代码,若成功则将成功消息与虚拟机信息记录成文件格式,并将成功的消息发送给安全呼叫模块,若失败则将此次执行记录下来,并且返回到消息协商模块,重新进行协商; d)安全呼叫模块收到执行成功的消息后,请求断开连接,此次安全监控服务部署成功。
【文档编号】G06F21/53GK103500304SQ201310477288
【公开日】2014年1月8日 申请日期:2013年10月13日 优先权日:2013年10月13日
【发明者】侯琬婷, 杨超, 马建峰, 黄为, 张驰, 王照羽 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1