1第八章入侵检测系统第一节引言通过电子手段对一个组织信息库的恶意攻击称为信息战(informationwarfare)。攻击的目的可能干扰组织的正常活动,甚至企图对组织的信息库造成严重的破坏。对信息战的各种抵抗措施都可归结为三类:保护、检测、响应。保护(入侵的防范)指保护硬件、软件、数据抵御各种攻击的技术。目前各种网络安全设施如防火墙及VPN,各种加密技术,身份认证技术,易攻击性扫描等都属于保护的范围之内,它们是计算机系统的第一道防线。检测(入侵的检测)研究如何高效正确地检测网络攻击。只有入侵防范不足以保护计算机的安全,任何系统及协议都不可避免地存在缺陷,可能是协议本身也可能是协议的实现,还有一些技术之外的社会关系问题,都能威胁信息安全。因此即使采用这些保护措施,入侵者仍可能利用相应缺陷攻入系统,这意味着入侵检测具有其他安全措施所不能代替的作用。响应(入侵的响应)是入侵检测之后的处理工作,主要包括损失评估,根除入侵者留下的后门,数据恢复,收集入侵者留下的证据等。这三种安全措施构成完整的信息战防御系统。入侵检测(IntrusionDetection,ID)是本章讨论的主题之一,它通过监测计算机系统的某些信息,加以分析,检测入侵行为,并做出反应。入侵检测系统所检测的系统信息包括系统记录,网络流量,应用程序日志等。入侵(Intrusion)定义为未经授权的计算机使用者以及不正当使用(misuse)计算机的合法用户(内部威胁),危害或试图危害资源的完整性、保密性、可用性的行为。入侵检测系统(IntrusionDetectionSystem,IDS)是实现入侵检测功能的硬件与软件。入侵检测基于这样一个假设,即:入侵行为与正常行为有显著的不同,因而是可以检测的。入侵检测的研究开始于20世纪80年代,进入90年代入侵检测成为研究与应用的热点,其间出现了许多研究原型与商业产品。入侵检测系统在功能上是入侵防范系统的补充,而并不是入侵防范系统的替代。相反,它与这些系统共同工作,检测出已经躲过这些系统控制的攻击行为。入侵检测系统是计算机系统安全、网络安全的第二道防线。一个理想的入侵检测系统具有如下特性:能以最小的人为干预持续运行。能够从系统崩溃中恢复和重置。能抵抗攻击。IDS必须能监测自身和检测自己是否已经被攻击者所改变。2运行时占用系统的开销最小。能够根据被监视系统的安全策略进行配置。能在使用过程中适应系统和用户行为的改变。当被监控系统的规模和受攻击的机会增加时,我们认为下列的特征也同样重要:能够检测具有一定规模的网络。保证当IDS某一部分被攻破时,对其余部分造成的影响尽可能的小。允许动态的再配置,即它必须有不用重新启动而能再次配置的功能。提供很低的误报率。提供互操作性,在不同环境中运行的IDS组件能够相互作用。提供方便的用户界面,使管理者方便地配置和监视系统。能够以实时或接近于实时的方式检测入侵。目前的入侵检测系统(包括研究的原型和商业化的IDS)的数目已经超过一百个,它们只具有上述特征的一部分。3第二节入侵检测系统结构CIDF(CommonIntrusionDetectionFramework)定义了通用的IDS系统结构,它将入侵检测系统分为四个功能模块,如图8.1所示:TargetsystemEventgeneraterAnalysisengineResponseunitEventdatabase图8.1CIDF模型事件产生器(Eventgenerater,E-box)收集入侵检测事件,并提供给IDS其他部件处理,是IDS的信息源。事件包含的范围很广泛,既可以是网络活动也可是系统调用序列等系统信息。事件的质量、数量与种类对IDS性能的影响极大。事件分析器(Analysisengine,A-box)对输入的事件进行分析并检测入侵。许多IDS的研究都集中于如何提高事件分析器的能力,包括提高对已知入侵识别的准确性以及提高发现未知入侵的几率等。事件数据库(Eventdatabase,D-box)E-boxes和A-boxes产生大量的数据,这些数据必须被妥善地存储,以备将来使用。D-box的功能就是存储和管理这些数据,用于IDS的训练和证据保存。事件响应器(Responseunit,C-box)对入侵做出响应,包括向管理员发出警告,切断入侵连接,根除入侵者留下的后门以及数据恢复等。CIDF概括了IDS的功能,并进行了合理的划分。利用这个模型可描述当今现有的各种IDS的系统结构。对IDS的设计及实现提供了有价值的指导。4第三节入侵检测系统分类为了准确地分类,首先要确定用来分类的IDS特征。IDS是复杂的系统,若只用一种特征分类,结果将是粗糙的。因此本章根据多种特征对IDS进行了不同角度的分类。事件分析器是IDS的核心部分,故首先对检测方法进行分类。其次从事件产生器的角度分类,将采集事件种类或采集事件的方法作为分类标准。一、检测方法分类入侵检测的方法可大体分为两类:滥用检测(misusedetection)、异常检测(anomalydetection)。在IDS中,任何一个事件都可能属于以下三种情况:已知入侵已知正常状态无法判定状态第三种事件可能是一种未知的入侵,也可能是正常状态,但在现有的系统和技术下无法判定。目前的检测方法都是对已知入侵和已知正常状态的识别,其中滥用检测识别已知入侵,但对于无法判定状态中的未知入侵将漏报(falsenegative),异常检测根据已知的正常状态将已知入侵、无法判定状态都当作异常,因此会产生误报(falsepositive)。(一)滥用检测根据对已知入侵的知识,在输入事件中检测入侵。这种方法不关心正常行为,只研究已知入侵,能较准确地检测已知入侵,但对未知入侵的检测能力有限。目前大多数的商业IDS都使用此类方法。滥用检测所采用的技术包括:(二)专家系统使用专家系统技术,用规则表示入侵。通常使用的是forward-chaining、production-based等专家系统工具。例如DARPA的Emerald项目,将P-BEST工具箱应用于入侵检测。(三)状态转换模型将入侵表示为一系列系统状态转换,通过监视系统或网络状态的改变发现入侵。典型系统是NetSTAT。(四)协议分析与字符串匹配将已知攻击模式与输入事件进行匹配以判定入侵的发生,这种方法具有速度高、扩展性好的特点,但容易产生误报。典型系统包括shadow、Bro和Snort等。(五)异常检测5与滥用检测相反,异常检测对系统正常状态进行研究,通过监测用户行为模式、主机系统调用特征、网络连接状态等,建立系统常态模型。在运行中,将当前系统行为与常态模型进行比较,根据其与常态偏离的程度判定事件的性质。这种方法很有可能检测到未知入侵与变种攻击,但现有系统通常都存在大量的误报。未知入侵的检测是IDS中最具挑战性的问题,其难度比不正当行为检测要大。异常检测通常使用统计学方法和机器学习方法。(六)统计学方法使用统计分析方法建立系统常态模型。统计的数据源包括:用户的击键特征、telnet对话的平均长度等。通过监测输入值与期望值的偏离程度判断事件的属性,Emerald和cmds都包括了这种方式。(七)机器学习方法将机器学习领域的方法和工具如神经网络、数据挖掘、遗传算法、贝叶斯网络和人工免疫系统等应用于异常检测中。这种方法也是通过建立常态模型进行异常识别。每种方法都具有不同的适用范围和特色。目前研究的热点之一是噪声数据学习。(八)混合检测上述两类检测方法各有所长,滥用检测能够准确高效地发现已知攻击;异常检测能识别未知攻击。目前任何一种系统都不能很好地完成全部入侵检测任务。混合IDS中同时包含模式识别与异常识别系统,并且根据两种方法的特点对其进行分工,既能精确识别已知攻击,又能发现部分未知攻击,可减少误报和漏报。Emerlad是一种典型的混合系统。二、系统结构分类从IDS所监视的事件种类上可分为基于网络的IDS(Network-basedIDS,NIDS)和基于主机的IDS。按照IDS的响应方式可分为实时IDS和非实时IDS,按照采集事件的方式分为分布式IDS与集中式IDS。基于主机的IDS数据源包括:系统调用序列,存储系统的活动记录,系统日志等。由于基于主机的IDS对主机的信息有充分的掌握并且拥有对主机的较强的控制权,因此与网络入侵检测系统相比,其检测的准确性更高,误报率更低。同时基于主机的IDS更难以欺骗,对攻击的响应也更有效:可切断入侵连接,杀死进程。它的缺点是只能对一个主机进行保护,并对主机产生一定的负担,而且移植性差。基于网络的IDS通过监视网络流量检测入侵活动,简称为网络入侵检测系统(NIDS)。NIDS能对整个网络加以保护,其优点在于简便性和可移植性。NIDS的使用不会对现有网络系统造成明显影响,并能应用于各种网络环境。网络入侵检测系统由于只处理网络数据,对数据的语义掌握是不充分的,容易受到攻击和欺骗。适应高速网及提高可扩展性是NIDS需要解决的问题。6以上两种IDS都不能单独完成有效的入侵检测,二者的结合能达到取长补短的效果。目前一些商业IDS已经采用了这种方案,如RealSecurity,Axnet。IDS的应用规模也是一个重要的参数。现有的商业IDS的应用范围都是局域网。随着网络入侵的发展,攻击已进化为从不同主机发起的协同攻击。对这种攻击的检测是现有IDS所不能胜任的,需要依靠多点分布式网络入侵检测系统,通过联防来检测。三、典型的入侵检测系统IDS的研究从上世纪80年代就已开始,第一个商业IDS也在1991年诞生。目前各种IDS研究项目和商业产品的数量极为庞大,下面对具有代表性的入侵检测系统加以介绍,分为商业IDS、IDS研究项目和自由软件三个类别。(一)开放源码的IDS项目:SnortSnort是一种运行于单机的基于滥用检测的网络入侵检测系统。Snort通过libpcap获取网络包,并进行协议分析。它定义了一种简单灵活的网络入侵描述语言,对网络入侵进行描述(入侵特征或入侵信号)。Snort根据入侵描述对网络数据进行匹配和搜索,能够检测到多种网络攻击与侦察,包括:缓冲区溢出攻击,端口扫描,CGI攻击,SMB侦察等。并提供了多种攻击响应方式。对于最新的攻击方法,使用Snort的入侵描述语言能够快速方便地写出新攻击的描述,从而使Snort能够检测到这种攻击。在Internet上已建立了发布Snort入侵模式数据库的站点。Snort是极具活力的自由软件,在世界各地的志愿者开发下,技术和功能在不断提高。(二)商业产品国际市场上的主流商业IDS产品大部分为基于网络的,采用滥用检测方法的系统。主要有:1、RealSecureRealSecure由InternetSecuritySystems(ISS)开发,包括三种系统部件:网络入侵检测agent,主机入侵检测agent和管理控制台。RealSecure属于分布式结构,每个网络监视器运行于专用的工作站上,监视不同的网段。RealSecure的入侵检测方法属于滥用检测,能够检测几乎所有的主流攻击方式,并实现了基于主机检测和基于网络检测的无缝集成。对于不同的应用程序如Exchange、MSSQL、LDAP、Oracle和Sybase等,RealSecure提供了专门的系统代理进行入侵检测。整个系统由一个管理程序进行配置和与用户的交互,可提供安全报告等信息。RealSecure的缺点是无法进行包重组,这使得它容易受到欺骗。ISS在七种IDS的评测中得到了最高的评价。2、NFRNetworkFlightRecorder™(NFR)是一种基于滥用检测的网络入侵检测系统。它提供两种版本:商业版,研究版(提供源码),目前已停止了研究版的发行。NFR使用经过修改的Libpcap进行网络抓包,并拥有一种完善的包分析脚本语言N-code,通过它编7写对各种攻击的检测及处理程序。NFR是世界上第一种具有TCP包重组功能的IDS产品,这使得NFR能够抵抗Ptacek和Newsham提出的躲避IDS的方法。(