掌桥专利:专业的专利平台
掌桥专利
首页

一种基于流量还原的网络攻击事件取证方法与装置

文献发布时间:2023-06-19 11:14:36


一种基于流量还原的网络攻击事件取证方法与装置

技术领域

本发明涉及网络安全技术领域,特别是涉及一种基于流量还原的网络攻击事件取证方法与装置。

背景技术

随着网络和科技的迅速发展,一方面为人们带来便利,一方面也存在大量安全隐患,DDOS,木马,蠕虫等攻击时有发生,互联网安全形势严峻。面对无处不在的网络攻击,通常需要通过实时对流量进行分析并且及时告警,通过流量还原进行攻击取证和溯源。

传统的流量包协议解析依靠抓包解析工具tshark解析成格式化数据,然后进行数据清洗,最后存到数据库中,这种方式无论是协议解析还是入库两个部分都耗费时间长,会导致流量分析人员不能实时的分析数据,从而导致事件告警延迟、定位和处理问题响应较慢,可能进一步导致整个系统的网络安全性能降低。

流量还原即获取告警事件的流量包片段,现有技术的方式是直接截取当前包前后2到5分钟的流量包,这种方式优点是能够截取到完整的流量包,并且能获取到当前事件前后一段时间内的部分数据,有利于事件分析,但是这种方式可能获取到很多无用的数据,会造成资源浪费,并且数据量太大,会影响分析人员的判断以及流量分析的速度。

发明内容

有鉴于此,本发明提供的一种基于流量还原的网络攻击事件取证方法,主要目的在于解决现有技术中流量包协议解析和入库较慢,以及流量还原造成资源浪费问题。

根据本发明一个方面,提供了一种基于流量还原的网络攻击事件取证方法,该方法包括:

S1协议解析:解析原始流量包以生成格式化数据组,将所述格式化数据组置于数据清洗线程池中进行数据清洗,所述数据清洗线程池中包含一个或多个数据清洗线程,所述多个数据清洗线程同时对所述多个格式化数据进行清洗;提取清洗后的有效字段并将所述有效字段存入数据库;

S2事件告警:定义suricata的攻击告警规则,通过所述suricata对所述原始流量包进行所述攻击告警规则匹配,当匹配成功则进行攻击告警,同时将所述攻击告警事件存入所述数据库;

S3攻击取证:根据所述攻击告警事件所对应的所述原始流量包的包序号和文件名从所述数据库中查询所述攻击告警事件的流,并从所述攻击告警事件的流中切割出所述攻击告警对应的流量片段进行攻击分析取证。

作为本发明的进一步改进,所述将原始流量包解析生成格式化数据组包括:对所述原始流量包进行文件分割,对分割后的文件进行tshark解析。

作为本发明的进一步改进,所述数据库为elasticsearch数据库;所述有效字段是通过消息队列rabbitmq用logstash输入所述elasticsearch数据库。

作为本发明的进一步改进,所述有效字段包括但不限于五元组、包字节长度、传输时间、流信息、所述包序号、协议类型。

作为本发明的进一步改进,所述协议类型包括TCP、HTTP、DNS、全流量协议;所述格式化数据组存入数据库时按照所述协议类型建立不同的索引。

作为本发明的进一步改进,根据所述协议类型搜索所述数据库以获取相关数据库表,再根据所述原始流量包的包序号和文件名搜索所述相关数据库表以获取所述攻击告警事件的流。

根据本发明另一个方面,提供了一种基于流量还原的网络攻击事件取证装置,包括:

协议解析模块:解析原始流量包以生成格式化数据组,将所述格式化数据组置于数据清洗线程池中进行数据清洗,所述数据清洗线程池中包含一个或多个数据清洗线程,所述多个数据清洗线程同时对所述多个格式化数据进行清洗;提取清洗后的有效字段并将所述有效字段存入数据库;

事件告警模块:定义suricata的攻击告警规则,通过所述suricata对所述原始流量包进行所述攻击告警规则匹配,当匹配成功则进行攻击告警,同时将所述攻击告警事件存入所述数据库;

攻击取证模块:根据所述攻击告警事件所对应的所述原始流量包的包序号和文件名从所述数据库中查询所述攻击告警事件的流,并从所述攻击告警事件的流中切割出所述攻击告警对应的流量片段进行攻击分析取证。

作为本发明的进一步改进,所述将原始流量包解析生成格式化数据组包括:对所述原始流量包进行文件分割,对分割后的文件进行tshark解析。

作为本发明的进一步改进,所述数据库为elasticsearch数据库;所述有效字段是通过消息队列rabbitmq用logstash输入所述elasticsearch数据库。

作为本发明的进一步改进,所述有效字段包括但不限于五元组、包字节长度、传输时间、流信息、所述包序号、协议类型;其中所述协议类型包括TCP、HTTP、DNS、全流量协议;所述格式化数据组存入数据库时按照所述协议类型建立不同的索引;根据所述协议类型搜索所述数据库以获取相关数据库表,再根据所述原始流量包的包序号和文件名搜索所述相关数据库表以获取所述攻击告警事件的流。

藉由上述技术方案,本发明提供的有益效果如下:

(1)对于每一个告警事件,根据协议解析的内容查询当前包的流信息从而分割pcap包,从而下载某个事件的流量片段,既不会造成资源浪费,又能获取到告警事件对应的完整的流量包。

(2)针对流量包协议解析和入库较慢的问题,本发明应用大文件分割和多线程同步解析入库的技术大大缩短了入库时间,提高了整个系统的性能。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的一种基于流量还原的网络攻击事件取证方法的流程图;

图2示出了本发明实施例提供的一种基于流量还原的网络攻击事件取证方法的协议解析步骤的流程图;

图3示出了本发明实施例提供的一种基于流量还原的网络攻击事件取证方法的事件告警步骤的流程图;

图4示出了本发明实施例提供的一种基于流量还原的网络攻击事件取证方法的攻击取证步骤的流程图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

可以理解的是,本发明的说明书和权利要求书及附图中的方法与装置中的相关特征可以相互参考。另外,本发明的说明书和权利要求书及附图中的“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。

首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:

ElasticSearch:ElasticSearch是一个开源的分布式搜索引擎,可以提供稳定、实时、可靠的检索服务,具有高可用、易扩展以及近实时的特点。能够方便地为数据建立索引,可将一个索引分割成多个索引分片,然后将多个分片均衡地分布在集群的所有可用节点上,形成分布式结构,减轻了单个节点的负担。主要功能包括分布式实时文件索引、实时全文搜索、结构化搜索以及特殊字段搜索、高可用性等。数据流进入系统后,数据能够快速的可视化,所有数据立即可用被搜索和分析。

Tshark:是网络分析工具wireshark下的一个工具,主要用于命令行环境进行抓包与分析,尤其使用在对协议进行深层解析时。

PACP文件:针对网络接口、端口和协议截取的数据包文件,具有特定的格式。

Logstash:是免费且开放的服务器端数据处理管道,能够从多个来源采集数据、转换数据,然后将数据发送到数据库中存储;Logstash是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景。Logstash常用于日志关系系统中做日志采集设备。

Suricata:是一个免费、开源、成熟、快速、健壮的网络威胁检测引擎。Suricata引擎能够进行实时入侵检测(IDS)、内联入侵预防(IPS)、网络安全监控(NSM)和离线pcap处理。Suricata使用强大而广泛的规则和签名语言来检查网络流量,并提供强大的脚本支持来检测复杂的威胁。

Rabbitmq:RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。

本发明要解决的核心技术问题为,主要用于解决现有技术中流量包协议解析和入库较慢,以及针对告警事件进行的流量还原造成资源浪费的问题。

针对上述技术问题,本发明提出一种基于流量还原的网络攻击事件取证方法,针对流量包协议解析和入库较慢的问题,本发明应用大文件分割和多线程同步解析入库的技术大大缩短了入库时间,提高了整个系统的性能。针对现有技术中现有技术中流量还原的主要方式是直接截取当前包前后2到5分钟的流量包,造成资源浪费以及可能获取无用数据的问题,本发明对于每一个告警事件,根据协议解析的内容查询当前包的流信息从而分割pcap包,从而下载某个事件的流量片段,既不会造成资源浪费,又能获取到告警事件对应的完整的流量包。

实施例1

图1为本发明实施例提供的一种基于流量还原的网络攻击事件取证方法的流程图。

如图1所示,本发明实施例方法主要包括协议解析、事件告警、攻击取证步骤,下面详细描述各步骤的实施方式及作用。

S1协议解析:解析原始流量包以生成格式化数据组,将格式化数据组置于数据清洗线程池中进行数据清洗,数据清洗线程池中包含一个或多个数据清洗线程,多个数据清洗线程同时对多个格式化数据进行清洗;提取清洗后的有效字段并将有效字段存入数据库;

请参考图2,其示出了本发明实施例提供的一种基于流量还原的网络攻击事件取证方法的协议解析步骤的流程图。

从图2中可以看出,协议解析步骤主要包括文件分割、解析阶段;数据处理和清洗阶段、入库阶段和清理中间文件阶段。下面对协议解析步骤的各个阶段详细阐述。

S11文件分割和tshark解析阶段。主要是对200MB以上的流量包分割,然后对分割后的文件进行解析,能缩短流量包解析的时间。

S12数据处理和清洗阶段。主要是将解析后的一段或者多段数据放到线程池里面,同步进行数据清洗,去除不符合条件的数据,提取出有用的字段,保证数据的有效性。提取的有用的字段包括五元组、包字节长度、传输时间、流信息、包序号等基础字段,以及网络层、传输层、应用层的一些其他字段。其中流信息、包序号用来在S3攻击取证步骤中根据流信息切割原始pcap流量包,其他字段是分析人员用来进行流量分析和事件告警。

