入侵检测系统的测试与评估(2)
发布时间:2010-06-29   作者:佚名

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性能评估工具,该工具可动态重放大量的数据。

 

6 测试评估IDS的环境配置与框架

 

在测试评估IDS时,很少会把IDS放在实际运行的网络中,因为实际网络环境是不可控的,并且实际网络环境的专用性也太强,很难对IDS进行准确的系统测试。所以一般要构建专用的网络的环境。

 

受保护系统模拟主机正常运行状况,网络负载生成器模拟内部网之间以及内部网与外部网之间的网络通信。攻击模拟用来模拟入侵者发起的攻击。IDS即为待检测的系统。由于有时实际的网络环境很大,有很多安装各种各样操作系统、应用软件的主机服务器,要求测试环境完全按照实际网络进行配置并不是很实际,所以在测试中一般采用虚拟主机技术。通常使用一些软件工具或者编写可自动运行的脚本来模拟各种主机的各种行为,相当于在一台物理主机上运行多台虚拟主机,每个虚拟主机模拟不同硬件上运行的不同操作系统、不同应用程序。一般来说,受保护主机要包含运行常用操作系统(比如Windows、Linux、SunOS)的主机。内部网网络负载生成器要模拟内部的网络流量以及内部的攻击,而外部位网络负载生成器要模拟外部的网络流量(比如访问Web页面,下载文件)以及外部的攻击。实际构建测试环境的过程是个复杂过程,它直接关系到评测的成功与否。

 

7 IDS测试评估现状以及存在的问题

 

虽然IDS及其相关技术已获得了很大的进展,但关于IDS的性能检测及其相关评测工具、标准以及测试环境等方面的研究工作还很缺乏。

 

Puketza等人在1994年开创了对IDS评估系统研究的先河,在他们开发的软件平台上可以实现自动化的攻击仿真。1998年Debar等在IDS实验测试系统的研究中,指出在评估环境中仿真正常网络流量是一件非常复杂而且耗时的工作。林肯实验室在1998年、1999年进行的两次IDS离线评估,是迄今为止最权威的IDS评估。在精心设计的测试网络中,他们对正常网络流量进行了仿真,实施了大量的攻击,将记录下的流量系统日志和主机上文件系统映像等数据,交由参加评估的IDS进行离线分析。最后根据各IDS提交的检测结果做出评估报告。目前美国空军罗马实验室对IDS进行了实时评估。罗马实验室的实时评估是林肯实验室离线评估的补充,它主要对作为现行网络中的一部分的完整系统进行测试,其目的是测试IDS在现有正常机器和网络活动中检测入侵行为的能力以及IDS的响应能力及其对正常用户的影响。IBM的Zurich研究实验室也开发了一套IDS测评工具。此外,有些黑客工具软件也可用来对IDS进行评测。

 

目前,市场上以及正在研发的IDS很多,各系统都有自己独特的检测方法。攻击描述方式以及攻击知识库,还没有一个统一的标准。这大大加大了测试评估IDS的难度,因为很难建立一个统一的基准,也很难建立统一的测试方法。

 

测试评估IDS中存在的最大问题是只能测试已知的攻击。在测试评估过程中,采用模拟的方法来生成测试数据,而模拟入侵者实施攻击面临的困难是只能掌握已公布的攻击,而对于新的攻击方法就无法得知。这样的后果是,即使测试没有发现IDS的潜在弱点,也不能说明IDS是一个完备的系统。不过,可以通过分类选取测试例子,使之尽量覆盖许多不同种类的攻击,同时不断更新入侵知识库,以适应新的情况。

 

并且,由于测试评估IDS的数据都是公开的,如果针对测试数据设计待测试IDS,则该IDS的测试结果肯定比较好,但这并不能说明它实际运行的状况就好。

 

此外,对评测结果的分析使用也有很多问题。理想状况是可以自动地对评测结果进行分析,但实际上很难做到这一点。对IDS的实际评估通常既包含客观的也包含主观的,这和IDS的原始检测能力以及它报告的方式有关。分析人员要在IDS误报时分析为什么会出现这种误报,在给定的测试网络条件下,这种误报是否合理等问题。评测结果的计分方式也很关键,如果计分不合理的话,得出的评测结果可信度也就不可能很高。比如,如果某个IDS检测不出某种攻击或对某种正常行为会产生虚警,则同样的行为都产生同样的结果,正确的处理方法是应该只计一次,但这很难把握,一旦这种效果被多次重复考虑的话,该IDS的评测结果肯定不是很理想,但实际上该人侵检测总体检测效果可能很好。

 

8 小结

 

入侵检测作为一门正在蓬勃发展的技术,出现的时间并不是很长;相应地对IDS进行评测出现得更晚。它肯定有很多不完善和有待改进的地方,这需要进一步的研究。其中几个比较关键的问题是:网络流量仿真、用户行为仿真、攻击特征库的构建、评估环境的实现以及评测结果的分析。

 

近几年来,我国的入侵检测方面的研究工作和产品开发也有了很大的发展。但对入侵检测评估测试方面的工作还不是很多。各入侵检测产品厂家基于各方面的原因,在宣传时常常夸大其词,而IDS的用户对此往往又不是很清楚,所以迫切需要建立起一个可信的测试评估标准。这对开发者和用户都有好处。

文章来源:IT世界
  • 联系我们 | 网站地图 | 法律声明 | 投资者关系 | 产品体验
  • © 启明星辰1996-2012 版权所有 京ICP备05032414号 京公网安备110108003435号