本发明涉及数据抓包技术领域,具体涉及一种数据抓包存储方法及设备。
背景技术:
在相关技术中,从网口抓取数据包并保存到硬盘,然后分析这些数据包,是一种常见的数据分析手段。
现有的抓包设备是对多个硬盘存储空间进行判断和管理,对每个抓取到的数据包信息采用连续存储的方式存储到磁盘上,当一个磁盘存满后会继续往下一个磁盘进行存储。采用这种方法存在以下问题:数据包与存储介质具有一一对应关系,某个存储介质若出现了问题,抓取的数据包将会丢弃,其中丢失的很有可能存在关键性的数据信息,导致数据链被断开、不连续,没有完整的证据链,无法还原事件,影响证据和数据的分析。
技术实现要素:
本发明为了解决上述技术问题提供一种数据抓包存储方法及设备。
本发明通过下述技术方案实现:
一种数据抓包存储方法,包括以下步骤:
a、抓取数据;
b、分析数据包并预警;
c、判断对应存储介质的状态,若该存储介质存在已拔出、冻结、无存储空间任一情况时,则将数据包存储到其他存储介质上并标记;若该存储介质不存在上述情况,则将数据包存储在该存储介质。
本方案的数据抓包方法在数据存储时,对存储介质状态进行判断,避免存储介质存在已拔出、冻结、无存储空间时出现数据丢失的情况,保证数据的完整性。
作为优选,步骤b具体为:
配置规则任务需要匹配的关键字、预警的ip域名、所属国家;
将抓包的数据存入内存池中,采用多线程队列对每个数据包进行报文分析、规则分析和匹配,上传后台实现预警;
后台对数据信息进行分类,对数据的预警信息进行统计和归类,确定数据存储的存储介质位置。
作为优选,数据包抓取后还包括以下步骤:
采用冒泡排序bubblesort和插入排序insertionsort算法对收到的上行数据包和下行数据包进行时间戳排序;
利用并发安全地图cocurrentsafemap算法对收到的数据包进行锁定,存储到内存中,进行数据包头的字段解析,解析出ip、域名和分析数据包内容,同时写入到磁盘缓存中,再异步写入数据库,保存数据包的完整性和准确的时间戳,为后期做数据包关联分析提供支撑;
释放掉并发安全地图cocurrentsafemap中数据包字段元素,达到高效的内存管理,能够快速的进行实时抓包解析和分析处理对数据包的ip地址和域名信息进行识别和分类。
现有的数据包的接收过程中,上行数据和下行数据是是分开接收的,会出现乱序问题,不能同步解析数据包中的内容,存在分析延迟,内存消耗大,匹配效率低的问题。本方案采用bubblesort和insertionsort算法对数据包进行时间排序,用cocurrentsafemap算法进行内存管理,实现快速解析和分析,提高匹配效率。
一种数据抓包存储设备,包括:
用于接收数据包的接收模块;
实现数据包内容分析的分析模块;
根据分析模块分析结果实现预警的预警模块;
用于数据存储的数据存储模块;
检测数据存储模块状态的检测模块;
根据检测模块的检测结果确定数据存储位置并标记上传的上报模块。
本发明与现有技术相比,具有如下的优点和有益效果:
1、本发明的方法在数据存储时,对存储介质状态进行判断,避免存储介质存在已拔出、冻结、无存储空间时出现数据丢失的情况,保证数据的完整性。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。
图1为本方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
如图1所示的一种数据抓包存储方法,包括以下步骤:
a、抓取数据;
b、分析数据包并预警;
c、判断对应存储介质的状态,若该存储介质存在已拔出、冻结、无存储空间任一情况时,则将数据包存储到其他存储介质上并标记;若该存储介质不存在上述情况,则将数据包存储在该存储介质。
实施例2
基于上述实施例的原理,本实施例对上述方法实施步骤进行详细细化说明。
a、抓取数据。
b、配置规则任务需要匹配的关键字、预警的ip域名、所属国家,具体包括ip规则白名单规则、域名黑名单、关键字匹配、国家黑白名单;
将抓包的数据存入内存池中,采用多线程队列对每个数据包进行报文分析、规则分析和匹配,在发现命中关键字或者数据包信息包含上述配置信息,将会把数据上传到后台进行预警;
当数据上报到后台后,后台对数据信息进行分类,对数据的预警信息进行统计和归类,确定数据存储的存储介质位置。
c、每个数据包将会被分析后需存储到对应的存储介质上,此时,判断对应存储介质的状态,若该存储介质存在已拔出、冻结、无存储空间任一情况时,则将数据包存储到其他存储介质上并将数据包和实际存储的存储介质做标记上传;若该存储介质不存在上述情况,则将数据包存储在该存储介质。
采用本方案在存储前对存储介质状态的判断可以让数据存储更完整,不会遗漏重要的数据信息,可以保证完整的数据信息,以便后期进行分析和数据的固定。
实施例3
基于上述实施例的原理,本实施例公开另一具体实施方式。
a、数据包通过设备镜像模块功能后,通过抓包程序开始抓取被镜像到的数据包。
采用冒泡排序bubblesort和插入排序insertionsort算法对收到的上行数据包和下行数据包进行时间戳排序;
利用并发安全地图cocurrentsafemap算法对收到的数据包进行锁定,存储到内存中,进行数据包头的字段解析,解析出ip、域名和分析数据包内容,同时写入到磁盘缓存中,再异步写入数据库,保存数据包的完整性和准确的时间戳,为后期做数据包关联分析提供支撑;
释放掉并发安全地图cocurrentsafemap中数据包字段元素,达到高效的内存管理,能够快速的进行实时抓包解析和分析处理对数据包的ip地址和域名信息进行识别和分类。
b、如果发现了ip或者域名在规则中出现,将进行预警处理。
c、在分析完数据包后,将对设备的每个接口上的磁盘信息进行检查,该磁盘的状态进行判断,是否要将数据包存入到该磁盘,当该磁盘被标记为冻结、已经满了、已拔出任一情况下,会将数据包存入到其他磁盘中。
实施例4
基于上述方法实施例,本实施例公开一实现上述方法的装置。
一种数据抓包存储设备,包括:
用于接收数据包的接收模块;
实现数据包内容分析的分析模块;
根据分析模块分析结果实现预警的预警模块;
用于数据存储的数据存储模块;
检测数据存储模块状态的检测模块;
根据检测模块的检测结果确定数据存储位置并标记上传的上报模块;
采用冒泡排序和插入排序算法对收到的数据包进行时间戳排序的排序模块。
本装置在使用时接收模块直接连接在镜像交换机上,采用实施例1、2、3的方法即可实现本方案。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。