入侵检测系统的测试与评估(2)

发表于:2007-06-23来源:作者:点击数: 标签:
入侵检测 系统的测试与评估 4 测试评估IDS的 性能指标 在我们分析IDS的性能时,主要考虑检测系统的有效性、效率和可用性。有效性研究检测机制的检测精确度和系统检测结果的可信度,它是 开发 设计和应用IDS的前提和目的,是测试评估IDS的主要指标,效率则从

   
  入侵检测系统的测试与评估
    4 测试评估IDS的性能指标

在我们分析IDS的性能时,主要考虑检测系统的有效性、效率和可用性。有效性研究检测机制的检测精确度和系统检测结果的可信度,它是开发设计和应用IDS的前提和目的,是测试评估IDS的主要指标,效率则从检测机制的处理数据的速度以及经济性的角度来考虑,也就是侧重检测机制性能价格比的改进。可用性主要包括系统的可扩展性、用户界面的可用性,部署配置方便程度等方面。有效性是开发设计和应用IDS的前提和目的,因此也是测试评估IDS的主要指标,但效率和可用性对IDS的性能也起很重要的作用。效率和可用性渗透于系统设计的各个方面之中。本节从检测的有效性、效率以及可用性角度,对测试评估IDS的性能指标进行分析讨论。

4.1 检测率、虚警率及检测可信度
检测率是指被监控系统在受到入侵攻击时,检测系统能够正确报警的概率。虚警率是指检测系统在检测时出现虚警的概率。检测可信度也就是检测系统检测结果的可信程度,这是测试评估IDS的最重要的指标。

实际的IDS的实现总是在检测率和虚警率之间徘徊,检测率高了,虚警率就会提高;同样虚警率降低了,检测率也就会降低。一般地,IDS产品会在两者中取一个折衷,并且能够进行调整,以适应不同的网络环境。美国的林肯实验室用接收器特性(ROC,Receiver Operating Characteristic)曲线来描述IDS的性能。该曲线准确刻画了IDS的检测率与虚警率之间的变化关系。ROC广泛用于输入不确定的系统的评估。根据一个IDS在不同的条件(在允许范围内变化的阈值,例如异常检测系统的报警门限等参数)下的虚警率和检测率,分别把虚警率和检测率作为横坐标和纵坐标,就可做出对应于该IDS的ROC曲线。ROC曲线与IDS的检测门限具有对应的关系。

在测试评估IDS的具体实施过程中,除了要IDS的检测率和虚警率之外,往往还会单独考虑与这两个指标密切相关的一些因素,比如能检测的入侵特征数量、IP碎片重组能力、TCP流重组能力。显然,能检测的入侵特征数量越多,检测率也就越高。此外,由于攻击者为了加大检测的难度甚至绕过IDS的检测,常常会发送一些特别设计的分组。为了提高IDS的检测率降低IDS的虚警率,IDS常常需要采取一些相应的措施,比如IP碎片能力、TCP流重组。因为分析单个的数据分组会导致许多误报和漏报,所以IP碎片的重组可以提高检测的精确度。IP碎片重组的评测标准有三个性能参数:能重组的最大IP分片数;能同时重组的IP分组数;能进行重组的最大IP数据分组的长度,TCP流重组是为了对完整的网络对话进行分析,它是网络IDS对应用层进行分析的基础。如检查邮件内容。附件,检查FTP传输的数据,禁止访问有害网站,判断非法HTTP请求等。这两个能力都会直接影响IDS的检测可信度。

4.2 IDS本身的抗攻击能力
和其他系统一样,IDS本身也往往存在安全漏洞。若对IDS攻击成功,则直接导致其报警失灵,入侵者在其后所作的行为将无法被记录。因此IDS首先必须保证自己的安全性。IDS本身的抗攻击能力也就是IDS的可靠性,用于衡量IDS对那些经过特别设计直接以IDS为攻击目标的攻击的抵抗能力。它主要体现在两个方面:一是程序本身在各种网络环境下能够正常工作;二是程序各个模块之间的通信能够不被破坏,不可仿冒。此外要特别考虑抵御拒绝服务攻击的能力。如果IDS本身不能正常运行,也就失去了它的保护意义。而如果系统各模块间的通信遭到破坏,那系统的报警之类的检测结果也就值得怀疑,应该有一个良好的通信机制保证模块间通信的安全并能在出问题时能够迅速恢复。

4.3 其他性能指标
延迟时间。检测延迟指的是在攻击发生至IDS检测到入侵之间的延迟时间。延迟时间的长短直接关系着入侵攻击破坏的程度。

