刘晓萌,毕红军
(北京交通大学通信与信息系统北京市重点实验室,北京100044)
入侵检测系统(IDS)是解决拒绝服务攻击(DoS)的常用方法。如果IDS被部署在每个云服务器中,不进行任何的合作和通信,容易遭受单点故障攻击,入侵检测能力和应对能力会减弱。在接收到可疑数据包时与其他所有节点进行通信后处理判断,又浪费了资源。而入侵检测系统的误报,漏报又是不可避免存在的。
为了保护云环境不受到拒绝服务攻击,本文提出了一种云计算环境中的入侵检测模型。这个模型中的每个云服务器都有自身的入侵检测系统配置,负责每个云服务器的入侵检测和入侵报警,相互协作等功能。还为每一组集群服务器配备一台专用的入侵检测管理服务器,以自动和人为相结合的方式对入侵检测系统进行管理,负责报警信息的相互传递,避免单点故障攻击的发生,减少误报和漏报的概率。这个模型中的最后一道防线是在每台云服务器中都使用容忍入侵技术,以减少漏报现象为整个系统的稳定性带来的影响,尽可能的保证服务的流畅性。
模型主要由每个云服务器的入侵检测系统和入侵检测管理服务器组成。云服务器的入侵检测系统分为3个模块:检测与响应模块,报警模块和协作模块。入侵检测管理服务器分为协作模块和管理模块两部分,它们的相互关系如图1。在云服务器中,检测与相应模块负责对接收到的数据包进行检测和响应,并通过报警模块向入侵检测管理服务器中的协作模块发送报警信息。而云服务器中的协作模块与入侵检测管理服务器的协作模块进行单向通信,收集其发送的坏包类型表更新包和报警信息,从而协助检测与相应模块更好的工作。在入侵检测服务器中,协作模块处于自动工作状态,不需要管理员看管。它负责收集各个模块的报警信息,进行综合分析后做出响应。它是联系分布在每个云服务器中的入侵检测系统的纽带,各个云服务器之间的协作依靠它来实现。而管理模块为管理员提供了整个集群服务器的入侵检测系统平台。通过这个模块,管理员可以与云服务器上的入侵检测系统进行交互,查看日志等相关数据,根据整个系统运行的状况对相关参数进行配置,以达到更低的误报率和漏报率。
图1 入侵检测模型模块关系图
云服务器中配置的IDS是一种基于网络的带有特征比较的IDS。
在入侵检测系统中,入侵检测与响应模块用于收集网络数据包并对其进行分析。如果数据包的类型与坏包类型表中的一种数据包类型相一致,则系统立刻丢包。这样可以节省对这个数据包进行特征对比的时间,提高系统性能。
如果包的类型不在坏包类型表中,但是经过特征分析,它属于特征比较规则定义的一种异常包,就需要判断这个数据包的可疑度的级别。可疑度共设3种级别,如表1所示。
表1 可疑度级别及响应表
如果这个包的可疑度属于严重级别,系统将这个包定义为坏包并在入侵检测步骤中立即将它丢弃,并将其类型加入坏包类型表,然后通过报警模块向入侵检测管理服务器发出严重级别的报警。
如果这个包的可疑度属于中度级别,系统通过分析为这个数据包的可疑度进行打分,并将分数封装到报警信息中,向入侵检测管理服务器发出中度级别的报警。然后在管理员设置的延迟时间t0内,系统等待协作模块的响应。如果在t0内,协作模块返回针对该类型数据包的回复报警信息,则将该包的可疑度级别从中度改为严重,丢包并更新坏包类型表;若没有收到回复报警信息,则将其可疑度改为轻微级别。
如果这个包的可疑度属于轻微级别,系统将忽略它。
该部分的工作流程图如图2。
图2 入侵检测工作流程图
入侵检测管理服务器的协作模块与各个云服务器中IDS的报警模块和协作模块进行通信,实现各个云服务器入侵检测信息的交互,提高检测效率。
当入侵检测管理服务器的协作模块收到报警信息时,首先判断报警信息的级别。如果为严重级别的报警信息,则生成一个坏包类型表的更新包,向除报警源以外的其他云服务器IDS的协作模块发送。各IDS通过协作模块接收到更新包后,立刻更新自己的坏包类型表,避免遭受同样的攻击。如果报警信息的级别为中度级别,则开始一个计时周期,在周期t0时间内动态计算收到的来自所有云服务器的相同类型的报警信息中的可疑度分数的平均值,并将平均值与阈值相比较。其中阈值的设定可以基于以下规则:如阈值=μ+λ×σ,μ是指一个时间段内不同的源检测的中度警报的可疑度分数的平均值,σ是标准差,λ的值由网络管理员动态的设定。如果平均值大于阈值,则协作模块向所有发出此类报警的云服务器IDS协作模块发送回复报警信息,告知它们已遭到攻击,可以将中度级别改为严重级别;同时生成一个坏包类型表的更新包,向其他云服务器发送。通过这种方法,假报警和信息交换造成的通信量降低了,系统的性能被改善。
该部分的工作流程图如图3。
图3 入侵检测管理服务器协作模块工作流程图
这个部分在每个IDS中都有,它可以阻止坏包并防止入侵行为的发生。发送报警信息也是入侵响应的一部分。如果包的可疑度级别是严重或中度,阻止或丢弃坏包的行为就会被触发。
系统不可避免的存在一定的漏报率,而用户对云计算环境的服务的流畅性要求又很高,因此设置了最后一道防线,即采用容忍入侵技术。在入侵突然发生时,利用容忍入侵技术可以触发一些防止这些入侵造成系统安全失效的机制,从而仍然能够对外继续维护正常运行,提供核心或系统的基本服务,以保证系统的基本功能。
由以上的描述可见,每个IDS的检测、更新和响应工作以及他们与管理服务器之间的协作基本都是可以自动完成的。为了适应动态变化的网络环境和不同的服务需求,在入侵检测管理服务器中设置了管理模块对整个系统进行管理。
管理员可以通过管理模块查看所有云服务器中的入侵检测相关的系统日志和本地的报警接收和发送、更新包发送等日志。通过对这些数据的分析,判断目前的系统是否符合当前的安全要求。如果与当前的安全要求不符,可以通过修改各个相关参数来控制整个系统的敏感度。通过不断调整这些参数,管理员可以逐渐使整个系统达到一个平衡,维护系统的稳定运转。另外,如果恶意的IDS频繁发送假的报警信息也可以被发现。在系统遭受到无法抵御的严重入侵时,管理员还可以通过管理模块及时发现和处理,避免更大的损失。
本文针对云计算服务器可能遭受到拒绝服务攻击的问题,提出了一种云计算环境下的入侵检测和响应模型,并对该模型的工作流程进行了描述。该模型可以利用云计算的优势,通过各个云服务器之间的相互合作达到检测和抵御拒绝服务攻击的目的,最大程度的保证云计算服务的安全性和流畅性,以提升用户体验。
[1] Sebastian Roschke, Feng Cheng, Christoph Meinel. Intrusion Detection in the Cloud[C] . Eighth IEEE International Conference on Dependable, 2009, pp. 729-734.
[2] Lo Chichun, Huang Chunchieh, Joy Ku. A Cooperative Intrusion Detection System Framework for Cloud Computing Networ-ks[C] . 39th International conference on parallel processing workshops, 2010, pp. 280-284.
[3] 郭渊博,王超. 容忍入侵方法与应用[M] . 北京:国防工业出版社,2010.
[4] 虚拟化与云计算小组. 云计算实践之道:战略蓝图与技术构架[M] . 北京:电子工业出版社,2011.