虚拟化条件下的入侵检测系统

2016-01-09 12:12程铭瑾
电脑知识与技术 2015年30期
关键词:云计算

程铭瑾

摘要:云计算使得计算机领域发生了深刻的变革,它虽然提高了使用效率,但是在用户信息资产安全与隐私保护方面却存在的一定的问题。因此安全成为云计算领域急需突破的重要问题。现阶段云计算安全方向的研究主要分为内部监控和外部监控两个方面。该文采用外部监控中的入侵检测对虚拟机进行保护。传统的入侵检测系统作为一种被动的监控,而且部署都面临两难的窘境,部署在虚拟机内部则容易被攻破,部署在网络中则存在语义鸿沟无法精确捕获。在虚拟化平台下,所有的虚拟机均是通过虚拟机监控器发送请求完成相应操作命令。因此该文将入侵检测系统部署在虚拟机监控器内部,同时加入学习模块加缩短入侵检测的响应时间,达到对虚拟机保护的目的。

关键词:云计算;入侵检测系统;外部监控

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)30-0010-03

虚拟化技术(virtualization) 改变了底层硬件与系统软件紧耦合的方式,能够更加灵活地配置与管理计算系统,因此在企业中得到了广泛的应用。随着互联网经济时代的到来,大数据、云计算成为当前最常接触的内容,通过虚拟化技术来实现各种资源的合理配置与使用成为各个企业或者是用户所求之处。因而,虚拟化技术在未来企业信息平台的构建之中具有广阔的应用价值。在当前虚拟化技术根据虚拟层次的差异,被分为指令级虚拟化、硬件抽象级虚拟化、操作系统级虚拟化、运行库级虚拟化和编程语言级虚拟化。在各个虚拟环境下运行的操作系统及应用程序被称之为虚拟机,而能够为数量众多的虚拟机运转使用的虚拟化软件称之为虚拟机管理器。

绝大多数云平台均是建立在虚拟化环境上,而且许多商家已经提供云服务,因此如何解决虚拟化层中的安全问题变得尤为重要。下面我们分析造成这个安全问题的来源,虚拟化平台的安全问题可能来自于四个方面:一是同一平台下相互之间具有竞争的关系的企业为获取对方信息做出的信息窃取,二是来自网络的入侵攻击,三是虚拟层管理员为获取用户信息做出的信息窃取,最后是本身系统内层泄漏导致用户数据泄密。本文只探讨如何解决前面两种安全问题,因为虚拟层管理员对用户信息做出的篡改这可根据其企业的制度来处理,平台的好坏由市场来决定,用户对其自行选择。

从目前来看,在虚拟机架构基础上增强安全工具的安全性研究,例如系统日志、入侵检测、完整性监控、恶意代码检测与分析、监控通用性和安全监控架构等已经成为时下研究的重点。

1 基于虚拟化安全监控条件下的分类

由于虚拟机管理器具有更好的隔离性等优势,因此近几年来基于虚拟机的安全监控都是利用虚拟机管理器来保护特定的安全工具并进行隔离。因此基于虚拟化安全监控的相关研究工作从安全监控实现技术的角度来看可以分为两大类:

1)内部监控

内部监控主要是在虚拟机使用过程中通过内核模块的加载来拦截系统主机所受到的外部入侵行为,并通过虚拟机管理器对内核模块的安全进行保护。

在该监控类型下,所有的安全防护软件或工具都将被统一部署在被虚拟隔离出来的空间。而采取此种架构形式则能够实现入侵检测系统防护的虚拟机正常运转的操作系统中任意位置植入钩子函数,继而发挥出相应的拦截作用。而其拦截的对象在当前可以包括操作进程的创建、内部重要文件的读写与修改等。此外,由于目标虚拟机的使用者所使用的操作系统可信度并不是很高,因而植入的钩子函数同样需要入侵检测系统的保护,在虚拟机运行该函数时,将相应的信息反馈到入侵检测系统,开辟出相应的存储空间来为其运行提供必要空间支持,并且加以保护,防止该函数被恶意篡改。钩子函数在被启动运行之后,在探测到目标虚拟主机之中不良事件发生时,将会自动嵌入到虚拟主机管理器之中,利用跳转模块来将该不良事件转移至安全的空间后进行驱动,之后利用操作系统之中所加载的安全防护工具或软件对其进行评估与分析,针对入侵行为所产生的不良事件做出动态反应。

采用此架构能够辅助目标虚拟主机在运行过程中实现不良事件的拦截目的,在获取系统相应的操作指令后不需要系统管理员再次对其操作指令进行重新编写即可以直接运行,降低了安全防护性能方面的不必要费用支出。尽管此架构具有较高的应用价值,但是由于该架构直接植入在了目标虚拟主机所使用的操作系统内核模块之中,同时内存保护以及跳转两个模块是独立运行,对于目标虚拟主机而言其透明性以及通用性在当前仍然处于较低水平,影响其推广使用。

