CN114338439A - 一种通用的网络流量解析装置和方法 - Google Patents
一种通用的网络流量解析装置和方法 Download PDFInfo
- Publication number
- CN114338439A CN114338439A CN202111614957.1A CN202111614957A CN114338439A CN 114338439 A CN114338439 A CN 114338439A CN 202111614957 A CN202111614957 A CN 202111614957A CN 114338439 A CN114338439 A CN 114338439A
- Authority
- CN
- China
- Prior art keywords
- protocol
- flow
- data
- detection
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种通用的网络流量解析装置和方法,包括流量抓取模块、流量解码模块、协议探测模块、协议解析模块及由外部***通过插件的方式注册给网络流量解析装置的外部***插件,外部***插件包括协议探测函数和协议解析函数,协议探测模块负责将数据传递给协议探测函数来实现协议探测,协议探测模块将协议探测函数返回的协议探测的结果标记到对应的数据流内,并将已经标记了协议探测成功的数据流传递给协议解析函数来实现协议解析。本发明的网络流量解析装置,让灵活多变的应用层协议的探测及解析由外部***插件来定制或实现,网络流量解析装置本身不需要原先做好大量的协议类型,从而避免了整个***组织冗余,大大减少了维护成本。
Description
技术领域
本发明涉及数据安全分析技术领域,尤其涉及提高网络流量解析性能和通用性的方法。
背景技术
随着网络技术的不断发展,网络服务越来越复杂和多样化,服务器的网络带宽逐渐增大。而在如此之多的网络数据中,企业需要针对其中特定的数据进行深度的还原和审计,以监测网络中存在的风险,比如网络攻击或敏感数据泄漏,以便事后还原现场调查取证。
面对越来越大的流量,传统的流量解析装置往往只是通过手动设置一些静态的流量过滤规则来筛选特定的数据,此做法操作不灵活并会导致运维繁琐,而且在复杂的网络环境下几乎很难设置精确的流量过滤式。
如申请号为201210091099.1的专利文献公开了一种网络流量解析***及方法,方法是根据netflow记录中各个字域的依赖关系和数据量情况,构建多维结构,按照设备IP、TOS、协议类型、目的地址高位、流入设备端口号、目的端口、目的地址、源端口、源地址的顺序建立多维结构,根据信息遍历多维结构中的流量记录,在遍历过程中对于子节点比较多的节点使用哈希算法,其他节点使用数组,找到相匹配的信息进行叠加操作,当达到一分钟时,写入文件,清空缓存,重新开始记录数据信息。***有netflow数据采集模块、解析netflow数据模块和进行聚合或者直接呈现模块,本发明在采集数据的过程中,在内存中对数据进行了一次聚合操作,保证了节点的充分填充空间的合理利用。
申请号为201911089657.9的专利文献涉及一种多进程协同式网络流量解析方法,包括:主流量审计引擎进程即主TAA进程创建指定数量的子TAA进程以用于处理网络流量;子TAA进程和主TAA进程之间设置进程间通信链路,每一个子TAA进程和主TAA进程之间都会共享一个全局结构体,所述全局结构体的成员包括一个保存了分发给子TAA进程的流量文件的队列以及一个计数标识,针对每一个流量文件,每解析其一条报文则将所述计数标识加一;主TAA进程将采集进程保存的流量文件依次分发给子TAA进程,分发到子TAA进程的各个流量文件被依次***其队列中。通过本发明,能够有效提升数据解析速率,同时降低丢包率。
但是现有数据的协议种类繁多,有WEB应用常用的HTTP协议、文件传输时用的FTP协议、各种数据库协议等等,而各种审计***一般只需要针对其中一种或多种协议进行审计,传统的流量解析器都预先做好大量的协议类型,但又不能完全满足审计***对协议数据进行深度还原的需求。另外,不同的外部***对数据的类型及详细程度经常有不同的需求,固定的解析方法会导致难以对数据类型进行定制和不必要的性能开销。不需要的协议类型也会让整个***组织冗余,导致难于修改和更大的维护成本。
且传统的流量解析装置一般通过设置BPF过滤式来筛选流量,BPF过滤式通常只能基于IP地址和端口来进行固定的流量过滤,配置有长度限制而且修改后必须重启抓包模块。并且无法对数据流的数据内容进行深度探测后再决定是否解析此数据流。还要事先知道目标的IP地址和端口,当IP地址和端口复杂多变或不明确时很难实施。
发明内容
本发明所要解决的技术问题在于目前的流量解析装置的***组织冗余以及通用性不高的问题。
本发明通过以下技术手段实现解决上述技术问题的:一种通用的网络流量解析装置,包括流量抓取模块、流量解码模块、协议探测模块、协议解析模块,所述流量抓取模块用来抓取网络流量包,所述流量解码模块将流量抓取模块抓取的原始的网络流量包还原成传输层协议的数据包,其改进点在于:还包括由外部***通过插件的方式注册给网络流量解析装置的外部***插件,所述外部***插件包括协议探测函数和协议解析函数,所述协议探测模块负责将数据传递给外部***插件的协议探测函数,由外部***插件的协议探测函数来实现协议探测,所述协议探测模块将协议探测函数返回的协议探测的结果标记到对应的数据流内,所述协议解析模块负责将已经标记了协议探测成功的数据流传递给外部***插件的协议解析函数,由外部***插件的协议解析函数来实现协议解析。
本发明的网络流量解析装置,让灵活多变的应用层协议的探测及解析由外部***插件来定制或实现,外部***的协议探测函数和协议解析函数通过插件的方式注册给所述流量解析装置,网络流量解析装置本身不需要原先做好大量的协议类型,从而避免了整个***组织冗余,大大减少了维护成本。
作为进一步优化的技术方案,所述的通用的网络流量解析装置还包括设置在流量解码模块和协议探测模块之间的流量过滤模块,所述流量过滤模块对外提供流量过滤规则接口让外部***动态设置筛选条件。
作为进一步优化的技术方案,所述流量过滤模块通过哈希算法查询当前数据包的IP和端口是否需要处理或屏蔽,外部***设置的筛选条件会定时通过流量过滤规则接口同步给流量过滤模块。
作为进一步优化的技术方案,所述动态设置是指外部***在探测的过程中当发现某个IP和端口确定不是需要的流量,则确定此IP和端口是一个HTTP服务器,通过调用所述网络流量解析装置的流量过滤规则接口屏蔽掉此HTTP服务器的流量,流量过滤规则接口调用后更新给所述流量过滤模块,流量过滤模块将IP和端口放入记录需要屏蔽的流量的哈希表中,当接收到下个此服务器的包,流量过滤模块在屏蔽流量的哈希表中找到这个IP和端口,然后流量过滤模块直接丢弃这个包,使后续的流程不用处理此包。
作为进一步优化的技术方案,所述的通用的网络流量解析装置还包括设置在流量解码模块和协议探测模块之间的流量重组模块,所述流量重组模块将传输中出现乱序的数据包中的序号信息重新组装成一段连续的数据流并传递给后续的模块。
作为进一步优化的技术方案,外部***插件的协议探测函数根据协议的特征,给出实际探测结果,探测结果分三种:探测成功、继续探测、放弃探测,探测成功表示通过包的数据特征已经匹配到对应数据流的协议类型,继续探测表示当前包的数据无法得出对应数据流的协议类型,让所述流量解析装置把后续的数据流发送给所述协议探测函数进行再次探测,放弃探测表示当前包的数据对应数据流不是需要的,所述流量探测模块后续能够不再把对应流的后续数据流发送给所述协议探测函数。
作为进一步优化的技术方案,所述协议探测函数满足以下格式:
所述协议探测函数带一个数据流参数,包含数据源地址、目标地址、数据内容、数据长度信息;
所述协议探测函数返回一个整型值,返回0时表示继续探测,返回-1时表示放弃探测,返回大于0的值时表示探测成功并且此返回值就是探测到的协议类型,所述协议探测函数通过对数据流进行匹配以确定是什么协议类型;
所述协议解析函数满足以下格式:
所述协议解析函数带一个协议类型参数,表示之前探测成功的协议类型,一个数据流参数,包含数据源地址、目标地址、数据内容、数据长度信息,所述协议解析函数通过对包数据进行协议解析以提取协议数据并进行业务处理。
作为进一步优化的技术方案,流量解析中比较固定的抓包、解码及底层协议解析由所述网络流量解析装置内部的流量抓取模块、流量解码模块、流量过滤模块、流量重组模块、协议探测模块、协议解析模块进行处理,灵活多变的应用层协议的探测及解析由外部***的协议探测函数和协议解析函数来实现。
作为进一步优化的技术方案,外部***插件的协议解析函数由插件来实现。
本发明还采用一种采用上述任一项所述的通用的网络流量解析装置的网络流量解析方法,包括下述步骤:
(1)所述流量解析装置通过流量抓取模块从网络设备中抓取流量;
(2)所述流量解码模块将抓取的流量解码成程序能够处理的数据包结构;
(3)通过流量过滤模块根据解码后的数据包里的IP和端口判断是否需要屏蔽,程序刚启动时没有屏蔽配置,所有流量全部进入下个步骤;
(4)所述流量解析装置对流量的源IP、源端口、目标IP、目标端口这四元组作为数据流的唯一标识,在数据流表中查找是否存在此数据流,不存在时在表中创建一个数据流,存在时复用存在的数据流;
(5)流量重组模块负责将由于网络传输过程中导致顺序错乱的数据重新组装成连续的数据流;
(6)所述协议探测模块判断此数据流的协议是否已知,数据流默认协议未知,如果是未知协议则将数据流传递给外部***插件的协议探测函数,由协议探测函数返回数据流的探测结果,探测结果分三种:探测成功、继续探测、放弃探测;
(7)外部***插件的协议探测函数返回“探测成功”时会同时返回探明的协议类型,所述协议探测模块得到的返回结果记录到对应的数据流内,所述协议解析模块将已经标记了协议探测成功的数据流传递给外部***插件的协议解析函数,由所述协议解析函数进行真正的协议数据解析;
(8)外部***插件的协议探测函数返回“继续探测”时,所述协议探测模块把当前数据流后续的数据发送给插件的协议探测函数进行再次探测;
(9)外部***插件的协议探测函数返回放弃探测时,所述协议探测模块丢弃当前的数据,并标记不再处理对应数据流之后的数据,此后所述协议探测模块判断数据流上如果带此标记,就不处理此数据流的数据。
本发明的优点在于:
1、本发明的网络流量解析装置,让流量解析中比较固定的抓包、解码及底层协议解析由所述网络流量解析装置内部模块进行统一高速的流水线处理,让灵活多变的应用层协议的探测及解析由外部***插件来定制或实现,外部***的协议探测函数和协议解析函数通过插件的方式注册给所述流量解析装置,网络流量解析装置本身不需要原先做好大量的协议类型,从而避免了整个***组织冗余,大大减少了维护成本。并且外部***可定制协议探测规则和解析方法,大大提高了***的通用性。
2、外部***可以自己实现协议探测和解析,也可以引用一些第三方的已经做好的协议解析组件,只要封装成符合描述的接口规则即可使用,显著提高了***的通用性。
3、外部***可以根据自身的业务及性能需要,对流量进行深度探测后再动态设置或更新过滤规则。外部***标识成“放弃探测”的数据流,本发明的网络流量解析装置内部会自动丢弃,无需设置过滤规则,大大节省了不必要的性能消耗。
附图说明
图1是本发明实施例中的网络流量解析装置的多队列模式工作线程图;
图2是本发明实施例中的外部***是一个数据库审计***的网络流量解析装置的工作原理框图;
图3是本发明实施例中的网络流量解析装置的工作流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种网络流量解析装置,包括流量抓取模块、流量解码模块、流量过滤模块、流量重组模块、协议探测模块、协议解析模块以及由外部***通过插件的方式注册给网络流量解析装置的外部***插件。外部***指依赖网络流量解析装置提供流量数据的业务***,比如数据库审计***、流量监测***等。外部***插件包括协议探测函数和协议解析函数。
参阅图1所示,所述网络流量解析装置通过开启网卡的多队列模式,并对网卡设置对称的HASH算法让不同的网络连接均匀地分配到多个工作线程上,使流量可以并行地处理以达到更高的性能。每个工作线程都有一套完整的数据包处理模块。
所述流量抓取模块用来抓取网络流量包,采用目前主流且性能最好的抓包工具DPDK来实现。
所述流量解码模块将流量抓取模块抓取的原始的网络流量包根据TCP/IP协议族逐层解析,最终将网络流量包还原成传输层协议的数据包,比如TCP包,UDP包。
所述流量过滤模块,对外提供设置流量过滤规则接口让外部***动态设置筛选条件,筛选条件可以为处理或屏蔽任意数量的IP或者IP范围、任意数量的端口号或者端口号范围,比如处理192.168.1.1至192.168.1.100范围内的所有IP,80、8080等任意的端口号,所述流量过滤模块通过哈希算法快速查询当前数据包的IP和端口是否需要处理或屏蔽。外部***设置的筛选条件会定时通过流量过滤规则接口同步给流量过滤模块,支持动态设置不需要重启流量抓取模块。
所述流量重组模块将传输中出现乱序的数据包(如TCP包)根据TCP包中的序号信息重新组装成一段连续的数据流并传递给后续的模块。组装成连续的数据流是通过红黑树对各TCP片段进行排序,连续的数据流存储在一段连续的内存中,当收到TCP对指定TCP片段的确认消息时,所述流量重组模块将此连续的数据流传递给后续的模块。
所述协议探测模块负责将重组后连续的数据流传递给外部***插件的协议探测函数,由外部***插件的协议探测函数来实现真正的协议探测功能。所述协议探测模块将协议探测函数返回的协议探测的结果标记到此流量对应的TCP连接上。
所述协议解析模块负责将已经标记了协议探测成功的TCP连接的数据传递给外部***插件的协议解析函数中,由外部***插件的协议解析函数来实现真正的协议解析功能。
本申请网络流量解析装置将经过流量重组模块重组后得到的每个包的数据通过协议探测模块都传送给外部***插件,外部***插件的协议探测函数根据协议的特征,给出实际探测结果,探测结果分三种:探测成功、继续探测、放弃探测。探测成功表示通过包的数据特征已经匹配到对应数据流的协议类型了,比如外部***匹配到数据中带“GET”字符串就认为是HTTP协议。继续探测表示当前包的数据无法得出对应数据流的协议类型,让所述流量解析装置把后续的数据流发送给所述协议探测函数进行再次探测,可以再次探测任意次。放弃探测表示当前包的数据对应数据流不是需要的,比如探测发现此包属于其他不需要的协议,或者多次探测都未确定是需要的协议,可以让所述流量探测模块不要再把对应流的后续数据发送给所述协议探测函数了,以节省性能开销。
本发明网络流量解析装置,让流量解析中比较固定的抓包、解码及底层协议解析由所述网络流量解析装置内部的流量抓取模块、流量解码模块、流量过滤模块、流量重组模块、协议探测模块、协议解析模块进行统一高速的流水线处理,让灵活多变的应用层协议的探测及解析由外部***的协议探测函数和协议解析函数来定制或实现,外部***的协议探测函数和协议解析函数通过插件的方式注册给所述流量解析装置,使外部***可定制协议探测规则和解析方法,大大提高了***的通用性。
本申请的网络流量解析装置的流量过滤方式不再基于BPF过滤式,而是由外部***插件根据需求动态设置过滤条件来达到更灵活的流量过滤功能,当数据不满足流量过滤条件时会被直接丢弃。另外协议探测插件在探测的过程中可表明要放弃探测特定的数据流,所述网络流量解析装置将及时丢弃此数据流并不会对此流的后续数据进行处理以获得更好的性能。
如图2所示,以外部***是一个数据库审计***为例来说明本发明网络流量解析装置的工作流程。该数据库审计***包括数据库审计后端和数据库审计前端,所述网络设备通过所述流量解析装置连接到所述数据库审计后端,所述数据库审计前端连接到所述数据库审计后端,比如网络流量解析装置只需要审计HTTP流量,而网络流量解析装置启动之初并不了解HTTP服务器的IP和端口就无法设置流量过滤条件,只能对所有流量进行探测和解析,势必严重影响性能。
参阅图3,本申请的网络流量解析装置通过以下流程来实现整体功能并兼顾性能:
(1)所述网络流量解析装置通过流量抓取模块从网络设备中抓取流量,流量抓取模块为一些库的API,比如DPDK;
(2)所述流量解码模块将抓取的流量解码成程序能够处理的数据包结构;
(3)所述流量过滤模块根据解码后的数据包里的IP和端口判断是否需要屏蔽,程序刚启动时没有屏蔽配置,所有流量全部进入下个步骤;
(4)所述流量解析装置对流量的源IP、源端口、目标IP、目标端口这四元组作为数据流的唯一标识,在数据流表中查找是否存在此数据流,不存在时在表中创建一个数据流,存在时复用存在的数据流;
(5)流量重组模块负责将由于网络传输过程中导致顺序错乱的TCP数据重新组装成连续的TCP流,因为连续的TCP流数据才能用于协议解析。
(6)所述协议探测模块判断此数据流的协议是否已知,数据流默认协议未知,如果是未知协议则将数据流传递给外部***插件的协议探测函数,由协议探测函数返回数据流的探测结果,探测结果分三种:探测成功、继续探测、放弃探测;
(7)外部***插件的协议探测函数返回“探测成功”时会同时返回探明的协议类型,所述协议探测模块得到的返回结果记录到对应的数据流内,所述协议解析模块将已经标记了协议探测成功的数据流传递给外部***插件的协议解析函数,由所述协议解析函数进行真正的协议数据解析,外部***插件的协议解析函数由插件来实现,比如可以将数据流解析成协议的各种字段,再转成json数据发送给其他***;
(8)外部***插件的协议探测函数返回“继续探测”时,所述协议探测模块把当前数据流后续的数据发送给插件的协议探测函数进行再次探测;
(9)外部***插件的协议探测函数返回放弃探测时,所述协议探测模块丢弃当前的数据,并标记不再处理对应数据流之后的数据。此后所述协议探测模块判断数据流上如果带此标记,就不处理此数据流的数据;
(10)外部***插件的探测接口内也可以通过调用本申请网络流量解析装置的所述流量过滤模块的流量过滤规则接口来动态过滤流量,比如探测一段时间后发现HTTP服务器的IP和端口只有探测过程中发现的那几个,就可以将这些IP和端口设置给所述流量过滤模块,使之后的非HTTP流量不用参与探测和解析,以达到优化性能的目的。
流量数据在未经过流量重组模块处理前叫数据包,在经过流量重组模块处理后就被认为是数据流。
本发明主要通过以下两个关键改进来实现网络流量解析装置的通用性并节省了不必要的性能消耗:
1、外部***插件
外部***需要实现自己的插件,外部***插件主要包括协议探测函数和协议解析函数。首先外部***插件实现自己的协议探测函数,所述协议探测函数必须满足以下格式:
所述协议探测函数带一个数据流参数,包含数据源地址、目标地址、数据内容、数据长度等信息。
所述协议探测函数返回一个整型值,返回0时表示继续探测,返回-1时表示放弃探测,返回大于0的值时表示探测成功并且此返回值就是探测到的协议类型。所述协议探测函数通过对数据进行匹配以确定是什么协议类型。
接着外部***插件实现自己的协议解析函数,所述协议解析函数必须满足以下格式:
所述协议解析函数带一个协议类型参数,表示之前探测成功的协议类型。一个数据流参数,包含数据源地址、目标地址、数据内容、数据长度等信息。所述协议解析函数通过对包数据进行协议解析以提取协议数据并进行业务处理。
最后外部***插件实现的两个函数通过所述网络流量解析装置提供的注册函数注册给所述网络流量解析装置。
外部***插件可以自己实现协议探测和解析,也可以引用一些第三方的已经做好的协议解析组件,只要封装成符合以上描述的接口规则即可使用,显著提高了***的通用性。
本发明的网络流量解析装置,让流量解析中比较固定的抓包、解码及底层协议解析由所述网络流量解析装置内部模块进行统一高速的流水线处理,让灵活多变的应用层协议的探测及解析由外部***插件来定制或实现,外部***的协议探测函数和协议解析函数通过插件的方式注册给所述流量解析装置,使外部***可定制协议探测规则和解析方法,大大提高了***的通用性。
2、流量过滤方式
外部***可以根据自身的业务及性能需要,对流量进行深度探测后再动态设置或更新过滤规则。外部***标识成“放弃探测”的数据流,本装置内部会自动丢弃,无需设置过滤规则,大大节省了不必要的性能消耗。
深度探测是通过对数据流中的具体数据进行匹配来实现,匹配方法完全由外部***实现,所述网络流量解析装置只负责将完整的数据流传给外部***插件。外部***可以用正则匹配或者逻辑判断等任意方法,比如HTTP的协议特征是请求消息中带的关键字,比如“GET”,“POST”关键字,深度探测就可以将取到的包中开头的几个字节的数据与关键字对比,如何符合就认为是HTTP协议。动态设置是指外部***在探测的过程中当发现某个IP和端口确定不是需要的流量,比如外部***需要的是数据库流量,而发现当前包是HTTP流量,则可以确定此IP和端口是一个HTTP服务器,可以通过调用所述网络流量解析装置的流量过滤规则接口屏蔽掉此HTTP服务器的流量,流量过滤规则接口调用后会更新给所述网络流量解析装置的流量过滤模块,流量过滤模块将IP和端口放入记录需要屏蔽的流量的哈希表中,当接收到下个此服务器的包,流量过滤模块会在屏蔽流量的哈希表中找到这个IP和端口,然后流量过滤模块直接丢弃这个包,使后续的流程不用处理此包。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种通用的网络流量解析装置,包括流量抓取模块、流量解码模块、协议探测模块、协议解析模块,所述流量抓取模块用来抓取网络数据包,所述流量解码模块将流量抓取模块抓取的原始的网络数据包还原成传输层协议的数据包,其特征在于:还包括由外部***通过插件的方式注册给网络流量解析装置的外部***插件,所述外部***插件包括协议探测函数和协议解析函数,所述协议探测模块负责将数据包传递给所述协议探测函数,由所述协议探测函数来实现协议探测,所述协议探测模块将协议探测函数返回的协议探测的结果标记到对应的数据流内,所述协议解析模块负责将已经标记了协议探测成功的数据流传递给所述协议解析函数,由所述协议解析函数来实现协议解析。
2.如权利要求1所述的通用的网络流量解析装置,其特征在于:还包括设置在流量解码模块和协议探测模块之间的流量过滤模块,所述流量过滤模块对外提供流量过滤规则接口让外部***动态设置筛选条件。
3.如权利要求2所述的通用的网络流量解析装置,其特征在于:所述流量过滤模块通过哈希算法查询当前数据包的IP和端口是否需要处理或屏蔽,外部***设置的筛选条件定时通过流量过滤规则接口同步给流量过滤模块。
4.如权利要求3所述的通用的网络流量解析装置,其特征在于:所述动态设置是指外部***在探测的过程中当发现某个IP和端口确定不是需要的流量,则确定此IP和端口是一个HTTP服务器,通过调用所述网络流量解析装置的流量过滤规则接口屏蔽掉此HTTP服务器的流量,流量过滤规则接口调用后更新给所述流量过滤模块,流量过滤模块将IP和端口放入记录需要屏蔽的流量的哈希表中,当接收到下个此服务器的包,流量过滤模块在屏蔽流量的哈希表中找到这个IP和端口,然后流量过滤模块直接丢弃这个包,使后续的流程不用处理此包。
5.如权利要求1所述的通用的网络流量解析装置,其特征在于:还包括设置在流量解码模块和协议探测模块之间的流量重组模块,所述流量重组模块将传输中出现乱序的数据包中的序号信息重新组装成一段连续的数据流并传递给后续的模块。
6.如权利要求1所述的通用的网络流量解析装置,其特征在于:外部***插件的协议探测函数根据协议的特征,给出实际探测结果,探测结果分三种:探测成功、继续探测、放弃探测,探测成功表示通过包的数据特征已经匹配到对应数据流的协议类型,继续探测表示当前包的数据无法得出对应数据流的协议类型,让所述流量解析装置把后续的数据流发送给所述协议探测函数进行再次探测,放弃探测表示当前包的数据对应数据流不是需要的,所述流量探测模块后续能够不再把对应数据流的后续数据发送给所述协议探测函数。
7.如权利要求6所述的通用的网络流量解析装置,其特征在于:所述协议探测函数满足以下格式:
所述协议探测函数带一个数据流参数,包含数据源地址、目标地址、数据内容、数据长度信息;
所述协议探测函数返回一个整型值,返回0时表示继续探测,返回-1时表示放弃探测,返回大于0的值时表示探测成功并且此返回值就是探测到的协议类型,所述协议探测函数通过对数据流进行匹配以确定是什么协议类型;
所述协议解析函数满足以下格式:
所述协议解析函数带一个协议类型参数,表示之前探测成功的协议类型,一个数据流参数,包含数据源地址、目标地址、数据内容、数据长度信息,所述协议解析函数通过对包数据进行协议解析以提取协议数据并进行业务处理。
8.如权利要求1所述的通用的网络流量解析装置,其特征在于:外部***插件的协议解析函数由插件来实现。
9.采用权利要求1-8任一项所述的通用的网络流量解析装置的网络流量解析方法,其特征在于:包括下述步骤:
(1)通过流量抓取模块从网络设备中抓取流量;
(2)通过流量解码模块将抓取的流量解码成程序能够处理的数据包结构;
(3)通过流量过滤模块根据解码后的数据包里的IP和端口判断是否需要屏蔽,程序刚启动时没有屏蔽配置,所有流量全部进入下个步骤;
(4)通过流量解析装置对流量的源IP、源端口、目标IP、目标端口这四元组作为数据流的唯一标识,在数据流表中查找是否存在此数据流,不存在时在表中创建一个数据流,存在时复用存在的数据流;
(5)通过流量重组模块将网络传输过程中顺序错乱的数据重新组装成连续的数据流;
(6)通过协议探测模块判断此数据流的协议是否已知,数据流默认协议未知,如果是未知协议则将数据流传递给外部***插件的协议探测函数,由协议探测函数返回数据流的探测结果,探测结果分三种:探测成功、继续探测、放弃探测;
(7)当外部***插件的协议探测函数返回“探测成功”时会同时返回探明的协议类型,通过协议探测模块将得到的返回结果记录到对应的数据流内,所述协议解析模块将已经标记了协议探测成功的数据流传递给外部***插件的协议解析函数,由所述协议解析函数进行真正的协议数据解析;
(8)当外部***插件的协议探测函数返回“继续探测”时,通过协议探测模块把当前数据流后续的数据发送给插件的协议探测函数进行再次探测;
(9)当外部***插件的协议探测函数返回放弃探测时,通过协议探测模块丢弃当前的数据,并标记不再处理对应数据流之后的数据,此后所述协议探测模块判断数据流上如果带此标记,就不处理此数据流的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111614957.1A CN114338439B (zh) | 2021-12-27 | 2021-12-27 | 一种通用的网络流量解析装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111614957.1A CN114338439B (zh) | 2021-12-27 | 2021-12-27 | 一种通用的网络流量解析装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338439A true CN114338439A (zh) | 2022-04-12 |
CN114338439B CN114338439B (zh) | 2023-08-08 |
Family
ID=81013013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111614957.1A Active CN114338439B (zh) | 2021-12-27 | 2021-12-27 | 一种通用的网络流量解析装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338439B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115333967A (zh) * | 2022-10-11 | 2022-11-11 | 南京中孚信息技术有限公司 | 数据上报方法、***、设备及存储介质 |
CN117834750A (zh) * | 2024-03-04 | 2024-04-05 | 苏州元脑智能科技有限公司 | 获取协议数据的装置、方法、***、设备、介质及服务器 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088425A1 (en) * | 2002-10-31 | 2004-05-06 | Comverse, Ltd. | Application level gateway based on universal parser |
CN101426000A (zh) * | 2007-10-30 | 2009-05-06 | 北京启明星辰信息技术有限公司 | 一种通用协议解析方法及*** |
US20110305141A1 (en) * | 2010-06-08 | 2011-12-15 | Itsik Horovitz | Systems and methods for extracting media from network traffic having unknown protocols |
CN103023909A (zh) * | 2012-12-24 | 2013-04-03 | 成都科来软件有限公司 | 一种网络数据包协议识别方法及*** |
CN103795709A (zh) * | 2013-12-27 | 2014-05-14 | 北京天融信软件有限公司 | 一种网络安全检测方法和*** |
CN105516173A (zh) * | 2015-12-25 | 2016-04-20 | 北京中安智达科技有限公司 | 一种网络应用层协议识别的方法和*** |
CN109861998A (zh) * | 2019-01-21 | 2019-06-07 | 成都新橙北斗智联有限公司 | 一种基于北斗短报文协议的插件式动态解析***及方法 |
CN112702405A (zh) * | 2020-12-18 | 2021-04-23 | 太原理工大学 | 一种基于多协议探测的物联网设备识别方法 |
CN113037532A (zh) * | 2019-12-25 | 2021-06-25 | 中兴通讯股份有限公司 | 一种流媒体码流探测方法、装置、服务器和可读存储介质 |
CN113783880A (zh) * | 2021-09-14 | 2021-12-10 | 南方电网数字电网研究院有限公司 | 网络安全检测***及其网络安全检测方法 |
-
2021
- 2021-12-27 CN CN202111614957.1A patent/CN114338439B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088425A1 (en) * | 2002-10-31 | 2004-05-06 | Comverse, Ltd. | Application level gateway based on universal parser |
CN101426000A (zh) * | 2007-10-30 | 2009-05-06 | 北京启明星辰信息技术有限公司 | 一种通用协议解析方法及*** |
US20110305141A1 (en) * | 2010-06-08 | 2011-12-15 | Itsik Horovitz | Systems and methods for extracting media from network traffic having unknown protocols |
CN103023909A (zh) * | 2012-12-24 | 2013-04-03 | 成都科来软件有限公司 | 一种网络数据包协议识别方法及*** |
CN103795709A (zh) * | 2013-12-27 | 2014-05-14 | 北京天融信软件有限公司 | 一种网络安全检测方法和*** |
CN105516173A (zh) * | 2015-12-25 | 2016-04-20 | 北京中安智达科技有限公司 | 一种网络应用层协议识别的方法和*** |
CN109861998A (zh) * | 2019-01-21 | 2019-06-07 | 成都新橙北斗智联有限公司 | 一种基于北斗短报文协议的插件式动态解析***及方法 |
CN113037532A (zh) * | 2019-12-25 | 2021-06-25 | 中兴通讯股份有限公司 | 一种流媒体码流探测方法、装置、服务器和可读存储介质 |
CN112702405A (zh) * | 2020-12-18 | 2021-04-23 | 太原理工大学 | 一种基于多协议探测的物联网设备识别方法 |
CN113783880A (zh) * | 2021-09-14 | 2021-12-10 | 南方电网数字电网研究院有限公司 | 网络安全检测***及其网络安全检测方法 |
Non-Patent Citations (6)
Title |
---|
侯松鹂;陆亚洲;: "一种插件式网络流量识别***的设计与实现", 河南大学学报(自然科学版), no. 03 * |
唐辉;: "基于Wireshark二次开发的地铁信号***应用协议解析插件", 交通与运输(学术版), no. 01 * |
张楠: "新一代入侵检测技术及应用――基于协议分析技术的入侵检测***模型研究", 计算机安全, no. 12 * |
朱旭;罗军勇;刘琰;张凯翔;: "可扩展的应用协议识别与解析软件的设计与实现", 信息工程大学学报, no. 01 * |
潘峰;李涛;张电;: "主动式漏洞检测与修复***的设计与实现", 信息网络安全, no. 05 * |
王丽萍;孙蕾;: "基于Ethereal开源代码构建协议解析器的方法研究", 计算机技术与发展, no. 10 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115333967A (zh) * | 2022-10-11 | 2022-11-11 | 南京中孚信息技术有限公司 | 数据上报方法、***、设备及存储介质 |
CN117834750A (zh) * | 2024-03-04 | 2024-04-05 | 苏州元脑智能科技有限公司 | 获取协议数据的装置、方法、***、设备、介质及服务器 |
CN117834750B (zh) * | 2024-03-04 | 2024-05-28 | 苏州元脑智能科技有限公司 | 获取协议数据的装置、方法、***、设备、介质及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN114338439B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7623466B2 (en) | Symmetric connection detection | |
US9258225B2 (en) | System and method for efficient matching of regular expression patterns across multiple packets | |
KR101409921B1 (ko) | 스위치 asic 내에 라인-레이트 애플리케이션 인식을 통합하기 위한 시스템 및 방법 | |
Yu et al. | {dShark}: A general, easy to program and scalable framework for analyzing in-network packet traces | |
US6839751B1 (en) | Re-using information from data transactions for maintaining statistics in network monitoring | |
US6851061B1 (en) | System and method for intrusion detection data collection using a network protocol stack multiplexor | |
US9787556B2 (en) | Apparatus, system, and method for enhanced monitoring, searching, and visualization of network data | |
US9485155B2 (en) | Traffic analysis of data flows | |
CN114338439B (zh) | 一种通用的网络流量解析装置和方法 | |
CN102739473B (zh) | 一种应用智能网卡的网络检测方法 | |
US7889656B2 (en) | Binned duration flow tracking | |
CN107645398A (zh) | 一种诊断网络性能和故障的方法和装置 | |
US7062680B2 (en) | Expert system for protocols analysis | |
US8762515B2 (en) | Methods and systems for collection, tracking, and display of near real time multicast data | |
US20090138471A1 (en) | Method and apparatus for identifying data content | |
CN106330584A (zh) | 一种业务流的识别方法及识别装置 | |
CN113794605A (zh) | 一种基于eBPF的内核丢包检测方法、***和装置 | |
US8634309B2 (en) | Security network processor system and method | |
CN110691007A (zh) | 一种精确测量quic连接丢包率的方法 | |
US20160226826A1 (en) | 10Gbps LINE RATE STREAM TO DISK WITH FAST RETRIEVAL (METADATA) AND NETWORK STATISTICS | |
Harrison et al. | Carpe elephants: Seize the global heavy hitters | |
CN106789728A (zh) | 一种基于NetFPGA的VoIP流量实时识别方法 | |
KR100608541B1 (ko) | 샘플링과 시그너쳐 검색 기능을 구비한 인터넷 프로토콜패킷 수집 장치 및 그 방법 | |
Gonzalez et al. | Enhancing network intrusion detection with integrated sampling and filtering | |
US7266088B1 (en) | Method of monitoring and formatting computer network data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |