入侵检测系统的测试与评估 (2)(2) 日志、报善、报告以及响应能力。日志能力是指检测系统保存日志的能力、按照特定要求选取日志内容的能力。报警能力是指在检测到入侵后,向特全部件、人员发送报警信号的能力以及在报警中附加信息的能力。报告能力是指产生入侵行为报告、提供查询报告、创建和保存报告的能力。响应能力是指在检测到入侵后进一步处理的能力,这包括阻断入侵、跟踪入侵者、记录入侵证据等。 系统的可用性。主要是指系统安装、配置、管理、使用的方便程度,系统界面的友好程度,攻击规则库维护的简易程度等方面。 总之,IDS是个比较复杂的系统,对IDS进行测试和评估不仅和IDS本身有关,还与应用IDS的环境有关。测试过程中涉及到操作环境、网络环境、工具、软件、硬件等方面。我们既要考虑入侵检测的效果如何,也要考虑应用该系统后它对实际系统的影响,有时要折衷考虑这两种因素。 5 对IDS进行测试评估一利用的相关数据 对IDS进行测试评估,也就是让IDS对进入到受保护系统的数据进行检测,以确定检测系统能否发现其中的入侵。要测试评估IDS,最准确的数据当然是根据实际运行环境产生的数据,但这通常是行不通的。因为各机构的数据中都包含一些隐私信息,他们不愿公开这些数据,并且即使有机构愿意公开自己的数据,也不大适合用来做通用测试,因为特定机构的数据都带有明显的特有的一些特性,具有一定的局限性,可重复性也不好。为此,在具体测试的时候,大都采用一些测试工具。通过这些工具来生成IDS的测试数据。 测试评估数据的生成需要满足下面几个条件,即数据的生成必须能自动完成,不需要人为的干预;要具有一定的可重复性,也就是说需要时可以产生相同的数据;要有一定的健壮性,可在无人监控的条件下,可运行较长时间。 测试评估IDS的数据包括两部分,一部分是训练数据,另外一部分是实际测试数据。这两部分数据中都包括正常数据和入侵数据。只有在正常数据的背景下,对IDS的测试评估结果才是客观和全面的。入侵行为在背景数据的掩护下,被检测系统发现的机率会大大降低。而IDS也可能将正常的流量行为误判为攻击,产生虚警。训练数据用来帮助IDS建立正常行为的模型,调整IDS各参数的设置。在训练数据中,入侵数据是明确标明的。测试数据用来对检测系统进行测试,其中的入侵数据没有标明。 通常使用下面三种方法生成既包含正常通信数据又有攻击的可公用的数据:抓取正常情况和被受控攻击时的运行通信数据。由于隐私和安全问题这显然行不通;从实际运行数据中清除秘密信息。并在其中加入攻击,这也行不通,因为很难清除秘密信息;在一个内部网中重建正常通信和攻击数据,这是我们采用的方法。 重建正常通信和攻击数据也就是仿真用户操作、模拟入侵。仿真用户操作即生成用户各种各样的正常使用模式,这些模式帮助基于异常检测的IDS建立正常行为的模型,并且以用户正常模式数据作为检测入侵的背景通信数据,对于确定IDS正常运行时的检测率和虚警率是非常必要的。模拟入侵应尽可能地覆盖多种类型,新的攻击只在测试数据一出现。设计攻击要考虑很多问题。要分析攻击的机制,并在测试系统中试验以便于分析和调节。分析要确定攻击在测试环境中能否工作,是否需要新软件或服务的支持。设计新奇的攻击以用来发现未利用的系统或网络漏洞。下面对用户正常模式的仿真和入侵仿真分别进行讨论。 目前,大多采用下面三种方法来仿真网络用户行为,即通用会话生成工具、测试软件包和录制重放实际数据。通用会话生成工具方法基于有限自动机来生成用户所有可能的操作。每种操作都有一定的操作规程,比如FTP操作,首先它要完成TCP三步握手初始化连接,然后要输入用户名和密码,用户名密码通过之后再浏览FTP服务器上的内容、下载或者上传,所有操作完成后离开服务器,结束TCP会话。根据这种通用规程,就可生成通用的会话,模拟用户操作。但是,这种方法只适用于测试有限的命令集,比如可仿真FTP客户,但不能仿真shell客户,并且这种仿真存在一些问题,因为用户操作的顺序和服务器端的响应都是不确定的,仿真并不能完全模拟用户的操作状况。操作系统开发商自带测试软件包是比较简单的模拟方法,通常用于测试评估操作系统服务的性能和应用服务软件是否按设计说明来实现。但是这种测试不能给出用户进行什么样的操作,只能告诉我们系统对正常请求的响应行为。录制重放方法是记录各种用户正常活动的数据,然后在测试平台上重放用户的活动过程。这种方法要求用户活动记录要足够多。