2)外部监控

外部监控是在虚拟机管理器中对虚拟机中的事件进行拦截,以此为基础在虚拟机外部由位于安全域的安全工具按照某种策略对其进行检测。

和内部监控不同,外部监控具有一定的优势。其监控点部署在虚拟机管理器中,是目标虚拟机和安全域中的安全工具进行通信的桥梁。通过监控点拦截目标虚拟机中发生的事件,并重新构建出高级语义然后传递给安全工具。安全工具则根据安全策略所产生的响应,通过监控点来控制目标虚拟机。虚拟机管理器将目标虚拟机与安全工具进行隔离,以此增强安全工具的安全性。由于虚拟机管理器处于目标虚拟机的底层,因此监控点可以观测到目标虚拟机中CPU信息、内存页面等相关信息。一般来说,外部监控一般包含事件截获和语义重构两种基本功能。事件截获是指拦截虚拟机中发生的某些事件,从而触发安全工具对其进行检测。语义重构则是将虚拟机管理器获取的低级语义重新构建出能够被监控工具“理解”的高级语义(操作系统级语义)。语义重构的过程与客户操作系统的类型和版本有着密切的关系,通过对某些寄存器或者内存地址可以解析出内核关键的数据结构。

2 基于入侵检测的虚拟化保护

安全监控是一种保证计算系统能够正常运行的安全功能。本文将主要从入侵检测对VM的资源进行保护。

1)入侵检测和防御系统的定义及特点

入侵检测系统(intrusion detection system,IDS)是一种通过检测系统访问者访问意图来辨别其是否会对整个操作系统造成破坏及不良影响,亦或是以非正当手段来查阅、下载系统数据库之中存储的相关信息,从而及时发现并阻止恶意入侵行为,起到防护关键和隐私信息的作用的一种系统。根据入侵检测系统应用载体的不同,可以分为基于主机的入侵检测系统以及基于互联网的入侵检测系统两种类型。前者主要是对电脑系统内部的日志、系统运行状态进行检测、分析,继而搜集系统是否存在被入侵风险的数据。而后者则是应用在网络链接、网络协议、网页访问等检测与防护领域,从源头上阻断入侵行为。

有鉴于当前所采用的入侵检测系统主要是基于入侵检测,继而针对该入侵行为做出动态响应,尽管其能够取得一定程度的防御效果,但是受限于入侵检测所采用的架构却存在者眼中的弊端与漏洞,不仅给系统管理人员带来较大的工作困难,同时也是的整个防护系统防护性能大幅降低,为非法入侵提供了可乘之机。而此种弊端与漏洞则主要体现在以下两方面:其一,如果将入侵检测系统部署到应用的系统主机之上,虽然能够实时动态查询系统主体的运行状态等数据信息,但是在网络链接与访问上则无法发挥出系统的防护作用,因而容易受到黑客的恶意攻击,造成整个系统瘫痪。其二,如果是将入侵检测系统部署在网络上,系统主机可以通过该系统更好地抵御外界非法入侵行为,从而保障整个系统主机的正常运转,但是在内部运行状态监测上则无法兼顾,使得内部入侵行为逃脱入侵检测系统的监测。近些年来,利用虚拟化技术来提高入侵检测系统可靠性及应用范围的架构思路日趋成熟。虚拟机自省通过利用虚拟管理器来将其与整个监控体系相分离,使用单独运行的方式来对整个系统主机进行监控,检测系统主机以及网络节点中各个分机数据信息,继而起到入侵检测的目的。

2)传统的入侵检测

由于传统上的入侵检测是一种被动的检测,因此本文拟采取主动防御的策略保护客户机。VM的资源调度均是由VMM管理,因此只须将入侵检测系统部署在VMM中,它能监视VM的状态的同时,也能对网络入侵进行实时监控。

传统的基于IDS的虚拟机监视器模块如下图1所示,由于IDS与虚拟机监视器彼此分离,相对而言IDS设计变得简单,但是也带来其他问题,例如,攻击可能绕过IDS直达目标VM对其进行,虽然可以利用无法旁路的内存锁,但是使得IDS开销变得非常大。

图1 传统的入侵检测系统

3 设计

由于云平台具有按需分配的特点,因此潜在的威胁来自于同一主机下的VM,同时也可以来自于外部网络。其中本文探讨的也是最常见的外部访问威胁,因此我们将讨论各部件组件的功能和整个IDS架构的设计。

1)虚拟机监视器

