入侵检测系统的过去和现在以及未来

入侵检测系统(Intrusion Detection System,IDS)作为最常见的网络安全产品之一,已经得到了非常广泛的应用。但近年来随着入侵防御系统(Intrusion Prevention System,IPS)的异军突起,不断有人认为IPS是IDS的升级版本,甚至还有认为IDS没有用的言论出现。本文试从入侵检测系统的起源、成长和未来发展的几个角度出发进行分析,来看看到底入侵检测系统是"已死"还是"有发展"。

【入侵检测系统的起源】

一般意义上,业界将James P. Anderson在1980年发布的那篇《Computer Security Threat Monitoring and Surveillance》作为入侵检测概念的最早起源,在这篇文章里,不仅将威胁分为了外部渗透、内部渗透和不法行为三种,还创造性的提出了将审计技术应用到对威胁的检测上来。没错,虽然不论厂商还是用户,都是先开发/拥有入侵检测产品,而后再考虑审计产品,但从单纯的技术上来说,入侵检测技术的确是起源于审计技术,所不同的是,入侵检测更关注"坏"的事件,而审计产品则更多关注"好"事件。

但这只是一个概念的起步,一直到1986年Dorothy Denning等人才在其论文An Intrusion Detection Model中给出了一个入侵检测的抽象模型IDES(入侵检测专家系统),并在1988年开发出一个IDES系统:

在这个模型中,可以很清楚的看出Denning的二维检测思想:基于专家系统的特征检测以及基于统计异常模型的异常检测。这一点也奠定了入侵检测技术领域的两大方向:滥用检测(Misuse Detection)和异常检测(Anomaly Detection)

在这个模型的基础上,1990年Herberlein等人开发出了第一个真正意义上的入侵检测系统NSM(Network Security Monitor),在这个实物模型中,第一次采用了网络实时数据流而非历史存档信息作为检测数据的来源,这为入侵检测系统的产品化做出了巨大的贡献:再也不需要将各式各样的审计信息转化为统一格式后才能分析了,入侵检测开始逐步脱离"审计"的影子。谁也没有想到,过了不到10年的时间,审计产品反过来开始学习入侵检测产品的这种分析实时数据流的模式,这是另外一个话题,且按下不表。

【入侵检测系统的成长】

上世纪90年代中期,商业入侵检测产品初现端倪,1994年出现了第一台入侵检测产品:ASIM。而到了1997年,Cisco将网络入侵检测集成到其路由器设备中,同年,ISS推出Realsecure,入侵检测系统正式进入主流网络安全产品阶段。

在这个时期,入侵检测通常被视作防火墙的有益补充,这个阶段用户已经能够逐渐认识到防火墙仅能对4层以下的攻击进行防御,而对那些基于数据驱动攻击或者被称为深层攻击的威胁行为无能为力。厂商们用得比较多的例子就是大厦保安与闭路监控系统的例子,防火墙相当于保安,入侵检测相当于闭路监控设备,那些绕过防火墙的攻击行为将在"企图作恶"时,被入侵检测系统逮个正着。

而后,在20001~2003年之间,蠕虫病毒大肆泛滥,红色代码、尼姆达、震荡波、冲击波此起彼伏。由于这些蠕虫多是使用正常端口,除非明确不需要使用此端口的服务,防火墙是无法控制和发现蠕虫传播的,反倒是入侵检测产品可以对这些蠕虫病毒所利用的攻击代码进行检测(就是前面提到的滥用检测,将针对漏洞的攻击代码结合病毒特征做成事件特征,当发现有该类事件发生,就可判断出现蠕虫。),一时间入侵检测名声大振,和防火墙、防病毒一起并称为"网络安全三大件"。

正当入侵检测概念如日中天之际,2003年GARTNER的一篇《入侵检测已死》的文章,带来了一个新的概念:入侵防御。在此之前,防火墙产品之所以不能做4层以上的分析,有一个原因就是分析性能跟不上,入侵检测产品由于采用旁路部署方式,对数据实时性的要求不是很高。当硬件发展和软件算法都足以支撑串行设备进行深层分析的时候,串接在网络中,对应用层的威胁行为也能发现并防御的产品需求就呼之欲出了。一时间,入侵防御产品是入侵检测产品的升级版本,入侵检测产品没有用的言论甚嚣尘上。入侵检测产品是不是已经走到了产品生命周期的尽头,是不是已经没有人需要用入侵检测产品了呢?

【入侵检测系统的发展】

入侵检测产品真的只是防火墙的补充么?如果是这样的话,那么当网关类产品实现了对深层威胁行为的防御之后,入侵检测产品真的就寿终正寝了,这也是GARTNER认为入侵检测已死的最重要的原因:已经有了对应用层攻击进行防护的产品了,这种只能检测的产品–入侵检测,已经走了尽头。

其实不然,在入侵检测产品被广泛应用的过程中,"发现应用层攻击行为"已经不是入侵检测产品功能的全部了。旁路部署的入侵检测有一个最大的天然优势就是可以从全局的角度查看网络数据:不论是进出网络的,还是网络内部的。这使得入侵检测拥有了成为管理手段,而非使用工具的机会。

和入侵防御产品不同,入侵检测产品关注网络中的所有事件,而不仅仅是值得阻断的威胁事件。因为通过对历史数据的分析和对比,入侵检测可以实现其更高的管理价值:提供安全建设建议和评估网络安全建设效果。

提供安全建设建议

很少有安全产品像入侵检测产品那样需要加入大量的人工分析,这往往是那些"IDS无用论"拥趸们的武器:入侵检测不能"即插即用",还需要加入分析,很不好。但这恰恰是入侵检测产品最有价值的地方:它能告诉用户,什么地方存在什么样的威胁,需要如何处理。比如说熊猫烧香病毒,可以利用网络共享、U盘等方式进行传播,网关级的安全设备对这种"自内而外"的传播方式无能为力,防病毒软件则因为该病毒中有自动停止防病毒软件进程,修改防病毒软件注册表键值等手段而束手无策,只有入侵检测产品这种旁路监听的产品,可以及时发现网络中的异常,明确找出病毒根源并提出解决对策:隔离受感染主机、在防火墙等安全设备上增加安全策略、为服务器等重要资产划分独立区域、增加适当网络安全设备(如防病毒、防火墙)、完善计算机安全管理制度(不允许使用未经检验的移动存储设备等)。

评估网络安全建设效果

正是由于入侵检测产品需要人工分析,所以报表、日志数据库就一直作为入侵检测产品的重要组成部分,而正是有了这些历史数据的积累,才有了入侵检测的另外一个管理作用:评估安全建设效果。

我们来设想一个场景,怎样才能评估网络安全建设的效果呢?新购置的防火墙产品是否有用?放置的位置是不是最佳的选择?

没错,需要评估某事、某物的效果,不外乎调查和对比,收集此前、此后的相关数据并进行对照,有无效果一目了然。入侵检测产品就是这样一个可以协助效果评估的管理工具:它拥有最完善的网络历史和实时数据,网络过去的状况和现在的状况应有尽有。某用户初次部署入侵检测产品,发现一天中服务器遭受内外部威胁次数是100次,而整个网络事件次数为1000次,在经过增加其他安全产品,调整网络布局配置后,发现一天中服务器遭受威胁次数降低到了8次,整个网络事件次数为32次,这就说明安全建设(增加产品、调整配置等)是有效果的。

最后,我们用一个实际案例来说明入侵检测产品的效果。