首页 理论教育计算机网络与信息安全:入侵检测系统模型

计算机网络与信息安全:入侵检测系统模型

【摘要】:为了更好地研究入侵检测系统,人们将其各个组成部分抽象出来,形成各种入侵检测模型。模型中,入侵检测系统分为4个基本组件,即事件产生器、事件分析器、响应单元和事件数据库。其中的事件是指入侵检测系统需要分析的数据。如果入侵检测系统也能够像攻击者那样合作,就有可能检测到。

为了更好地研究入侵检测系统,人们将其各个组成部分抽象出来,形成各种入侵检测模型。

(一)Denning模型

Denning入侵检测模型是由Dorthy Denning在1987年提出的,其结构如图8-5所示。

Denning入侵检测模型是基于主机的,它首先对主机事件按照一定的规则学习来产生用户行为模型,然后将当前的事件和模型进行比较,如果不选配则认为异常。该模型独立于特殊的系统、应用环境、系统弱点或入侵类型,其由以下5个主要部分构成:

1.主体活动

主体活动即用户使用系统资源的活动。

2.审计记录

审计记录是由<subject,action,object,exception-condition,resource-usage,time-stamp>构成的六元组,action(活动)是主体对目标的操作,对操作系统而言,这些操作包括读、写、登录、退出等;exception-condition(异常条件)是指系统对主体活动的异常报告,如违反系统读写权限;resource-usage(资源使用状况)是系统的资源消耗情况,如CPU、内存的使用率等;time-stamp(时标)是活动发生时间。

3.活动简档

活动简档用以保存主体正常活动的有关信息。具体实现依赖于检测方法,如在统计方法中可以从事件数量、频度、资源消耗等方面进行度量。

4.异常记录

异常记录由<event,time-stamp,profile>组成,用于表示异常事件发生的情况。

5.规则集

规则集(一组活动规则)是检查入侵是否发生的处理引擎,结合活动简档,用专家系统或统计方法等分析接收到的审计记录,调整内部规则或统计信息,在判断有入侵发生时采取相应的措施。

图8-5 Denning入侵检测系统模型

(二)CIDF模型

CIDF(Common Intruction Detection Framework,入侵检测系统的通用模型)包括入侵检测系统的体系结构、通信机制、描述语言和应用编程接口(API)4个方面。

其中体系结构如图8-6所示。模型中,入侵检测系统分为4个基本组件,即事件产生器、事件分析器、响应单元和事件数据库。其中的事件是指入侵检测系统需要分析的数据。这4个组件只是逻辑实体,一个组件可能是某台计算机上的一个进程甚至线程,也可能是多个计算机上的多个进程。它们以GIDO(统一入侵检测对象)格式进行数据交换。

这种划分体现了入侵检测系统所必须具有的体系结构:数据获取、数据分析、行为响应和数据管理,因此具有通用性。事件产生器、事件分析器和响应单元通常以应用程序的形式出现,而事件数据库则以文件或数据流的形式出现。GIDO数据流可以是发生在系统中的审计事件或对审计事件的分析结果。

事件产生器的任务是从入侵检测系统之外的计算机中收集事件,但不做分析,将这些事件转换成CIDF的GIDO格式传送给其他组件;事件分析器分析收到的GIDO,并将产生的新的GIDO再传送给其他组件;事件数据库用来存储GIDO,以备系统使用;响应单元处理收到的GIDO,并根据处理结果采取相应的措施,如删除相关进程、将连接复位及修改文件权限等。

图8-6 CIDF入侵检测系统模型

(三)管理式入侵检测模型

近年来,随着计算机网络技术的飞速发展,网络攻击手段也越来越复杂,攻击者大都是通过合作的方式来攻击某个目标系统,而单独的入侵检测系统难以发现这种类型的入侵行为。如果入侵检测系统也能够像攻击者那样合作,就有可能检测到。这样就需要有一种公共的语言和统一的数据表达格式,能够让入侵检测系统之间顺利交换信息,从而实现分布式协同检测。但是,相关事件在不同层面上的抽象表示也是一个很复杂的问题。基于这样的因素,北卡罗来纳州立大学的Felix Wu等人从网络管理的角度考虑入侵检测的模型,提出了基于简单网络管理协议(Simple Network Management Protocol,SNMP)的入侵检测系统,简称SNMP-IDSM。

SNMP-IDSM以SNMP为公共语言来实现入侵检测系统之间的消息交换和协同检测,它定义了入侵检测系统管理数据库(IDSManagement Information Base,IDS-MIB),使得原始事件和抽象事件之间关系明确,并且易于扩展这些关系。SNMP-IDSM的工作原理如图8-7所示。

