1.入侵检测系统的分类
(1) 按实现技术划分
如果将所有与正常行为的轨迹不同的系统行为都视为可疑的入侵企图时(例如,通过流量统计分析发现异常的网络流量),这时的发现技术称为异常发现技术;
如果所有的入侵手段及其行为轨迹都可以用模式或特征加以描述时,那么,与正常行为模式不相匹配的行为均视为可疑的入侵行为,这样的发现技术称为模式发现技术。
异常发现技术的局限是并非所有的入侵都表现为异常,而且系统的轨迹也难于计算和更新。
模式发现技术的优点是误报少,但它的局限是只能发现已知的入侵,对未知的入侵无能为力。
(2) 按数据来源划分
如果按照IDS的数据来源范围来划分,IDS分为3类:基于主机的IDS(Host IDS,HIDS)、基于网络的IDS(Network IDS,NIDS)和分布式IDS(Distributed IDS,DIDS)。
1)基于主机的入侵检测系统
HIDS通常是安装在被重点检测的主机之上,主要是对该主机的网络实时连接以及系统审计日志进行智能分析和判断。如果其中主体活动十分可疑(特征或违反统计规律),IDS就会采取相应措施。
HIDS使用验证记录,并发展了精密的可迅速做出响应的检测技术。通常,HIDS可监探系统、事件和WindowNT下的安全记录以及UNIX环境下的系统记录。当有文件发生变化,IDS将新的记录条目与攻击标记相比较,看是否匹配。如果匹配,系统就会向管理员报警并向别的目标报告,以采取措施。
HIDS在发展过程中融入了其它技术。对关键系统文件和可执行文件的入侵检测的一个常用方法,是通过定期检查校验和来进行的,以便发现意外的变化。
反应的快慢与轮询间隔的频率有直接关系。最后,许多系统都是监听端口的活动,并在特定端口被访问时向管理员报警。这类检测方法将基于网络的入侵检测的基本方法融入到基于主机的检测环境中。
尽管HIDS不如NIDS快捷,但它确实具有基于网络的系统无法比拟的优点。这些优点包括:更好的辨识分析、对特殊主机事件的紧密关注及低廉的成本。
HIDS优点包括:
①确定攻击是否成功。由于基于HIDS使用含有已发生事件信息,它们可以比NIDS更加准确地判断攻击是否成功。在这方面,HIDS是NIDS完美补充,网络部分可以尽早提供警告,主机部分可以确定攻击成功与否。
②监视特定的系统活动。HIDS监视用户和访问文件的活动,包括文件访问、改变文件权限,试图建立新的可执行文件并且/或者试图访问特殊的设备。
例如,HIDS可以监督所有用户的登录及上网情况,以及每位用户在联结到网络以后的行为,对于NIDS要做到这个程度是非常困难的;
HIDS可监视只有管理员才能实施的非正常行为,操作系统记录了任何有关用户帐号的增加,删除、更改的情况,只要改动一且发生,HIDS就能检察测到这种不适当的改动;
HIDS可以监视主要系统文件和可执行文件的改变,系统能够查出那些欲改写重要系统文件或者安装特洛伊木马或后门的尝试并将它们中断,而NIDS有时会查不到这些行为。
③能够检查到NIDS检查不出的攻击。HIDS可以检测到那些NIDS察觉不到的攻击。例如,来自主要服务器键盘的攻击不经过网络,所以可以躲开NIDS。
④适用被加密的和交换的环境。
交换设备将大型网络分成许多小型网络加以管理,从覆盖足够大的网络范围的角度出发,很难确定配置NIDS的最佳位置,业务映射和交换机上的管理端口有助于此,但这些技术并不适用。
HIDS可安装在所需的重要主机上,在交换的环境中具有更高的能见度。
某些加密方式也向NIDS发出了挑战。由于加密方式位于协议堆栈内,所以NIDS可能对某些攻击没有反应,HIDS没有这方面的限制,当操作系统及HIDS看到即将到来的业务时,数据流已经被解密了。
⑤近于实时的检测和响应。
尽管HIDS不能提供真正实时的反应,但如果应用正确,反应速度可以非常接近实时。
老式系统利用一个进程在预先定义的间隔内检查登记文件的状态和内容,与老式系统不同,当前HIDS的中断指令,这种新的记录可被立即处理,显着减少了从攻击验证到作出响应的时间,在从操作系统作出记录到HIDS得到辨识结果之间的这段时间是一段延迟,但大多数情况下,在破坏发生之前,系统就能发现入侵者,并中止他的攻击。
⑥不要求额外的硬件设备。HIDS存在于现行网络结构之中,包括文件服务器,Web服务器及其它共享资源,这使得HIDS效率很高。因为它们不需要在网络上另外安装硬件设备。
⑦记录花费更加低廉。NIDS比HIDS要昂贵的多。
HIDS弱点包括:
①主机IDS安装在我们需要保护的设备上,如当一个数据库服务器要保护时,就要在服务器本身上安装IDS。
这会降低应用系统的效率。此外,它也会带来一些额外的安全问题,安装了HIDS后,将本不允许安全管理员有权力访问的服务器变成他可以访问的了。
②HIDS依赖于服务器固有的日志与监视能力。如果服务器没有配置日志功能,则必需重新配置,这将会给运行中的业务系统带来不可预见的性能影响。
③全面布署HIDS代价较大,企业中很难将所有主机用HIDS保护,只能选择部分主机保护。那些未安装HIDS的机器将成为保护的盲点,入侵者可利用这些机器达到攻击目标。
④HIDS除了监测自身的主机以外,根本不监测网络上的情况。对入侵行为的分析的工作量将随着主机数目增加而增加。
2)基于网络的入侵检测系统
NIDS,通过对网络中传输的数据包进行分析,从而发现可能的恶意攻击企图。一个典型的例子是在不同的端口检查大量的TCP连接请求,以此发现TCP端口扫描的攻击企图。
NIDS既可以运行在仅仅监视自己的端口的丰机上,也可以运行络在监视整个网络状态的处于混杂模式的sniffer主机上。
目前,大部分入侵检测的产品是基于网络的,有多个开放滤代码软件,如snort、NFR、shadow等,其中snort最著名,其研发进展和更新速度均超过大部分同类产品。
由于NIDS不像路由器、防火墙等关键设备方式工作,它不会成为系统中的关键路径。NIDS发生故障不会影响正常业务的运行。
NIDS只检查它直接连接的网段通信状态、不检测其它网段的数据包。在交换式以太网中会出现监视范围的局限。NIDS通常采用特征检测手段,对一些复杂的计算与分析的攻击较难检测到。
NIDS使用原始网络包作为数据源。NIDS通常利用一个运行在随机模式下的网络适配器来实时监视并分析通过网络的所有通信业务。
它的攻击辨识模块通常使用四种常用技术来识别攻击标志:模式、表达式或字节匹配;频率或穿越阀值;低级事件的相关性;统计学意义上的非常规现象检测。一旦检测到了攻击行为,IDS的响应模块就提供多种选项以通知、报警并对攻击采取相应的反应。
反应因系统而异,通常都包括通知管理员、中断连接并且/或为法庭分析和证据收集而做的会话记录。
NIDS已经成为安全策略实施的重要组件,它有许多仅靠HIDS无法提供的优点。
① 拥有成本较低。
NIDS可在几个关键访问点上进行策略配置,以观察发往多个系统的网络通信。所以它不要求在许多主机上装载并管理软件。由于需监测的点较少,因此对于一个公司的环境来说,拥有成本很低。
②检测HIDS漏掉的攻击。
NIDS检查所有包的头部从而发现恶意的和可疑的行动迹象。
HIDS无法查看包的头部,所以它无法检测到这一类型的攻击。例如,许多来自于IP地址的拒绝服务型和碎片型攻击只能在它们经过网络时,都可以在NIDS中通过实时监测包流而被发现。
NIDS可以检查有效负载的内容,查找用于特定攻击的指令或语法。
例如,通过检查数据包有效负载可以查到黑客软件,而使正在寻找系统漏洞的攻击者毫无察觉。由于HIDS不检查有效负载,所以不能辨认有效负载中所包含的攻击信息。
③攻击者不易转移证据。
NIDS使用正在发生的网络通讯进行实时攻击的检测,所以攻击者无法转移证据。
被捕获的数据不仅包括攻击的方法,还包括可识别的入侵者身份及对其进行起诉的信息。许多入侵者都熟知审计记录,他们知道如何操纵这些文件掩盖他们的入侵痕迹,来阻止需要这些信息的HIDS去检测入侵。
④实时检测和响应。
NIDS可以在恶意及可疑的攻击发生的同时将其检测出来,并做出更快的通知和响应。
例如,一个基于TCP的对网络进行的拒绝服务攻击可以通过将NIDS发出TCP复位信号,在该攻击对目标主机造成破坏前,将其中断。
而HIDS只有在可疑的登录信息被记录下来以后才能识别攻击并做出反应。而这时关键系统可能早就遭到了破坏,或是运行HIDS的系统已被摧毁。
⑤检测未成功的攻击和不良意图。
NIDS增加了许多有价值的数据,以判别不良意图。
即便防火墙可以正在拒绝这些尝试,位于防火墙之外的NIDS可以查出躲在防火墙后的攻击意图。
HIDS无法查到从未攻击到防火墙内主机的未遂攻击,而这些丢失的信息对于评估和优化安全策略是至关重要。
⑥操作系统无关性。
NIDS作为安全监测资源,与主机的操作系统无关。
与之相比,HIDS必须在特定的、没有遭到破坏的操作系统中才能正常工作,生成有用的结果。
NIDS有向专门的设备发展的趋势,安装这样的一个NIDS非常方便,只需将定制的设备接上电源,做很少一些配置,将其连到网络上即可。
NIDS有如下的弱点:
①NIDS只检查它直接连接网段的通信,不能检测在不同网段的网络包。在使用交换以太网的环境中就会出现监测范围的局限。而安装多台NIDS的传感器会使布署整个系统的成本大大增加。
②NIDS为了性能目标通常采用特征检测的方法,它可以检测出普通的一些攻击,而很难实现一些复杂的需要大量计算与分析时间的攻击检测。
③NIDS可能会将大量的数据传回分析系统中。在一些系统中监听特定的数据包会产生大量的分析数据流量。一些系统在实现时采用一定方法来减少回传的数据量,对入侵判断的决策由传感器实现,而中央控制台成为状态显示与通信中心,不再作为入侵行为分析器。这样的系统中的传感器协同工作能力较弱。
④NIDS处理加密的会话过程较困难,目前通过加密通道的攻击尚不多,但随着IPv6的普及,这个问题会越来越突出。
3)分布式入侵检测系统
目前这种技术在ISS的RealSecure等产品中已经有了应用。它检测的数据也是来源于网络中的数据包,不同的是,它采用分布式检测、集中管理的方法。
即在每个网段安装一个黑匣子,该黑匣子相当于NIDS,只是没有用户操作界面。
黑匣子用来监测其所在网段上的数据流,它根据集中安全管理中心制定的安全策略、响应规则等来分析检测网络数据,同时向集中安全管理中心发回安全事件信息。
集中安全管理中心是整个DIDS面向用户的界面。它的特点是对数据保护的范围比较大,但对网络流量有一定的影响。
2.入侵监测系统的部署
攻击检测系统中事件产生器所收集信息的来源可以是主机、网络和其他安全产品。
如果信息源仅为单个主机,则这种攻击检测系统往往直接运行于被保护的主机之上;
如果信息源来自多个主机或其他地方,则这种攻击检测系统一般由多个传感器和一个控制台组成,其中传感器负责对信息进行收集和初步分析,控制台负责综合分析、攻击响应和传感器控制。
图5-26为一典型的“传感器-控制台”结构的攻击检测系统的部署方案。
Snort是一款用C语言开发的开放源代码(http://www.snort.org)的跨平台网络入侵检测系统,能够方便地安装和配置在网络的任何一个节点上。
Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。
数据包记录器模式把数据包记录到硬盘上。网络入侵检测模式是最复杂的,但也是可配置的。
Snort使用基于规则的模式匹配技术来实现入侵检测功能,其规则文件是一个ASCII文本文件,可以用常用的文本编辑器对其进行编辑。
为了能够快速、准确地进行检测,Snort将检测规则采用链表的形式进行组织。Snort的发现和分析能力取决于规则库的容量和更新频率。
在共享HUB下的任一台计算机都能接收到本网段的所有数据包,这需要将网卡的工作模式设置为混杂模式,使之可以接收目标地址不是自己的MAC地址的数据包。
在UNIX系统中可以用Libpcap包捕获的函数库直接与内核驱动交互操作,实现对网络数据包的捕获。在Win32平台上可以使用Winpcap,通过VxD虚拟设备驱动程序实现网络数据捕获的功能。
在交换HUB下的计算机只能接收发往自己的数据包和广播包,交换HUB下数据包的捕获需要在HUB处通过镜像方法实现。