但是不得不承认对于用户而言,选择IDS还是IPS仍然是个头疼的问题。笔者以为IDS和IPS分别是两种不同作用的安全产品,或者说侧重点是不同的。笔者并不赞同IPS的出现可以替代IDS的地位,就仿佛行为检测技术的出现,仍然需要成熟的特征码检测作为依据一样。
IDS的核心功能是对各种事件进行分析,从中发现违反安全策略的行为。从技术上讲,入侵检测分为两类:一种基于标志(signature-based),另一种基于异常情况(anomaly-based)。
对于基于标识的检测技术来说,首先要定义违背安全策略的事件的特征,如网络数据包的某些头信息。而基于异常的检测技术则是先定义一组系统“正常”情况的数值,如CPU利用率、内存利用率、文件校验和等,然后将系统运行时的数值与所定义的“正常”情况比较,得出是否有被攻击的迹象。这种检测方式的核心在于如何定义所谓的“正常”情况。
两种检测技术的方法、所得出的结论有非常大的差异。基于标志的检测技术的核心是维护一个知识库。对于已知的攻击,它可以详细、准确的报告出攻击类型,但是对未知攻击却效果有限,而且知识库必须不断更新。基于异常的检测技术则无法准确判别出攻击的手法,但它可以(至少在理论上可以)判别更广范、未知的攻击。
不得不承认IDS存在一些致命的缺陷,甚至有人认为IDS只报警不采取措施的方式不能保证网络的安全,但笔者认为这种说法是片面的,由于IDS的检测种类方式各不相同,所以不能简单的说只检测就不能有效的抵御网络攻击。因此笔者建议若用户仅仅关注网络安全状况的监控,只需在目标信息系统中部署IDS即可,配以优秀的网络管理人员,就可以解决遇到的大多数安全异常状况。
入侵防护系统 (IPS) 则倾向于提供主动防护,其设计宗旨是预先对入侵活动和攻击性网络流量进行拦截,避免其造成损失,而不是简单地在恶意流量传送时或传送后才发出警报。IPS 是通过直接嵌入到网络流量中实现这一功能的,即通过一个网络端口接收来自外部系统的流量,经过检查确认其中不包含异常活动或可疑内容后,再通过另外一个端口将它传送到内部系统中。
IPS实现实时检查和抵御入侵的原理在于IPS拥有数目众多的过滤器来防止各种攻击。当发现一种新的攻击手段时,IPS就会创建一个相应的过滤器。IPS数据包处理引擎是专门定制的集成电路,可以深层检查数据包的内容,如果有攻击者利用数据链路层至应用层的漏洞发起攻击,IPS能够从数据流中检查出这些攻击并加以阻止。
如此完善的检测你是否会心动呢?但是IPS 仍然面对很多挑战,其中主要有:单点故障、性能瓶颈、误报和漏报。IPS的设计原理要求必须以嵌入模式工作在网络中,这就可能造成瓶颈问题或单点故障。如果IDS 出现故障,最坏的情况是造成某些攻击无法被检测到,而嵌入式的IPS设备出现问题,就会严重影响网络的正常运转。如果IPS出现故障而关闭,用户就会面对一个由IPS造成的拒绝服务问题,所有客户都将无法访问企业网络提供的应用。
误报率和漏报率也需要IPS更好的关注。网络当中,一旦生成了警报,最基本的要求就是IPS能够对警报进行有效处理。如果入侵行为特征码不是十分完善,那么“误报”就有了可乘之机,合法流量也有可能被意外拦截。对于实时在线的IPS来说,一旦拦截了“攻击性”数据包,就会对来自可疑攻击者的所有数据流进行拦截。
IDS和IPS在网络的安全应用中都起着十分重要的作用,任何产品的开发都是围绕着核心产品价值展开,安全领域的核心价值就是保证网络的高度安全。因此IDS必须能够全面检测网络中各类安全事件,也就是说检测的全面性是考量IDS产品优劣的主要标准;
而IPS必须能精确阻断关键网络威胁,对关键网络威胁的防御能力以及防御的准确性是评判IPS产品优劣的主要标准。两种产品在本质上是不存在共存的冲突的,若用户计划在一次项目中实施完整的安全解决方案,则应同时选择并部署IDS和IPS两类产品。在全网部署IDS,在网络的边界点部署IPS;若用户计划分布实施安全解决方案或对安全的需求并不是十分迫切,可以考虑先部署IDS进行网络安全状况监控,以后随着业务量和安全需求的增加再部署IPS;若用户仅仅关注网络安全状况的监控,只需在网络中部署IDS即可。但不得不承认,网络是否安全的根本决定权还是在人,所以不论选购或使用何种设备,人的因素是不可忽视的。