基于日志的网络流量的模拟仿真

来源 :吉林大学 | 被引量 : 0次 | 上传用户:pkuai
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近几年,商业化的入侵检测系统得到很快的发展,入侵检测系统已经成为大型网络的标准装备,然而如何定量评估这些系统的各项指标一直没有一个统一的标准,这是因为在测试中我们必须解决几个困扰我们的关键问题,这其中就包含背景流量的模拟仿真问题。文章首先分析IDS测试领域所面临的挑战,着重指出背景流量模拟在测试中的重要地位以及所面临的困难,对比了当前研究领域在这方面所做出的努力以及使用的技术。然后提出我们在测试中使用背景流量的基本思想以及实现的方法。在基本思想上,我们首先分析了当前背景流量回放的相关技术,提出借鉴tcpreplay的相关思想,开发了适合我们自身测试平台的流量回放系统。该系统在实现上依赖网络捕获包函数库libpcap以及网络包构造函数库libnet,采用Snort系统抓取网络流量形成的日志作为模拟流量的模版,在此基础上构造测试所需要的各种流量。在实现过程上主要分成3个主要的步骤:日志文件处理、控制处理、按需重建流量。日志文件是流量回放的关键来源,所以我们首先分析产生日志文件嗅探器所使用的网络嗅探原理以及技术,根据libpcap库定义的各种结构体分析日志文件中包含的诸如文件头、包前缀等信息,并提取以太网封包的信息。然后根据各种网络协议的封装格式,使用相关的数据结构提取以太网首部、IP报头、TCP段首部以及包含的数据等方面的信息。并通过包前缀指针的移动,依次得到日志中包含的各个包。控制操作时编辑我们所提取的各种信息,使之满足测试的要求,主要控制包括回放速度、放大倍数、地址信息的修改、被缩短包的处理。在速度控制上我们使用的是调整包与包之间发送的时间间隔来实现的,如果要提高发送速度就缩短指定倍数的间隔,反之调用Sleep函数延长包发送的间隔,达到减慢流量速度的目的。放大的倍数我们使用是调整单位时间发送比特的 <WP=45>数量,根据包的长度计算出每个包的发送时间,重新调整包时间戳来完成。地址信息的修改包含MAC地址以及IP地址的修改,MAC地址只需要在相关结构体内填入新的地址信息即可,IP地址由于我们是模拟操作,我们定义了一个随机的函数来指定新的地址。在日志中有许多被嗅探器裁减的数据包,我们使用两种方法处理这种包,一种是重新调整包的长度或者填充相应字段来保证包中信息的准确性,以便回放中不会被内核过滤掉。重建流量是整个系统的核心,我们使用libnet中构建数据包原理,根据各种协议的封装格式,在内存中构建一个数据包的缓冲区,根据前两步中提取与修改的信息,填充缓冲区,然后,依次写入链路层,由于所构建的流量同日志中记录的流量具有相同的特征,从而完成流量的模拟工作。在测试中,该系统能够准确回放我们产生的攻击流量与背景流量,在测试中同测试平台其他软件配合量良好。虽然libpcap已经有了windows的版本winpcap但libnet至今没有完成windows的移植工作,所以该系统只能在Linux或Unix平台上使用,随着libnet的windows版本的开发,应考虑把系统移植带主流的windows平台。该系统实现了网络流量回放的大部分功能,但是受限于libpcap和libnet本身技术问题,本系统也存在代码安全、执行速度、部署等方面的问题,这些问题有待以后解决。
其他文献
随着网络规模的急剧膨胀和应用类型的持续丰富,作为数据中心网络核心的交换机,承载功能不断扩展,使得交换机数据转发单元已经变得臃肿不堪。交换机厂商出于自身技术和市场占
在认知无线电传感器网络中,由于多数感知节点采用电池供电,因此,能量和频谱资源都是该网络的短缺资源,需要高效利用。认知无线电传感器网络通过频谱感知,保障授权用户的通信