目前,在安全市场上,最普遍的两种入侵检测产品是基于网络的网络入侵检测系统(NIDS)和基于主机的主机入侵检测系统(HIDS)。那么,NIDS与HIDS到底区别在哪里?用户在使用时该如何选择呢?
先来回顾一下的定义:所谓入侵检测,就是通过从计算机网络或计算机系统中的若干关键点收集信息并对其进行分析,从中发络或系统中是否有违反安全策略的行为和遭到袭击的迹象,并对此做出适当反应的过程。而入侵检测系统则是实现这些功能的系统。
这个定义是ICSA入侵检测系统论坛给出的。不难看出,IDS应该是包含了收集信息、分析信息、给出结论、做出反应四个过程。在IDS发展初期,想要全部实现这些功能在技术上是很难办到的,所以大家都从不同的出发点,开发了不同的IDS。
一般情况下,我们都按照“审计来源”将IDS分成基于网络的NIDS和基于主机的HIDS,这也是目前应用最普遍的两种IDS,尤以NIDS应用最为广泛。大部分IDS都采用“信息收集系统-分析控制系统”结构,即由安装在被监控信息源的探头(或代理)来收集相关的信息,然后按照一定方式传输给分析机,经过对相关信息的分析,按照事先设定的规则、策略等给出反应。
核心技术有差别
HIDS将探头(代理)安装在受保护系统中,它要求与内核和服务紧密捆绑在一起,监控各种系统事件,如对内核或API的调用,以此来防御攻击并对这些事件进行日志;还可以监测特定的系统文件和可执行文件调用,以及Windows NT下的安全记录和Unix环境下的系统记录。对于特别设定的关键文件和文件夹也可以进行适时轮询的监控。HIDS能对检测的行为、事件给予积极的反应,比如断开连接、封掉用户账号、杀死进程、提交警报等等。如果某用户在系统中植入了一个未知的,可能所有的杀软件、IDS等等的病毒库、攻击库中都没有记载,但只要这个程序开始工作,如提升用户权限、非法修改系统文件、调用被监控文件和文件夹等,就会立即被HIDS的发现,并采取杀死进程、封掉账号,甚至断开网络连接。现在的某些HIDS甚至吸取了部分网管、访问控制等方面的技术,能够很好地与系统,甚至系统上的应用紧密结合。
HIDS技术要求非常高,要求开发HIDS的对相关的操作系统非常了解,而且安装在主机上的探头(代理)必须非常可靠,系统占用小,自身安全性要好,否则将会对系统产生负面影响。HIDS关注的是到达主机的各种安全威胁,并不关注网络的安全。
因为HIDS与操作系统紧密相联,美国等发达国家对于HIDS技术都是严格控制的,而独自进行有关HIDS系统的研发,成本非常高,所以国内专业从事HIDS的企业非常少。国内市场上能见到的HIDS产品只有:理工先河的“金海豚”、CA的eTrust(包含类似于HIDS的功能)、东方龙马HIDS(纯软件的)、曙光GodEye等屈指可数的几个产品,而且能支持的操作系统也基本上都是Solaris、Linux、Wondows 2000非常少的几个。
NIDS则是以网络包作为分析数据源。它通常利用一个工作在混杂模式下的网卡来实时监视并分析通过网络的数据流,其分析模块通常使用模式匹配、统计分析等技术来识别攻击行为。一旦检测到了攻击行为,IDS的响应模块就作出适当的响应,比如报警、切断相关用户的网络连接等。与SCANER收集网络中的漏洞不同,NIDS收集的是网络中的动态流量信息。因此,攻击特征库数目多少以及数据处理能力,就决定了NIDS识别入侵行为的能力。大部分NIDS的处理能力还是100兆级的,部分NIDS已经达到1000兆级。NIDS设在后一个流动岗哨,能够适时发觉在网络中的攻击行为,并采取相应的响应措施。
目前市场上最常见的入侵检测系统,绝大多数大都是NIDS,比如东软NetEye、网御、上海金诺KIDS、启明星辰天阗、NAI McAfee IntruShied、安氏LinkTrust等等。
HIDS与NIDS虽然基本原理一样,但实现入侵检测的方法、过程和起到的作用都是不相同的,他们区别主要如上表所示。
性能和效能标准不同
在衡量IDS性能和效能的有关标准方面,HIDS和NIDS也有很大的不同。
HIDS由于采取的是对事件和系统调用的监控,衡量它的技术指标非常少,一般用户需要考虑的是,该HIDS能够同时支持的操作系统数、能够同时监控的主机数、探头(代理)对主机系统的资源占用率、可以分析的协议数,另外更需要关注的是分析能力、数据传输方式、主机事件类的数目、响应的方式和速度、自身的抗攻击性、日志能力等等,一般我们采购HIDS需要看的是研发企业的背景、该产品的应用情况和实际的攻击测试。
而NIDS就相对比较简单。NIDS采取的基本上都是模式匹配的形式,所以衡量NIDS的技术指标可以数量化。对于NIDS,我们要考察的是:支持的网络类型、IP碎片重组能力、可以分析的协议数、攻击特征库的数目、特征库的更新频率、日志能力、数据处理能力、自身抗攻击性等等。尤其要关注的是数据处理能力,一般的企业100兆级的足以应付;还有攻击特征库和更新频率,国内市场常见的NIDS的攻击特征数大概都在1200个以上,更新也基本上都是每月,甚至每周更新。采购NIDS需要注意的是漏报和误报,这是NIDS应用的大敌,也会因各开发企业的技术不同有所不同,所以,在采购时最好要做实际的洪水攻击测试。
HIDS和NIDS这两个系统在很大程度上是互补的,许多机构的网络安全解决都同时采用了基于主机和基于网络的两种入侵检测系统。实际上,许多用户在使用IDS时都配置了基于网络的入侵检测,但不能保证检测并能防止所有的攻击,特别是一些加密包的攻击,而网络中的DNS、Email和经常是攻击的目标,但是,它们又必须与外部网络交互,不可能对其进行全部屏蔽,所以,应当在各个上安装基于主机的入侵检测系统。因此,即便是小规模的网络结构,也常常需要基于主机和基于网络的两种入侵检测能力。
应用领域分化明显
在应用领域上,HIDS和NIDS有明显的分化。NIDS的应用行业比较广,现在的电信、银行、金融、电子政务等领域应用得最好。由于我国的主要电信骨干网都部署了NIDS,所以2002年的大规模DoS攻击时,我们的骨干网并没有遭到破坏,而且以此为契机,NIDS迅速地推广到各个应用领域,甚至可以说,“2004年NIDS的应用是沿着防火墙走的”。
但在NIDS的应用过程中,最大的敌人就是误警和漏警。漏警不影响应用环境的可用性,只是用户的投资失误;而误警则有可能导致警报异常、网络紊乱,甚至应用的瘫痪。误警很多时候是设置不当造成的,许多用户简单把这些都归结为检测错误率(False Positives),这是不正确的。由于技术的发展,NIDS的检测错误率实际上已经很低了,我们要努力做的是与用户一起,深入理解应用,科学的配置,这才能有效减少误警率。所有说,应用不仅是NIDS厂商的事情,真正的主角应该是用户。
HIDS的应用,远比NIDS要复杂的多。由于HIDS不像NIDS有许多可以数据化的技术指标,而且又要在被监控的主机上安装探头(代理),使得应用对它都有一定的担忧。所以对于系统稳定性比较高的一些行业像银行、电信等对其应用,都非常谨慎。而对于国防、军工、机要保密等领域,对系统的安全、特别是要求比较高,而对系统的稳定性不是太敏感,而且更关注来自内部的攻击(一般这些领域的信息系统是不与公网相连的),所以对HIDS的应用比较容易接受,反而NIDS不是很看重。实际上,目前中国的HIDS市场也主要在这些领域。
由于技术进步和信息安全威胁的增加,从2003年下半年开始,HIDS在其他领域的应用也慢慢多起来了。大型商业企业、企业以及电子政务系统也都将HIDS纳入了基本的安全架构当中。