虚拟器监视器将硬件虚拟化,并负责各VM资源的调度包括内存映射,CPU资源管理,访问控制等。与传统的VMM不同的是,本文将IDS与VMM作为一个整体,避免了操作序列绕过IDS直达目标VM或者进行违规访问。

虚拟机监视器分两部分,一部分为入侵检测模块,另外一部分访问控制模块。

如图2所示,IDS分三个主要模块:策略引擎,学习模块和记录模块(黑名单和特征序列)。策略引擎是入侵检测中最重要的部分,这个组件负责解释系统状态和事件,其调用相应的搜索引擎查看系统是否受到损害,并做出适当的响应,如暂停虚拟机事件处理和重启虚拟机等,并通知VMM和记录相关信息。学习模块是IDS中一项优化负责对已经检测出来的入侵特征序列做训练分析,并预测可能的入侵操作,最后一个模块是记录模块,其负责保存IDS处理过程中的信息,如黑名单和特征序列。

访问控制模块作为VMM的中最核心的部分,其负责管理各个虚拟机的资源分配以及虚拟机和实体机之间的资源映射,并为管理虚拟机的部门提供相对应的接口,使其能够对所有资源进行管理。

2) 主动防御的入侵检测系统原理

如图2所示将IDS加载到虚拟机监视器内部,同时在原来IDS的基础上采用一种学习模块(Learning Model)根据检测到的信息将VM分成友好的虚拟机(Friendly Virtual Machine,缩写为FVM)与不友好的虚拟机(Unfriendly Virtual Machine,缩写为UVM),将UVM存入黑名单记录入侵次数,同时将UVM的攻击方式(Attack Method)和特征序列(Feature Sequence)作为训练样本保存在IDS训练集中。

当VMM接收到服务请求时,VMM首先将服务请求传递给IDS模块。由于特征序列中并没有样本,因此初始化时学习模块并不起作用。IDS模块立即调用相应的资源进行操作,并使用搜索引擎模块监视系统状态是否发生改变。如果系统状态发生改变,立即中断其对资源访问;并向VMM外部接口通信;并将该端口设置为不友好的虚拟机;记录当前操作信息;利用学习模块对分类器进行学习;当某一UVM的记录达到设定阀值将其记录到黑名单中;并向该虚拟机发出警告,否则进行正常访问。

由于入侵检测会导致操作的时延,鉴于实时性的考虑,当训练集达到一定阀值时,入侵检测首先通过扫描黑名单进行匹配,如若匹配不成功则采用学习模块对其预测,如果预测结果为FVM则响应其处理请求,否则再次进行入侵检测。如若黑名单匹配成功则对其惩罚,对其进行更为严格的入侵检测同时降低处理优先级将其任务延时处理。因此通过学习模块对IDS起到加速的作用。

图2 改进的入侵检测监控保护系统

3)入侵检测系统的缺点

由于入侵检测系统容易被探测得到,因此入侵检测系统容易暴露,完全隐藏的VMM是不可能的。与无虚拟化的I/O操作,设备访问和指令虚拟化访问时间存在差别,因此通过访问时间即可探测到IDS的存在。尽管上面的改进的入侵检测系统采用了训练模块加快IDS的响应时间。但是如果IDS一旦被探测到,恶意篡改程序会改变其特征(例如插入空操作和无效操作)因此不可能检测到其意图更不可能提取其行为特征,从而逃避IDS的检测。而且即使没有逃脱IDS的检测其产生的时延均让人无法接受。

作为入侵检测系统最大的缺点就是耗时,本文虽然采用了学习模块,但是学习模块依赖于的特征序列,因此特征序列的多样性和训练的好坏直接决定了入侵检测系统实时性的好坏。因此将来的研究方向是采用更好的策略引擎加快自身效率。

4 总结

本文针对云平台虚拟化条件下的外部访问威胁,在传统的VMM基础上引入学习的机制,将IDS与VMM作为一个整体,避免了操作序列绕过IDS直达目标VM或者进行违规访问,从而提高了系统的安全性。

参考文献:

[1] 项国富,金海,邹德清,等.基于虚拟化的安全监控[J].软件学报, 2012(8).

[2] 肖如良,姜军,倪友聪,等. 基于虚拟机自省的运行时内存泄漏检测模型[J]. 通信学报, 2013(8).

[3] 沈余锋,余小军. 云计算环境下虚拟化安全探讨[J]. 电力信息与通信技术, 2013(11).

[4] 肖如良,姜军,倪友聪,等. 基于虚拟机自省的运行时内存泄漏检测模型[J].通信学报, 2013(8).

猜你喜欢
云计算
谈云计算与信息资源共享管理
基于MapReduce的故障诊断方法
实验云:理论教学与实验教学深度融合的助推器