图8-7 SNMP-IDSM的工作原理图

从图8-7可知,IDS-B负责监视主机B和请求最新的入侵检测系统事件,主机A的IDS-A观察到了一个来自主机B的攻击企图,然后IDS-A和IDS-B联系,IDS-B响应IDS-A的请求,IDS-B半小时前发现有人扫描主机B,这样,某个用户的异常活动事件被IDS-B发布。IDS-A怀疑主机B受到了攻击。为了验证和寻找攻击者的来源,IDS-A使用MIB脚本发送一些代码给IDS-B。这些代码类似于netstat等命令,它们能够搜集主机B的网络活动和用户活动的信息。最后,这些代码的执行结果表明用户X在某个时候攻击主机A,而且,IDS-A进一步得知用户X来自于主机C。这样,IDS-A和IDS-C取得联系,要求主机C向IDS-A报告入侵事件。

一般来说,攻击者在一次入侵过程中通常会采取以下一些步骤:(www.chuimin.cn)

(1)使用端口扫描、操作系统检测或者其他黑客工具收集目标有关信息。

(2)寻找系统的漏洞并利用这些漏洞,例如,sendmail的错误、匿名FTP的误配置或者服务器授权给任何人访问等。一些攻击企图失败而被记录下来,另外一些攻击企图则可能成功实施了。

(3)如果攻击成功,入侵者就会清除日志记录或者隐藏自己而不被其他人发现。

(4)安装后门,如rootkit、木马或网络嗅探器等。

(5)使用已攻破的系统作为跳板入侵其他主机,例如,用窃听口令攻击相邻的主机或者搜索主机间非安全信任关系等。

SNMP-IDSM根据上述的攻击原理,采用五元组形式来描述攻击事件,该五元组的格式为:<where,when,who,what,how>,其中各字段的含义如下:

(1)where:描述发生攻击的位置,包括目标所在地以及在什么地方观察到事件发生。

(2)when:事件的时间戳,用来说明事件的起始时间、终止时间、信息频率或发生的次数。

(3)who:表明入侵检测系统观察到的事件,如果可能的话,记录哪个用户或进程触发事件。

(4)what:记录详细信息,例如,协议类型、协议说明数据和包的内容。

(5)how:用来连接原始事件和抽象事件。

总之,SNMP-IDSM定义了用来描述入侵事件的管理信息库MIB,并将入侵事件分为原始事件(Raw Event)和抽象事件(Abstract Event)两层结构。原始事件指的是引起安全状态迁移的事件或者是表示单个变量偏移的事件,而抽象事件是指分析原始事件所产生的事件。原始事件和抽象事件的信息都用四元组<where,when,who,what>来描述。

(四)通用入侵检测框架

随着研究的深入,在IDES和NIDES基础上,由加利福尼亚大学Davis分校安全实验室主持起草的CIDF(Common Intrusion Detection Framework,通用入侵检测框架)最早是由美国国防高级研究计划署提出的,其结构如图8-8所示。

图8-8 CIDF结构

该模型由以下4个组件组成。

1.事件产生器

事件产生器即信息获取子系统,用于收集来自主机和网络的事件信息,为检测信息提供原始数据,并将这些事件转换成CIDF的GIDO(Generalized Intrusion Detection Objects,统一入侵检测对象)格式传送给其他组件。

2.事件分析器

事件分析器即分析子系统,是入侵检测系统的核心部分。事件分析器分析从其他组件收到的GIDO,并将产生的新GIDO再传送给其他组件,用于对获取的事件信息进行分析,从而判断是否有入侵行为发生并检测出具体的攻击手段。

3.响应单元

响应单元即响应控制子系统。响应单元处理收到的GIDO,用于向系统管理员报告分析结果并采取相应的策略以响应入侵行为。

4.事件数据库

事件数据库即数据库子系统,用来存储系统运行的中间数据并进行规则匹配。

CIDF将IDS需要分析的数据统称为事件。它可以是基于网络的IDS,从网络中提取的数据包,也可以是基于主机的IDS,从系统日志等其他途径得到的数据信息。

以上4个组件只是逻辑实体,一个组件可能是某台计算机上的一个进程甚至线程,也可能是多个计算机上的多个进程,它们以GIDO格式进行数据交换。GIDO是对事件进行编码的标准通用格式(由CIDF描述语言CISL定义)。GIDO数据流在CIDF结构图中用箭头表示,它可以是发生在系统中的审计事件,也可以是对审计事件的分析结果。

由于CIDF有一个标准格式GIDO,所以这些组件也适用于其他环境,只需要将典型的环境特征转换成GIDO格式,这样就提高了组件之间的消息共享性和互通性。