IDS入侵检测系统的测试与评估
容错性(Fault Tolerance):由于IDS是检测入侵的重要手段/所以它也就成为很多入侵者攻击的首选目标。IDS自身必须能够抵御对它自身的攻击,特别是拒绝服务(Denial-of-Service)攻击。由于大多数的IDS是运行在极易遭受攻击的操作系统和硬件平台上,这就使得系统的容错性变得特别重要,在测试评估IDS时必须考虑这一点。
·及时性(Timeliness):及时性要求IDS必须尽快地分析数据并把分析结果传播出去,以使系统安全管理者能够在入侵攻击尚未造成更大危害以前做出反应,阻止入侵者进一步的破坏活动,和上面的处理性能因素相比,及时性的要求更高。它不仅要求IDS的处理速度要尽可能地快,而且要求传播、反应检测结果信息的时间尽可能少。
3 IDS测试评估的方法步骤
前面我们已经讨论了IDS测试评估的性能指标,具体测试主要就是围绕这些指标来进行。大部分的测试过程都遵循下面的基本测试步骤:
·创建、选择一些测试工具或测试脚本。这些脚本和工具主要用来生成模拟的正常行为及入侵,也就是模拟IDS运行的实际环境。
·确定计算环境所要求的条件,比如背景计算机活动的级别。
·配置运行IDS。
·运行测试工具或测试脚本。
·分析IDS的检测结果。
美国加州大学的Nicholas J.Puketza等人把测试分为三类,分别与前面的性能指标相对应,即入侵识别测试(也可以说是IDS有效性测试)。资源消耗测试、强度测试。入侵识别测试测量IDS区分正常行为和入侵的能力,主要衡量的指标是检测率和虚警率。资源消耗测试(Resource Usage Tests)测量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的环境有关。测试过程中涉及到操作环境、网络环境、工具、软件、硬件等方面。我们既要考虑入侵检测的效果如何,也要考虑应用该系统后它对实际系统的影响,有时要折衷考虑这两种因素。