资源的占用情况。即系统在达到某种检测有效性时对资源的需求情况。通常,在同等检测有效性的前提下,对资源的要求越低,IDS的性能越好,检测入侵的能力也就越强。

负荷能力。IDS有其设计的负荷能力,在超出负荷能力的情况下,性能会出现不同程度的下降。比如,在正常情况下IDS可检测到某攻击但在负荷大的情况下可能就检测不出该攻击。考察检测系统的负荷能力就是观察不同大小的网络流量、不同强度的CPU内存等系统资源的使用对IDS的关键指标(比如检测率、虚警率)的影响。

日志、报善、报告以及响应能力。日志能力是指检测系统保存日志的能力、按照特定要求选取日志内容的能力。报警能力是指在检测到入侵后,向特全部件、人员发送报警信号的能力以及在报警中附加信息的能力。报告能力是指产生入侵行为报告、提供查询报告、创建和保存报告的能力。响应能力是指在检测到入侵后进一步处理的能力,这包括阻断入侵、跟踪入侵者、记录入侵证据等。

系统的可用性。主要是指系统安装、配置、管理、使用的方便程度,系统界面的友好程度,攻击规则库维护的简易程度等方面。

总之,IDS是个比较复杂的系统,对IDS进行测试和评估不仅和IDS本身有关,还与应用IDS的环境有关。测试过程中涉及到操作环境、网络环境、工具、软件、硬件等方面。我们既要考虑入侵检测的效果如何,也要考虑应用该系统后它对实际系统的影响,有时要折衷考虑这两种因素。

5 对IDS进行测试评估一利用的相关数据

对IDS进行测试评估,也就是让IDS对进入到受保护系统的数据进行检测,以确定检测系统能否发现其中的入侵。要测试评估IDS,最准确的数据当然是根据实际运行环境产生的数据,但这通常是行不通的。因为各机构的数据中都包含一些隐私信息,他们不愿公开这些数据,并且即使有机构愿意公开自己的数据,也不大适合用来做通用测试,因为特定机构的数据都带有明显的特有的一些特性,具有一定的局限性,可重复性也不好。为此,在具体测试的时候,大都采用一些测试工具。通过这些工具来生成IDS的测试数据。

测试评估数据的生成需要满足下面几个条件,即数据的生成必须能自动完成,不需要人为的干预;要具有一定的可重复性,也就是说需要时可以产生相同的数据;要有一定的健壮性,可在无人监控的条件下,可运行较长时间。

测试评估IDS的数据包括两部分,一部分是训练数据,另外一部分是实际测试数据。这两部分数据中都包括正常数据和入侵数据。只有在正常数据的背景下,对IDS的测试评估结果才是客观和全面的。入侵行为在背景数据的掩护下,被检测系统发现的机率会大大降低。而IDS也可能将正常的流量行为误判为攻击,产生虚警。训练数据用来帮助IDS建立正常行为的模型,调整IDS各参数的设置。在训练数据中,入侵数据是明确标明的。测试数据用来对检测系统进行测试,其中的入侵数据没有标明。

通常使用下面三种方法生成既包含正常通信数据又有攻击的可公用的数据:抓取正常情况和被受控攻击时的运行通信数据。由于隐私和安全问题这显然行不通;从实际运行数据中清除秘密信息。并在其中加入攻击,这也行不通,因为很难清除秘密信息;在一个内部网中重建正常通信和攻击数据,这是我们采用的方法。

重建正常通信和攻击数据也就是仿真用户操作、模拟入侵。仿真用户操作即生成用户各种各样的正常使用模式,这些模式帮助基于异常检测的IDS建立正常行为的模型,并且以用户正常模式数据作为检测入侵的背景通信数据,对于确定IDS正常运行时的检测率和虚警率是非常必要的。模拟入侵应尽可能地覆盖多种类型,新的攻击只在测试数据一出现。设计攻击要考虑很多问题。要分析攻击的机制,并在测试系统中试验以便于分析和调节。分析要确定攻击在测试环境中能否工作,是否需要新软件或服务的支持。设计新奇的攻击以用来发现未利用的系统或网络漏洞。下面对用户正常模式的仿真和入侵仿真分别进行讨论。

