0 引 言
在保障网络的安全性时,入侵检测系统已经成为必选的技术和手段,因为它比起其他的安全技术存在着很多优势。用户在选用IDS时,总是从各自不同的需要来考虑。要衡量IDS的优劣,就需要明确IDS应该具备的性能指标,设计有效的方法来测试。实际上入侵检测系统的测试是一个难度较大的问题,也是一件费时耗力的工作。对于这一工作,许多研究机构都进行了相应的研究,给出了自己的测试方法和测试结果。例如MIT的林肯实验室分别在1998年和1999年进行了IDS的两次测试,这两次测试的结果曾受到广泛的关注。IBM的苏黎世研究院和其他一些研究机构也做过相似的工作。他们的工作都专注于IDS评估和测试的本身,没有过多考虑到开发者的需要,而且他们的方法实现起来代价都很大。本文既考虑到测试的目的,又考虑了开发者的需要,尽量能够保证测试环境和开发环境的融合,提出模拟现实的网络环境,然后搭建软件平台进行IDS测试的方法。该方法比较容易实现,可控制性强,能够满足IDS测试的多种需要,随后的仿真测试说明该方法是有效的。
1 IDS测试目的及指标
入侵检测系统是一个软硬件结合体系,可以借鉴软件测试方法来测试和评价入侵检测系统,但是纯粹的软件测试方法并不能很好地满足IDS测试的需要。首先要确定应该以什么样的标准来测试IDS,也就是选择测试指标。根据IDS的特点采取定量的测试方法,这些测试指标侧重于那些定量的测量,以及与检测准确度相关的项目。
IDS的主要目的就是有效地检测出入侵行为,并进行及时处理。检测率用来确定在一个时间段内及在给定的环境中IDS可以正确检测到攻击的比率。当系统将正常的行为确认为人侵行为时就是发生误报(False Positive)。误报率用来确定在一个特定的时间段内及在给定环境中IDS所产生的误报比率,大多数产生误报的原因是正常的非恶意的后台流量引起的。当系统将入侵行为确认为正常行为时,则发生漏报(False Negatire)。漏报率用来衡量一个特定的时间段及在给定环境中IDS所产生的漏报比率。
检测率和误报率是紧密相关的,受试者行为特性曲线(Receiver Operating Characteristic,ROC)反映了这两者之间的关系。ROC曲线的横轴是IDS的误报次数,纵轴为检测率,该曲线准确地刻画了IDS的检测率与误报率情况。利用ROC曲线还可以找出IDS的检测和误报之间的平衡点,但是为了获得这个点需要预先做很多工作。
除了上面的几项指标外,还有几项重要的指标需要加以考虑。它们包括:自身安全性(抵抗对于入侵检测系统本身的攻击)、处理高数据流量的能力、事件关联能力、检测未知攻击的能力、确认攻击是否成功的能力等。
2 IDS测试环境
测试环境是对IDS进行评估和测试的基础,因为它直接关系到测试的结果,也直接影响测试的真实性和客观性。无论何种类型的IDS,其运行的真实环境总是一个具体的网络。但是测试中环境却不拘泥于是否是在某种特定的网络里,IDS的部署和配置总是根据它所在的网络环境而千差万别,建立的测试环境应该能够满足IDS测试中多样性的需要,使它不仅能对测试环境进行灵活的调整,又能在现实网络中使其流量要求与技术指标相符合。测试环境分为三种:现实网络环境、纯软件模拟环境和模拟网络环境。
2.1 现实网络环境和模拟环境
现实网络环境就是本地现有的正在实际使用的网络环境。整个因特网就是一个最大的现实的网络测试环境,如图1所示。
在内网中布置了IDS,该IDS可以是基于主机(Host-based IDS)的,也可以是基于网络(Network-based IDS)的。发起攻击的主机(产生攻击行为的主机,这样的主机可以是一台也可以是多台)可以在网内,也可以在网外。网内和网外是一个相对而言的概念,把与IDS同在一个局域网中的设备和节点看作网内,其他情况称为网外。发起攻击测试的主机如果是在网内,那么它们应该与所要测试的IDS在同一个局域网内,如果这台主机是在网外,那么它的位置跨度可以很大,它们可以是因特网上的任何机器。