CN110022242A - 一种关键字确定方法及装置 - Google Patents
一种关键字确定方法及装置 Download PDFInfo
- Publication number
- CN110022242A CN110022242A CN201811525358.0A CN201811525358A CN110022242A CN 110022242 A CN110022242 A CN 110022242A CN 201811525358 A CN201811525358 A CN 201811525358A CN 110022242 A CN110022242 A CN 110022242A
- Authority
- CN
- China
- Prior art keywords
- matrix
- payload sequence
- sequence
- keyword
- payload
- 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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种关键字确定方法及装置,该方法包括:获取待分析设备发送的N个数据包,该N个数据包是基于待分析设备的网络协议发送的,其中,一个数据包包括一条有效载荷payload序列,N为正整数。然后根据N条payload序列,确定N个数据包的关键字,关键字包括payload序列中的一个或多个数值。该方案通过,获取基于同一个网络协议发送的数据包,并根据数据包中的payload序列来确定出数据包的关键字,一条payload序列可以表示一个数据包所传输的信息,因此根据payload序列来确定关键字,更加的便捷准确,并且在确定出关键字之后,该关键字可以用于对该网络协议进行分析。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种关键字确定方法及装置。
背景技术
基于互联网的应用越来越普遍,例如物联网应用,工业控制系统等都逐渐 采用通用的基于互联网协议进行通讯。而这些应用在通信的过程中有很多会采 用未知的私有协议。
对未知的私有协议进行分析,对技术人员来说十分重要。目前,一种常用 的私有协议分析方法为:根据多个数据包的关键字来分析私有协议,但目前获 取关键字一般需要依赖于技术人员的人工分析,该方法效率较低,不够准确。
发明内容
本申请提供关键字确定方法及装置,用以实现高效准确地确定出用于分析 私有协议的关键字。
第一方面,本申请提供一种关键字确定方法,包括:获取待分析设备发送 的N个数据包,该N个数据包是基于待分析设备的网络协议发送的,其中,一 个数据包包括一条有效载荷payload序列,N为正整数。然后根据N条payload 序列,确定N个数据包的关键字,关键字包括payload序列中的一个或多个数 值。该方案通过,获取基于同一个网络协议发送的数据包,并根据数据包中的 payload序列来确定出数据包的关键字,一条payload序列可以表示一个数据 包所传输的信息,因此根据payload序列来确定关键字,更加的便捷准确,并且在确定出关键字之后,可以使用该关键字对该网络协议进行分析。
在一种可能的实现方式中,上述根据N条payload序列,确定N个数据包 的关键字,包括:根据N条payload序列,得到第一集合,然后将第一集合进 行聚类,得到M个矩阵,其中,一个矩阵的一行对应第一集合的一条payload 序列,M为不大于N的正整数。再针对M个矩阵中的第i矩阵,确定第i矩阵 中的关键字,确定的关键字至少包括一个数值,这个数值为第i矩阵中的一个 列中的数值,并且该数值在其所在列中出现的频次不小于第一阈值,其中i取 遍1至M。通过该方案,将获取的数据包中的payload序列进行聚类得到M个 矩阵后,针对每一个矩阵去确定关键字,可以更有效的确定出所获取的数据包 中的关键字。
在一种可能的实现方式中,上述对第一集合进行聚类,得到M个矩阵可以 由以下两种方式实现:
方式一、若第一集合包括M种长度的payload序列、M不大于第二阈值、 且第一集合中任意两个具有相同长度的payload序列的相似度不小于第三阈值, 则确定第一集合为简单集合。将简单集合中具有相同长度的payload序列聚类 为一个矩阵,得到M个矩阵。
方式二、若第一集合包括K种长度的payload序列、K不大于第二阈值, 或者,第一集合中存在两个具有相同长度的payload序列的相似度小于第三阈 值,则确定第一集合为复杂集合。根据复杂集合的payload序列的相似度,将 复杂集合的payload序列划分为M组,其中,一组payload序列中的任意两个 payload序列的相似度不小于第四阈值,针对M组payload序列中的第j组 payload序列,将第j组payload序列中的所有payload序列长度设置为相同, 得到更新后的第j组payload序列(更新后的第j组payload序列即为第j个 矩阵),j取遍1至M,最终得到M个矩阵。
通过上述方案,在对第一集合进行聚类得到M个矩阵之前,先确定了该第 一集合为简单集合还是复杂集合,若为简单集合,通过payload序列的长度将 第一集合聚类成M个矩阵,可以更快的完成聚类,从而使确定关键字的效率提 高。若为复杂集合,通过payload序列之间的相似度将payload序列分为M组, 再将每组payload序列中的payload序列的长度设置为相同来确定关键字,提 高了确定关键字的准确率。
在又一种可能的实现方式中,上述根据N条payload序列,确定N个数据 包的关键字,包括:对N条payload序列按照获取的时序进行排列,并将N条 payload序列的长度设置为相同,得到N条第一payload序列,N条第一payload 序列构成第一矩阵,第一矩阵的一行对应一条第一payload序列。确定第一矩 阵对应的差值矩阵,其中,差值矩阵的第i行为第一矩阵的第i+1行与第一矩 阵的第i行的差值,i取遍1至N-1。根据差值矩阵,确定第一矩阵中的关键 字,该关键字为第一矩阵的第K列的元素值,且差值矩阵的第K列中包括的预 设值的数量不小于第一阈值。通过该方案,将获取的N条序列进行排列对齐, 排列对齐后的矩阵各行之间存在一定规律,通过确定差值矩阵的方式确定具有 规律的列,将该列元素确定为关键字,可以更有效的确定出所获取的数据包中 的关键字。
在一种可能的实现方式中,上述差值矩阵的第K列中包括的预设值可以设 为1。
在一种可能的实现方式中,上述N个数据包包括相同的IP和/或端口号, 以使该N个数据包的应用层协议相同。
第二方面,本申请提供一种关键字确定装置,包括:获取单元,用于获取 待分析设备发送的N个数据包,并从N个数据包中获取N条payload序列,其 中,N个数据包是基于待分析设备的网络协议发送的,一个数据包包括一条 payload序列,N为正整数。关键字确定单元,用于根据N条payload序列, 确定N个数据包的关键字,该关键字为payload序列中的一个或多个数值。该 方案通过,获取基于同一个网络协议发送的数据包,并根据数据包中的payload 序列来确定出数据包的关键字,一条payload序列可以表示一个数据包所传输 的信息,因此根据payload序列来确定关键字,更加的便捷准确,并且在确定 出关键字之后,可以使用该关键字对该网络协议进行分析。
在一种可能的实现方式中,上述装置还可以包括聚类单元,用于根据N条payload序列,得到第一集合,并对第一集合进行聚类,得到M个矩阵,其中, 一个矩阵的一行对应第一集合的一条payload序列,M为不大于N的正整数。 上述关键字确定单元,具体可以用于针对M个矩阵中的第i矩阵,确定第i矩 阵中的关键字,该关键字包括至少一个数值,该数值为第i矩阵中的一个列中 的数值,并且该数值在其所在列中出现的频次不小于第一阈值,其中i取遍1 至M。通过该方案,将获取的数据包中的payload序列进行聚类得到M个矩阵 后,针对每一个矩阵去确定关键字,可以更有效的确定出所获取的数据包中的 关键字。
在一种可能的实现方式中,上述聚类单元对第一集合进行聚类,得到M个 矩阵,具体可以为以下两种方式:
方式一、聚类单元确定第一集合为简单集合,其中,简单集合包括M种长 度的payload序列、M不大于第二阈值、且简单集合中任意两个具有相同长度 的payload序列的相似度不小于第三阈值。聚类单元根据M种长度的payload 序列,得到M个矩阵,其中,一个矩阵对应的payload序列具有相同的长度。
方式二、聚类单元确定第一集合为复杂集合,其中,复杂集合为包括K种 长度的payload序列且K大于第二阈值,或者,复杂集合中存在两个具有相同 长度的payload序列的相似度小于第三阈值。聚类单元根据复杂集合的 payload序列的相似度,将复杂集合的payload序列划分为M组,其中,一组 payload序列中的任意两个payload序列的相似度不小于第四阈值,针对M组 payload序列中的第j组payload序列,将第j组payload序列中的所有payload 序列长度设置为相同,得到更新后的第j组payload序列(更新后的第j组 payload序列即为第j个矩阵),j取遍1至M,最终得到M个矩阵。
通过上述方案,在对第一集合进行聚类得到M个矩阵之前,先确定了该第 一集合为简单集合还是复杂集合,若为简单集合,通过payload序列的长度将 第一集合聚类成M个矩阵,可以更快的完成聚类,从而使确定关键字的效率提 高。若为复杂集合,通过payload序列之间的相似度将payload序列分为M组, 再将每组payload序列中的payload序列的长度设置为相同来确定关键字,提 高了确定关键字的准确率。
在又一种可能的实现方式中,上述装置还可以包括:第一矩阵确定单元, 用于对N条payload序列按照获取的时序进行排列,并将N条payload序列的 长度设置为相同,得到N条第一payload序列,N条第一payload序列构成第 一矩阵,第一矩阵的一行对应一条第一payload序列。差值矩阵确定单元,用 于确定第一矩阵对应的差值矩阵,差值矩阵的第i行为第一矩阵的第i+1行与 第一矩阵的第i行的差值,i取遍1至N-1。上述关键字确定单元,具体可以 用于根据差值矩阵,确定第一矩阵中的关键字,关键字为第一矩阵的第K列的 元素值,且差值矩阵的第K列中包括的预设值的数量不小于第一阈值。通过该 方案,将获取的N条序列进行排列对齐,排列对齐后的矩阵各行之间存在一定 规律,通过确定差值矩阵的方式确定具有规律的列,将该列元素确定为关键字, 可以更有效的确定出所获取的数据包中的关键字。
在一种可能的实现方式中,上述差值矩阵的第K列中包括的预设值可以设 为1。
在一种可能的实现方式中,上述N个数据包包括相同的IP和/或端口号, 以使该N个数据包的应用层协议相同。
第三方面,本申请提供一种网络设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行前 述第一方面或第一方面中任一实施例所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介 质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行前述第 一方面或第一方面中任一实施例所述的方法。
附图说明
图1为本申请提供的一种可能的系统架构示意图;
图2为本申请提供的一种关键字确定方法示意图;
图3为本申请提供的一种关键字确定方法流程示意图;
图4为本申请提供的发生树示意图;
图5为本申请提供的又一种关键字确定方法流程示意图;
图6为本申请提供的一种关键字确定装置示意图;
图7为本申请提供的一种可能的网络协议分析装置示意图;
图8为本申请提供的又一种可能的网络协议分析装置示意图;
图9为本申请提供的一种网络设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申 请作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施 例或系统实施例中。
图1为本申请提供的一种可能的系统架构示意图,如图1所示,包括:分 析设备101、待测设备102。其中分析设备101可以为个人电脑等,待测设备 102可以为物联网设备、工业控制系统设备等。分析设备101抓取待测设备102 的网络通信数据包,并对待测设备102的网络通信数据包进行分析,确定待测 设备102的网络通信数据包中的关键字信息,以便对待测设备102的网络协议 进行分析。
基于图1所示的系统架构,图2示例性的示出了本申请提供的一种关键字 确定方法示意图,该方法可以由图1中的分析设备101执行,如图2所示,该 方法包括:
步骤201,获取待分析设备发送的N个数据包。
其中,该N个数据包是基于待分析设备的网络协议发送的,一个数据包包 括一条payload序列,N为正整数。
步骤202,根据N条payload序列,确定N个数据包的关键字。
其中,关键字包括payload序列中的一个或多个数值。
可选地,在上述步骤202之后,还可以包括:
步骤203,根据关键字,对待分析设备的网络协议进行分析。
其中,根据关键字对待分析设备的网络协议进行分析的具体实现方法,可 参考现有技术的相关方案,本申请不再赘述。上述方案通过,获取基于同一个 网络协议发送的数据包,并根据数据包中的payload序列来确定出数据包的关 键字,一条payload序列可以表示一个数据包所传输的信息,因此根据payload 序列来确定关键字,更加的便捷准确,并且在确定出关键字之后,可以使用该 关键字对该网络协议进行分析。
在一种可能的实现方式中,上述步骤202可以通过如图3所示的关键字确 定方法流程示意图所示的方法实现,该方法具体包括:
步骤301,根据N条payload序列,得到第一集合。
步骤302,对第一集合进行聚类,得到M个矩阵。
步骤303,针对M个矩阵中的第i矩阵,确定第i矩阵中的关键字,i取 遍1至M。
针对上述步骤301,在抓取待测设备102的网络通信数据包后,先将没有 包含payload序列的数据包舍弃,比如,舍弃同步序列编号(Synchronize Sequence Numbers,SYN)数据包。选取具有相同的IP和/或端口号的N个数 据包,并获取该N个数据包中的N条payload序列,其中,一个数据包包括一 条payload序列,payload序列为数据包所传输的数据信息,获取的payload 序列为一串由二进制数构成的序列。比如,payload序列可以为:00101010000110011101000111101001……。实际应用中,可以以8位为一列将 payload序列进行表示,比如,payload序列可以为:00101010 00011001 11010001 11101001……(此处及之后对payload序列表示时使用的空格仅用 于方便观看)。为了便于分析,也可以将各列的二进制数值转化为十进制数值(后续均采用十进制表示),比如,payload序列可以为:4225 209 233……。
作为示例,N条payload序列构成的第一集合例如可以是{payload序列1, payload序列2,……,payload序列N},其中,payload序列1例如可以是 42 25 209 233……,payload序列2例如可以是42 25 200 221……,payload 序列3例如可以为40 20 209220……。
针对上述步骤302,对第一集合进行聚类得到M个矩阵的具体方法可以包 括:首先,判断第一集合是简单集合还是复杂集合,若是简单集合,则按照下 述方法一实现将第一集合聚类为M个矩阵,若是复杂集合(也可以称为非简单 集合),则按照下述方法二实现将第一集合聚类为M个矩阵。
其中,可以根据以下方法判断第一集合是简单集合还是复杂集合:若第一 集合包括M种长度的payload序列、M不大于第二阈值、且所述第一集合中任 意两个具有相同长度的payload序列的相似度不小于第三阈值,则确定第一集 合为简单集合。否则,确定第一集合为复杂集合,比如,第一集合包括K种长 度的payload序列且K大于第二阈值,则确定第一集合为复杂集合,再比如, 第一集合中存在两个具有相同长度的payload序列的相似度小于第三阈值,则 确定第一集合为复杂集合。其中,具有相同长度的payload序列是指payload 序列的列数相同。
上述任意两个具有相同长度的payload序列的相似度可以通过Smith Waterman算法计算得到,其本质为动态规划方法,可以对任意长度的序列进行 相似度计算。
下面结合一个具体示例,说明上述简单集合和复杂集合。作为示例,上述 第二阈值预设为2,第三阈值预设为70%。
在一个示例中,第一集合为{序列1:42 26 209 233,序列2:42 25 209 233 255,序列3:42 26 209 222,序列4:42 25 209 222 255},此时第一集合中 的包括两种长度的序列(序列1和序列3的长度为4,序列2和序列4的长度 为5),且通过Smith Waterman算法计算得到具有相同长度的序列1和序列3 的相似度为75%,具有相同长度的序列2和序列4的相似度为70%,由于该 第一集合只包含两种(不大于第二阈值)长度的,且具有相同长度的序列之间 的相似度不小于第三阈值,因此第一集合是一个简单集合。
在又一个示例中,第一集合为{序列1:42 26 209 233,序列2:42 25 209 233255,序列3:42 26 209 222,序列4:42 25 209 222 255,序列5:42 25 209 222 255 230},此时第一集合包括三种长度的序列,序列长度种数大于第二阈 值,因此第一集合是一个复杂集合。
针对简单集合,确定M个矩阵的方法如下方法一所示。
方法一,将简单集合中具有相同长度的payload序列聚类为一个矩阵,得 到M个矩阵。
比如,将简单集合{序列1:42 26 209 233,序列2:42 25 209 233 255, 序列3:4226 209 222,序列4:42 25 209 222 255}聚类,可以得到矩阵1: 和矩阵2:其中矩阵1对应序列1 和序列3,矩阵2对应序列2和序列4。
针对复杂集合,确定M个矩阵的方法如下方法二所示。
方法二,根据复杂集合的payload序列的相似度,将复杂集合的payload 序列划分为M组,其中,一组payload序列中的任意两个payload序列的相似 度不小于第四阈值,针对M组payload序列中的第j组payload序列,将第j 组payload序列中的所有payload序列长度设置为相同,得到更新后的第j组 payload序列(更新后的第j组payload序列即为第j个矩阵),j取遍1至M, 最终得到M个矩阵。
上述根据复杂集合的payload序列的相似度,将上述复杂集合的payload 序列划分为2组,可以通过非加权组平均(unweighted pair-group method with arithmeticmeans,UPGMA)算法构建系统发生树(Phylogenetic tree)来进 行分组,当然,实际应用中也可payload序列的相似度直接分组,本申请对采 用何种方法分组不做限制。
上述将每组的序列长度设置为相同,具体可以根据NeedleMan Wunsch算 法来对每一组序列进行对齐操作。其中,对齐操作的一种实现方式是在每一组 序列中长度较短的序列中的适当位置添加空白位,该适当位置是根据 NeedleMan Wunsch算法来确定的,比如,若存在两个序列分别为序列A:1 2 3 和序列B:1 3,则根据NeedleMan Wunsch算法在序列B中添加空白位得到序 列C:1 gap 3(其中,gap表示空白位,或者在十进制中可以用数值256表示)。
比如,将复杂集合{序列1:42 26 209 233,序列2:42 25 209 233 255, 序列3:4226 209 222,序列4:42 25 209 222 255,序列5:42 25 209 222 255 230}进行聚类。具体通过以下步骤实现:
步骤1:针对复杂集合构建发生树,并将复杂集合中的序列分组。具体过 程如下:
通过Smith Waterman算法计算得到该复杂集合中各payload序列之间的 相似度,并通过UPGMA算法构建发生树,可以得到如图4所示的发生树图。由 图4可知,序列1和序列3之间的相似度为75%,序列4和序列5之间的相似 度为83.33%,序列4和序列5构成的序列组和序列2之间的相似度为66.67%, 序列1和序列3构成的序列组和序列4、序列5以及序列2构成的序列组之间 的相似度为36.46%。根据发生树将复杂集合中的序列分组,是将发生树中具 有较高相似度的序列分成一组,因此,将上述第一集合分成两组可以得到序列 组1(包括序列1、序列3)、序列组2(包括序列2、序列4、序列5)。
步骤2:将各组中的序列对齐,得到矩阵。具体过程如下:
由于序列组1中的序列1和序列3长度相同,因此无需进行对齐操作,即 序列组1即为矩阵1,矩阵1为根据NeedleMan Wunsch算 法来对序列组2进行对齐操作,得到矩阵2,矩阵2为 (其中,数值256为对齐操作中添加的空白位)。
通过上述方式一和方式二两种方式实现步骤302,在对第一集合进行聚类 得到M个矩阵之前,先确定了该第一集合为简单集合还是复杂集合,若为简单 集合,通过payload序列的长度将第一集合聚类成M个矩阵,可以更快的完成 聚类,从而使确定关键字的效率提高。若为复杂集合,通过payload序列之间 的相似度将payload序列分为M组,再将每组payload序列中的payload序列 的长度设置为相同来确定关键字,提高了确定关键字的准确率。
通过上述方法一或方法二,可以将第一集合聚类为M个矩阵。接下来通过 上述步骤303,实现根据M个矩阵得到关键字。下面介绍得到关键字的具体实 现方法。
针对步骤302中确定的M个矩阵中的第i矩阵,若第i矩阵的某一列中的 具有重复出现的数值,且该数值在该列中出现的频次不小于第一阈值,则确定 第i矩阵的关键字包括该数值,i取遍1至M。其中,确定的关键字中包括的 数值不为空白位数值256。
比如,假设第一阈值为80%,M的值为2,且矩阵1为矩阵2为在矩阵1中,42、26、209分别在其所 在列上的出现次数均为100%,都大于第一阈值,因此确定42、26、209构成 关键字。在矩阵2中,42、25、209以及255出现次数为100%,大于第一阈 值,因此确定42、25、209以及255为关键字。
在一种可能的实现方式中,上述确定的关键字数值可以通过预设的规则, 转换为相应的字符,比如,若确定的关键字为72 84 84 80 47,根据美国信息 交换标准代码(American Standard Code for Information Interchange,ASCII), 可将该关键字转换为HTTP/。
通过上述确定关键字的方法,可以确定出待测设备网络通信数据包中包含 的关键字,该关键字也可称为固定关键字,固定关键字是指待测设备的一个或 多个数据包都包括的对应用层协议分析具有重要作用的关键字,而除了固定关 键字之外,还有一种时序关键字,时序关键字用于表示各个数据包之间的时序 关系,时序关键字也可以作为对待测设备的应用层协议进行分析的依据,下面 提供一种时序关键字的确定方法。
图5为本申请提供的又一种关键字确定方法流程示意图,该关键字确定方 法可以由图1中所示的分析设备101执行,该分析方法可以确定待测设备各个 数据包中的时序关键字,如图5所示,该方法包括:
步骤501,对N条payload序列按照获取的时序进行排列。
步骤502,将N条payload序列的长度设置为相同,得到N条第一payload 序列,N条第一payload序列构成第一矩阵。
步骤503,根据第一矩阵,确定差值矩阵。
步骤504,根据差值矩阵,确定第一矩阵中的关键字。
在上述步骤501中,待测设备按照时间顺序产生N个数据包,比如:
在第一时刻,产生数据包1,其中包括payload序列1;
在第二时刻,产生数据包2,其中包括payload序列2;
……
在N时刻,产生数据包N,其中包括payload序列N。
将获取的N条payload序列进行排序,是按payload序列的获取时序进行 的,payload序列获取的时序与对应的数据包的产生顺序相同。
在步骤502中,通过NeedleMan Wunsch算法来对N条payload序列进行 对齐操作,通过NeedleMan Wunsch算法进行对齐的具体实现方式在前述图3 步骤302中已经说明,在此不做赘述。当然,本申请对于排序和对齐的执行顺 序不做限制,可以先排序再对齐,也可以先对齐再排序,或者可以同时进行排 序和对齐的操作。
以N等于6为例,步骤201中获取的6条payload序列分别为:序列1:24 25 1 22118、序列2:24 25 2 18、序列3:25 25 3 221 18 255、序列4:25 25 4 220 18、序列5:25 5221 18、序列6:24 25 6 221 18 255。将这6条payload 序列排序并通过NeedleMan Wunsch算法对齐得到第一矩阵,该第一矩阵为: 即矩阵的第一行与在第一时刻产生的数据包对应的 payload序列对应,矩阵的第二行与在第二时刻产生的数据包对应的payload 序列对应。
在上述步骤503中,根据第一矩阵确定差值矩阵,具体地,为使用第一矩 阵的第i+1行减去第一矩阵的第i行,得到的值作为差值矩阵的第i行,i取 遍1至N-1。
如根据上述第一矩阵确定差值矩阵,即将第一矩 阵的第二行减去第一矩阵的第一行得到0 0 1 34 0 0,将第一矩阵的第三行减 去第一矩阵的第二行得到1 0 1 -35 0 0。再将剩下的第四行、第五行、第六 行,分别与自身的上一行做差值后,用得到的值构成差值矩阵,最终可以得到 差值矩阵:
在上述步骤504中,根据差值矩阵,确定差值矩阵中包括有预设值的列为 差值矩阵的第K列,且第K列中预设值出现的频次不小于第一阈值。在确定K 的值后,确定第一矩阵中第K列上的值为关键字。
在一种可能的实现方式中,上述预设值可以设为1。
当预设值为1,第一阈值为100%时,若第一矩阵为则 由该第一矩阵确定的差值矩阵为由于该差值矩阵第3 列中1出现的频次为100%,因此确定步骤504中K的取值为3,并将第一矩 阵的第三列上的值(1 2 3 4 56)确定为关键字。该列关键字用于表示其对 应的payload序列所在的数据包的产生顺序。
通过上述方案,将获取的N条序列进行排列对齐,排列对齐后的矩阵各行 之间存在一定规律,通过确定差值矩阵的方式确定具有规律的列,将该列元素 确定为关键字,可以更有效的确定出所获取的数据包中的关键字。
基于与图2所示的方法相同的构思,图6示例性的示出了本申请提供的一 种关键字确定装置示意图。如图6所示,该装置包括:
获取单元601,用于获取待分析设备发送的N个数据包,并从N个数据包 中获取N条payload序列,其中,N个数据包是基于待分析设备的网络协议发 送的,一个数据包包括一条payload序列,N为正整数。
关键字确定单元602,用于根据N条payload序列,确定N个数据包的关 键字,该关键字为payload序列中的一个或多个数值。
可选地,该关键字确定装置还可以包括网络协议分析单元603,用于根据 关键字,对待分析设备的网络协议进行分析。
该方案通过,获取基于同一个网络协议发送的数据包,并根据数据包中的payload序列来确定出数据包的关键字,通过关键字实现对网络协议的分析。
在一种可能的实现方式中,上述图6所示的装置还可以包括聚类单元604, 如图7所示,为本申请提供的又一种可能的网络协议分析装置示意图。该装置 包括图6所示的获取单元601、关键字确定单元602、网络协议分析单元603, 以及还包括聚类单元604。
其中,获取单元601、关键字确定单元602、网络协议分析单元603所具 有的功能可参考前述图6所示的实施例的相关描述。
进一步的,聚类单元604用于,根据N条payload序列,得到第一集合, 并对第一集合进行聚类,得到M个矩阵,其中,一个矩阵的一行对应第一集合 的一条payload序列,M为不大于N的正整数。
上述关键字确定单元602,具体可以用于针对M个矩阵中的第i矩阵,确 定第i矩阵中的关键字,该关键字包括至少一个数值,该数值为第i矩阵中的 一个列中的数值,并且该数值在其所在列中出现的频次不小于第一阈值,其中 i取遍1至M。
在一种可能的实现方式中,上述聚类单元604对第一集合进行聚类,得到 M个矩阵,具体可以为以下两种方式:
方式一、聚类单元604确定第一集合为简单集合,其中,简单集合包括M 种长度的payload序列、M不大于第二阈值、且简单集合中任意两个具有相同 长度的payload序列的相似度不小于第三阈值。聚类单元根据M种长度的 payload序列,得到M个矩阵,其中,一个矩阵对应的payload序列具有相同 的长度。
方式二、聚类单元604确定第一集合为复杂集合,其中,复杂集合为包括 K种长度的payload序列且K大于第二阈值,或者,复杂集合中存在两个具有 相同长度的payload序列的相似度小于第三阈值。聚类单元根据复杂集合的 payload序列的相似度,将复杂集合的payload序列划分为M组,其中,一组 payload序列中的任意两个payload序列的相似度不小于第四阈值,针对M组 payload序列中的第j组payload序列,将第j组payload序列中的所有payload 序列长度设置为相同,得到更新后的第j组payload序列(更新后的第j组payload序列即为第j个矩阵),j取遍1至M,最终得到M个矩阵。
在又一种可能的实现方式中,上述图6所示的装置还可以包括第一矩阵确 定单元605、差值矩阵确定单元606,如图8所示,为本申请提供的又一种可 能的网络协议分析装置示意图。该装置包括图6所示的获取单元601、关键字 确定单元602、网络协议分析单元603,以及还包括聚类单元604。
其中,获取单元601、关键字确定单元602、网络协议分析单元603所具 有的功能可参考前述图6所示的实施例的相关描述。
进一步的,第一矩阵确定单元605,用于对N条payload序列按照获取的 时序进行排列,并将N条payload序列的长度设置为相同,得到N条第一 payload序列,N条第一payload序列构成第一矩阵,第一矩阵的一行对应一 条第一payload序列。
差值矩阵确定单元606,用于确定第一矩阵对应的差值矩阵,差值矩阵的 第i行为第一矩阵的第i+1行与第一矩阵的第i行的差值,i取遍1至N-1。
上述关键字确定单元602,具体可以用于根据差值矩阵,确定第一矩阵中 的关键字,关键字为第一矩阵的第K列的元素值,且差值矩阵的第K列中包括 的预设值的数量不小于第一阈值。
在一种可能的实现方式中,上述差值矩阵的第K列中包括的预设值可以设 为1。
在一种可能的实现方式中,上述N个数据包包括相同的IP和/或端口号, 以使该N个数据包的应用层协议相同。
基于与上述实施例相同的构思,本申请还提供一种网络设备。
图9为本申请提供的一种网络设备的结构示意图。如图9所示,该网络设 备900包括:
存储器901,用于存储程序指令;
处理器902,用于调用所述存储器中存储的程序指令,按照获得的程序执 行前述任一实施例中所述的关键字确定方法。
基于与上述实施例相同的构思,本申请还提供一种计算机存储介质,所述 计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使 计算机执行前述任一实施例中所述的关键字确定方法。
需要说明的是,本申请中对单元的划分是示意性的,仅仅为一种逻辑功能 划分,实际实现时可以有另外的划分方式。在本申请中的各功能单元可以集成 在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上 单元集成在一个模块中。上述集成的单元既可以采用硬件的形式实现,也可以 采用软件功能单元的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组 合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实 现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算 机程序指令时,全部或部分地产生按照本申请的流程或功能。计算机可以是通 用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以 存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算 机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务 器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线 (例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据 中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或 者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用 介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或 者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
本领域内的技术人员应明白,本申请可提供为方法、系统、或计算机程序 产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和 硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算 机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、 光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流 程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方 框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框 的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理 机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其 他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程 或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设 备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中 的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个 流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使 得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处 理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个 流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申 请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及 其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种关键字确定方法,其特征在于,包括:
获取待分析设备发送的N个数据包,所述N个数据包是基于所述待分析设备的网络协议发送的,其中,一个数据包包括一条有效载荷payload序列,N为正整数;
根据所述N条payload序列,确定所述N个数据包的关键字,所述关键字包括所述payload序列中的一个或多个数值。
2.如权利要求1所述的方法,其特征在于,所述根据所述N条payload序列,确定所述N个数据包的关键字,包括:
根据所述N条payload序列,得到第一集合;
对所述第一集合进行聚类,得到M个矩阵,其中,一个矩阵的一行对应所述第一集合的一条payload序列,M为不大于N的正整数;
针对所述M个矩阵中的第i矩阵,确定所述第i矩阵中的关键字,所述关键字包括至少一个数值,所述数值为所述第i矩阵中的一个列中的数值,所述数值在所述列出现的频次不小于第一阈值,i取遍1至M。
3.如权利要求2所述的方法,其特征在于,对所述第一集合进行聚类,得到M个矩阵,包括:
确定所述第一集合为简单集合,所述简单集合包括M种长度的payload序列、M不大于第二阈值、且所述简单集合中任意两个具有相同长度的payload序列的相似度不小于第三阈值;
根据所述M种长度的payload序列,得到所述M个矩阵,其中,一个矩阵对应的payload序列具有相同的长度。
4.如权利要求2所述的方法,其特征在于,对所述第一集合进行聚类,得到M个矩阵,包括:
确定所述第一集合为复杂集合,所述复杂集合为包括K种长度的payload序列且K大于第二阈值,或者,所述复杂集合中存在两个具有相同长度的payload序列的相似度小于第三阈值;
根据所述复杂集合的payload序列的相似度,将所述复杂集合的payload序列划分为M组,其中,一组payload序列中的任意两个payload序列的相似度不小于第四阈值;
针对所述M组payload序列中的第j组payload序列,将所述第j组payload序列中的长度设置为相同,得到更新后的第j组payload序列,j取遍1至M;
根据更新后的M组payload序列,得到所述M个矩阵,一个矩阵对应的payload序列具有相同的长度。
5.如权利要求1所述的方法,其特征在于,所述根据所述N条payload序列,确定所述N个数据包的关键字,包括:
对所述N条payload序列按照获取的时序进行排列,并将所述N条payload序列的长度设置为相同,得到N条第一payload序列,所述N条第一payload序列构成第一矩阵,所述第一矩阵的一行对应一条第一payload序列;
确定所述第一矩阵对应的差值矩阵,所述差值矩阵的第i行为所述第一矩阵的第i+1行与所述第一矩阵的第i行的差值,i取遍1至N-1;
根据所述差值矩阵,确定所述第一矩阵中的关键字,所述关键字为所述第一矩阵的第K列的元素值,且所述差值矩阵的第K列中包括的预设值的数量不小于第一阈值。
6.如权利要求1-5任一项所述的方法,其特征在于,所述N个数据包包括相同的网络协议IP和/或端口号。
7.一种关键字确定装置,其特征在于,包括:
获取单元,用于获取待分析设备发送的N个数据包,并从所述N个数据包中获取N条payload序列,其中,所述N个数据包是基于所述待分析设备的网络协议发送的,一个数据包包括一条有效载荷payload序列,N为正整数;
关键字确定单元,用于根据所述N条payload序列,确定所述N个数据包的关键字,所述关键字为所述payload序列中的一个或多个数值。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:聚类单元,用于根据所述N条payload序列,得到第一集合,并对所述第一集合进行聚类,得到M个矩阵,其中,一个矩阵的一行对应所述第一集合的一条payload序列,M为不大于N的正整数;
所述关键字确定单元,具体用于针对所述M个矩阵中的第i矩阵,确定所述第i矩阵中的关键字,所述关键字包括至少一个数值,所述数值为所述第i矩阵中的一个列中的数值,所述数值在所述列出现的频次不小于第一阈值,i取遍1至M。
9.如权利要求8所述的装置,其特征在于,所述聚类单元具体用于:
确定所述第一集合为简单集合,所述简单集合包括M种长度的payload序列、M不大于第二阈值、且所述简单集合中任意两个具有相同长度的payload序列的相似度不小于第三阈值;
根据所述M种长度的payload序列,得到所述M个矩阵,其中,一个矩阵对应的payload序列具有相同的长度。
10.如权利要求8所述的装置,其特征在于,所述聚类单元具体用于:
确定所述第一集合为复杂集合,所述复杂集合为包括K种长度的payload序列且K大于第二阈值,或者,所述复杂集合中存在两个具有相同长度的payload序列的相似度小于第三阈值;
根据所述复杂集合的payload序列的相似度,将所述复杂集合的payload序列划分为M组,其中,一组payload序列中的任意两个payload序列的相似度不小于第四阈值;
针对所述M组payload序列中的第j组payload序列,将所述第j组payload序列中的长度设置为相同,得到更新后的第j组payload序列,j取遍1至M。
11.如权利要求7所述的装置,其特征在于,所述装置还包括:
第一矩阵确定单元,用于对所述N条payload序列按照获取的时序进行排列,并将所述N条payload序列的长度设置为相同,得到N条第一payload序列,所述N条第一payload序列构成第一矩阵,所述第一矩阵的一行对应一条第一payload序列;
差值矩阵确定单元,用于确定所述第一矩阵对应的差值矩阵,所述差值矩阵的第i行为所述第一矩阵的第i+1行与所述第一矩阵的第i行的差值,i取遍1至N-1;
所述关键字确定单元,具体用于根据所述差值矩阵,确定所述第一矩阵中的关键字,所述关键字为所述第一矩阵的第K列的元素值,且所述差值矩阵的第K列中包括的预设值的数量不小于第一阈值。
12.如权利要求7-11任一项所述的装置,其特征在于,所述N个数据包包括相同的网络协议IP和/或端口号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811525358.0A CN110022242B (zh) | 2018-12-13 | 2018-12-13 | 一种关键字确定方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811525358.0A CN110022242B (zh) | 2018-12-13 | 2018-12-13 | 一种关键字确定方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110022242A true CN110022242A (zh) | 2019-07-16 |
CN110022242B CN110022242B (zh) | 2020-12-25 |
Family
ID=67188611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811525358.0A Active CN110022242B (zh) | 2018-12-13 | 2018-12-13 | 一种关键字确定方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110022242B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744951A (zh) * | 2014-01-02 | 2014-04-23 | 上海大学 | 一种对文本中关键词重要性的排序方法 |
CN106445998A (zh) * | 2016-05-26 | 2017-02-22 | 达而观信息科技(上海)有限公司 | 一种基于敏感词的文本内容审核方法及系统 |
CN106528768A (zh) * | 2016-11-04 | 2017-03-22 | 北京中电普华信息技术有限公司 | 一种咨询热点分析方法及装置 |
CN107093099A (zh) * | 2017-03-10 | 2017-08-25 | 重庆软易科技有限公司 | 一种网络交易系统及方法 |
CN108055166A (zh) * | 2017-12-20 | 2018-05-18 | 中山大学 | 一种嵌套的应用层协议的状态机提取系统及其提取方法 |
-
2018
- 2018-12-13 CN CN201811525358.0A patent/CN110022242B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744951A (zh) * | 2014-01-02 | 2014-04-23 | 上海大学 | 一种对文本中关键词重要性的排序方法 |
CN106445998A (zh) * | 2016-05-26 | 2017-02-22 | 达而观信息科技(上海)有限公司 | 一种基于敏感词的文本内容审核方法及系统 |
CN106528768A (zh) * | 2016-11-04 | 2017-03-22 | 北京中电普华信息技术有限公司 | 一种咨询热点分析方法及装置 |
CN107093099A (zh) * | 2017-03-10 | 2017-08-25 | 重庆软易科技有限公司 | 一种网络交易系统及方法 |
CN108055166A (zh) * | 2017-12-20 | 2018-05-18 | 中山大学 | 一种嵌套的应用层协议的状态机提取系统及其提取方法 |
Non-Patent Citations (2)
Title |
---|
LIKE ZHANG,ET AL.,: ""Anomaly Detection for Application Level Network Attacks Using Payload Keywords"", 《PROCEEDINGS OF 2007 IEEE SYMPOSIUM ON COMPUTATIONAL》 * |
代丽,: ""DFI流量分类技术的研究和实现"", 《中国优秀硕士学位论文全文数据库-信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110022242B (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | Preserving privacy with probabilistic indistinguishability in weighted social networks | |
Fu et al. | Spark–a big data processing platform for machine learning | |
CN103810224B (zh) | 信息持久化和查询方法及装置 | |
CN105069703B (zh) | 一种电网海量数据管理方法 | |
Perez et al. | Ringo: Interactive graph analytics on big-memory machines | |
CN107329983B (zh) | 一种机器数据分布式存储、读取方法及系统 | |
CN106897322A (zh) | 一种数据库和文件系统的访问方法和装置 | |
Sangat et al. | Sensor data management in the cloud: Data storage, data ingestion, and data retrieval | |
US20160253402A1 (en) | Adaptive data repartitioning and adaptive data replication | |
CN102054000B (zh) | 数据查询方法、装置及系统 | |
CN104933175B (zh) | 一种性能数据相关性的分析方法及性能监控系统 | |
Wei et al. | Analysis farm: A cloud-based scalable aggregation and query platform for network log analysis | |
Balis et al. | Towards an operational database for real-time environmental monitoring and early warning systems | |
CN104965846B (zh) | MapReduce平台上的虚拟人建立方法 | |
CN104991741B (zh) | 一种基于键值模型的情境适配电网大数据存储方法 | |
Preuveneers et al. | Samurai: A streaming multi-tenant context-management architecture for intelligent and scalable internet of things applications | |
CN106570104A (zh) | 一种流数据的多分区聚类预处理方法 | |
CN107659560A (zh) | 一种用于海量网络数据流日志处理的异常审计方法 | |
CN105242873B (zh) | 云计算系统的性能数据的采集与存储方法及装置 | |
Chung et al. | A simple message-optimal algorithm for random sampling from a distributed stream | |
Sicoe et al. | A persistent back-end for the ATLAS TDAQ online information service (P-BEAST) | |
CN107656995A (zh) | 面向大数据的数据管理系统 | |
Bereş et al. | A brief survey on smart grid data analysis in the cloud | |
CN107871055A (zh) | 一种数据分析方法和装置 | |
CN110022242A (zh) | 一种关键字确定方法及装置 |
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 | ||
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 |