你在这个指南中将学到:签名和异常检测的优点和弱点以及这两种检测方法如何相互补充。 在购买入侵检测系统的过程中,一个决策的关键点通常是入侵检测系统采用签名还是异常检测引擎。最初厂商了解两种方法的优点并且把这两种方法都集成到入侵检测系统中。理解签名和异常检测这两种方法的优点和弱点揭示了它们是如何相互补充的。
签名检测
签名检测包括在网络通信中搜索一系列字节或者数据包队列以查找已知的恶意程序。这种检测方法的最大的好处是,如果你清楚你想要找出的网络行为,这种签名就很容易开发和理解。例如,你可以利用一个签名寻找在一个可利用的安全漏洞中的特定的字符串来检测利用特定的缓存溢出安全漏洞实施攻击的企图。这个由基于签名的入侵检测系统产生的事件能够传达什么导致了报警。模式匹配在现代系统上能够很快完成,因此对于确定的一套规则来说,进行这种检查所需要的计算能力是最小的。例如,如果你要保护的系统仅通过DNS、ICMP和SMTP通信,所有的其它签名都将被删除。
签名引擎也有自己的弱点。由于签名引擎仅检测已知的攻击,必须为每一种攻击制作一个签名,而且新的攻击还无法检测。由于签名通常是根据正常的表达和字符串设计的,因此,签名引擎还会出现不正确的检测结果。这两种机制只是在线路上传输的数据包中检测字符串。
虽然签名对于检测以固定方式实施的攻击很成功,但是对于人工制作的或者具有自我修正行为功能的蠕虫发起的多种形式的攻击的检测就有些力不从心。有些利用安全漏洞允许恶意用户把攻击隐藏在“nop 发生器”、负载编码器和加密数据通道的后面,使检测更加复杂。由于必须为每一种攻击的变体制作一个新的签名,而且随着规则的增加检测系统的运行速度将减缓,因此,签名引擎检测这些变化的攻击的整体能力将受到影响。这就是大多数入侵检测系统都使用2路服务器至8路服务器并且配置许多GB网卡的原因。
实际上,基于签名的入侵检测系统可以归结为攻击者和入侵检测系统签名开发商之间的军备竞赛。这场竞赛的关键是签名编写和应用到入侵检测引擎中的速度。
异常检测
异常检测技术是以网络行为基准概念为中心的。这个基准是人们接受的网络行为的解释。任何不符合人们预先制定的或者接受的行为模式都会被异常检测引擎查出来。
网络行为基准不可分割的组成部分是异常检测引擎认真分析所有层的协议的能力。对于每一个被监视的协议来说,异常检测引擎必须具有解码和处理协议的能力,以便理解其目的和负载。这种协议分析一开始将耗费昂贵的计算机资源,但是,这种分析能够让异常检测引擎随着规则数量的增长进行调整,并且在检测到异常行为时很少发出错误的警报。
异常检测引擎的缺点是确定规则的困难。进行分析的每一个协议都必须要进行定义、执行和测试,以验证其准确性。不同的厂商执行不同的协议使规则的制定过程更加复杂。在网络上传输的客户协议没有很大的努力是不能进行分析的。因此,必须要建立异常网络行为的详细知识,并且把这些知识输入到异常检测引擎的内存中,以便正确地实施监测。另一方面,一旦建立一个协议和定义一个行为,异常检测引擎就可以更迅速和更方便地调整检测范围。这个速度要比签名检测引擎的速度快得多,因为异常检测引擎不需要为每一个攻击和潜在的变体制作一个签名。
异常检测引擎的另一个弱点是异常使用行为中的恶意行为不能够检测出来。例如,一种对有安全漏洞的服务器实施的目录遍历攻击行为,由于这种攻击是根据网络协议编写的攻击程序,并且不启动任何协议以外的行为、负载或者限制带宽的标志,因此这类攻击就检测不出来。
然而,异常检测在检测新的攻击方面比签名检测引擎有优势,能够检测到签名引擎中不存在的新的攻击,如果新的攻击有异常的网络行为的话。最好的例子是这种系统检测新的自动传播的蠕虫。当一台新的系统被蠕虫感染之后,这个蠕虫就会以非常快的、异常的速度查找网络中具有安全漏洞的计算机,从而导致违反TCP连接或者带宽规则的不正常的恶意通信。
你可以看到一种检测方式的优点正好可以弥补另一种检测方式的弱点。反之亦然。在购买入侵检测系统时,选择检测方式不再是选择这一种而不选择那一种的问题了。而应该全部选择
阅读(3706) | 评论(0) | 转发(0) |