入侵检测系统(IDS)简介(2) 在其他文章中,经常用数据采集部分、分析部分和控制台部分来分别代替事件产生器、事件分析器和响应单元这些术语。且常用日志来简单的指代事件数据库。如不特别指明,本文中两套术语意义相同。 2.2 IDS分类 一般来说,入侵检测系统可分为主机型和网络型。 主机型入侵检测系统往往以系统日志、应用程序日志等作为数据源,当然也可以通过其他手段(如监督系统调用)从所在的主机收集信息进行分析。主机型入侵检测系统保护的一般是所在的系统。 网络型入侵检测系统的数据源则是网络上的数据包。往往将一台机子的网卡设于混杂模式(promisc mode),监听所有本网段内的数据包并进行判断。一般网络型入侵检测系统担负着保护整个网段的任务。 不难看出,网络型IDS的优点主要是简便:一个网段上只需安装一个或几个这样的系统,便可以监测整个网段的情况。且由于往往分出单独的计算机做这种应用,不会给运行关键业务的主机带来负载上的增加。但由于现在网络的日趋复杂和高速网络的普及,这种结构正受到越来越大的挑战。一个典型的例子便是交换式以太网。 而尽管主机型IDS的缺点显而易见:必须为不同平台开发不同的程序、增加系统负荷、所需安装数量众多等,但是内在结构却没有任何束缚,同时可以利用操作系统本身提供的功能、并结合异常分析,更准确的报告攻击行为。参考文献[7]对此做了描述,感兴趣的读者可参看。 入侵检测系统的几个部件往往位于不同的主机上。一般来说会有三台机器,分别运行事件产生器、事件分析器和响应单元。在安装IDS的时候,关键是选择数据采集部分所在的位置,因为它决定了“事件”的可见度。 对于主机型IDS,其数据采集部分当然位于其所监测的主机上。 对于网络型IDS,其数据采集部分则有多种可能: (1)如果网段用总线式的集线器相连,则可将其简单的接在集线器的一个端口上即可; (2)对于交换式以太网交换机,问题则会变得复杂。由于交换机不采用共享媒质的办法,传统的采用一个sniffer来监听整个子网的办法不再可行。可解决的办法有: a.交换机的核心芯片上一般有一个用于调试的端口(span port),任何其他端口的进出信息都可从此得到。如果交换机厂商把此端口开放出来,用户可将IDS系统接到此端口上。 优点:无需改变IDS体系结构。 缺点:采用此端口会降低交换机性能。 b.把入侵检测系统放在交换机内部或防火墙内部等数据流的关键入口、出口。 优点:可得到几乎所有关键数据。 缺点:必须与其他厂商紧密合作,且会降低网络性能。 c.采用分接器(Tap),将其接在所有要监测的线路上。 优点:再不降低网络性能的前提下收集了所需的信息。 缺点:必须购买额外的设备(Tap);若所保护的资源众多,IDS必须配备众多网络接口。 d.可能唯一在理论上没有限制的办法就是采用主机型IDS。 2.3 通信协议 IDS系统组件之间需要通信,不同的厂商的IDS系统之间也需要通信。因此,定义统一的协议,使各部分能够根据协议所致订的的标准进行沟通是很有必要的。 IETF目前有一个专门的小组Intrusion Detection Working Group (idwg)负责定义这种通信 格式,称作Intrusion Detection Exchange Format。目前只有相关的草案(internet draft),并未形成正式的RFC文档。尽管如此,草案为IDS各部分之间甚至不同IDS系统之间的通信提供了一定的指引。 IAP(Intrusion Alert Protocol)是idwg制定的、运行于TCP之上的应用层协议,其设计在很大程度上参考了HTTP,但补充了许多其他功能(如可从任意端发起连接,结合了加密、身份验证等)。对于IAP的具体实现,请参看 [9],其中给出了非常详尽的说明。这里我们主要讨论一下设计一个入侵检测系统通信协议时应考虑的问题: 1. 分析系统与控制系统之间传输的信息是非常重要的信息,因此必须要保持数据的真实性和完整性。必须有一定的机制进行通信双方的身份验证和保密传输(同时防止主动和被动攻击)。 2. 通信的双方均有可能因异常情况而导致通信中断,IDS系统必须有额外措施保证系统正常工作。