随着入侵检测系统的广泛应用,对入侵检测系统进行测试和评估的要求也越来越迫切。开发者希望通过测试和评估发现产品中的不足,用户希望测试和评估来帮助自己选择合适的入侵检测产品。本文根据目前的相关研究,介绍了入侵检测系统测试评估的标准、指标,方法步骤、数据来源、环境配置、测试评估的现状以及其中存在的一些问题。
1 引言
随着人们安全意识的逐步提高,入侵检测系统(IDS)的应用范围也越来越广,各种各样的IDS也越来越多。那么IDS能发现入侵行为吗?IDS是否达到了开发者的设计目标?什么样的IDS才是用户需要的性能优良的IDS呢?要回答这些问题,都要对IDS进行测试和评估。
和其他产品一样,当IDS发展和应用到一定程度以后,对IDS进行测试和评估的要求也就提上日程表。各方都希望有方便的工具,合理的方法对IDS进行科学。公正并且可信地测试和评估。对于IDS的研制和开发者来说,对各种IDS进行经常性的评估,可以及时了解技术发展的现状和系统存在的不足,从而将讲究重点放在那些关键的技术问题上,减少系统的不足,提高系统的性能;而对于IDS的使用者来说,由于他们对IDS依赖程度越来越大,所以也希望通过评估来选择适合自己需要的产品,避免各IDS产品宣传的误导。IDS的用户对测试评估的要求尤为迫切,因为大多数用户对IDS本身了解得可能并不是很深入,他们希望有专家的评测结果作为自己选择IDS的依据。
总地来说,对IDS进行测试和评估,具有以下作用:
?有助于更好地刻划IDS的特征。通过测试评估,可更好地认识理解IDS的处理方法、所需资源及环境;建立比较IDS的基准;领会各检测方法之间的关系。
?对IDS的各项性能进行评估,确定IDS的性能级别及其对运行环境的影响。
?利用测试和评估结果,可做出一些预测,推断IDS发展的趋势,估计风险,制定可实现的IDS质量目标(比如,可靠性、可用性、速度、精确度)、花费以及开发进度。
?根据测试和评估结果,对IDS进行改善。也就是发现系统中存在的问题并进行改进,从而提高系统的各项性能指标。
本文首先介绍了测试评估IDS性能的标准,然后介绍了测试评估的方法步骤,并且介绍测试评估的具体指标、所需的数据源、测试评估环境配置与框架,最后介绍了测试评估现状以及其中存在的一些问题。
2 测试评估IDS性能的标准
根据Porras等的研究,给出了评价IDS性能的三个因素:
?准确性(Accuracy):指IDS从各种行为中正确地识别入侵的能力,当一个IDS的检测不准确时,就有可能把系统中的合法活动当作入侵行为并标识为异常(虚警现象)。
?处理性能(Performance):指一个IDS处理数据源数据的速度。显然,当IDS的处理性能较差时,它就不可能实现实时的IDS,并有可能成为整个系统的瓶颈,进而严重影响整个系统的性能。
?完备性(Completeness):指IDS能够检测出所有攻击行为的能力。如果存在一个攻击行为,无法被IDS检测出来,那么该JDS就不具有检测完备性。也就是说,它把对系统的入侵活动当作正常行为(漏报现象)。由于在一般情况下,攻击类型、攻击手段的变化很快,我们很难得到关于攻击行为的所有知识,所以关于IDS的检测完备性的评估相对比较困难。
在此基础上,Debar等又增加了两个性能评价测度:
?容错性(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的关键指标(比如检测率、虚警率)的影响。
日志、报善、报告以及响应能力。日志能力是指检测系统保存日志的能力、按照特定要求选取日志内容的能力。报警