一种面向会话的网络流量存储及索引方法技术

技术编号:36358562 阅读:54 留言:0更新日期:2023-01-14 18:15
本发明专利技术属于信息安全技术领域,具体是一种面向会话的网络流量存储及索引方法,包括数据包存储和数据索引两个步骤,所述数据包存储步骤如下:网络流量镜像;高性能流量采集;数据包协议解析;会话重组;会话数据包缓存;会话数据包缓存;预分配存储分区;数据包分块存盘;会话消亡。本发明专利技术设计了一种会话ID,其中承载了会话数据包在磁盘上的位置信息,通过会话ID可以直接其数据包在磁盘上的绝对位置,另外尽可能的增大每个分块的存储的数据包数量,让短时间活动的网络会话只需要一到两个分块就能存储,这样在检索时也只需要发起一到两次顺序IO就能完整读取数据包到内存,从而快速的会话数据包检索。包检索。包检索。

【技术实现步骤摘要】
一种面向会话的网络流量存储及索引方法


[0001]本专利技术属于信息安全
,具体是一种面向会话的网络流量存储及索引方法。

技术介绍

[0002]近年来,随着网络安全技术的发展,越来越多高级、复杂且隐蔽的攻击手法不断被开发出来,比如0day/Nday漏洞利用攻击、供应链攻击、无文件攻击等,这些攻击手段尤其在APT(Advanced Persistent Threat)攻击中应用的最为广泛。由于攻防的不对称,防御方往往无法在第一时间发现和防御这些攻击手段,因此,留存完整的原始网络流量是安全分析人员对网络攻击事件进行溯源和取证的重要技术手段,网络流量存储和溯源技术比较广泛的应用在政府、金融和科研等重要领域。
[0003]在现有技术方案中,已经有一些公开的软件来实现数据包留存,如tcpdump和wireshark,这两个软件都可以将网络流量保存为常见的数据包格式,如pcap格式,但由于实现技术以及磁盘IO性能的限制,这两个软件都无法实现高性能的数据包索引。数据包存储和索引技术的主要瓶颈之一是磁盘IO的速度限制,虽然目前raid5硬盘阵列的顺序读写入性能能够达到1GB/S以上,但随机读写的性能却很低,4KB大小的随机磁盘读取性能的IOPS仅有200左右,换算速率仅为1MB/S左右。为了优化磁盘IO性能,目前常见的优化手段是将磁盘随机IO转变为顺序IO,同时通过压缩和去重等手段降低数据量以减少磁盘IO数据量。
[0004]为了解决数据包存储和快速索引问题,专利CN103259737A提出了一种基于多队列并行写入磁盘的数据包存储方案,通过分块并行写入实现了比较高的写入性能,但仅对时间戳生成了索引,无法支持其他复杂条件的减少。专利CN109067711A提出了一种基于pcapng扩展格式文件的数据包快速回溯分析方法,主要思路是在文件尾部生成一个单独的数据块来记录每个数据包的时间戳和偏移索引数据,数据包依然是pcapng格式顺序存储,但为每个数据包抽取了单独的数据包元数据,包括数据包类型、应用层协议、L3偏移、L4偏移、会话ID、四元组等,索引过程是通过时间戳定位数据包偏移,然后依次遍历数据包元数据和数据包内容。专利CN113590910A将每个会话的数据包作为一个集合并存储到一个连续区域中,同时生成了单独的索引文件分别存储每个会话数据包的存储位置位置向量,根据会话源IP、目的IP、源端口、目的端口、协议、mac地址等字段建立了索引文件,这些偏移向量和元数据索引文件按照时间顺序生成文件夹存放,并以此作为时间戳索引,根据这些索引文件并配合多种索引算法最终实现了时间、五元组、MAC地址和其他自定义关键字字段的索引能力,但是与此同时,为了解决这些索引数据的IO性能消耗和磁盘空间消耗,上述专利还使用了SSD磁盘、lz4压缩算法、内存缓存等多种技术来进行优化才能保证工作效率。

技术实现思路

