网络防火墙作为企业互联网安全的首选产品已经不能应对如今的网络安全威胁了,企业对网络安全性的要求越高,那么所需要采取的防范措施就越严密。选用优秀的IDS产品已经被许多公司提上了网络安全的议案。那么如何判断IDS产品是否能够应对企业标准呢?下文就主要讲述了企业测试IDS的的四条重要标准。
一、检测入侵
IDS最主要的功能是检测非法入侵。能够智能地报告入侵者的非法行为是检验IDS性能优劣的首要条件。用户安装上IDS后,在缺省情况下,应该对各个服务可能遇到的攻击进行告警检测。我们可以选择一些破坏性比较大的攻击,比如远程溢出攻击(只要攻击成功,即可全面控制计算机系统),这不为企业测试IDS的一种方式。面对这种攻击,如果IDS产品没有反应,那么附加功能再多,也是一个检测非法入侵能力低下的产品。
二、远程管理
IDS的机制是监视网络上的流量,如果所要监视的网络不止一个Hub或交换机,就要在每个Hub或交换机上安装网络引擎。这样我们就需要一个控制台和日志分析程序来管理和分析多个网络引擎及它们产生的告警。用户有时希望坐在办公室中实时查看和管理机房里的IDS,作为产品提供商,应该满足用户的这种需求,为用户提供远程管理功能,只是需要注意把这个功能和IDS的另一个功能(即远程告警)区分开。事实上,IDS还应该能够支持各种各样的远程告警方式,像打电话、发邮件等等。不过这种交流是单向的,用户只能被动地得到信息,而不能主动控制远程的网络引擎。
三、抗欺骗能力
IDS的目的是抵制入侵者,然而入侵者会想方设法逃避它。逃避IDS的方法很多,总结起来可以分成两大类: 让IDS漏报和让IDS误报。
1.IDS误报
所谓IDS误报是指: 明明没有这个攻击,但是入侵者让IDS拼命告警,使不断增长的告警日志塞满硬盘,以致翻滚的告警屏幕把管理者搞得眼花缭乱。这样,真正的攻击就可以夹杂在数不清的虚假告警中蒙混过关了。
2001年3月,国外网络安全产品评测人员Coretez Giovanni发现另外一种让IDS误报的入侵: 快速地产生告警信息,抑制IDS的反应速度,以致使IDS失去反应能力,甚至让系统出现死机现象。当时,Coretez写了一个名为Stick的程序,作为IDS产品的测试用例。它的作用是: 可以读入Snort(一种免费的IDS ,其下载网址为http://www.snort.org)的规则,然后按照Snort的规则组包。由于Snort的规则涵盖了绝大多数的攻击种类,所以IDS一旦匹配了按Snort规则产生的攻击报文,即可发出告警信息。对于比较有名的IDS像ISS Realscur和Snort,Stick都能给它们造成30s以上的停顿。所以,对于新出现的IDS及其造成的危害,用户绝不能忽视。另悉,ISS针对新型IDS误报入侵已发布了补丁程序,详见 http://www.iss.net/db_data/xpu/RSNS%202.2.php。
在发现新型IDS误报入侵方面,Stick功不可没。为了更好地测试用户选用的IDS产品,用户不妨从http://www.securityfocus.com/frames/?content=/templates/tools.html%3Fid%3D1974上下载Stick,其编译起来并不麻烦,只需查看帮助即可。需要指出的是,绝大多数的IDS都是从Snort得到众多借鉴的,在企业测试IDS的过程中建议用户试用一下Stick。
2.IDS漏报
和IDS误报相比,漏报其实更危险。采用IDS技术就是为了在发现入侵时给出告警信息。如果入侵者入侵成功而IDS尚未告警,IDS便失去存在的意义。笔者从国外网站上看到一篇文章,它对利用TCP连接特点让IDS做漏报进行了详细的描述,同时还给出一些实现漏报的办法,给笔者提供了一种新思路: IDS想要防止欺骗,就要尽可能地模仿TCP/IP栈的实现。但是从效率和实现的复杂性考虑,IDS并不能很容易地做到这一点。
这种方法比较适合智能化的IDS,好的IDS一般为了减少误报,会像现在一些高端的防火墙一样基于状态进行判断,而不是根据单个的报文进行判断。这样上面谈到的Stick对这种IDS一般不起作用。但是用户应该注意到,这种简单的IDS只是字符串匹配,一旦匹配成功,即可报警。
2001年4月,又出了一个让IDS漏报的程序ADMmutate,据说它可以动态改变Shellcode。本来IDS依靠提取公开的溢出程序的特征码来报警,特征码变了以后,IDS就报不出来了。但是程序还一样起作用,服务器一样被黑。这个程序的作者是ktwo(http://www.ktwo.ca),我们可以从http://www.ktwo.ca/c/ADMmutate-0.7.3.tar.gz上下载该程序。用户不妨也试试它,以检测自己的IDS产品性能。不过,ADMmutate只能对依靠检查字符串匹配告警的IDS起作用,如果IDS还依靠长度和可打印字符等综合指标,则ADMmutate将很容易被IDS监控到。
IDS的实现总是在漏报和误报中徘徊,漏报率降低了,误报率就会提高; 同样误报率降低了,漏报率就会提高。一般地,IDS产品会在两者中取一个折衷,并且能够进行调整,以适应不同的网络环境。
四、自身安全性
毫无疑问,IDS程序本身的健壮性是衡量IDS系统好坏的另一个指标。如上所述,Stick程序能让IDS停止响应,该IDS的健壮性就值得怀疑。
企业测试IDS的健壮性主要体现在两个方面: 一是程序本身在各种网络环境下都能正常工作; 二是程序各个模块之间的通信能够不被破坏,不可仿冒。IDS用于各个模块间远程通信和控制,如果通信被假冒,比如假冒一个停止远程探测器的命令或者假冒告警信息,都是釜底抽薪的狠招。这就需要用户在模块间的通信过程中引入加密和认证的机制,并且这个加密和认证的机制的健壮性要经受过考验。如果模块间的通信被切断,则需要良好的恢复重传机制。告警信息暂时没有发送出去,并不是丢弃,而是要本地保存,在适当的时候再发送。
从上面的描述中我们可以看到,没有IDS的安全防护体系是不完善的。希望本文可以帮助大家了解IDS,在网络安全体系中使用IDS增强网络的坚固性,并为用户选购IDS产品提供参考。
【编辑推荐】