现有技术中通常采用直接解析入库,耗费时间长,本实施例运用文件分割技术以及多线程同步解析入库方法缩短了协议解析入库的时间。

S13入库阶段。主要是用logstash将消息队列rabbitmq和数据库elasticsearch连接起来,使用logstash作为一个具备实时数据传输能力的管道,解析后的格式化数据从rabbitmq发送到管道,再传输到数据库中。

解析后的格式化数据存入数据库时按照不同的协议建立不同的索引,例如:TCP、HTTP、DNS、全流量协议等。解析后的格式化数据按照协议存储一方面是方便存储和管理,提高数据库性能,另一方面是方便分析人员使用,可以根据不同协议进行筛选和分析。

S14清理中间文件阶段。主要是将tshark解析的中间文件删除,该文件没有必要存储,只保留原始的pcap流量包。

例如,原始pcap流量包可以是政务云系统产生的流量,下载以后,经过tshark解析成格式化数据,再从格式化数据中提取其中一部分对流量分析有用的字段进行存储和分析。

S2事件告警:定义suricata的攻击告警规则,通过suricata对原始流量包进行攻击告警规则匹配,当匹配成功则进行攻击告警,同时将攻击告警事件存入所述数据库;

请参考图3,其示出了本发明实施例提供的一种基于流量还原的网络攻击事件取证方法的事件告警步骤的流程图。

从图3中可以看出,事件告警步骤主要包括生成规则阶段;suricata运行原始pcap流量包匹配规则阶段。下面对事件告警步骤的各个阶段详细阐述。

S21生成规则:suricata的规则由默认规则和自定义规则组成,默认规则由系统管理员根据威胁情报库、恶意样本特征库等规则库生成,自定义规则是用户在分析流量的过程中添加的规则,其中用户自定义规则可以为空,默认的规则文件只能进行文件替换,不能对文件进行修改。

S22匹配规则:用suricata按照上述生成的规则文件运行原始流量包,如果流量包的数据能够匹配某一条或多条规则,则会产生告警事件。

S3攻击取证:根据攻击告警事件所对应的原始流量包的包序号和文件名从数据库中查询攻击告警事件的流,并从攻击告警事件的流中切割出攻击告警对应的流量片段进行攻击分析取证。

一个流是一次建立连接到断开连接的过程,原始pcap流量包里面有很多tcp流或者udp流,需要根据流还原告警事件的流量包片段。

请参考图4,其示出了本发明实施例提供的一种基于流量还原的网络攻击事件取证方法的攻击取证步骤的流程图。

从图4中可以看出,攻击取证步骤主要包括查询流信息阶段,流量片段切割和下载阶段。下面对攻击取证步骤的各个阶段详细阐述。

S31查询流信息:首先根据协议类型判断当前攻击告警事件是tcp流还是udp流,然后去对应的数据表里面根据包的序号和原始pcap流量包文件名查询出当前攻击事件的流。

协议解析会按照不同类别的协议(TCP、HTTP、DNS、全流量协议)存储数据,每种协议是一个数据表,其中tcp和udp协议有流的信息。对应的数据表需要判断当前事件的协议是tcp协议还是udp协议,去该协议对应的数据表里面查询流的信息。举例来说,当前告警事件是tcp协议,包序号是100,原始pcap流量包文件名是data_001.pcap,则需要在tcp协议类别的表里面查询文件名是data_001.pcap,且包序号是100的那条数据对应的tcp流(例如tcp=0)。

S32流量片段切割和下载:从当前攻击事件的流中切割出此攻击事件对应的流量片段,最后将该流量片段下载到客户端供分析人员解析。

实施例2

进一步的,作为对上述实施例所示方法的实现,本发明另一实施例还提供了一种基于流量还原的网络攻击事件取证装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。在该实施例的装置中,具有以下模块:

协议解析模块:解析原始流量包以生成格式化数据组,数据清洗线程池中包含一个或多个数据清洗线程,多个数据清洗线程同时对多个格式化数据进行清洗;提取清洗后的有效字段并将有效字段存入数据库;协议解析模块对应于实施例1中的S1协议解析步骤。

事件告警模块:定义suricata的攻击告警规则,通过suricata对原始流量包进行攻击告警规则匹配,当匹配成功则进行攻击告警,同时将攻击告警事件存入数据库;事件告警模块对应于实施例1中的S2事件告警步骤。

攻击取证模块:根据攻击告警事件所对应的原始流量包的包序号和文件名从数据库中查询攻击告警事件的流,并从攻击告警事件的流中切割出攻击告警对应的流量片段进行攻击分析取证。攻击取证模块对应于实施例1中的S3攻击取证步骤。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

相关技术
  • 一种基于流量还原的网络攻击事件取证方法与装置
  • 一种基于流量还原的网络攻击事件取证方法与装置
技术分类

06120112854468