[0005]为解决现有技术存在的上述问题,本专利技术提出一种面向会话的网络流量存储及索
引方法。
[0006]为实现上述技术效果,本专利技术的技术方案如下:一种面向会话的网络流量存储及索引方法,包括数据包存储和数据包索引,所述数据包存储步骤如下:步骤1:网络流量镜像通过交换机端口镜像和光纤分光等方式镜像网络数据包流量。
[0007]步骤2:高性能流量采集实现网络流量还原,从网络镜像设备中还原网络数据包,实现高性能流量采集。
[0008]步骤3:数据包协议解析识别数据包的网络层和传输层协议,识别数据包的二层协议和三层协议。
[0009]步骤4:会话重组根据数据包的协议、IP和端口信息生成相应的IP会话或者五元组会话,进行会话重组,对于没有端口的IP层协议生成IP对会话,对于有端口的TCP/UDP协议生成五元组会话,跟踪所有会话完整的生命周期。
[0010]步骤5:会话数据包缓存在会话活动生命周期中,缓存会话数据包到相应的会话对象中。
[0011]步骤6:会话数据包缓存根据数据包缓存消耗阈值和会话的消亡时机来推动会话数据包的落盘,在内存空间足够的情况下,尽可能缓存更多的数据包。
[0012]进一步地,当整体会话数据包超过缓存限制时,以会话的最后活动时间进行遍历,将长时间未活动的会话数据包进行落盘,直到内存空间回到指定的空闲空间大小,缓存空间大小需要容纳30秒到120秒的网络流量;当每条会话单独缓存数据包容量超过4GB时以及会话消亡时也需要立即启动当前会话的数据包落盘;实际在千兆网络环境下,需要分配约20G的内存用作120秒数据包缓存空间。
[0013]步骤7:预分配存储分区在数据包落盘之前提前在磁盘预分配相应的存储空间,每次预分配大小为64G;进一步地,在磁盘上产生一个实体文件作为一个独立存储分区,分区存储文件以分区ID为文件名,文件名形如:10.part,每个分区的总大小不超过1TB大小。
[0014]步骤8:数据包分块存盘根据每个会话当前落盘数据包集合,生成数据包分块存储的分块基本信息和分块数据包内容,每个分块的总体内容不超过4GB大小,超过4GB后会分割成多个分块,分块基本信息包括:当前分块数据包总数、当前分块数据包起始时间戳、前序分块总数、当前分块长度、分块头部校验和、前序分块偏移和分区ID数组、前序分块长度数组、前序分块起始时间戳数组、前序分块数据包个数数组、当前分块数据包起始偏移数组;分块数据包内容包括每个数据包的时间戳和数据包原始内容。
[0015]整体存储结构如下:4B:当前分块数据包个数;4B:当前分块数据包起始时间戳;2B:前序分块总数,为0时前序分块相关的数组为空;
5B:当前分块长度;1B:分块头部校验和;[{5B:偏移,3B:分区ID}]:前序分块偏移和分区ID数组;[{4B:前序分块长度}]:前序分块长度数组;[{4B:前序分块起始时间戳}]:前序分块起始时间戳数组;[{4B:前序分块数据包个数}]:前序分块数据包个数数组;[5B:当前数据包偏移]:当前数据包起始偏移数组;[{8B:数据包1到n时间戳,*B:数据包1到n的数据内容}]:分块数据包内容;当会话存在多个数据包分块时,会话对象会将所有前序分块的基本信息保存到前序分块基本信息数组中,包括前序分块偏移和分区ID数组、前序分块长度数组、前序分块起始时间戳数组、前序分块数据包个数数组,每次有新的数据包分块落盘都会更新前序分块的基本信息数组,并与当前分块一起存盘。
[0016]步骤9:会话消亡当会话消亡时会生成一个24字节的会话快速索引数据,其原始内容包括:末尾块偏移、起始块偏移、首尾块分区ID、首尾块长度4KB对齐长度、4KB对齐的起始块长度、4KB对齐的末尾块基本信息数据长度、扩展块标志和安全校验标志;快速索引主要保存了当前会话首尾分块的定位数据,如果会话数据包分块超过了2个,则扩展分块标志置1,同时除了首尾之外的分块信息额外保存在末尾分块的前序分块基本信息数组中。如果会话数据包分块仅有一个,则分块定位数据仅保存在末尾分块定位字段中,起始分块定位数据置0。安全校验标志置零。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向会话的网络流量存储及索引方法,其特征在于:包括数据包存储和数据包索引两个步骤,所述数据包存储步骤如下:步骤1:网络流量镜像通过交换机端口镜像和光纤分光镜像网络数据包流量;步骤2:高性能流量采集实现网络流量还原,从网络镜像设备中还原网络数据包,实现高性能流量采集;步骤3:数据包协议解析识别数据包的网络层和传输层协议,识别数据包的二层协议和三层协议;步骤4:会话重组根据数据包的协议、IP和端口信息生成相应的IP会话或者五元组会话,进行会话重组,对于没有端口的IP层协议生成IP对会话,对于有端口的TCP/UDP协议生成五元组会话,跟踪所有会话完整的生命周期;步骤5:会话数据包缓存在会话活动生命周期中,缓存会话数据包到相应的会话对象中;步骤6:会话数据包缓存根据数据包缓存消耗阈值和会话的消亡时机来推动会话数据包的落盘,在内存空间足够的情况下,缓存更多的数据包;步骤7:预分配存储分区在数据包落盘之前提前在磁盘预分配相应的存储空间;步骤8:数据包分块存盘根据每个会话当前落盘数据包集合,生成数据包分块存储的分块基本信息和分块数据包内容,分块基本信息包括:当前分块数据包总数、当前分块数据包起始时间戳、前序分块总数、当前分块长度、分块头部校验和、前序分块偏移和分区ID数组、前序分块长度数组、前序分块起始时间戳数组、前序分块数据包个数数组、当前分块数据包起始偏移数组;分块数据包内容包括每个数据包的时间戳和数据包原始内容;步骤9:会话消亡。2.根据权利要求1所述的一种面向会话的网络流量存储及索引方法,其特征在于:步骤6中,当整体会话数据包超过缓存限制时,以会话的最后活动时间进行遍历,将长时间未活动的会话数据包进行落盘,直到内存空间回到指定的空闲空间大小,缓存空间大小需要容纳30秒到120秒的网络流量;当每条会话单独缓存数据包容量超过4GB时以及会话消亡时也需要立即启动当前会话的数据包落盘。3.根据权利要求1所述的一种面向会话的网络流量存储及索引方法,其特征在于:步骤7中,每次预分配大小为64G,在磁盘上产生一个实体文件作为一个独立存储分区,分区存储文件以分区ID为文件名,每个分区的总大小不超过1TB大小。4.根据权利要求1所述的一种面向会话的网络流量存储及索引方法,其特征在于:步骤8中,整体存储结构如下:4B:当前分块数据包个数;4B:当前分块数据包起始时间戳;2B:前序分块总数,为0时前序分块相关的数组为空;
5B:当前分块长度;1B:分块头部校验和;[{5B:偏移,3B:分区ID}]:前序分块偏移和分区ID数组;[{4B:前序分块长度}]:前序分块长度数组;[{4B:前序分块起始时间戳}]:前序分块起始时间戳数组;[{4B:前序分块数据包个数}]:前序分块数据包个数数组;[5B:当前数据包偏移]:当前数据包起始偏移数组;[{8B:数据包1到n时间戳,*B:数据包1到n的数据内容}]:分块数据包内容。5.根据权利要求1所述的一种面向会话的网络流量存储及索引方法,其特征在于:步骤8中,每个分块的总体内容不超过4GB大小,超过4GB后会分割成多个分块,当会话存在多个数据包分块时,会话对象会将所有前序分块的基本信息保存到前序分块基本信息数组中,包括前序分块偏移和分区ID数组、前序分块长度数组、前序分块起始时间戳数组、前序分块数据包个数数组,每次有新的数据包分块落盘都会更新前序分块的基...

【专利技术属性】
技术研发人员:田红伟徐文勇魏勇
申请(专利权)人:成都数默科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1