标准化进展现状
为了提高IDS产品、组件及与其他安全产品之间的互操作性,美国国防高级研究计划署(DARPA)和互联网工程任务组(IETF)的入侵检测工作组(IDWG)发起制订了一系列建议草案,从体系结构、API、通信机制、语言格式等方面规范IDS的标准。
DARPA提出的建议是公共入侵检测框架(CIDF),最早由加州大学戴维斯分校安全实验室主持起草工作。1999年6月,IDWG就入侵检测也出台了一系列草案。但是,这两个组织提出的草案或建议目前还正处于逐步完善之中,尚未被采纳为广泛接受的国际标准。不过,它们仍是入侵检测领域最有影响力的建议,成为标准只是时间问题。
入侵检测工作组(IDWG)
IDWG的任务是:定义数据格式和交换规程,用于入侵检测与响应(IDR)系统之间或与需要交互的管理系统之间的信息共享。IDWG提出的建议草案包括三部分内容:入侵检测消息交换格式(IDMEF)、入侵检测交换协议(IDXP)以及隧道轮廓(Tunnel Profile)。
一、IDMEF
IDMEF描述了表示入侵检测系统输出信息的数据模型,并解释了使用此模型的基本原理。该数据模型用XML实现,并设计了一个XML文档类型定义。自动入侵检测系统可以使用IDMEF提供的标准数据格式对可疑事件发出警报,提高商业、开放资源和研究系统之间的互操作性。IDMEF最适用于入侵检测分析器(或称为“探测器”)和接收警报的管理器(或称为“控制台”)之间的数据信道。
1.IDMEF的数据模型
IDMEF数据模型以面向对象的形式表示探测器传递给控制台的警报数据,设计数据模型的目标是为警报提供确定的标准表达方式,并描述简单警报和复杂警报之间的关系。
IDMEF数据模型各个主要部分之间的关系如图1所示。
所有IDMEF消息的最高层类是IDMEF-Message,每一种类型的消息都是该类的子类。IDMEF目前定义了两种类型的消息:Alert(警报)和Heartbeat(心跳),这两种消息又分别包括各自的子类,以表示更详细的消息。
需要注意的是,IDMEF数据模型并没有对警报的分类和鉴别进行说明。例如,对一个端口的扫描,一个分析器可能将其确定为一个多目标的单一攻击,而另一个分析器可能将其确定为来自同一个源的多次攻击。只有一个分析器决定了发送的警报类型,数据模型才能规定怎样对这个警报进行格式化。
IDMEF数据模型是用统一建模语言(UML)描述的。UML用一个简单的框架表示实体以及它们之间的关系,并将实体定义为类。IDMEF包括的主要类有IDMEF-Message类、Alert类、Heartbeat类、Core类、Time类和Support类,这些类还可以再细分为许多子类。
2.使用XML描述IDMEF文档标记
IDWG最早曾提出两个建议实现IDMEF:用SMI(管理信息结构)描述一个SNMP MIB和使用DTD(文档类型定义)描述XML文档。IDWG 在1999年9月和2000年2月分别对这两个建议进行了评估,认为XML最能符合IDMEF的要求,于是,在2000年2月的会议上决定采用XML方案。
XML是SGML(标准通用标记语言)的简化版本,是ISO 8879标准对文本标记说明进行定义的一种语法。作为一种表示和交换网络文档及数据的语言,XML能够有效地解决HTML面临的许多问题,所以获得了业界的普遍青睐。1998年10月,WWW联盟(W3C)将XML作为一项建议公布于众。此后不久,WWW联盟又发布了一份建议,定义了XML文档中的名字空间。
XML是一种元语言――即一个描述其他语言的语言,它允许应用程序定义自己的标记,还可以为不同类型的文档和应用程序定义定制化的标记语言。
XML DTD(文档类型定义)可用来声明文档所用的标记,它包括元素(文档包括的不同信息部分)、属性(信息的特征)和内容模型(各部分信息之间的关系)。
二、IDXP
IDXP(入侵检测交换协议)是一个用于入侵检测实体之间交换数据的应用层协议,能够实现IDMEF消息、非结构文本和二进制数据之间的交换,并提供面向连接协议之上的双方认证、完整性和保密性等安全特征。IDXP是BEEP的一部分,后者是一个用于面向连接的异步交互通用应用协议,IDXP的许多特色功能(如认证、保密性等)都是由BEEP框架提供的。IDXP模型如下:
1.建立连接
使用IDXP传送数据的入侵检测实体被称为IDXP的对等体,对等体只能成对地出现,在BEEP会话上进行通信的对等体可以使用一个或多个BEEP信道传输数据。
对等体可以是管理器,也可以是分析器。分析器和管理器之间是多对多的关系,即一个分析器可以与多个管理器通信,同样,一个管理器也可以与多个分析器通信;管理器与管理器之间也是多对多的关系,所以,一个管理器可以通过多个中间管理器接收来自多个分析器的大量警报。但是,IDXP规定,分析器之间不可以建立交换。
入侵检测实体之间的IDXP通信在BEEP信道上完成。两个希望建立IDXP通信的入侵检测实体在打开BEEP信道之前,首先要进行一次BEEP会话,然后就有关的安全特性问题进行协商,协商好BEEP安全轮廓之后,互致问候,然后开始IDXP交换。
图2是两个入侵检测实体“Alice”和“Bob”之间建立IDXP通信的过程:
注意:IDXP对等实体之间可能有多个代理,这些代理可能是防火墙,也可能是将公司每个部门分析器的数据转发给总管理器的代理。隧道轮廓描述了使用代理时的IDXP交换。
2.传输数据
一对入侵检测实体进行BEEP会话时,可以使用IDXP轮廓打开一个或多个BEEP信道,这样就可以使用额外的信道建立额外的BEEP会话。但是,大多数情况下,额外信道都应在已有的BEEP会话上打开,而不是用IDXP轮廓打开一个包含额外信道的新BEEP会话。
在每个信道上,对等体都以客户机/服务器模式进行通信,BEEP会话发起者为客户机,而收听者则为服务器。
图3描述了一个分析器将数据传送给一个管理器的简单过程。
在一次BEEP会话时,使用多个BEEP信道有利于对在IDXP对等体之间传输的数据进行分类和优先权设置。例如,一个管理器M1在向另一个管理器M2传送警报数据时,可以用不同的信道传送不同类型的警报数据,在每个信道上管理器M1的作用都相当于一个客户器,而M2则对不同信道上的数据作出相应的处理,如图4所示。
3.断开连接
在有些情况下,一个IDXP对等体可以选择关闭某个IDXP信道。在关闭一个信道时,对等体在0信道上发送一个“关闭”元素,指明要关闭哪一个信道。一个IDXP对等体也可以通过在0信道上发送一个指明要“关闭”0信道的元素,来关闭整个BEEP会话。
在上面这个模型中, IDXP对等实体之间采用了一个BEEP安全轮廓实现端到端的安全,而无需通过中间的代理建立安全信任,因此,只有IDXP对等体之间是相互信任的,而代理是不可信的。
公共入侵检测框架(CIDF)
CIDF所做的工作主要包括四部分:IDS的体系结构、通信机制、描述语言和应用编程接口API。
一.CIDF的体系结构
CIDF在IDES和NIDES的基础上提出了一个通用模型,将入侵检测系统分为四个基本组件:事件产生器、事件分析器、响应单元和事件数据库。结构如图5所示。
在这个模型中,事件产生器、事件分析器和响应单元通常以应用程序的形式出现,而事件数据库则往往是文件或数据流的形式,很多IDS厂商都以数据收集部分、数据分析部分和控制台部分三个术语来分别代替事件产生器、事件分析器和响应单元。
CIDF将IDS需要分析的数据统称为事件,它可以是网络中的数据包,也可以是从系统日志或其他途径得到的信息。
以上四个组件只是逻辑实体,一个组件可能是某台计算机上的一个进程甚至线程,也可能是多个计算机上的多个进程,它们以GIDO(统一入侵检测对象)格式进行数据交换。GIDO是对事件进行编码的标准通用格式(由CIDF描述语言CISL定义),GIDO数据流在图5中以虚线表示,它可以是发生在系统中的审计事件,也可以是对审计事件的分析结果。
1.事件产生器
事件产生器的任务是从入侵检测系统之外的计算环境中收集事件,并将这些事件转换成CIDF的GIDO格式传送给其他组件。例如,事件产生器可以是读取C2级审计踪迹并将其转换为GIDO格式的过滤器,也可以是被动地监视网络并根据网络数据流产生事件的另一种过滤器,还可以是SQL数据库中产生描述事务的事件的应用代码。
2.事件分析器
事件分析器分析从其他组件收到的GIDO, 并将产生的新GIDO再传送给其他组件。分析器可以是一个轮廓描述工具,统计性地检查现在的事件是否可能与以前某个事件来自同一个时间序列; 也可以是一个特征检测工具,用于在一个事件序列中检查是否有已知的滥用攻击特征;此外,事件分析器还可以是一个相关器,观察事件之间的关系,将有联系的事件放到一起,以利于以后的进一步分析。
3.事件数据库
用来存储GIDO,以备系统需要的时候使用。
4.响应单元
响应单元处理收到的GIDO,并据此采取相应的措施,如杀死相关进程、将连接复位、修改文件权限等。
由于CIDF有一个标准格式GIDO,所以这些组件也适用于其他环境,只需要将典型的环境特征转换成GIDO格式,这样就提高了组件之间的消息共享和互通。
二、CIDF的通信机制
为了保证各个组件之间安全、高效的通信,CIDF将通信机制构造成一个三层模型:GIDO层、消息层和协商传输层。
要实现有目的的通信,各组件就必须能正确理解相互之间传递的各种数据的语义,GIDO层的任务就是提高组件之间的互操作性,所以GIDO就如何表示各种各样的事