CN105407096A - 基于流管理的报文数据检测方法 - Google Patents
基于流管理的报文数据检测方法 Download PDFInfo
- Publication number
- CN105407096A CN105407096A CN201510835960.4A CN201510835960A CN105407096A CN 105407096 A CN105407096 A CN 105407096A CN 201510835960 A CN201510835960 A CN 201510835960A CN 105407096 A CN105407096 A CN 105407096A
- Authority
- CN
- China
- Prior art keywords
- message data
- current
- current message
- data
- tuple
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
Abstract
本发明公开了基于流管理的报文数据检测方法,其包括以下步骤:接收网络中的数据报文数据,并提取当前报文数据中的五元组信息;对五元组信息进行排序后,采用hash算法将五元组信息转化为标识号,并判断是否存在具有标识号和五元组信息相同的流;若存在,则判断当前报文数据的方向;再判断当前报文数据是否为该方向上,上一个报文数据的下一个报文数据:若是,从流上读取上一个报文数据该方向上的检测状态,并采用AC算法接着上一个报文数据的检测状态对下一个报文数据进行检测;判定流管理内存中,该方向上是否还有缓存的报文数据未进行检测,若存在,则重复上述AC算法检测流程最后更新最后一次的检测状态到流管理内存中。
Description
技术领域
本发明涉及网络信息传输安全技术领域,具体涉及基于流管理的报文数据检测方法。
背景技术
随着网络的发展和各种应用层协议的出现,基于报文数据内容分析和检测的设备(如IPS,协议识别,行为审计等)相应产生。这些设备的主要工作原理是从报文数据的应用层信息中,查找某些特定关键字(深度检测/状态检测),从而达到识别协议,病毒,攻击等信息的目的。
因为tcp协议的特性决定了,通信双方的数据通常不会在一个报文数据中发送完成,一般是在多个报文数据中发送完成的。针对这一特性,攻击者往往会把病毒、攻击等关键信息隐藏在多个数据报文数据之间,单个数据报文数据经过检测设备时,由于单个报文数据所带检测信息不完整,所以检测不出对应的病毒、攻击信息,从而达到了逃避检测的目的。
为解决上述问题,目前常采用对同一条流同一个方向上的多个报文数据进行重组,把多个报文数据重新组合在一起,还原用户发送的数据,再将还原的报文数据进行深度检测,解决病毒、攻击信息跨报文数据的问题,从而提高检测精度。
然而如果按照上述方法,对用户数据进行重组检测,会带来如下两个方面问题:1、流重组需要将同一条流的多次数据进行缓存,达到一定时机后,再将用户数据拷贝在一起,将重组完的数据再进行一次检测,这样做会占用大量的设备资源,大大降低了设备的处理性能。2、当重组检测出攻击、病毒时,由于原始的用户数据不带攻击、病毒信息,此时原始数据已经“绕过”攻击检测设备,到达用户主机,攻击、病毒已经生效,所以当重组检测出攻击、病毒信息时,为时已晚,只能发出告警信息告知用户。
发明内容
针对现有技术中的上述不足,本发明提供了一种在对报文数据中是否携带病毒、攻击信息进行检测时,占用内存小的基于流管理的报文数据检测方法。
为了达到上述发明目的,本发明采用的技术方案为:
提供一种基于流管理的报文数据检测方法,其包括以下步骤:
接收网络中的当前报文数据,并提取当前报文数据中的五元组信息;
对五元组信息进行排序后,采用hash算法将五元组信息转化为标识号,并判断是否存在具有标识号和五元组信息的流;
若存在,则先确定当前报文数据的方向,再判断当前报文数据是否是该方向上,上一个报文数据的下一个报文数据;;
若是,读取上一个报文数据的检测状态,并采用AC算法接着上一个报文数据的检测状态对下一个报文数据进行检测;
判定是否存在与流的方向相同的报文数据未进行检测,若不存在,更新最后一次的检测状态到流管理内存中。
本发明的有益效果为:在对报文数据中是否携带病毒、攻击信息进行检测时,在确定当前报文数据是上一个报文数据的下一个报文数据后,读取上一个报文数据的检测状态继续检测,在检测过程中只存在报文数据的检测状态,不需要对大量报文数据进行缓存等待重组报文数据,从而节省内存拷贝时间,提升了处理性能,降低了内存使用率。
由于本方法在客户端发送的原始报文数据时就能检测到攻击信息或病毒,而不是重组报文数据后,这样我们可以针对原始报文数据进行丢弃处理,这样攻击信息到达不了目的地,有效阻止了攻击的发生,从而保证了网络的安全。
附图说明
图1为基于流管理的报文数据检测方法的流程图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
参考图1,图1示出了基于流管理的报文数据检测方法的流程图;如图1所示,该基于流管理的报文数据检测方法包括以下步骤:
接收网络当中的当前报文数据,并提取当前报文数据中的五元组信息,之后对五元组信息进行排序;这里的五元组信息为源IP地址、源端口、目的IP地址、目的端口和传输层协议。
对当前报文数据中的五元组信息进行排序的主要目的是是:因为一条流有两个方向,以pc(pc的IP为1.1.1.1,端口为3340)访问baidu(baidu的IP为2.2.2.2,端口为80)为例,pc发往baidu的报文数据为客户端方向,baidu发往pc的报文数据为服务器方向。
客户端报文数据提取出来的五元组信息为(1.1.1.1,2.2.2.2,3340,80),服务器端报文数据提取出来的五元组为(2.2.2.2,1.1.1.1,80,3340),如果不将五元组信息进行排序,客户端方向和服务器方向的五元组计算出来的流ID(标识号)会不一样,因此也就不属于同一条流了,这显然不符合要求。需要将客户端和服务器的五元组信息排序后,再算流ID,这样保证两个方向的报文数据会计算出同一个流ID。最终客户端和服务器端按大小排序后五元组为(2.2.2.2,1.1.1.1,3340,80)。
对五元组信息进行排序时,主要是将源目IP地址与目标IP地址进行比较,将数据较大的放在前面;而对源端口和目的端口进行比较时,也是将将数据较大的放在前面;以使客服端发向服务器的五元组信息与服务器发向的客服端的五元组信息相同。
对五元组信息进行排序后,采用hash算法将五元组信息转化为标识号,并判断是否存在具有相同标识号和五元组信息的流;其中的hash算法的目的是将一片数据(五元组信息)映射成为一个数值,相同的数据一定会映射成为同一个数值,不同的数据也有概率映射成为同一个数值(概率极低)。因此要判断是否是同一条流,可以先比较一下流ID(标识号,也即身份信息),如果流ID不一样,那么一定不是同一条流,如果流ID一样,再比较流中存放的五元组是否和当前报文数据的五元组一致,如果一致则是同一条流,如果不一致,则不是同一条流。
若存在具有相同标识号和五元组信息的流,则确定当前报文数据的方向,再判断当前报文数据是否是该方向上,上一个报文数据的下一个报文数据。
其中,确定当前报文数据的方向的方法为:分析当前报文数据中是否为SYN包:若是,则当前报文数据为客户端方向,当前报文数据所在的五元组为客户端五元组,如果后续报文数据的五元组与客户端五元组相同,则报文数据是客户端方向,如果相反,则报文数据的服务器端方向。
由于tcp协议特性决定了SYN包一定为客户端发往服务器端,所以在进行流管理的时候,如果当前报文数据为SYN包,则可以确定当前报文数据为客户端发送服务器方向。
若不存在具有相同标识号和五元组信息的流时,新建具有标识号的流,之后进入读取上一个报文数据的检测状态步骤。
判断当前报文数据是否为上一个报文数据的下一个报文数据的具体操作方法为:
读取当前报文数据的序号,并将其序号与存储的期望值进行比较:
若当前报文数据的序号等于期望值(sequence字段),则判定当前报文数据为上一个报文数据的下一个报文数据;
若当前报文数据的序号大于期望值,表明当前报文数据时乱序需要进行乱序重排,对当前报文数据进行存储,当期望值每更新一次就需要读取存储的报文数据,直至存储的报文数据的序号等于期望值时,则判定当前报文数据为上一个报文数据的下一个报文数据;若是在读取存储的报文数据对其序号和期望值进行判断时,出现报文数据的序号小于期望值时,则按照部去重处理进行操作。
若当前报文数据的序号小于期望值时,表明当前报文数据处于部分重叠状态,需要进行去重处理,则去除当前报文数据与上一个报文数据重叠的字节直至序号等于期望值时,之后判定当前报文数据为上一个报文数据的下一个报文数据。当当前报文数据检测完毕后,将期望值更新为期望值加上一个报文数据长度后的数值。
下面对乱序重排和去重处理的具体实现方式进行详细地说明:
乱序重排和去重处理都依赖于tcp协议的sequence字段。Sequence(此处的Sequence为前面提到的期望值)表示tcp协议某方向要发送的数据的序号,client和server方向的序号是独立计算的,下一个报文数据的sequence与上一个报文数据的sequence和数据长度length相关,即sequence2=sequence1+length。
以由三条报文数据组成的信息报文数据为例进行说明,假设每个报文数据的数据长度都是20字节。那么报文数据1的sequence的值为1,发送的数据区间为1-20,报文数据2的sequence为1+20=21,发送的数据区间为21-40,报文数据3的sequence为21+20=41,发送的数据区间为41-60。
依据上一个报文数据的sequence和报文数据的数据长度,就可以计算出下一个报文数据sequence的期望值,当下一个报文数据到达检测设备时,如果不是期望的sequence(当前报文数据的序号大于或小于sequence),那么当前报文数据就是乱序报文数据或者重叠报文数据。
假设报文数据按照报文数据1,报文数据3和报文数据2的顺序到达设备,乱序处理主要分为如下几步:
第一步,报文数据1进入检测设备检测后,记录好报文数据1的检测状态,并预期下一个报文数据的sequence为21。
第二步,当报文数据3到达检测设备时,由于报文数据3的sequence为41,大于预期值21,判断此时报文数据3为乱序报文数据,将报文数据缓存起来,不进入状态机进行检测。
第三步,当报文数据2到达检测设备时,报文数据2的sequence为21,跟预期值相同,则判断报文数据2为该流上要检测的下一个报文数据,同时取出上一个报文数据(报文数据1)的检测状态,继续检测。检测完后,更新下一个检测报文数据的sequence预期值为41,此时查找缓存的报文数据,发现报文数据3的sequence跟预期值相同,则对报文数据3进行检测处理。
通过以上乱序处理,虽然报文数据按照报文数据1,报文数据3和报文数据2的顺序到达设备的,但是检测顺序依然为报文数据1,报文数据2和报文数据3。
去重处理的原理跟乱序处理类似,都是以sequence为基础处理的。去重处理和乱序处理是同时进行的。乱序处理第三步处理时,如果报文数据2的sequence<21,假设报文数据2的sequence为19,则表示报文数据1和报文数据2之间有重叠部分,报文数据1要传输的数据区间为1-20,报文数据2(长度为20字节)要传输的数据区间为19-39,其中报文数据1的19、20两个字节和报文数据2的19、20两个字节重复,因此要除去报文数据2的19、20两个多余的字节,将报文数据2的21-39数据区间送往状态机检测。
若是当前报文数据为上一个报文数据的下一个报文数据,读取上一个报文数据的检测状态,并采用AC算法接着上一个报文数据的检测状态对下一个报文数据进行检测;
判定是否存在与流的方向相同的报文数据未进行检测,若不存在,更新具有当前报文数据的标识号的流的检测状态。
在相同的运行环境下,对传统方法(采用缓存报文数据重组报文数据后的方式)和采用本方法对同一组传输的信息进行检测时的性能对比如下:
传统方式的传输速率为200Mbps,本方法的传输速率为350Mbps;传统方式缓冲报文数据需要的内存大小为2Gb,本方法在不存在乱序的情况下,不占用缓冲内存,即使在出现乱序的情况下,其所占缓冲内存也远小于传统方法。
Claims (4)
1.基于流管理的报文数据检测方法,其特征在于,包括以下步骤:
接收网络中的当前报文数据,并提取当前报文数据中的五元组信息;
对五元组信息进行排序后,采用hash算法将所述五元组信息转化为标识号,并判断是否存在具有相同标识号和所述五元组信息的流;
若存在,确定当前报文数据方向后,判断当前报文数据是否为对应方向上,上一个报文数据的下一个报文数据;
若是,读取上一个报文数据的检测状态,并采用AC算法接着上一个报文数据的检测状态对下一个报文数据进行检测;
判定是否存在与所述流的方向相同的报文数据未进行检测,若不存在,更新最后一次的检测状态到流管理内存中。
2.根据权利要求1所述的基于流管理的报文数据检测方法,其特征在于,所述判断当前报文数据是否为上一个报文数据的下一个报文数据进一步包括:
读取当前报文数据的序号,并将其序号与存储的期望值进行比较:
若当前报文数据的序号等于期望值,则判定当前报文数据为上一个报文数据的下一个报文数据;
若当前报文数据的序号大于所述期望值,对当前报文数据进行存储,直至所述序号等于所述期望值时,则判定当前报文数据为上一个报文数据的下一个报文数据;
若当前报文数据的序号小于所述期望值时,则去除当前报文数据与上一个报文数据重叠的字节直至所述序号等于所述期望值,之后判定当前报文数据为上一个报文数据的下一个报文数据;
当当前报文数据检测完毕后,将所述期望值更新为所述期望值加上一个报文数据长度后的数值。
3.根据权利要求1或2所述的基于流管理的报文数据检测方法,其特征在于,若不存在具有所述标识号的流时,新建具有所述标识号的流,之后进入读取上一个报文数据的检测状态步骤。
4.根据权利要求1或2所述的基于流管理的报文数据检测方法,其特征在于,所述确定报文数据方向的方法为:
分析所述当前报文数据中是否为SYN包:若是,则当前报文数据为客户端方向,当前报文数据所在的五元组为客户端五元组,如果后续报文数据的五元组与客户端五元组相同,则报文数据是客户端方向,如果相反,则报文数据的服务器端方向。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510835960.4A CN105407096B (zh) | 2015-11-26 | 2015-11-26 | 基于流管理的报文数据检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510835960.4A CN105407096B (zh) | 2015-11-26 | 2015-11-26 | 基于流管理的报文数据检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105407096A true CN105407096A (zh) | 2016-03-16 |
CN105407096B CN105407096B (zh) | 2019-03-19 |
Family
ID=55472351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510835960.4A Active CN105407096B (zh) | 2015-11-26 | 2015-11-26 | 基于流管理的报文数据检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105407096B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259294A (zh) * | 2017-02-28 | 2018-07-06 | 新华三技术有限公司 | 报文处理方法及装置 |
CN110557302A (zh) * | 2019-08-30 | 2019-12-10 | 西南交通大学 | 网络设备报文观测数据采集方法 |
CN111565200A (zh) * | 2020-07-14 | 2020-08-21 | 成都数维通信技术有限公司 | 一种基于多路径报文检测分析的nat关联检测方法 |
CN111917780A (zh) * | 2020-08-05 | 2020-11-10 | 电信科学技术第五研究所有限公司 | 一种基于fpga的toe数据拼接系统及方法 |
WO2021052151A1 (zh) * | 2019-09-16 | 2021-03-25 | 华为技术有限公司 | 一种报文流乱序检测方法、报文处理方法及装置 |
CN112954079A (zh) * | 2021-04-08 | 2021-06-11 | 平安科技(深圳)有限公司 | 报文转发方法、装置、电子设备及可读存储介质 |
CN114553494A (zh) * | 2022-01-26 | 2022-05-27 | 深圳市风云实业有限公司 | 一种基于数据报文的轻量级染色与检测方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026576A (zh) * | 2007-01-19 | 2007-08-29 | 杭州华为三康技术有限公司 | 兼顾匹配策略的处理分段报文串模式匹配的方法及装置 |
US20090262659A1 (en) * | 2008-04-17 | 2009-10-22 | Sourcefire, Inc. | Speed and memory optimization of intrusion detection system (IDS) and intrusion prevention system (IPS) rule processing |
CN101729573A (zh) * | 2009-12-18 | 2010-06-09 | 四川长虹电器股份有限公司 | 网络入侵检测的动态负载均衡方法 |
CN103023883A (zh) * | 2012-11-26 | 2013-04-03 | 清华大学 | 基于ac自动机和后缀树的字符串匹配方法 |
-
2015
- 2015-11-26 CN CN201510835960.4A patent/CN105407096B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026576A (zh) * | 2007-01-19 | 2007-08-29 | 杭州华为三康技术有限公司 | 兼顾匹配策略的处理分段报文串模式匹配的方法及装置 |
US20090262659A1 (en) * | 2008-04-17 | 2009-10-22 | Sourcefire, Inc. | Speed and memory optimization of intrusion detection system (IDS) and intrusion prevention system (IPS) rule processing |
CN101729573A (zh) * | 2009-12-18 | 2010-06-09 | 四川长虹电器股份有限公司 | 网络入侵检测的动态负载均衡方法 |
CN103023883A (zh) * | 2012-11-26 | 2013-04-03 | 清华大学 | 基于ac自动机和后缀树的字符串匹配方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259294A (zh) * | 2017-02-28 | 2018-07-06 | 新华三技术有限公司 | 报文处理方法及装置 |
CN108259294B (zh) * | 2017-02-28 | 2021-01-26 | 新华三技术有限公司 | 报文处理方法及装置 |
CN110557302A (zh) * | 2019-08-30 | 2019-12-10 | 西南交通大学 | 网络设备报文观测数据采集方法 |
CN110557302B (zh) * | 2019-08-30 | 2022-05-20 | 西南交通大学 | 网络设备报文观测数据采集方法 |
WO2021052151A1 (zh) * | 2019-09-16 | 2021-03-25 | 华为技术有限公司 | 一种报文流乱序检测方法、报文处理方法及装置 |
CN111565200A (zh) * | 2020-07-14 | 2020-08-21 | 成都数维通信技术有限公司 | 一种基于多路径报文检测分析的nat关联检测方法 |
CN111917780A (zh) * | 2020-08-05 | 2020-11-10 | 电信科学技术第五研究所有限公司 | 一种基于fpga的toe数据拼接系统及方法 |
CN112954079A (zh) * | 2021-04-08 | 2021-06-11 | 平安科技(深圳)有限公司 | 报文转发方法、装置、电子设备及可读存储介质 |
CN112954079B (zh) * | 2021-04-08 | 2022-10-21 | 平安科技(深圳)有限公司 | 报文转发方法、装置、电子设备及可读存储介质 |
CN114553494A (zh) * | 2022-01-26 | 2022-05-27 | 深圳市风云实业有限公司 | 一种基于数据报文的轻量级染色与检测方法及装置 |
CN114553494B (zh) * | 2022-01-26 | 2024-02-13 | 深圳市风云实业有限公司 | 一种基于数据报文的轻量级染色与检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105407096B (zh) | 2019-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105407096A (zh) | 基于流管理的报文数据检测方法 | |
CN110753064B (zh) | 机器学习和规则匹配融合的安全检测系统 | |
CN111277570A (zh) | 数据的安全监测方法和装置、电子设备、可读介质 | |
KR101391781B1 (ko) | 웹 트랜잭션 밀집도 기반 에이치티티피 봇넷 탐지 장치 및 방법 | |
CN107733851A (zh) | 基于通信行为分析的dns隧道木马检测方法 | |
CN109309626B (zh) | 一种基于dpdk的高速网络数据包捕获分流及缓存方法 | |
CN107786545A (zh) | 一种网络攻击行为检测方法及终端设备 | |
JP2006279930A (ja) | 不正アクセス検出方法及び装置、並びに不正アクセス遮断方法及び装置 | |
CN113114694B (zh) | 一种面向高速网络分组抽样数据采集场景的DDoS攻击检测方法 | |
CN107302534A (zh) | 一种基于大数据平台的DDoS网络攻击检测方法及装置 | |
CN109842588B (zh) | 网络数据检测方法及相关设备 | |
TWI437850B (zh) | 網路流量異常偵測系統及其方法 | |
CN106330584A (zh) | 一种业务流的识别方法及识别装置 | |
CN107454120A (zh) | 网络攻击防御系统和防御网络攻击的方法 | |
JP2006148686A (ja) | 通信監視システム | |
US20180020014A1 (en) | Malicious communication pattern extraction device, malicious communication pattern extraction system, malicious communication pattern extraction method, and malicious communication pattern extraction program | |
CN101719906B (zh) | 一种基于蠕虫传播行为的蠕虫检测方法 | |
CN114785567A (zh) | 一种流量识别方法、装置、设备及介质 | |
CN101316268B (zh) | 一种异常流的检测方法及系统 | |
CN103269337B (zh) | 数据处理方法及装置 | |
CN106257867A (zh) | 一种加密流量的业务识别方法和装置 | |
JP2007074339A (ja) | 拡散型不正アクセス検出方法および拡散型不正アクセス検出システム | |
CN101854366A (zh) | 一种对等网络流量识别的方法及装置 | |
KR101712462B1 (ko) | Ip 위험군 탐지 시스템 | |
CN108650229A (zh) | 一种网络应用行为解析还原方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |