入侵检测及防御系统模型的研究与设计
2011-11-07刘霜霜谭群峰
刘霜霜 李 佳 谭群峰
(湖南工业职业技术学院信息系,湖南 长沙 410208)
入侵检测及防御系统模型的研究与设计
刘霜霜 李 佳 谭群峰
(湖南工业职业技术学院信息系,湖南 长沙 410208)
随着计算机互联网络的迅速发展,网络安全也成为我们日益重视的问题。用于检测网络安全策略的入侵检测系统也随之飞速发展,变得高度精密。本文将提出了一个与多源入侵检测系统紧密结合的防御模型。通过使用该模型可以估算出入侵的损失以及防御的成本,从而选取最佳防御系统。
入侵;防御;依赖图
1、概述
随着计算机网络技术的迅速发展,计算机网络已深入到社会的各个领域,Internet的开放性在给人们带来资源共享和交流便利的同时,也给人们带来了很大的安全隐患。网络安全也成为了人们必须重视并加以有效防范的问题。由此,入侵检测系统应运而生,它能实时地捕获和分析数据,并通过与网络监视系统相结合,经过对特定安全数据库中的数据分析,迅速发现危险攻击的特征,进而发出警报,同时提供一定的保护措施。入侵检测系统以实时性、动态检测和主动防御为特点,有效弥补了传统网络安全措施的不足[1]。本文重点研究网络攻击的入侵检测系统(IDS)和入侵防御系统(IRS)中的典型。并采用了入侵检测和防御架构,引入依赖图来展现系统各实体(实体是一个统称,用以表示系统中某个资源或某个服务)之间的相互依存关系。依赖图将任一系统分为四层:应用程序服务;组件服务;系统/辅助服务和系统资源。资源又进一步分为虚拟资源和实体资源。经过反复研究后,将设计出最佳防御系统体系结构。
2、多源入侵
入侵检测组件集合许多独立的入侵检测源而成。入侵检测基本上相当于检测以恶意行为及未授权行为出现的攻击的多种方法。
实施过程中,我们使用了以下几种入侵检测源:
Snort and perl:Snort是一种开源网络入侵检测系统,它通过监视网络流量来检测恶意行为[2]。同时,Snort也是一种签名型入侵检测系统,它将攻击类型与已知的攻击类型的名单相对比,由此来确定入侵。一旦某种攻击类型与签名上的一致,随即便会发出警报并记录该攻击类型。不仅如此,我们专门编写的超强代码能够读取这些日志文件,再向入侵防御引擎发送专门的入侵消息。
CPU资源监视器:这种类型的入侵检测源主要在攻击的签名未知而系统中受影响的实体已知时,发挥其作用。实体表示系统中的某种资源或某个服务器。比如,在实施过程中,我们研发了一种专门的入侵检测源,它将监视系统中某一资源CPU利用情况。要是那一资源的CPU利用显示异常,则表明可能发生了攻击行为。接着,入侵检测源向防御引擎发生特殊的入侵警报。许多专门的入侵检测源者由系统管理员来创建。这种IDS可用于监视系统的各个部分,并对异常行为发出警报。
3、防御引擎
防御引擎负责接收从入侵检测源中传来的入侵警报。然后它再对入侵进行成本敏感分析,并使用合适的防御阻止入侵。入侵防御引擎包括三组组件,分别是初始化组件,成本型防御选择组件及防御运行组件。
3.1 初始化组件
初始化组件负责向防御引擎提供有关系统安全策略的机密性、完整性及有效性方面的全部信息。并且,它还有值传递的功能,即能将系统的总体价值传递给系统中所有的资源与服务。初始化组件还能从XML文件中读取关于可用资源、服务以及系统安全策略方面的所有信息。首先,我们来分析一下系统的不同实体。
(1)系统实体—分层法
系统实体是由许多主机集合而成的,而这些主机又通过互联网来进行相互沟通。网络可以是静态的,即它能用网络设备如路由器、转换器等来配置。然而,网络也可以是动态的。如,无线ad-hoc网络就是一种移动设备通过无线链接进行自我配置的网络。
系统包括许多主机。这些主机运行不同的应用程序,涵盖多种系统资源。用S表示所有的系统服务。每种服务S可以是应用程序服务的实体,组件服务的实体,也可以是系统/辅助服务的实体。所以系统的应用程序可以广义地分为以下服务:
·应用程序服务(AS)
·组件服务(CS)
·系统/辅助服务(SS)
这些系统的应用程序由一系列系统资源进行辅助,用R表示所有的系统资源。每种资源R都可以是以下其中一种:
·虚拟资源(VR)
·实体资源(PR)
所以任一系统都可生成多层结构。每层结构将在以下部分中予以解释说明。为方便起见,我们将所有的系统服务及资源用实体e表示。
·应用程序服务—这些服务是系统管理员及行业分析员所真正关注的,且他们本身就有价值。
·组件服务—组件服务能为用户所见但不能为用户直接所用。一般,这些服务是更大的应用程序服务的子功能。
·资源—资源指系统实体,他们辅助所有以上定义的系统服务。资源可分为虚拟资源(VR)和实体资源(PR)。
现在,我们把系统分成不同层,且每层包括许多实体。下面的依赖图将用于把系统价值传递给系统的所有实体。
(2)依赖图
大多数IDS组件确定及检测服务层或资源层的入侵。为了运用合适的防御对抗入侵,我们必须估算入侵成本。而且,系统管理员必须确定阻止入侵的防御成本,再者,我们需要考虑防御对整个系统的影响。选择入侵防御的整个过程取决于系统中每个实体的价值。
为了使赋值过程顺利且精确,我们提出了依赖图结构和值传递法。依赖图用于展示系统所有资源及服务之间的功能性依存关系。值传递功能是指一旦赋予层实体价值后,它能通过依赖图把值传递到最低层的实体。顶层实体的价值可从系统管理员或行业分析员那儿获得,因为这些实体是为他们所见的,故能估测价值。通常,我们认为顶层实体就是系统中的应用程序服务。
(3)利用依赖图的值传递法
当定义系统服务及资源间的依赖关系时,我们并没有具体化他们相互的依赖程度。也没有定义系统安全目标如机密性,完整性及有效性方面的依存性。我们知道,不同的系统赋予不同的安全目标,且资源和服务间存在着不同的依赖关系。比如,Web服务器使用Https和SSL服务进行链接与不适用Https进行链接这两种情况之间的依赖关系,就完全目标而言,是大不相同的[3]。所以,我们需要一些变量来表示实体安全目标方面的相互依存关系。为了表示相互依存关系,我们将重量值分配到每个依赖边。例如,Vi[X]与Vj[y](且x,y∈X)之间的依存值表示为 Wvi[X]_〉Vj[y]。
图3.1 相互依存级别分配实例
图3.1中的应用程序服务ASi依赖于更低层的组件服务CSj,j∈{1……m}这里其有效性依赖于更低层组件服务三个安全目标。这就意味着ASi[A]有了3n条边从顶点中延伸出来,这其中每条边都指向CSj[X],x∈X中任一个。3n条边中的每一条都得到相等的重量值,即都为1.
所以,每条的重量值根据WAsi[A]_〉CSj[X]=1/(3m)且j∈{1,……m}进行计算。同时,行业经理人及分析人士也会将值分配给系统中所有的应用程序服务。为了将应用程序服务中的价值传递给依赖图中的所有实体,我们利用传递法。
在了解值传递法的细节之前,我们需要先理解两个更加重要的定义,即依赖值和内在值。
实体的内在值指系统中某实体内在功能的价值。实体依赖值是指被传递到依赖图中更低层实体的某实体价值。
用Cv表示顶点的价值,用Cv(I)表示顶点v的内在值,用Cv(D)表示顶点v的依赖值,则有:
这表示,我们将任何实体的价值都分成了内在值和依赖值两部分。这一定义是合情合理的,因为更低层实体出现故障时,只会有部分高层实体受到影响。就拿Web服务一例来说吧。当更低层网络服务暂停工作或受攻击时,上层服务的有效性只会降低一半。这也就是说,上层服务的内在值不会受到影响,而只有更低层网络服务的依赖值会损失。
为了解释这一计算公式,我们分配百分比P来从实体总值中获得内在值。所以我们可以利用如下公式计算内在值和依赖值。
我们希望应用程序服务的所有值都传递给依赖图中的低层实体,那么这时的百分比P=1。一旦以上依赖值等式中的P=1时,则更低层实体得到了所有值,此时实体内在值变为0。同样地,依赖图中所有的最低层实体将不再有依存性。所以,如果百分比P=0,则意味着这些实体的依赖值为0,而其内在值就等于实体的总体值。对依赖图中的所有中间层的实体而言,其P值(0≤P≤1)是系统管理员来分配的。
现在我们来分析一种传递系统值的程序性方法。它包括多个步骤。
①获得系统值:系统管理员与行业分析人士获得系统值是这种方法的第一步。这种值既可以用数额,如美元表示,也可以用单位时间内的数额,如美分/份表示。它是根据直接收入,利润及系统损失推算出来的。当然,不同系统间的度量方法各不相同。让我们用Cs表示系统总值。
②分配应用程序服务的系统值:首先是确定应用程序层服务。然后,划分应用程序服务的系统总值。例如,企业可能同时配置有Web服务器和Mail服务器。而这两种服务对公司而言同样重要。故系统管理员会将这两种服务的系统值平分。我们用ASw表示Web服务器,用ASm表示Mail服务器。
Cw=0.5*C5(web服务器的值)
Cm=0.5*Cs(mail服务器的值)
③分配应用程序服务值于安全目标C,I,A:即系统管理员将每个应用程序服务的价值划分为C,I,A值。在这一实例中。Web服务的完整性与有效性平分了ASw的总体值。在Mail服务器一例中,我们假定安全目标的三个要素各占ASm值的1/3。
Web服务器(ASw)
Cw[C]=0.00*Cw
Cw[I]=0.50*Cw
Cw[A]=0.50*Cw
Mail服务器(ASm)
Cm[C]=0.33*Cm
Cm[I]=0.33*Cm
Cm[A]=0.33*Cm
④将值传递给依赖图中的底层实体:一旦确定了应用程序服务成本,我们便利用依赖图及递归法把值传递给更低层实体。一层中的实体价值是由同一层的实体或更低层实体来决定的。计算公式如下:
在这一公式中,u表示依赖的上层实体,v表示依赖的底层实体。成本传递法首先是将应用程序服务的价值传递给所有的组件服务实体。接着将组件服务的价值分成内在值和依赖值两部分。然后,把组件服务的依赖值传递给所有的系统/辅助实体。直到传递到依赖图中的最低层实体。对任一系统而言,我们都认为其拥有如下价值。
这就是说,所有具体(不包括应用程序层服务)的价值总额(由v表示)等于应用程序服务总额(由v表示)。因为系统的总价值都分配给了应用程序服务。我们知道所有应用程序服务的百分比P=1。这说明所有的应用程序服务只有依赖值而无内在值。而通过值传递法,其依赖值传递给了低层实体。所以以上的价值等式是正确的。[4]
3.2 成本型防御选择组件
成本型防御选择组件首先利用由初始化组件提供的有关系统安全策略方面的所有信息,再对从入侵检测组件中接受到的警报进行最好的防御。这种组件负责利用依赖图及其他系统安全策略选择最好的防御。在这部分,我们选择了适当的防御方法;如损伤评估,成本估算等。
(1)损伤评估
不同入侵对依赖图中的实体影响各不相同。这些大相径庭的影响取决于每种实体安全目标的功能损失百分比。因此,每次入侵对安全目标如机密性、完整性及有效性产生多大影响的百分比是可以测量的。
利用签名型检测系统了解攻击信息:如果将攻击的签名与一系列可能的入侵类型相对比,那么攻击即可被检测到。要是了解了攻击,我们便能掌握一定的攻击信息以及受入侵资源及服务的名单。然后把这些受入侵资源及服务标记到依赖图上,由此我们会得知遭攻击损伤的实体名单。让我们用Vi表示此名单,其中i∈{1,……m}。接着,系统管理员会估算出每个实体的损伤,并得出每种安全目标的功能损失百分比,让我们用ri[C],ri[I],ri[A]来分别表示实体ri机密性,完整性,有效性方面的损失。那么,入侵损伤成本可由以下公式计算出。
攻击未知却已知受攻击实体:有时,因为攻击的签名未知,所以我们不清楚攻击所在何处。然而,系统管理员仍可了解已受影响的服务及资源方面的相关信息,根据受影响的资源与服务的名单,我们可将其描绘在依赖图上,并据此在依赖图中找到受攻击实体的名单。然后,我们利用以上给出的公式计算入侵损伤成本。
未知攻击:这种情况发生在新型攻击出现时。即已安装的入侵检测系统不能使用签名法检测到攻击。并且,要是所有的资源监视监测系统不能检测到攻击时,结果只能是我们发现高层应用程序服务已受入侵。这时,系统管理员便轻易算出上层实体在安全目标方面的损伤费。
(2)防御成本估算
在计算完入侵损伤费之后,我们必须得解释一下防御的成本估算。成本组件会优先选择耗费更少运行成本及为系统带来最小负面影响的防御方式。下面,我们定义三种重要的防御成本术语。
运行成本(OC)指在运行防御的过程中产生的费用。运行防御还需要系统管理员或专业人士进行人工操作的人工费。
防御系统影响(RSI)是指运行防御对系统造成的影响。在依赖图的帮助下,我们可以确定被防御所影响的资源及服务。用S表示所有受防御影响的实体。那么防御系统影响指的是受运行的防御影响的所有实体的价值,而不是受入侵影响的价值。RSI可用如下公式表示。公式中[d]表示实体受防御影响的百分比,d的取值范围是[0,1]。
防御的成功因素(RS)是用来衡量相应的防御阻止入侵发生的有效力的。在依赖图的帮助下,防御对实体的保护力是可以比较的。通常,如果防御能完全阻止入侵发生过,那么我们会说防御成功率为100%。RS由如下公式所示,其中[r]表示实体受防御保护的有效力百分比,其取值范围是[0,1]。
(3)防御选择
到目前为止,我们已经阐释了计算入侵损伤费,防御成本及防御成功因素的方法。在这部分,我们将使用称之为期望值的度量法。这种方法将有助于我们选择合适的防御。
期望值(EV)指值衡量法。而这一值是发生入侵时使用防御所获得的。其取值范围是[-1,1],计算方法如下[5]:
如果期望值是正数,则说明值得使用防御;如果期望值是负数,则说明不值得使用防御,且相比好处,此防御会给系统带来更大的损害。OC指防御的运行成本,RB表示防御福利,它是指由入侵造成的潜在损伤的程度。一般,这一入侵时可由某种防御阻止的。首先,要求输入OC和RS,然后告知我们防御行为将把由入侵造成的损伤成本掩盖得有多好。其取值范围是[0,1],0表示防御不会掩盖任何入侵损伤。大于0表示防御能掩盖一部分入侵损伤。RSI指防御系统影响。OC指防御的运行成本。其总和(即EV)既有可能是0,也可能是1。如果是0,则表示运行防御时无成本产生;如果是1,则表明产生的成本等于系统总值。
3.3 防御运行组件
防御运行组件就是指运行所选择的防御。一旦成本型防御选择组件选定了某种防御,那么此防御立即被启动。当前,防御都是根据LinuxShell脚本来操作。例如,LinuxShell脚本防御向防火墙添写规则,阻止已感染程序,重启程序,延迟程序,阻止特殊类型的流量,如TFTP流量,阻止被攻击者所利用的端口等等。但将来,所有的这些防御将能得到扩展以适应其他的结构,如Windows OS。
4、入侵检测与防御系统体系结构设计
根据上面几节内容,我们设计出如图4.1的入侵检测与防御系统总体体系结构。
图4.1 多源入侵与防御系统构架
图4.1描绘了入侵检测与防御系统中的不同组件。入侵检测组件由多种独立的入侵检测源所组成。这些入侵检测源负责入侵检测,检测网络或主机中的恶意行为,并向入侵防御引擎发出警报。而入侵防御引擎负责启动防御以降低入侵的影响。
不同入侵检测源及入侵防御引擎之间的信息传输是基于客户和服务器结构之上的。这些入侵检测源可以是从签名型IDS到任何入侵检测组件中的任一部分。那些专门设计的入侵检测组件是由系统管理员研发出来以监视系统中某一具体方面的。
入侵防御引擎收到来自入侵检测源发出的警报后会评估入侵的损伤影响力,再提出一系列可能的防御,接着使用能减轻入侵影响力的最好防御。防御引擎选择成本敏感型防御。
5、结束语
本文分析了入侵检测与防御系统的两个重要组成部分:多源入侵与防御引擎。重点研究了防御引擎的三个组件:初始化组件,成本型防御选择组件及防御运行组件。最后设计了整个入侵检测与防御系统的体系结构。未来会着重研究扩展工作的方法,比如建立使防御信息科相互传递的机制。各防御引擎间的沟通能够使某个防御引擎获得的信息与其他主机共享以及提出标准来衡量已选择的防御在各种环境中是否防御成功。
[1] 杨义先,钮心析.网络安全理论与技术[M].人民邮电出版社,2003,(6):1-9.
[2] 连一峰,王航.网络攻击原理和技术[M].北京:科学出版社,2004,(2):79-84.
[3] 周建国,曹庆国.计算机网络入侵检测系统的研究[J].计算机工程,2003,29(2):12 一 14.
[4] 孙伟,李东生.入侵检测技术探讨[J].黑龙江科技信息,2007,(23):25-27.
[5] 方文平,入侵检测技术探讨[J].网络安全技术与应用,2007,(12):18-20.
The Intrusion Detection System Model and The Defense Research and Design
LIU Shuang-shuang LI-Jia TAN Qun-feng
(HuNan IndustryPolytechnic,Changsha 410208 ,Hunan)
Along with the computer the fast development of the Internet,The Network security has become we pay more attention to the problem .For decades,IDSfor testingthe network securitypolicyhas evolved tremendouslyand has become highlysophisticated.This work presents a cost based response model that is tightlycoupled with multi-source IDS.The damage cost ofthe intrusion and the response cost of the responses are evaluated using the dependency graph.Usingseveral performance metrics,a response which brings the most benefit tothe systemis deployed.
intrusion;defense;dependencygraph
Q143
A
1671-5004(2011) 03-0007-04
2011-5-14
刘霜霜(1982-),女,湖北随州人,湖南工业职业技术学院助教,主要研究方向:计算机网络,网络安全,概念格,数据挖掘。
李佳(1982-),女,湖南祁阳人,湖南工业职业技术学院讲师,主要研究方向:光纤通信、计算机技术。
谭群峰(1980-),男,湖南娄底人,湖南工业职业技术学院讲师,主要研究方向:计算机软件。