3.断开连接
IDS的标准化
标准化进展现状
为了提高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所示。
在有些情况下,一个IDXP对等体可以选择关闭某个IDXP信道。在关闭一个信道时,对等体在0信道上发送一个“关闭”元素,指明要关闭哪一个信道。一个IDXP对等体也可以通过在0信道上发送一个指明要“关闭”0信道的元素,来关闭整个BEEP会话。
在上面这个模型中, IDXP对等实体之间采用了一个BEEP安全轮廓实现端到端的安全,而无需通过中间的代理建立安全信任,因此,只有IDXP对等体之间是相互信任的,而代理是不可信的。