基于环境模拟的入侵检测系统测试方法
时间:01-24
来源:互联网
点击:
3.2 模拟网络环境
本文选择模拟网络环境来进行测试环境的设计,模拟测试环境大多数可以由实际的开发环境经过简单的改动而得到。它与前两种测试环境相比,优势在于:可控性好,能够根据测试需要定制和更改环境,可以测试的攻击范围大,种类多等。另外,在设计合理的情况下,其测试效果并不亚于真实的网络环境。从实现的角度考虑,这种模拟测试环境也能够满足绝大多数IDS测试的需要。基本思路是根据测试的要求,用一个简单的局域网来模拟规模较大的城域网和因特网。使用模拟网络环境进行IDS测试时需要开发与之相配套的软件平台。模拟网络结构如图2所示。
此网络可以模拟规模较大的、实际的网络结构和设备,也可以模拟实际网络中多种多样的网络服务。具体方法是利用专门产生网络流量的计算机来产生所需要的网络流量,然后使用软件把这些流量动态地分派给网络中的节点。一般需要两种产生流量的机器:外部流量产生器,产生模拟网络和因特网之间的会话和流量;内部流量产生机器,产生网络内部需要的会话和流量。这两种流量产生器能够产生比实际网络上更为丰富的会话和流量,因为它们可以进行人为的控制。流量的产生要考虑测试所需流量的大小以及网络规模的大小;另外还需要对多种网络服务和网络协议进行模拟,以及模拟一些分布式的流量,所以这样的流量产生器有时要占用好几台性能优越的计算机。
边界路由器介于流量产生器和网络环境之间,它起到划分内部流量和外部流量的作用。边界路由器还有向网内的其他路由器和设备分配流量的作用。其他的如防火墙和主机等设备与它们在实际网络中的作用和位置相同。这样的模拟环境基本上反映了真实网络的情况,进行合理的配置完全可以模拟真实网络环境的技术参数、流量要求等指标,而且整个模拟环境可以与外界完全隔离开来独立使用。
4 IDS测试平台
有了测试环境还不能完成IDS的测试工作,还需要针对测试环境利用软件搭建一个测试平台。基于上面的模拟网络的测试环境,建立软件测试平台,其流程如图3所示。
MIT在入侵检测系统测试评估上发展了一种系统和通用的评估方法。全部工作流程包括数据集的构造、测试过程、测试结果分析,提供改进算法的意见。这里提出的平台既考虑了通用性,也考虑了实际IDS开发环境的因素,它能够完成上述流程的全部工作,其中的关键部分有流量仿真、攻击仿真、事件合成等。
4.1 流量仿真
评估所需的网络流量仿真是一项很复杂的工作。常规用于研究网络性能的流量仿真方法所产生的数据包,不考虑数据内容,极有可能引起IDS的大量误报。一般的 IDS都工作于网络层或网络层之上,它们在协议规定的框架内对网络数据包的内容进行分析。因此,IDS评估环境中的网络流量仿真,一定是具体到各个协议的流量仿真。流量仿真的子系统结构如图4所示。
由于流量的产生不仅来自网络外部,还有来自网络内部其他主机的流量,这样就需要生成两种类型的网络流量:外部网络流量和内部网络流量。对应上一节中的测试环境,这两种网络流量是由测试环境中的外部流量产生器和内部流量产生器分别产生的。这两种类型的流量中又根据测试需要包含有正常的网络会话流量和非正常的 (有时是攻击性的)网络会话流量。
4.2 攻击仿真
攻击仿真是整个测试过程的关键,也是测试结果是否合理的关键。攻击仿真的前期准备工作是收集足够多的攻击数据,实际上是收集现有所有已知的攻击和系统的弱点数据。这些数据主要来自一些研究机构,像MIT的林肯实验室、IBM的苏黎世研究院和一些网络界有名的讨论组(社区),如The NSS Group等,其中MIT林肯实验室的数据就其可用性、全面性和权威性都得到了广泛的认可。
测试用例的选择应该尽可能的全面,但是不可能把每一种现有的攻击都试验一遍,因此要把所有的攻击按照某种标准进行划分,在所划分的每个子集里挑选若干个典型的攻击来完成测试。实施具体的攻击,可以利用软件直接来实现,也可以用编写脚本的方法来实现,利用shell编程和脚本语言编写攻击脚本来模拟入侵用户的行为,实现攻击的重放。
使用脚本和脚本解释器的方法来模拟用户的行为,对编写好的脚本进行解析,执行再利用网络连接命令连接到远端主机,就能够实现多种多样的攻击重放。如果编写并输人多个不同的脚本,用并行算法加以控制就能够模拟多个并发用户的行为,实现多用户并发攻击的模拟。攻击脚本的编写要事先制定统一的编写规范和格式。
4.3 事件合成
事件合成也是很重要的环节,它是对网络流量、模拟攻击和测试对比的综合考虑。一个仿真事件要包括事件的发生时间、结束时间和事件的内容等其他一些必要的相关信息。网络流量仿真中的事件可以是每一个网络连接,基于连接的流量如TCP,也可以是一个网络数据包,基于数据包的流量如UDP。主机使用仿真中的事件可以是网络服务的每次使用,也可以是一条用户指令的执行。合成好的原始事件一方面给测试模块做测试之用,一方面用日志记录下来以备离线考察。将测试结果和原始事件进行有效的对比就可以得出大部分的测试结果。
本文选择模拟网络环境来进行测试环境的设计,模拟测试环境大多数可以由实际的开发环境经过简单的改动而得到。它与前两种测试环境相比,优势在于:可控性好,能够根据测试需要定制和更改环境,可以测试的攻击范围大,种类多等。另外,在设计合理的情况下,其测试效果并不亚于真实的网络环境。从实现的角度考虑,这种模拟测试环境也能够满足绝大多数IDS测试的需要。基本思路是根据测试的要求,用一个简单的局域网来模拟规模较大的城域网和因特网。使用模拟网络环境进行IDS测试时需要开发与之相配套的软件平台。模拟网络结构如图2所示。

