CN103701670B - 一种数据包负载的处理方法和装置 - Google Patents

一种数据包负载的处理方法和装置 Download PDF

Info

Publication number
CN103701670B
CN103701670B CN201310745964.4A CN201310745964A CN103701670B CN 103701670 B CN103701670 B CN 103701670B CN 201310745964 A CN201310745964 A CN 201310745964A CN 103701670 B CN103701670 B CN 103701670B
Authority
CN
China
Prior art keywords
data
current
preprocessor
layer
handled
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.)
Active
Application number
CN201310745964.4A
Other languages
English (en)
Other versions
CN103701670A (zh
Inventor
严心猷
韩鹏
覃永靖
孙兆兴
孙利
崔晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
Original Assignee
NSFOCUS Information Technology Co Ltd
Beijing NSFocus Information Security Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NSFOCUS Information Technology Co Ltd, Beijing NSFocus Information Security Technology Co Ltd filed Critical NSFOCUS Information Technology Co Ltd
Priority to CN201310745964.4A priority Critical patent/CN103701670B/zh
Publication of CN103701670A publication Critical patent/CN103701670A/zh
Application granted granted Critical
Publication of CN103701670B publication Critical patent/CN103701670B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种数据包负载的处理方法和装置,用以解决现有技术中网络设备处理多层变换的数据包负载时存在的处理效率较低的问题。该方法包括:接收待处理的数据包负载,所述数据包负载为完整数据的一部分;对所述数据包负载进行处理,直至得到的数据为明文数据为止。

Description

一种数据包负载的处理方法和装置
技术领域
本发明涉及网络通信技术领域,尤其涉及一种数据包负载的处理方法和装置。
背景技术
深度包检测技术是对数据包负载做明文检查的技术,以确保接收到的数据包负载的安全性。但随着网络中的数据流的复杂性不断增加,比如压缩、加密和编码等,使接收到的数据包负载的可检测性越来越低,从而放过某些攻击信息。因此为了提高接收到的数据的安全性,就要求进行深度包检测的网络设备能够对接收到的数据包负载进行解压缩、解密和编码转换等处理,因为如果无法对接收到的数据包负载进行分析,就不可能判断出接收到的数据里是否含有攻击信息。
现有技术中,当一段完整数据由多个多层变换的数据包负载共同构成时,那么网络设备在对该多个多层变换的数据包负载进行处理时,只能依次对多个数据包负载分别进行第一层的处理,再将处理后得到的数据组合在一起,进行第二层的处理,直至处理至最后一层,而攻击信息一般都被隐藏在多层变换的数据中的最底层,那么网络设备只有在处理到最后一层数据时才会检测到攻击信息,而这一过程需要的时间会比较长,因此这种方案的处理效率比较低;进一步的,当真正解析出攻击信息时,可能已经放过了攻击流,因此这种方案的安全性也比较低。
发明内容
本发明实施例提供一种数据流的处理方法和装置,用以解决现有技术中网络设备处理多层变换的数据包负载时存在的处理效率和安全性较低的问题。
本发明实施例采用以下技术方案:
一种数据包负载的处理方法,包括:
接收待处理的数据包负载,所述数据包负载为完整数据的一部分;
对所述数据包负载进行处理,直至得到的数据为明文数据为止。
其中,对所述数据包负载进行处理之前,所述方法还包括:
判断预先确定的数据流的当前状态是否为正常状态;则
对所述数据包负载进行处理,具体包括:
当判断出数据流的当前状态为正常状态时,每次按照如下方式进行处理:
对当前数据进行解析,判断所述当前数据中是否存在非明文数据;
当判断出所述当前数据中存在非明文数据时,确定非明文数据的起始位置和数据类型;
根据确定出的所述非明文数据的起始位置,生成包含所述非明文数据的数据段;
选择包含与所述数据类型对应的状态机的预处理器,对生成的数据段进行处理,得到处理后的数据;其中,所述处理后的数据对应一个数据层,且每次得到的处理后的数据对应的数据层的层次依次升高;
其中,对所述数据包负载进行处理,具体包括:
当判断出数据流的当前状态为非正常状态时,按照数据层的层次从低至高的顺序依次使用如下方式进行处理:
判断当前数据层上是否存在预处理器;
当判断结果为存在预处理器时,从该预处理器中包含的状态机的当前状态开始对当前数据层对应的数据进行处理,得到处理后的数据;
当判断结果为不存在预处理器时,对当前数据层对应的数据进行解码,判断当前数据层对应的数据中是否存在非明文数据;
当判断出当前数据层对应的数据中存在非明文数据时,确定当前数据层对应的数据中的非明文数据的起始位置和数据类型;
根据确定出的所述非明文数据的起始位置,生成包含所述非明文数据的数据段;
选择包含与所述数据类型对应的状态机的预处理器,对生成的数据段进行处理,得到处理后的数据。
其中,从该预处理器中包含的状态机的当前状态开始对当前数据层对应的数据进行处理,得到处理后的数据之后,所述方法还包括:
当该预处理器中包含的状态机的当前状态为完成状态时,将该预处理器从当前数据层删除。
其中,选择包含与所述数据类型对应的状态机的预处理器,对所述数据段进行处理之后,所述方法还包括:
当所述预处理器中包含的状态机的当前状态处于未完成状态时,将所述预处理器存储在当前数据层上。
其中,数据流的当前状态根据如下方式确定:
判断是否存在存储有预处理器的数据层;
当判断出存在存储有预处理器的数据层时,则数据流的当前状态为非正常状态;
当判断出不存在存储有预处理器的数据层时,则数据流的当前状态为正常状态。
一种数据包负载的处理装置,包括:
接收单元,用于接收待处理的数据包负载,所述数据包负载为完整数据的一部分;
处理单元,用于对接收单元接收到的所述数据包负载进行处理,直至得到的数据为明文数据为止。
其中,所述装置还包括:
判断单元,用于判断预先确定的数据流的当前状态是否为正常状态;则
所述处理单元,具体用于:
当判断单元判断出数据流的当前状态为正常状态时,每次按照如下方式进行处理:
对当前数据进行解析,判断所述当前数据中是否存在非明文数据;
当判断出所述当前数据中存在非明文数据时,确定非明文数据的起始位置和数据类型;
根据确定出的所述非明文数据的起始位置,生成包含所述非明文数据的数据段;
选择包含与所述数据类型对应的状态机的预处理器,对生成的数据段进行处理,得到处理后的数据;其中,所述处理后的数据对应一个数据层,且每次得到的处理后的数据对应的数据层的层次依次升高。
进一步的,所述处理单元具体用于:
当判断单元判断出数据流的当前状态为非正常状态时,按照数据层的层次从低至高的顺序依次使用如下方式进行处理:
判断当前数据层上是否存在预处理器;
当判断结果为存在预处理器时,从该预处理器中包含的状态机的当前状态开始对当前数据层对应的数据进行处理,得到处理后的数据;
当判断结果为不存在预处理器时,对当前数据层对应的数据进行解码,判断当前数据层对应的数据中是否存在非明文数据;当判断出当前数据层对应的数据中存在非明文数据时,确定当前数据层对应的数据中的非明文数据的起始位置和数据类型;根据确定出的所述非明文数据的起始位置,生成包含所述非明文数据的数据段;选择包含与所述数据类型对应的状态机的预处理器,对生成的数据段进行处理,得到处理后的数据。
进一步的,所述装置还包括:
删除单元,用于从该预处理器中包含的状态机的当前状态开始对当前数据层对应的数据进行处理,得到处理后的数据之后,当该预处理器中包含的状态机的当前状态为完成状态时,将该预处理器从当前数据层删除。
进一步的,所述装置还包括:
存储单元,用于当选择包含与所述数据类型对应的状态机的预处理器,对所述数据段进行处理之后,所述预处理器中包含的状态机的当前状态处于未完成状态时,将所述预处理器存储在当前数据层上。
进一步的,所述装置还包括:
数据流状态确定单元,用于判断是否存在存储有预处理器的数据层;当判断出存在存储有预处理器的数据层时,则数据流的当前状态为非正常状态;当判断出不存在存储有预处理器的数据层时,则数据流的当前状态为正常状态。
本发明实施例的有益效果如下:
本发明实施例与现有技术相比,并不是对全部数据进行第一层的处理后再进行第二层的处理,而是当接收到作为完整数据的一部分的数据包负载时,便对该数据包负载进行处理,直至得到的数据为明文数据为止。由于本方案中每接收到一个数据包负载,便能得到该数据包负载中包含的全部信息,使得后续设备可以对该数据包负载中包含的全部信息做到即时检查,在提高每个数据包负载的处理效率的同时,也提高了接收到的数据的安全性。
附图说明
图1为本发明实施例提供的一种数据包负载的处理方法的原理流程图;
图2为本发明实施例提供的上述方法在实际应用中的实现流程图;
图3为用于实现本发明实施例提供的数据包负载的处理方法的***结构图;
图4为流式预处理器模块31的结构示意图;
图5为数据段生成器模块311的处理流程示意图;
图6为状态机模块312的处理流程示意图;
图7为base64状态机的状态迁移图;
图8为数据层管理模块313的处理流程示意图;
图9为本发明实施例提供的一种数据包负载的处理装置的结构示意图。
具体实施方式
为了解决现有技术中网络设备处理多层变换的数据流时存在的处理效率和安全性较低的问题,本发明实施例提供了一种数据包负载的处理方法和装置,该技术方案与现有技术相比,并不是对全部数据进行第一层的处理后再进行第二层的处理,而是当接收到作为完整数据的一部分的数据包负载时,便对该数据包负载进行处理,直至得到的数据为明文数据为止。由于本方案中每接收到一个数据包负载,便能得到该数据包负载中包含的全部信息,使得后续设备可以对该数据包负载中包含的全部信息做到即时检查,在提高每个数据包负载的处理效率的同时,也提高了接收到的数据的安全性。
以下结合说明书附图对本发明的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限制本发明。并且在不冲突的情况下,本发明中的实施例及实施例的特征可以互相结合。
本发明实施例提供了一种数据包负载的处理方法,如图1所示为该方法的原理流程图,主要包括下述步骤:
步骤11,接收待处理的数据包负载;
其中,接收到的待处理的数据包负载为完整数据的一部分;
步骤12,对该数据包负载进行处理,直至得到的数据为明文数据为止。
下面根据上述提供的实现原理,对本发明实施例提供的数据包负载的处理方法进行详细介绍。其中,在详细介绍之前,首先对本发明实施例中涉及到的一些概念进行简单介绍:
本发明实施例中可以将完整数据,即一个会话视为一个数据流,如果对数据流进行分割,就会得到的多个数据段。则本发明实施例中接收到的每个数据包负载都可以视为一个大的数据段。
如果对接收到的数据包负载进行解码或解压缩等操作后得到了新的数据,那么得到的新的数据又是一个新的数据段,相比数据包负载而言,这个新的数据段是一个新的层次,因此本发明实施例中用数据层来描述这种层次关系,而数据包负载对应的数据层的层次最低,对数据包负载依次处理后得到的数据对应的数据层的层次依次升高。
如图2所示,为本发明实施例提供的上述方法在实际应用中的实现流程图。该方法可以具体包括下述步骤:
步骤21,接收待处理的数据包负载,该数据包负载为完整数据的一部分;
步骤22,判断预先确定的数据流的当前状态是否为正常状态;当判断结果为否时,执行步骤24,当判断结果为是时,执行步骤23;
数据流的当前状态可以根据如下方式确定:
判断是否存在存储有预处理器的数据层;
当判断出存在存储有预处理器的数据层时,则数据流的当前状态为非正常状态;
当判断出不存在存储有预处理器的数据层时,则数据流的当前状态为正常状态。
步骤23,每次根据第一种处理方式进行处理;
其中,第一种处理方式为:
对当前数据进行解析,判断当前数据中是否存在非明文数据;
当判断出当前数据中存在非明文数据时,确定非明文数据的起始位置和数据类型;
根据确定出的非明文数据的起始位置,生成包含非明文数据的数据段;
选择包含与数据类型对应的状态机的预处理器,对生成的数据段进行处理,得到处理后的数据;其中,处理后的数据对应一个数据层,且每次得到的处理后的数据对应的数据层的层次依次升高。
其中,当判断出数据流的当前状态为正常状态时,此时不存在存储有预处理器的数据层,这种情况有两种可能:第一种是此时接收到的数据包负载是当前会话的第一个数据包负载,第二种是之前接收到的数据包负载中的非明文数据已经全部处理完。因此,当判断出数据流的当前状态为正常状态时,就不需要对接收到的数据包负载进行预处理操作,而是直接对接收到的数据包负载进行解码处理,并且只有在解码过程中遇到非明文数据时,才会逐步创建数据层。
步骤24,按照数据层的层次从低至高的顺序,每次根据第二种方式进行处理;
其中,第二种处理方式为:
判断当前数据层上是否存在预处理器;
当判断结果为存在预处理器时,从该预处理器中包含的状态机的当前状态开始对当前数据层对应的数据进行处理,得到处理后的数据;
当判断结果为不存在预处理器时,对当前数据层对应的数据进行解码,判断当前数据层对应的数据中是否存在非明文数据;
当判断出当前数据层对应的数据中存在非明文数据时,确定当前数据层对应的数据中的非明文数据的起始位置和数据类型;
根据确定出的非明文数据的起始位置,生成包含非明文数据的数据段;其中,该数据段的长度是从非明文数据的起始为止到该当前数据层对应的数据的终止位置;
选择包含与确定出的数据类型对应的状态机的预处理器,对生成的数据段进行处理,得到处理后的数据。
比如,确定出的数据类型为压缩类型,则选择包含解压缩状态机的预处理器,对生成的数据段进行解压缩。
由于需要解压缩的数据包负载可能跨包,即一段完整数据被压缩后,被分成至少两个数据包发送,所以一个预处理器对应一个数据层,当该预处理器中的状态机处于解压缩未完成状态的情况下,就将该预处理器存储在当前数据层,以便后续可以使用该预处理器对当前数据层对应的数据继续处理。
因此,该方法还可以进一步包括:
当该预处理器中包含的状态机的当前状态处于未完成状态时,将该预处理器存储在当前数据层上。
以解压缩过程为例,使用状态机模型来组织解压缩过程,解压缩内部的状态迁移由解压缩状态机来维护,每次进入该解压缩状态机后,在一系列的状态迁移之后,该解压缩状态机会返回一个当前状态,可以包括:NEEDDATA,表示该解压缩状态机内部还需要数据使之状态迁移,FINISH,表示处理完成, ERROR,表示处理过程中发生错误。因此,当解压缩状态机退出之后,如果返回的当前状态是NEEDDATA,则将包含该解压缩状态机的预处理器存储在当前数据层上,等待下一次当前数据层对应的数据进入时,该解压缩状态机可以从上次退出时的状态继续开始状态迁移,相当于从当前状态重新唤醒。
同样的,当判断结果为存在预处理器时,从该预处理器中包含的状态机的当前状态开始对当前数据层对应的数据进行处理,得到处理后的数据之后,如果该预处理器中包含的状态机的当前状态为完成状态,则将该预处理器从当前数据层删除。
该技术方案与现有技术相比,并不是对全部数据进行第一层的处理后再进行第二层的处理,而是当接收到作为完整数据的一部分的数据包负载时,便对该数据包负载进行处理,直至得到的数据为明文数据为止。由于本方案中每接收到一个数据包负载,便能得到该数据包负载中包含的全部信息,使得后续设备可以对该数据包负载中包含的全部信息做到即时检查,在提高每个数据包负载的处理效率的同时,也提高了接收到的数据的安全性。
如图3所示,为用于实现本发明实施例提供的数据包负载的处理方法的***结构图。该***由流式预处理器单元31和明文处理单元32组成,流式预处理器单元31在整个会话过程中和明文处理模块32实时交互。
其中,流式预处理器模块31的结构示意图如图4所示,包括数据段生成器模块311、状态机模块312、数据层管理模块313和数据流管理模块314。
针对数据段生成器模块311,如图5所示,为数据段生成器模块311的处理流程示意图。
当会话的第一个数据包负载进入该***中,此时就只有一个数据段和一个数据层,而且该数据层上没有存储任何预处理器。此时该数据包负载还没有开始解码,并不知道哪里存在非明文数据。
随着图3中的明文处理模块32对该数据包负载的解码的进行,当明文处理模块32发现该数据包负载中存在非明文数据时,便跳转到数据段生成器模块311,该模块根据明文处理模块32携带的参数,包括确定出的非明文数据的起始位置和数据类型,生成一个数据段,作为状态机模块312的输入。
当后续数据包负载进入该***时,和第一个数据包负载进入时不同的是,此时流式预处理器模块31的内部可能有多个等待输入数据的数据层,而数据段生成器模块311要保证每个需要输入数据的数据层都能继续得到数据进行加压缩等处理,因此应该从数据层中选择当前没有被处理的层次最低的数据层对应的数据段做相应处理,当判断出当前数据层上存储有状态机(即上文中的包含状态机的预处理器)时,将当前数据层对应的数据段输出到状态机模块312,否则将当前数据层对应的数据段输出到数据流管理模块314。
针对状态机模块312,如图6所示,为状态机模块312的处理流程示意图。
以base64状态机为例,如图7所示,为base64状态机的状态迁移图。其中,状态机中遇到\r是一个状态,遇到\n是一个状态,遇到第一个合法字符也是一个状态,这些状态对后续模块是透明的,但是数据层管理模块313要知道该状态机的总体状态:NEEDDATA(需要数据),FINISH(完成)还是ERROR (错误)。当状态机退出之后的状态是NEEDDATA,则当前数据层中将添加这个状态机,等待下一次进入之时,可以从之前退出时的状态开始,相当于重新唤醒。
而在状态机运转过程中,会从数据段的数据中得到新的数据,这些新的数据导致原始的数据段被删除,并产生新的数据段,而新的数据段的产生将会带来数据层的变化,这些操作集合将会输入到下一模块数据层管理模块313。
针对数据层管理模块313,如图8所示,为数据层管理模块313的处理流程示意图。
该数据层管理模块313中,当状态机模块312中处理的数据段是从明文处理模块32进入的,只需要对这一个数据段进行处理,然后就可以跳转到下一模块数据流管理模块314;但是当状态机模块312中处理的数据段不是从明文处理模块32进入的,此时可能有多个数据层,因此处理完一个数据层之后,要继续处理其它数据层,因此跳转回数据段生成器模块311 。
针对数据流管理模块314,该模块负责为明文处理模块32准备数据,参考上图,有两条路径可以进入数据流管理模块314,一个是数据段从明文处理模块32进入,状态机模块312构建一个新的数据段。一个是数据段不是从明文处理模块32进入,对所有数据层进行处理,最后返回层次最高的数据层对应的数据段,并且该数据层肯定没有存储状态机。简单的说这两条路径,最后都提供给数据流管理模块314一个数据段(还有对应的一个数据层)。数据流管理模块314处理这个数据段。正常情况下,这个数据段有长度。错误情况,或者一些极端情况比如数据包负载为1字节。
该模块负责将收到的数据段转化为一个数据流。并且在该数据流管理模块 314中也有三个状态:数据流NEEDDATA,数据流NORMAL(正常),数据流ERROR。数据流NEEDDATA,说明前面存在需要数据的数据层,则当该***再收到数据包负载时,则直接依次对所有数据层进行处理,最后返回层次最高的数据层对应的数据段;数据流NORMAL,则说明前面不存在需要数据的数据层,则该***再收到数据包负载时,则直接进入明文处理模块32 。
基于上述构思,本发明实施例还提供了一种数据包负载的处理装置,如图 9所示,包括:
接收单元91,用于接收待处理的数据包负载,所述数据包负载为完整数据的一部分;
处理单元92,用于对接收单元91接收到的所述数据包负载进行处理,直至得到的数据为明文数据为止。
其中,所述装置还可以包括:
判断单元93,用于判断预先确定的数据流的当前状态是否为正常状态;则
所述处理单元92具体用于:
当判断单元93判断出数据流的当前状态为正常状态时,每次按照如下方式进行处理:
对当前数据进行解析,判断所述当前数据中是否存在非明文数据;
当判断出所述当前数据中存在非明文数据时,确定非明文数据的起始位置和数据类型;
根据确定出的所述非明文数据的起始位置,生成包含所述非明文数据的数据段;
选择包含与所述数据类型对应的状态机的预处理器,对生成的数据段进行处理,得到处理后的数据;其中,所述处理后的数据对应一个数据层,且每次得到的处理后的数据对应的数据层的层次依次升高。
其中,所述处理单元92具体用于:
当判断单元93判断出数据流的当前状态为非正常状态时,按照数据层的层次从低至高的顺序依次使用如下方式进行处理:
判断当前数据层上是否存在预处理器;
当判断结果为存在预处理器时,从该预处理器中包含的状态机的当前状态开始对当前数据层对应的数据进行处理,得到处理后的数据;
当判断结果为不存在预处理器时,对当前数据层对应的数据进行解码,判断当前数据层对应的数据中是否存在非明文数据;当判断出当前数据层对应的数据中存在非明文数据时,确定当前数据层对应的数据中的非明文数据的起始位置和数据类型;根据确定出的所述非明文数据的起始位置,生成包含所述非明文数据的数据段;选择包含与所述数据类型对应的状态机的预处理器,对生成的数据段进行处理,得到处理后的数据。
进一步的,所述装置还包括:
删除单元94,用于从该预处理器中包含的状态机的当前状态开始对当前数据层对应的数据进行处理,得到处理后的数据之后,当该预处理器中包含的状态机的当前状态为完成状态时,将该预处理器从当前数据层删除。
进一步的,所述装置还包括:
存储单元95,用于当选择包含与所述数据类型对应的状态机的预处理器,对所述数据段进行处理之后,所述预处理器中包含的状态机的当前状态处于未完成状态时,将所述预处理器存储在当前数据层上。
进一步的,所述装置还包括:
数据流状态确定单元96,用于判断是否存在存储有预处理器的数据层;当判断出存在存储有预处理器的数据层时,则数据流的当前状态为非正常状态;当判断出不存在存储有预处理器的数据层时,则数据流的当前状态为正常状态。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (8)

1.一种数据包负载的处理方法,其特征在于,包括:
接收待处理的数据包负载,所述数据包负载为完整数据的一部分;所述完整数据由多个多层变换的数据包负载共同构成;
每接收到一个数据包负载,判断预先确定的数据流的当前状态是否为正常状态,并,根据以下方式对所述数据包负载进行处理,直至得到的数据为明文数据为止:
当判断出数据流的当前状态为正常状态时,每次按照如下方式进行处理:
对当前数据进行解析,判断所述当前数据中是否存在非明文数据;
当判断出所述当前数据中存在非明文数据时,确定非明文数据的起始位置和数据类型;
根据确定出的所述非明文数据的起始位置,生成包含所述非明文数据的数据段;
选择包含与所述数据类型对应的状态机的预处理器,对生成的数据段进行处理,得到处理后的数据;其中,所述处理后的数据对应一个数据层,且每次得到的处理后的数据对应的数据层的层次依次升高;
当判断出数据流的当前状态为非正常状态时,按照数据层的层次从低至高的顺序依次使用如下方式进行处理:
判断当前数据层上是否存在预处理器;
当判断结果为存在预处理器时,从该预处理器中包含的状态机的当前状态开始对当前数据层对应的数据进行处理,得到处理后的数据;
当判断结果为不存在预处理器时,对当前数据层对应的数据进行解码,判断当前数据层对应的数据中是否存在非明文数据;
当判断出当前数据层对应的数据中存在非明文数据时,确定当前数据层对应的数据中的非明文数据的起始位置和数据类型;
根据确定出的所述非明文数据的起始位置,生成包含所述非明文数据的数据段;
选择包含与所述数据类型对应的状态机的预处理器,对生成的数据段进行处理,得到处理后的数据。
2.如权利要求1所述的方法,其特征在于,从该预处理器中包含的状态机的当前状态开始对当前数据层对应的数据进行处理,得到处理后的数据之后,所述方法还包括:
当该预处理器中包含的状态机的当前状态为完成状态时,将该预处理器从当前数据层删除。
3.如权利要求1~2任一所述的方法,其特征在于,选择包含与所述数据类型对应的状态机的预处理器,对所述数据段进行处理之后,所述方法还包括:
当所述预处理器中包含的状态机的当前状态处于未完成状态时,将所述预处理器存储在当前数据层上。
4.如权利要求1所述的方法,其特征在于,数据流的当前状态根据如下方式确定:
判断是否存在存储有预处理器的数据层;
当判断出存在存储有预处理器的数据层时,则数据流的当前状态为非正常状态;
当判断出不存在存储有预处理器的数据层时,则数据流的当前状态为正常状态。
5.一种数据包负载的处理装置,其特征在于,包括:
接收单元,用于接收待处理的数据包负载,所述数据包负载为完整数据的一部分;所述完整数据由多个多层变换的数据包负载共同构成;
处理单元,用于对接收单元接收到每一个数据包负载,对所述数据包负载进行处理,直至得到的数据为明文数据为止;
其中,所述装置还包括:
判断单元,用于判断预先确定的数据流的当前状态是否为正常状态;则
所述处理单元,具体用于:
当判断单元判断出数据流的当前状态为正常状态时,每次按照如下方式进行处理:
对当前数据进行解析,判断所述当前数据中是否存在非明文数据;
当判断出所述当前数据中存在非明文数据时,确定非明文数据的起始位置和数据类型;
根据确定出的所述非明文数据的起始位置,生成包含所述非明文数据的数据段;
选择包含与所述数据类型对应的状态机的预处理器,对生成的数据段进行处理,得到处理后的数据;其中,所述处理后的数据对应一个数据层,且每次得到的处理后的数据对应的数据层的层次依次升高;
所述处理单元,具体用于:
当判断单元判断出数据流的当前状态为非正常状态时,按照数据层的层次从低至高的顺序依次使用如下方式进行处理:
判断当前数据层上是否存在预处理器;
当判断结果为存在预处理器时,从该预处理器中包含的状态机的当前状态开始对当前数据层对应的数据进行处理,得到处理后的数据;
当判断结果为不存在预处理器时,对当前数据层对应的数据进行解码,判断当前数据层对应的数据中是否存在非明文数据;当判断出当前数据层对应的数据中存在非明文数据时,确定当前数据层对应的数据中的非明文数据的起始位置和数据类型;根据确定出的所述非明文数据的起始位置,生成包含所述非明文数据的数据段;选择包含与所述数据类型对应的状态机的预处理器,对生成的数据段进行处理,得到处理后的数据。
6.如权利要求5所述的装置,其特征在于,所述装置还包括:
删除单元,用于从该预处理器中包含的状态机的当前状态开始对当前数据层对应的数据进行处理,得到处理后的数据之后,当该预处理器中包含的状态机的当前状态为完成状态时,将该预处理器从当前数据层删除。
7.如权利要求5~6任一所述的装置,其特征在于,所述装置还包括:
存储单元,用于当选择包含与所述数据类型对应的状态机的预处理器,对所述数据段进行处理之后,所述预处理器中包含的状态机的当前状态处于未完成状态时,将所述预处理器存储在当前数据层上。
8.如权利要求5所述的装置,其特征在于,所述装置还包括:
数据流状态确定单元,用于判断是否存在存储有预处理器的数据层;当判断出存在存储有预处理器的数据层时,则数据流的当前状态为非正常状态;当判断出不存在存储有预处理器的数据层时,则数据流的当前状态为正常状态。
CN201310745964.4A 2013-12-30 2013-12-30 一种数据包负载的处理方法和装置 Active CN103701670B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310745964.4A CN103701670B (zh) 2013-12-30 2013-12-30 一种数据包负载的处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310745964.4A CN103701670B (zh) 2013-12-30 2013-12-30 一种数据包负载的处理方法和装置

Publications (2)

Publication Number Publication Date
CN103701670A CN103701670A (zh) 2014-04-02
CN103701670B true CN103701670B (zh) 2017-12-19

Family

ID=50363073

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310745964.4A Active CN103701670B (zh) 2013-12-30 2013-12-30 一种数据包负载的处理方法和装置

Country Status (1)

Country Link
CN (1) CN103701670B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107528826A (zh) * 2017-07-25 2017-12-29 北京长亭科技有限公司 网络攻击的检测方法及装置、终端设备和计算机存储介质
CN107395599A (zh) * 2017-07-25 2017-11-24 北京长亭科技有限公司 网络攻击的检测方法及装置、终端设备和计算机存储介质
CN109361674B (zh) * 2018-10-29 2021-06-29 杭州安恒信息技术股份有限公司 旁路接入的流式数据检测方法、装置以及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009549A (zh) * 2006-01-26 2007-08-01 中国科学院计算技术研究所 用于数字版权管理的解码装置
CN101321163A (zh) * 2008-07-03 2008-12-10 江苏华丽网络工程有限公司 融合多层并行处理的网络接入设备一体化硬件实现方法
CN102594548A (zh) * 2012-03-22 2012-07-18 山东泰信电子有限公司 一种实现数据分段加密、解密的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127619B2 (en) * 2001-06-06 2006-10-24 Sony Corporation Decoding and decryption of partially encrypted information
CN101753456B (zh) * 2009-12-25 2011-12-14 苏州大学 一种对等网络流量检测方法及其***
CN101741745B (zh) * 2009-12-29 2012-01-04 苏州融通科技有限公司 识别对等网络应用流量的方法及其***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009549A (zh) * 2006-01-26 2007-08-01 中国科学院计算技术研究所 用于数字版权管理的解码装置
CN101321163A (zh) * 2008-07-03 2008-12-10 江苏华丽网络工程有限公司 融合多层并行处理的网络接入设备一体化硬件实现方法
CN102594548A (zh) * 2012-03-22 2012-07-18 山东泰信电子有限公司 一种实现数据分段加密、解密的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于数据包负载的网络入侵检测;王瑞杰等;《江南大学学报(自然科学版)》;20070615;第6卷(第3期);271-274 *

Also Published As

Publication number Publication date
CN103701670A (zh) 2014-04-02

Similar Documents

Publication Publication Date Title
US20170161645A1 (en) Method and apparatus for labeling training samples
CN106656932A (zh) 一种业务处理方法及装置
CN110393921A (zh) 云游戏的处理方法、装置、终端、服务器及存储介质
CN103294517B (zh) 堆栈溢出保护装置、堆栈保护方法、相关编译器和计算装置
CN107341068A (zh) 通过自然语言处理进行运维排障的方法和装置
CN108038546A (zh) 用于压缩神经网络的方法和装置
CN106656607A (zh) 设备日志解析方法、***及具有该***的服务器端
CN103701670B (zh) 一种数据包负载的处理方法和装置
CN105739956B (zh) 计算机***的构建智能规则模型的方法及***
CN104462935B (zh) 多操作***中应用程序的安全验证方法及终端
CN103853516B (zh) 一种电子设备及切换方法
CN102148805A (zh) 特征匹配方法和装置
CN105468588A (zh) 字符串匹配方法和装置
CN106934011A (zh) 一种json数据的结构化解析方法及装置
CN104391686A (zh) 流程控制方法及装置
CN108021369A (zh) 一种数据集成处理方法及相关装置
US20150199788A1 (en) Accelerating graphical rendering through legacy graphics compilation
CN112114933A (zh) 应用程序保护方法、电子设备和存储介质
CN104283736B (zh) 一种基于改良自动状态机的网络通信五元组快速匹配算法
CN106484459A (zh) 应用于JavaScript的流程控制方法和装置
CN106527677A (zh) 一种vr/ar***与用户交互的方法及装置
CN102650964A (zh) 用于监控面向对象的应用的方法、***和自监控***
CN105573726B (zh) 一种规则处理方法及设备
KR20120082415A (ko) 데이터 네트워크상의 여러 흐름을 포함하는 통신 세션의 감독
CN107465500B (zh) 基于fpga的md5暴力破解***及方法

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
CP01 Change in the name or title of a patent holder

Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Patentee after: NSFOCUS Technologies Group Co.,Ltd.

Patentee after: NSFOCUS TECHNOLOGIES Inc.

Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Patentee before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd.

Patentee before: NSFOCUS TECHNOLOGIES Inc.

CP01 Change in the name or title of a patent holder