入侵检测系统主要通过三种形式接入被保护的网络,一是以组件形式将IDS安装到网络中的单机节点上,用于检测单机节点上的异常现象
入侵检测系统主要通过三种形式接入被保护的网络,一是以组件形式将IDS安装到网络中的单机节点上,用于检测单机节点上的异常现象,如基于主机的HIDS;二是以单机节点形式将IDS并联在被保护网段中,用于检测整个网段上的异常现象,如基于网络的NIDS方式;三是以分布式检测网络的形式将各IDS分布式并联在单一网络的各被保护网段中,用于检测整个单一网络上的异常现象,如基于分布式的入侵检测系统。
入侵检测系统不论以哪种形式接入网络,都要求它具有安全性、完整性和并行性。安全性要求入侵检测系统本身不存在隐患,也不受威胁;完整性要求入侵检测系统能对所保护的全部对象及其内容进行检测分析,不能遗漏;并行性要求入侵检测系统能与所保护的整个系统中的各种活动同步,不能滞后。
尽管各类入侵检测系统能够检测出网络系统中存在的入侵行为和隐患,但由于网络系统的复杂性、网络技术和入侵检测技术的局限性等多种原因,入侵检测系统很难同时满足完整性和并行性的要求,入侵检测系统仍存在很多缺陷和隐患,只有正确认识和全面了解入侵检测系统的局限性和脆弱性,才能有效利用入侵检测系统提高网络的安全功能。
各种攻击行为多数是利用入侵检测系统在安全性、完整性和并行性上存在的缺陷而躲避检测的。归纳起来主要有四点,一是通过伪造合法的检测项目欺骗入侵检测系统;二是通过“借道”绕过入侵检测系统;三是利用时间差躲避入侵检测系统;四是通过直接破坏入侵检测系统及其工作环境,对整个被保护的系统构成更大的威胁。例如,直接破坏报警系统、破坏系统控制台、破坏与系统控制台通信的传感设备、破坏系统在内存和硬盘中使用的资源,以及对入侵检测系统实施DDoS攻击等,使其不能正常工作。
1.网络系统的局限性
基于网络的入侵检测系统是通过从网络上捕获数据包进行分析,从而检测和识别网络系统中的异常现象或非授权行为。但是,网络系统中传输的数据包是受网络拓扑、网络交换和路由,以及通信协议等限制的,因此严重限制了NIDS检测数据包的范围。
(1)利用网络拓扑绕过NIDS
根据网络系统结构的特点,通过精心策划和组织数据包,可以导致NIDS和被保护主机所收到的数据包完全不同,从而绕过NIDS的检测。以下是几个利用网络拓扑绕过NIDS的典型做法。
1)旁路路由
通过在网络中并接冗余路由,利用IP源路由选项,精心设计IP路由使数据包不经过带有NIDS保护的路由网段直接抵达受保护的主机。
2)TTL
通过精心设置IP选项中的TTL值,使数据包到达NIDS和被保护主机的跳数不同,从而使数据包只能被NIDS或被保护主机两者之一接收到。
3)TOS
通过精心设置IP选项中的TOS值,影响分别与NIDS和被保护主机相连的网络设备工作,导致NIDS和被保护主机所接收的数据包的顺序不同,从而使NIDS和被保护主机重组后的数据包不一致。
(2)利用网络交换速度逃避NIDS
早期的共享式HUB使网络监听十分容易,但目前的网络大多是采用交换机,因此网络监听受到严重限制,从而限制了NIDS检测数据包的能力。
目前较好一些的交换机均支持网络监听功能,并配置监听端口,通过监听端口可以对网络进行监听,但由于监听端口的处理速度和性能等问题,使网络监听的效果并不理想,经常会丢失数据包。其主要原因就是流量问题,正常流量情况下网络监听能起到一定的作用,但流量大时,监听端口的速度就跟不上了,从而引起丢包现象。
在网络交换中,以下三种情况都将影响监听端口的性能。
1)监听端口本身的流量最大达到单向流量的标准,如100 MB交换机的双向流量可能达到200 MB,而监听端口只能达到100 MB流量。
2)有时为了降低成本,在设计交换机时,常用一个监听端口监听交换机的多个端口,这种设计本身就限制监听能力,如果网络流量超过了设计时所能监听的最大流量,则必然引起数据包丢失问题。
3)网络交换非常频繁时,交换机的负载过大,监听端口的速度很难赶上其他端口的速度,从而引起丢包现象。
(3)利用网络协议躲避NIDS
目前大多数NIDS都是针对应用层协议中的部分协议内容的,如常用的HTTP、FTP和SMTP等,而对其他大部分协议特别是自定义协议是一筹莫展,如果使用NIDS无法识别的网络协议或自定义协议,则能轻松躲避NIDS的检测。另一方面,网络协议本身也存在缺陷,利用协议缺陷和IDS的弱点也能对NIDS构成一定的威胁。这方面的例子很多,如利用IP选项设置、利用数据包的发送和接收顺序构造协议变体等。
2.主机系统的局限性
基于主机的入侵检测系统是通过从主机系统中获取相关审计资源进行分析,从而检测和识别主机系统中的异常现象和非授权行为。但是,主机系统中的相关审计资源是受操作系统、审计内容和范围等限制的,因此限制了HIDS的功能。
(1)HIDS受操作系统的安全性威胁
HIDS是运行在主机操作系统上的,其安全性直接受操作系统安全性的影响。如果操作系统不可靠,则HIDS很可能因受攻击而瘫痪,即使HIDS正常工作,也只能检测那些已结束的攻击和未开始的攻击,很难检测出正在进行中的攻击。这是因为操作系统本身不能保证及时为HIDS提供可靠的用于检测的信息资源。另一方面,HIDS也不可能及时从主机系统中获取更多的信息资源,如果HIDS占用过多的主机资源,则会增加操作系统的负担,使HIDS更难及时从主机系统中获取有用信息,形成恶性循环。正因如此,极大限制了HIDS所采用的检测方法及处理性能。
(2)HIDS受审计资源的完整性威胁
目前HIDS所使用的审计资源主要是系统日志,通过对系统日志的监测分析来发现可疑行为,但是,由于各种原因系统日志所能记录的信息是有限的,对某些行为的描述也不够详细,甚至无法正确记录,有些行为本身也不会被系统日志记录下来。
另一方面,系统日志本身也可能是入侵者的攻击目标,有些入侵者完全可能在HIDS检测分析的间隙修改或清除在系统日志中所留下的全部痕迹。
3.入侵检测方法的局限性
目前入侵检测系统常用的入侵检测方法包括特征检测、异常检测、状态检测、协议分析等。这些检测方法均需要事先建立一个检测标准库,并根据标准完成检测工作,有的标准库还能够通过学习不断完善,具有一定的智能性。尽管如此,由于种种原因检测标准库中所列检测项目的完整性仍受到一定限制,检测方法也不可能十全十美。例如,如果数据在传输中被加密,即使只是简单的替换操作,也会使NIDS不知所措,像SSH、HTTPS,以及带密码的压缩文件等都可以躲避NIDS的检测。NIDS很难检测重放攻击、间接攻击、网络监听和DDoS等攻击行为。
在异常检测中,如果不能及时提供大量的原始审计记录,就很难利用统计特征判别入侵行为。对于较复杂的统计模型,在计算时间上就不能满足实时检测的需要。另外,确定某种行为是入侵行为的标准参数是难以确定的,过大会产生漏报,过小会产生误报,即使确定了这个参数,攻击者只要采取使攻击行为小于这个参数的办法,就可以威胁系统了。
在特征检测中,总是攻击方法在前,检测规则滞后,通常是在攻击发生后才能建立相应的检测规则,这种滞后现象,使攻击者有充足的时间进行入侵,很难防范。
对于NIDS,由于受保护的系统本身极其复杂,各种应用千变万化,即使对同一协议的实现也不尽相同。被保护系统中存在的这些处理上的差异严重影响了NIDS检测判断的准确性和有效性,从而使攻击者有机可乘。
对于HIDS,由于检测方法间存在差异,使用不同的检测方法对主机系统中同一行为的判别可能得到两个截然不同的结果,这不仅影响了HIDS本身的判断,也影响了管理员对主机系统的安全管理工作。如果入侵者精心策划更改系统核心内容,使采用不同的检测方法能得到一致的检测结果,就可以欺骗HIDS,换言之,系统已被更改,但HIDS却全然不知。另外,HIDS的检测方法主要是针对主机系统的,对网络状态的检测还缺乏经验,虽然有些HIDS具有检测网络状态的功能,但同样面临NIDS所面临的诸多问题。