目前,大多采用下面三种方法来仿真网络用户行为,即通用会话生成工具、测试软件包和录制重放实际数据。通用会话生成工具方法基于有限自动机来生成用户所有可能的操作。每种操作都有一定的操作规程,比如FTP操作,首先它要完成TCP三步握手初始化连接,然后要输入用户名和密码,用户名密码通过之后再浏览FTP服务器上的内容、下载或者上传,所有操作完成后离开服务器,结束TCP会话。根据这种通用规程,就可生成通用的会话,模拟用户操作。但是,这种方法只适用于测试有限的命令集,比如可仿真FTP客户,但不能仿真shell客户,并且这种仿真存在一些问题,因为用户操作的顺序和服务器端的响应都是不确定的,仿真并不能完全模拟用户的操作状况。操作系统开发商自带测试软件包是比较简单的模拟方法,通常用于测试评估操作系统服务的性能和应用服务软件是否按设计说明来实现。但是这种测试不能给出用户进行什么样的操作,只能告诉我们系统对正常请求的响应行为。录制重放方法是记录各种用户正常活动的数据,然后在测试平台上重放用户的活动过程。这种方法要求用户活动记录要足够多。

用户正常行为的仿真主要包括网络流量仿真、主机正常使用仿真。大多数的网络IDS或者网络IDS的大部分都工作于网络层或网络层之上,它们对网络上的数据分组根据不同的协议进行相应的分析。因此,在仿真网络流量时,要仿真各种协议的各种应用的流量。通常,对实际流量进行分析,经统计计算,得到各个协议按时间的流量概率分布,以此为模型,分别仿真各个协议的流量。

主机的使用可以分为两个部分:主机所提供的网络服务的使用和主机的直接使用,即用户在主机上执行命令。相应的主机正常使用的仿真要分为两部分,即主机网络服务正常使用的仿真和主机直接使用的仿真。对主机提供的网络服务的正常使用进行仿真,可以采用两种方法。一是遍历法,即找出某个服务允许的所有正常使用模式,再由仿真程序,按这些模式依次对该服务进行访问。二是实际采样法,取得真实网络环境中某个服务的实际使用情况数据,分析出现的使用模式,再根据分析结果建立仿真模型进行仿真。此方法与网络流量仿真的方法类似。这两种方法各有优缺点、仿真实现中,应根据被仿真服务的具体情况进行选择。由于用户的行为因工作性质不同,会有很大差别,所以主机直接使用的仿真应将用户分为不同的种类(比如管理员、普通用户),根据不同的用户类型编写不同的脚本,实现主机直接使用的仿真。由于不同用户使用习惯变化很大,并且即使同一用户使用习惯也带有很大的随机性,这使得仿真的难度大大增加。在实际测试评估IDS时,一般只是仿真主机正常使用的一个具有代表性的子集。

攻击仿真是评估环境的核心,也是对IDS进行测试的关键。攻击仿真要尽可能多地搜集各种攻击方法。由于各种攻击的数量过于庞大,不可能对所有的攻击都进行仿真。参考软件测试领域中的等价划分方法(equivalence partitioning),在进行攻击仿真时,一般先将攻击分类,然后选择每种类别中典型的攻击方法进行仿真试验。选择好攻击类型后,在仿真时根据入侵者进行攻击的步骤进行仿真。在构造攻击数据时还要注意新式攻击。攻击方式隐秘的攻击、并行进行的攻击等方面。相对于旧式攻击、攻击方式明显的攻击以及串行进行的攻击而言,这些攻击方式对检测结果的影响可能会更大。

目前,测试数据所采用的格式大多采用Tcpdump数据格式和BSM数据格式,由于Windows系统广泛应用,Windows NT的日志格式也逐渐考虑进来。在测试数据方面,麻省理工学院林肯实验室的数据比较完备,它包括一定时间的训练数据和用于最后实际测试的检测数据。用于网络流量仿真的工具有Anzen公司开发的nidsbench以及加利福尼亚大学开发的入侵检测测试平台。nidsbench包括tcpreplay和fraqrouter两部分。tcpreplay的功能是将tcpdump复制的数据分组重放,还原网络的实际运行状态;而fraqrouter的功能是通过构造一系列躲避IDS检测的攻击以测试检测系统的正确性和安全性。加利福尼亚大学的IDS软件测试平台使用Tcl-DP(TooL Command Language Distributed Programming)工具开发实现。它共包含四组命令:基本的会话命令集、同步命令集、通信命令集、记录重放命令集。这些命令集分别用来仿真入侵者的基本操作,按指定要求产生事件,实现并发进程的通信以及记录用户会话期间的操作命令序列再重放这些记录。此外,麻省理工学院林肯实验室也开发了非实时IDS性能评估工具,该工具可动态重放大量的数据。

原文转自:http://www.ltesting.net