此网络可以模拟规模较大的、实际的网络结构和设备,也可以模拟实际网络中多种多样的网络服务。具体方法是利用专门产生网络流量的计算机来产生所需要的网络流量,然后使用软件把这些流量动态地分派给网络中的节点。一般需要两种产生流量的机器:外部流量产生器,产生模拟网络和因特网之间的会话和流量;内部流量产生机器,产生网络内部需要的会话和流量。这两种流量产生器能够产生比实际网络上更为丰富的会话和流量,因为它们可以进行人为的控制。流量的产生要考虑测试所需流量的大小以及网络规模的大小;另外还需要对多种网络服务和网络协议进行模拟,以及模拟一些分布式的流量,所以这样的流量产生器有时要占用好几台性能优越的计算机。
边界路由器介于流量产生器和网络环境之间,它起到划分内部流量和外部流量的作用。边界路由器还有向网内的其他路由器和设备分配流量的作用。其他的如防火墙和主机等设备与它们在实际网络中的作用和位置相同。这样的模拟环境基本上反映了真实网络的情况,进行合理的配置完全可以模拟真实网络环境的技术参数、流量要求等指标,而且整个模拟环境可以与外界完全隔离开来独立使用。
4 IDS测试平台
有了测试环境还不能完成IDS的测试工作,还需要针对测试环境利用软件搭建一个测试平台。基于上面的模拟网络的测试环境,建立软件测试平台,其流程如图3所示。

MIT在入侵检测系统测试评估上发展了一种系统和通用的评估方法。全部工作流程包括数据集的构造、测试过程、测试结果分析,提供改进算法的意见。这里提出的平台既考虑了通用性,也考虑了实际IDS开发环境的因素,它能够完成上述流程的全部工作,其中的关键部分有流量仿真、攻击仿真、事件合成等。
4.1 流量仿真
评估所需的网络流量仿真是一项很复杂的工作。常规用于研究网络性能的流量仿真方法所产生的数据包,不考虑数据内容,极有可能引起IDS的大量误报。一般的 IDS都工作于网络层或网络层之上,它们在协议规定的框架内对网络数据包的内容进行分析。因此,IDS评估环境中的网络流量仿真,一定是具体到各个协议的流量仿真。流量仿真的子系统结构如图4所示。

由于流量的产生不仅来自网络外部,还有来自网络内部其他主机的流量,这样就需要生成两种类型的网络流量:外部网络流量和内部网络流量。对应上一节中的测试环境,这两种网络流量是由测试环境中的外部流量产生器和内部流量产生器分别产生的。这两种类型的流量中又根据测试需要包含有正常的网络会话流量和非正常的 (有时是攻击性的)网络会话流量。
4.2 攻击仿真
攻击仿真是整个测试过程的关键,也是测试结果是否合理的关键。攻击仿真的前期准备工作是收集足够多的攻击数据,实际上是收集现有所有已知的攻击和系统的弱点数据。这些数据主要来自一些研究机构,像MIT的林肯实验室、IBM的苏黎世研究院和一些网络界有名的讨论组(社区),如The NSS Group等,其中MIT林肯实验室的数据就其可用性、全面性和权威性都得到了广泛的认可。
测试用例的选择应该尽可能的全面,但是不可能把每一种现有的攻击都试验一遍,因此要把所有的攻击按照某种标准进行划分,在所划分的每个子集里挑选若干个典型的攻击来完成测试。实施具体的攻击,可以利用软件直接来实现,也可以用编写脚本的方法来实现,利用shell编程和脚本语言编写攻击脚本来模拟入侵用户的行为,实现攻击的重放。
使用脚本和脚本解释器的方法来模拟用户的行为,对编写好的脚本进行解析,执行再利用网络连接命令连接到远端主机,就能够实现多种多样的攻击重放。如果编写并输人多个不同的脚本,用并行算法加以控制就能够模拟多个并发用户的行为,实现多用户并发攻击的模拟。攻击脚本的编写要事先制定统一的编写规范和格式。
4.3 事件合成
事件合成也是很重要的环节,它是对网络流量、模拟攻击和测试对比的综合考虑。一个仿真事件要包括事件的发生时间、结束时间和事件的内容等其他一些必要的相关信息。网络流量仿真中的事件可以是每一个网络连接,基于连接的流量如TCP,也可以是一个网络数据包,基于数据包的流量如UDP。主机使用仿真中的事件可以是网络服务的每次使用,也可以是一条用户指令的执行。合成好的原始事件一方面给测试模块做测试之用,一方面用日志记录下来以备离线考察。将测试结果和原始事件进行有效的对比就可以得出大部分的测试结果。
仿真 相关文章:
- 基于速度匹配软件的网络芯片仿真方法(11-06)
- 使用NI PXI和LabVIEW实时模块有效简化硬件在环仿真系统(06-14)
- PCI总线智能GJB289A仿真卡设计(01-06)
- 导入灵活的FPGA验证方法(06-21)
- 测试SDRAM控制器的PDMA(01-04)
- 安捷伦展示3D-EM软件版本整合电路设计流程(05-27)
