虚拟化和入侵检测在网络安全中的应用
张存 发表于:12年11月26日 16:00 [转载] DOIT.com.cn
1.引言
随着网络的飞速发展,网络已经成为计算机应用中不可或缺的一部分。但是,网络遭受攻击的风险和机会也相应的快速增多。如何建立合理的网络安全体系已经成为网络领域的热点问题。目前,要让开发人员保证开发软件不存在任何的漏洞是不可能的,同时要求网络安全人员实时检测网络海量信息流并发现攻击信息并作出有效地措施也有一定难度。本文为了解决以上问题,针对性的提出了使用虚拟化技术进行软件的隔离,论述了使用隔离技术的利弊,并针对网络安全提出了入侵检测的解决方案,论述了几种入侵检测体系的利弊,阐述了一种针对大流量网络入侵检测的方案。最后结合虚拟化技术,阐述了入侵检测基于虚拟化终端部署的方案。
2.虚拟化技术
2.1虚拟化技术论述
一个程序存在漏洞就会影响其他程序乃至整个服务器的运行,因此在不能保证程序本身安全性的时候,我们就需要减弱或者切断程序和其他程序乃至服务器的直接联系,将程序作为独立的个体。这样即使程序崩溃也不会影响其余程序的运行。而MiU给出的一份关于如今的操作系统和应用软件的研究报告显示:软件之中不可能没有漏洞。
因此我们将应用很广的虚拟机技术引入到服务器的安全维护中。虚拟机为应用程序提供了一个与操作系统相同但是又独立的运行环境。
虚拟化保护的优点如下:
1.通过为每个程序虚拟出其运行环境。直接消除了程序间的相互影响。所有的操作都仅仅局限于每个虚拟化环境中,因此即使某个程序崩溃最多也只是导致这个虚拟环境崩溃,而不会对其他的程序产生影响。
2.由于程序的运行环境是虚拟出来的,因此可以针对某个程序虚拟出其适应的运行环境,并且分配足够其运行的系统资源,从而避免了程序间的不兼容性。
3.由于程序所能使用的最大资源是由其虚拟环境所决定的,因此避免了某个程序抢占资源而导致其他程序无法运行的情况,很好的保证了程序的稳定性和并行性。
4.由于程序都是运行在虚拟环境中,因此具备了很好的可移植性。只要其余平台有其相同的虚拟环境都可以稳定的移植。
5.虚拟化的环境可以记录下每个时刻这个环境的运行信息,通过这些运行信息可以很方便的回退虚拟环境到某一个曾经的时刻,由于虚拟环境的独立性,这个回退不会对其他的程序造成影响。
但是虚拟化技术由于要为每个程序配置虚拟环境。因此从客观上增加了系统资源的开销。
2.2应用部署
在具体应用中我们可以使用VMware,Sandboxie和Returnil Virtual System搭建一个多层虚拟环境。
VMware可以使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。
Returnil Virtual System来自欧洲著名的安全公司Retumil SIA,它是一个基于虚拟机原理的影子系统软件,可以瞬间把您的计算机用隔离罩保护起来。同时用一个内存中的虚假替身“影子”系统来接管真实的操作系统,任何操作都被限制在虚拟系统中使用。无法感染你真实的操作系统。
Sandboxie可以为运行程序构建沙盘环境,所以程序的操作都被局限于Sandboxie为这个程序所构建的虚拟环境中。不会对其他的软件造成影响。
于是我们对于单个的服务器,首先使用VMware构建使用不同操作系统的虚拟计算机。然后对于每个VM环境使用Returnil Virtual System构建一个影子系统。之后在这个影子系统上使用Sandboxie运行我们所需要启动的服务或者程序。
程序运行在沙箱中。相互间不会互相影响,如果需要和操作系统进行交互或者需要执行操作系统级别的命令,则也只能访问影子系统。而虚拟计算机则提供了不同程序所需要的不同操作系统环境。这样无论如何。
真实的操作系统都不会受到影响。
本文选取了aDache在正常访问时间时候的数据比较。在牺牲了有限的计算机资源的同时获得了较高的安全系数。本文认为还是有价值的。
3.入侵检测
3.1入侵检测概述
入侵检测(Intrusi0n Detection),顾名思义,就是对入侵行为的发觉。他通过对计算机网络或计算机系统中若干关键点收集信息并对其进行分析。从中发现网络或系统中是否有违反安全策略的行为和被攻击的迹象。
入侵检测可以作为防火墙后的第二道防护措施,通过对网络状况的实时监听,从而能够与对于内部攻击,误操作,外部攻击等进行防护,从而大大提高网络的安全性。具有监视分析用户和系统的行为、审计系统配置和漏洞、评估敏感系统和数据的完整性、识别攻击行为、对异常行为进行统计、自动地收集和系统相关的补丁、进行审计跟踪识别违反安全法规的行为、使用诱骗服务器记录黑客行为等功能,在不影响网络性能的前提下,使系统管理员可以较有效地监视、审计、评估自己的系统。
入侵检测的实现方法有如下几种:
1.基于日志和审计数据的入侵检测
针对单一的主机,可以使用对于主机的审计数据和系统的运行日志来发现攻击的发生。检测系统一般建立于待检测的主机上,这种检测方式必须保证审计数据和运行日志是安全并且可靠的。并且更加攻击方式和审计数据和日志的组织方式定义规则。
由于日志是系统运行时自动产生以纪录系统运行状态的文档,因此系统管理员往往可以通过分析日志得出系统发生了什么。然而在系统的高速运行下,日志的纪录数目属于高速增长中,海量的日志纪录使得管理员无法有效的分析日志,而标准的日志功能并不能自动检查过滤日志以提供给管理员需要的信息。而基于审计数据和日志的入侵检测系统则可以自动分析即时增长的数据并提供给管理员分析的结果,通过系统自动处理或者管理员手动处理以阻止非法攻击。
这种方式的弱点也是显而易见的。
1)攻击者可以试图获取到更高的权限来控制改变审计数据和运行日志
2)不能通过检测审计数据和运行日志得出网络欺骗攻击。
因此我们认为基于日志的入侵检测不是一个安全系数高的自动防御方案,其适用于一般的服务器安全防护以及作为服务器管理员分析服务器运行情况的补充。
2.基于网络数据流监听的入侵检测
这种人侵检测是指分布于网络线路上,被动的无声息的接受其所需要的报文,对所收集来的报文,入侵检测系统根据提取的特征值和对应的规则库,根据智能匹配方法判断报文是否反映了某种入侵行为,然后决定是否进行报警或者适当的防卫或者反击。
由于入侵检测系统需要分布在网络环境中进行监听,因此可以有两种方式接入到被保护的网络中。
1)将入侵检测系统分布配置在网络中的每一个单机节点中,通过检测每个单机进出的网络数据流。并进行汇总判断以检测整个网络上的异常现象。
2)以分布式检测网络的形式将各入侵检测系统分布式布设在受保护网络的各被保护网段的网关处,通过对网关数据报的分析得出整个网络的状况。用于检测整个单一网络上的异常现象。
通过对网络流数据进行监听以检测攻击,这种方式的核心就在于数据包的截获和分析。入侵检测系统通过截取网络流中的数据包,得到网络中系统的运行信息,用户信息,和操作信息等等。然后根据设定好的规则进行分析。但是基于网络数据流监听的入侵检测都面临着一个问题。由于数据包需要经过入侵检测系统的过滤,因此入侵检测系统的效率直接对网络产生影响 特别是随着网络技术的发展,现在网络中的通行流量已经越来越大。入侵检测系统必须有效率的处理1000M 甚至更大的数据流并且不会对网络通信造成明显影响。
3.2基于大流量网络的入侵检测方案
经过调查。在网络运行中网络数据流往往是波动的,在一个较长的时间段内,数据量的大小是变化的,网络中不会时时刻刻都存在大数据量的流动。而由于网络通信往往是基于交互的,通信的双方一般都要经历一次的发送接收的过程,因此本文基于以上现状提出一种延迟异步的数据量处理方案以缓解大数据流对于入侵检测系统的压力。
1.对于第一次通过数据检查系统的数据包,入侵检测系统为这个数据包标记上ID并记录,然后无论这个数据包是否经过分析都直接转发至目标计算机上。
2.入侵检测系统按照记录中的顺序分析处理数据包后将数据包的分析结果根据其ID记录至查询系统。
3.目标计算机接收到并准备处理带有标记ID的数据包时,根据其ID向查询系统询问其安全性。如果查询系统返回安全的提示则执行这个数据包,如果查询系统返回攻击信息则将数据包提交给处理系统,在得不到查询系统答复未处理时挂起这个数据包操作这种方案的优点如下:
1.不会在网络繁忙时由于入侵检测系统的分析处理而导致网络延迟甚至堵塞
2.由于网络的流量处于波动中,入侵检测系统可以在流量小的时候处理大流量时为处理完的信息。而不会造成大流量时不堪重负。小流量时空闲的情况。提高了系统的效率。
3.由于网络通信的延迟和每个节点对于数据处理顺序存在调度机制。数据不一定会在节点接收到的时候就被马上处理,因此当节点提交查询的时候,这个数据包往往是已经分析完毕的,因此这种方式对于节点的数据处理影响是比较小的。
结合虚拟化技术的入侵检测系统
由于虚拟化技术模拟了程序的运行环境,因此完全可以把每个虚拟环境看成网络中的一个节点。
3.3结合虚拟化的入侵检测方案
结合虚拟化可以改进之前提出的延迟异步方案如下:
其1.2步相同
3.虚拟环境中的程序向查询系统提交查询,如果查询系统返回安全的提示则执行这个数据包,如果查询系统返回攻击信息则将数据包提交给处理系统,如果查询系统答复未处理则不等待直接执行这个数据包,并回馈给入侵检测系统这个ID数据包执行时间。
4.数据包的执行结果如果有反馈信息则标上和执行数据包同样的ID发给入侵检测系统,若入侵检测系统已分析完毕这个ID的数据包是合法的则通过,否则则截留这个数据包。如果还未分析则挂起这个数据包等待分析。
5.若检测系统检测出某个非法攻击数据包。并且这个数据包在X时已经被K虚拟环境执行,则通知虚拟环境K回退到X时。并提交警告给管理人员。
结合虚拟环境后,虚拟环境中的程序可以在不等待入侵检测系统的数据包分析反馈的时候就预先执行数据包。如果执行的是非法数据包则进行系统回退。在日常运行中,提高了大流量期间的运行效率。
综上所述,我们可以使用虚拟化技术封闭程序的运行环境,消除程序间的相互影响。并且把外部攻击也局限在某一个封闭虚拟环境中。通过入侵检测,我们可以及时的发现并且解决网络中的异常,并且通过延迟异步方案和与虚拟化结合的的异步方案可以一定程度上提高入侵检测在大流量网络中的效率