首页 / 专利库 / 人工智能 / 冗余度 / 一种提取特征串的方法、装置、网络设备及存储介质

一种提取特征串的方法、装置、网络设备及存储介质

阅读:349发布:2020-05-12

专利汇可以提供一种提取特征串的方法、装置、网络设备及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种提取特征串的方法、装置网络设备及存储介质,包括:针对每个候选特征串,根据一阶 马 尔科夫转移概率矩阵,确定该候选特征串中每相邻两个字符的转移概率;根据每相邻两个字符的转移概率及转移概率的对数,确定该候选特征串的转移熵;将转移熵大于预设的 阈值 的候选特征串标记为第一取用特征串,将有效的第一取用特征串作为提取的目标特征串。在本发明 实施例 中,根据一阶马尔科夫转移概率矩阵,可以确定该数据包的候选特征串的转移熵,将转移熵满足要求的候选特征串标记为第一取用特征串,将有效的第一取用特征串作为提取的目标特征串。本发明实施例提供的提取特征串的方法不需要人工干预,可以完全实现对特征串的自动提取。,下面是一种提取特征串的方法、装置、网络设备及存储介质专利的具体信息内容。

1.一种提取特征串的方法,其特征在于,所述方法包括:
A1、根据应用对应的每个第一五元组信息,统计所述每个第一五元组信息对应的每个第一会话;针对每个第一会话,确定该第一会话中待提取特征串的数据包,并确定所述数据包的分词;将确定的每个分词,作为每个候选特征串;
B1、根据已有的规则库和当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶尔科夫转移概率矩阵;
C1、针对每个候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该候选特征串中每相邻两个字符的转移概率;根据每相邻两个字符的转移概率及转移概率的对数,确定该候选特征串的转移熵;
D1、针对每个候选特征串,判断该候选特征串的转移熵是否大于预设的阈值,如果否,将该候选特征串标记为丢弃特征串,如果是,将该候选特征串标记为第一取用特征串;
E1、判断是否存在至少一个第一取用特征串为有效特征串,如果是,将所述有效特征串,作为从所述数据包中提取出的目标特征串;如果否,重置遗传变异系数,并进行步骤B1。
2.如权利要求1所述的方法,其特征在于,所述根据每相邻两个字符的转移概率及转移概率的对数,确定该候选特征串的转移熵包括:
计算每相邻两个字符的转移概率与转移概率的对数的乘积,将得到的每个乘积求和,将得到的和值的负数,确定为该候选特征串的转移熵。
3.如权利要求1所述的方法,其特征在于,所述针对每个第一会话,确定该第一会话中待提取特征串的数据包包括:
针对每个第一会话,在预设的数据包传输方向上,获取该第一会话中的预设数量的数据包,将所述预设数量的数据包作为该第一会话中待提取特征串的数据包。
4.如权利要求1所述的方法,其特征在于,所述确定所述数据包的分词包括:
判断所述数据包是否为超文本传输协议HTTP数据包;如果是,根据预先定义完成的正则表达式,确定所述数据包的分词,如果否,根据语言模型N-Gram,确定所述数据包的分词。
5.如权利要求1所述的方法,其特征在于,所述根据已有的规则库和当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵包括:
读取已有的规则库,针对所述已有的规则库中每相邻两个字符,统计该两个相邻字符出现的次数,以及在所述已有的规则库中除最后一个字符之外的字符中,统计该两个相邻字符中的前一个字符出现的次数,根据该两个相邻字符出现的次数与该两个相邻字符中的前一个字符出现的次数的比值,确定该两个相邻字符的转移概率;根据每相邻两个字符的转移概率,以及当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵。
6.如权利要求1所述的方法,其特征在于,所述将该候选特征串标记为第一取用特征串之前,所述方法还包括:
将该候选特征串中包含的字符从前往后依次重组,构成多个子候选特征串;
针对每个子候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该子候选特征串中每相邻两个字符的转移概率,根据该子候选特征串中每相邻两个字符构成的字符组的转移概率、转移概率的对数及该子候选特征串中包含的字符组的数量,确定该子候选特征串的熵波值;
针对该候选特征串,识别该候选特征串中熵波值最大的目标子候选特征串,根据该目标子候选特征串的熵波值与该候选特征串的转移熵的比值,确定该候选特征串的冗余度
判断该候选特征串的冗余度是否大于预设的冗余度阈值,如果否,保持该候选字符串不变;
如果是,采用该目标子候选特征串对该候选特征串进行更新。
7.如权利要求6所述的方法,其特征在于,所述根据该子候选特征串中每相邻两个字符构成的字符组的转移概率、转移概率的对数及该子候选特征串中包含的字符组的数量,确定该子候选特征串的熵波值包括:
计算该子候选特征串中每相邻两个字符构成的字符组的转移概率,与转移概率的对数的乘积,将得到的每个乘积求和,确定得到的和值与该子候选特征串中包含的字符组的数量的比值,将所述比值的负数作为该子候选特征串的熵波值。
8.如权利要求1所述的方法,其特征在于,所述判断是否存在至少一个第一取用特征串为有效特征串包括:
针对每个第一会话,确定该第一会话的每个第一取用特征串对应的每个第一字段信息;
根据所述应用对应的每个第二五元组信息,统计所述每个第二五元组信息对应的每个第二会话;针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第一会话中的第一取用特征串作为第二取用特征串,根据每个第二取用特征串,确定该第二会话对应的每个第二字段信息,判断该第二会话的每个第二字段信息是否与任一第一会话包含的第一字段信息对应相同,如果是,阻断该第二会话;
统计阻断的第二会话的第一数量,以及所述应用传输的第二会话的总的第二数量;判断所述第一数量和第二数量是否相同,如果是,判断每个第一取用特征串为有效特征串。
9.如权利要求8所述的方法,其特征在于,如果确定第二数量大于第一数量,所述方法还包括:
统计阻断的第一数据流量,以及所述应用传输的总的第二数据流量;
判断所述第一数据流量与所述第二数据流量的比值是否大于预设的第一阈值;和/或判断所述第一数量与所述第二数量的比值是否大于预设的第二阈值;如果均为是,判断每个第一取用特征串为有效特征串。
10.如权利要求9所述的方法,其特征在于,如果所述第一数据流量与所述第二数据流量的比值不大于预设的第一阈值;或所述第一数量与所述第二数量的比值不大于预设的第二阈值,所述方法还包括:
将所述每个第一会话依次作为第一目标会话,将剩余的每个第一会话作为每个第三会话,进行以下步骤:
A2、针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第三会话中的第一取用特征串作为第三取用特征串,根据每个第三取用特征串,确定该第二会话对应的每个第三字段信息,判断该第二会话的每个第三字段信息是否与任一第三会话包含的第一字段信息对应相同,如果是,阻断该第二会话;
B2、统计阻断的第二会话的第三数量,以及阻断的第三数据流量;
C2、判断所述第一数量与第三数量是否相同,以及所述第一数据流量与第三数据流量是否相同;如果否,确定所述第一目标会话的每个第一取用特征串有效;如果均为是,则确定所述第一目标会话的每个第一取用特征串无效,进行步骤D2;
D2、识别第一目标会话的转移熵最小的第一取用特征串,并将该转移熵最小的第一取用特征串标记为丢弃特征串;将经过特征串调整的第一目标会话,以及每个第三会话作为每个第四会话;
E2、针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第四会话中的第一取用特征串作为第四取用特征串,根据每个第四取用特征串,确定该第二会话对应的每个第四字段信息,判断该第二会话的每个第四字段信息是否与任一第四会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第四数量,以及阻断的第四数据流量;判断所述第一数量与第四数量是否相同,以及所述第一数据流量与第四数据流量是否相同;如果否,确定经过特征串调整的第一目标会话的第一取用特征串有效;如果均为是,则确定经过特征串调整的第一目标会话第一取用特征串无效,进行步骤D2。
11.如权利要求8所述的方法,其特征在于,如果确定第二数量小于第一数量,所述方法还包括:
A3、将任一第一会话作为第二目标会话,将剩余的每个第一会话作为每个第五会话,识别第二目标会话的标记为丢弃特征串中,转移熵最大的丢弃特征串,并将所述转移熵最大的丢弃特征串标记为第一取用特征串;将经过特征串调整的第二目标会话,以及每个第五会话作为每个第六会话;
B3、针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第六会话中的第一取用特征串作为第五取用特征串,根据每个第五取用特征串,确定该第二会话对应的每个第五字段信息,判断该第二会话的每个第五字段信息是否与任一第六会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第五数量,以及阻断的第五数据流量;判断所述第一数量与第五数量是否相同,以及所述第一数据流量与第五数据流量是否相同;如果否,确定经过特征串调整的第二目标会话的第五取用特征串有效;如果均为是,则确定经过特征串调整的第二目标会话的第五取用特征串无效,进行步骤A3。
12.如权利要求1-11任一项所述的方法,其特征在于,所述将所述有效特征串,作为从所述数据包中提取出的目标特征串之后,所述方法还包括:
将所述目标特征串保存到已有的规则库中。
13.一种提取特征串的装置,其特征在于,所述装置包括:
第一确定模,用于根据应用对应的每个第一五元组信息,统计所述每个第一五元组信息对应的每个第一会话;针对每个第一会话,确定该第一会话中待提取特征串的数据包,并确定所述数据包的分词;将确定的每个分词,作为每个候选特征串;
第二确定模块,用于根据已有的规则库和当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵;
第三确定模块,用于针对每个候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该候选特征串中每相邻两个字符的转移概率;根据每相邻两个字符的转移概率及转移概率的对数,确定该候选特征串的转移熵;
标记模块,用于针对每个候选特征串,判断该候选特征串的转移熵是否大于预设的阈值,如果否,将该候选特征串标记为丢弃特征串,如果是,将该候选特征串标记为第一取用特征串;
第四确定模块,用于判断是否存在至少一个第一取用特征串为有效特征串,如果是,将所述有效特征串,作为从所述数据包中提取出的目标特征串;如果否,重置遗传变异系数,并触发第二确定模块。
14.如权利要求13所述的装置,其特征在于,所述第三确定模块,具体用于计算每相邻两个字符的转移概率与转移概率的对数的乘积,将得到的每个乘积求和,将得到的和值的负数,确定为该候选特征串的转移熵。
15.如权利要求13所述的装置,其特征在于,所述第一确定模块,具体用于针对每个第一会话,在预设的数据包传输方向上,获取该第一会话中的预设数量的数据包,将所述预设数量的数据包作为该第一会话中待提取特征串的数据包。
16.如权利要求13所述的装置,其特征在于,所述第一确定模块,具体用于判断所述数据包是否为超文本传输协议HTTP数据包;如果是,根据预先定义完成的正则表达式,确定所述数据包的分词,如果否,根据语言模型N-Gram,确定所述数据包的分词。
17.如权利要求13所述的装置,其特征在于,所述第二确定模块,具体用于读取已有的规则库,针对所述已有的规则库中每相邻两个字符,统计该两个相邻字符出现的次数,以及在所述已有的规则库中除最后一个字符之外的字符中,统计该两个相邻字符中的前一个字符出现的次数,根据该两个相邻字符出现的次数与该两个相邻字符中的前一个字符出现的次数的比值,确定该两个相邻字符的转移概率;根据每相邻两个字符的转移概率,以及当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵。
18.如权利要求13所述的装置,其特征在于,所述装置还包括:
更新模块,用于将该候选特征串中包含的字符从前往后依次重组,构成多个子候选特征串;针对每个子候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该子候选特征串中每相邻两个字符的转移概率,根据该子候选特征串中每相邻两个字符构成的字符组的转移概率、转移概率的对数及该子候选特征串中包含的字符组的数量,确定该子候选特征串的熵波值;针对该候选特征串,识别该候选特征串中熵波值最大的目标子候选特征串,根据该目标子候选特征串的熵波值与该候选特征串的转移熵的比值,确定该候选特征串的冗余度;判断该候选特征串的冗余度是否大于预设的冗余度阈值,如果否,保持该候选字符串不变;如果是,采用该目标子候选特征串对该候选特征串进行更新。
19.如权利要求18所述的装置,其特征在于,所述更新模块,具体用于计算该子候选特征串中每相邻两个字符构成的字符组的转移概率,与转移概率的对数的乘积,将得到的每个乘积求和,确定得到的和值与该子候选特征串中包含的字符组的数量的比值,将所述比值的负数作为该子候选特征串的熵波值。
20.如权利要求13所述的装置,其特征在于,所述第四确定模块,具体用于针对每个第一会话,确定该第一会话的每个第一取用特征串对应的每个第一字段信息;根据所述应用对应的每个第二五元组信息,统计所述每个第二五元组信息对应的每个第二会话;针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第一会话中的第一取用特征串作为第二取用特征串,根据每个第二取用特征串,确定该第二会话对应的每个第二字段信息,判断该第二会话的每个第二字段信息是否与任一第一会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第一数量,以及所述应用传输的第二会话的总的第二数量;判断所述第一数量和第二数量是否相同,如果是,判断每个第一取用特征串为有效特征串。
21.如权利要求20所述的装置,其特征在于,所述第四确定模块,还用于统计阻断的第一数据流量,以及所述应用传输的总的第二数据流量;判断所述第一数据流量与所述第二数据流量的比值是否大于预设的第一阈值;和/或判断所述第一数量与所述第二数量的比值是否大于预设的第二阈值;如果均为是,判断每个第一取用特征串为有效特征串。
22.如权利要求21所述的装置,其特征在于,所述第四确定模块包括:
阻断单元,用于将所述每个第一会话依次作为第一目标会话,将剩余的每个第一会话作为每个第三会话,针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第三会话中的第一取用特征串作为第三取用特征串,根据每个第三取用特征串,确定该第二会话对应的每个第三字段信息,判断该第二会话的每个第三字段信息是否与任一第三会话包含的第一字段信息对应相同,如果是,阻断该第二会话;
统计单元,用于统计阻断的第二会话的第三数量,以及阻断的第三数据流量;
第一确定单元,用于判断所述第一数量与第三数量是否相同,以及所述第一数据流量与第三数据流量是否相同;如果否,确定所述第一目标会话的每个第一取用特征串有效;如果均为是,则确定所述第一目标会话的每个第一取用特征串无效,触发第一识别单元;
第一识别单元,用于识别第一目标会话的转移熵最小的第一取用特征串,并将该转移熵最小的第一取用特征串标记为丢弃特征串;将经过特征串调整的第一目标会话,以及每个第三会话作为每个第四会话;
第二确定单元,用于针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第四会话中的第一取用特征串作为第四取用特征串,根据每个第四取用特征串,确定该第二会话对应的每个第四字段信息,判断该第二会话的每个第四字段信息是否与任一第四会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第四数量,以及阻断的第四数据流量;判断所述第一数量与第四数量是否相同,以及所述第一数据流量与第四数据流量是否相同;如果否,确定经过特征串调整的第一目标会话的第一取用特征串有效;如果均为是,则确定经过特征串调整的第一目标会话第一取用特征串无效,触发第一识别单元。
23.如权利要求20所述的装置,其特征在于,所述第四确定模块还包括:
第二识别单元,用于将任一第一会话作为第二目标会话,将剩余的每个第一会话作为每个第五会话,识别第二目标会话的标记为丢弃特征串中,转移熵最大的丢弃特征串,并将所述转移熵最大的丢弃特征串标记为第一取用特征串;将经过特征串调整的第二目标会话,以及每个第五会话作为每个第六会话;
第三确定单元,用于针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第六会话中的第一取用特征串作为第五取用特征串,根据每个第五取用特征串,确定该第二会话对应的每个第五字段信息,判断该第二会话的每个第五字段信息是否与任一第六会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第五数量,以及阻断的第五数据流量;判断所述第一数量与第五数量是否相同,以及所述第一数据流量与第五数据流量是否相同;如果否,确定经过特征串调整的第二目标会话的第五取用特征串有效;如果均为是,则确定经过特征串调整的第二目标会话的第五取用特征串无效,触发第二识别单元。
24.如权利要求13-23任一项所述的装置,其特征在于,所述装置还包括:
保存模块,用于将所述目标特征串保存到已有的规则库中。
25.一种网络设备,其特征在于,包括处理器、通信接口存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序
处理器,用于执行存储器上所存放的程序时,实现权利要求1-12任一项所述的方法步骤。
26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-12任一项所述的方法步骤。

说明书全文

一种提取特征串的方法、装置、网络设备及存储介质

技术领域

[0001] 本发明涉及应用识别技术领域,尤其涉及一种提取特征串的方法、装置、网络设备及存储介质。

背景技术

[0002] 在应用识别技术中,我们需要通过提取特征串来识别和区分网络流量中不同应用的流量,从而实现对不同的应用进行流量控制等功能。近年来互联网的蓬勃发展导致应用的数量和种类都在剧增,竞争的白热化也使得应用的更新周期大大缩短,知名应用的平均更新频率保持在1-3周/版本,较知名应用的更新频率则保持在1-3月/版本,即使是不太知名的小众应用,其更新频率也不超过6个月/版本。应用的更新往往伴随着应用流量中数据包中的特征串的改变,从而导致已有的用于应用识别的特征串部分或完全失效,采用常规的分析技术和方法就要求协议分析人员更频繁、更多的投入精去维护用于应用识别的特征串。为了能够适应应用的快速更新,亟待一种能够自动提取特征串的方案。
[0003] 但是现有技术中提取特征串的方法有:1、人工数据包分析方法:人工触发并捕获应用流量,提取数据包中的特征串。这种方法存在的问题是需要花费大量的时间进行会话过滤、分析、特征提取,并且在提取特征串的过程中,时刻需要人工干预,才能提取特征串。2、半自动脚本和人工数据包分析方法:会话过滤、通过重复特征串匹配进行数据包的特征串提取由脚本完成,应用流量触发、数据包的特征串的最终筛选由人工完成。这种方法也需要人工干预才能实现对特征串的提取。3、应用反汇编分析和人工数据包分析方法:通过人工逆向分析应用流量来提取特征串,该方法需要投入大量的人力物力,整个过程也需要人工干预才能实现对特征串的提取。
[0004] 因此,现有技术中提取特征串时,都需要投入大量人力物力才能实现,目前还没有一种能够自动提取特征串的方案。

发明内容

[0005] 本发明实施例提供了一种提取特征串的方法、装置、网络设备及存储介质,用以解决现有技术中无法自动提取特征串的问题。
[0006] 本发明实施例提供了一种提取特征串的方法,该方法包括:
[0007] A1、根据应用对应的每个第一五元组信息,统计所述每个第一五元组信息对应的每个第一会话;针对每个第一会话,确定该第一会话中待提取特征串的数据包,并确定所述数据包的分词;将确定的每个分词,作为每个候选特征串;
[0008] B1、根据已有的规则库和当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶尔科夫转移概率矩阵;
[0009] C1、针对每个候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该候选特征串中每相邻两个字符的转移概率;根据每相邻两个字符的转移概率及转移概率的对数,确定该候选特征串的转移熵;
[0010] D1、针对每个候选特征串,判断该候选特征串的转移熵是否大于预设的阈值,如果否,将该候选特征串标记为丢弃特征串,如果是,将该候选特征串标记为第一取用特征串;
[0011] E1、判断是否存在至少一个第一取用特征串为有效特征串,如果是,将所述有效特征串,作为从所述数据包中提取出的目标特征串;如果否,重置遗传变异系数,并进行步骤B1。
[0012] 进一步地,所述根据每相邻两个字符的转移概率及转移概率的对数,确定该候选特征串的转移熵包括:
[0013] 计算每相邻两个字符的转移概率与转移概率的对数的乘积,将得到的每个乘积求和,将得到的和值的负数,确定为该候选特征串的转移熵。
[0014] 进一步地,所述针对每个第一会话,确定该第一会话中待提取特征串的数据包包括:
[0015] 针对每个第一会话,在预设的数据包传输方向上,获取该第一会话中的预设数量的数据包,将所述预设数量的数据包作为该第一会话中待提取特征串的数据包。
[0016] 进一步地,所述针对待提取特征串的数据包,确定所述数据包的分词包括:
[0017] 针对待提取特征串的数据包,判断所述数据包是否为超文本传输协议HTTP数据包;如果是,根据预先定义完成的正则表达式,确定所述数据包的分词,如果否,根据语言模型N-Gram,确定所述数据包的分词。
[0018] 进一步地,所述根据已有的规则库和当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵包括:
[0019] 读取已有的规则库,针对所述已有的规则库中每相邻两个字符,统计该两个相邻字符出现的次数,以及在所述已有的规则库中除最后一个字符之外的字符中,统计该两个相邻字符中的前一个字符出现的次数,根据该两个相邻字符出现的次数与该两个相邻字符中的前一个字符出现的次数的比值,确定该两个相邻字符的转移概率;根据每相邻两个字符的转移概率,以及当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵。
[0020] 进一步地,所述将该候选特征串标记为第一取用特征串之前,所述方法还包括:
[0021] 将该候选特征串中包含的字符从前往后依次重组,构成多个子候选特征串;
[0022] 针对每个子候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该子候选特征串中每相邻两个字符的转移概率,根据该子候选特征串中每相邻两个字符构成的字符组的转移概率、转移概率的对数及该子候选特征串中包含的字符组的数量,确定该子候选特征串的熵波值;
[0023] 针对该候选特征串,识别该候选特征串中熵波值最大的目标子候选特征串,根据该目标子候选特征串的熵波值与该候选特征串的转移熵的比值,确定该候选特征串的冗余度;判断该候选特征串的冗余度是否大于预设的冗余度阈值,如果否,保持该候选字符串不变;如果是,采用该目标子候选特征串对该候选特征串进行更新。
[0024] 进一步地,所述根据该子候选特征串中每相邻两个字符构成的字符组的转移概率、转移概率的对数及该子候选特征串中包含的字符组的数量,确定该子候选特征串的熵波值包括:
[0025] 计算该子候选特征串中每相邻两个字符构成的字符组的转移概率,与转移概率的对数的乘积,将得到的每个乘积求和,确定得到的和值与该子候选特征串中包含的字符组的数量的比值,将所述比值的负数作为该子候选特征串的熵波值。
[0026] 进一步地,所述判断是否存在至少一个第一取用特征串为有效特征串包括:
[0027] 针对每个第一会话,确定该第一会话的每个第一取用特征串对应的每个第一字段信息;
[0028] 根据所述应用对应的每个第二五元组信息,统计所述每个第二五元组信息对应的每个第二会话;针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第一会话中的第一取用特征串作为第二取用特征串,根据每个第二取用特征串,确定该第二会话对应的每个第二字段信息,判断该第二会话的每个第二字段信息是否与任一第一会话包含的第一字段信息对应相同,如果是,阻断该第二会话;
[0029] 统计阻断的第二会话的第一数量,以及所述应用传输的第二会话的总的第二数量;判断所述第一数量和第二数量是否相同,如果是,判断每个第一取用特征串为有效特征串。
[0030] 进一步地,如果确定第二数量大于第一数量,所述方法还包括:
[0031] 统计阻断的第一数据流量,以及所述应用传输的总的第二数据流量;
[0032] 判断所述第一数据流量与所述第二数据流量的比值是否大于预设的第一阈值;和/或判断所述第一数量与所述第二数量的比值是否大于预设的第二阈值;如果均为是,判断每个第一取用特征串为有效特征串。
[0033] 进一步地,如果所述第一数据流量与所述第二数据流量的比值不大于预设的第一阈值;或所述第一数量与所述第二数量的比值不大于预设的第二阈值,所述方法还包括:
[0034] 将所述每个第一会话依次作为第一目标会话,将剩余的每个第一会话作为每个第三会话,进行以下步骤:
[0035] A2、针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第三会话中的第一取用特征串作为第三取用特征串,根据每个第三取用特征串,确定该第二会话对应的每个第三字段信息,判断该第二会话的每个第三字段信息是否与任一第三会话包含的第一字段信息对应相同,如果是,阻断该第二会话;
[0036] B2、统计阻断的第二会话的第三数量,以及阻断的第三数据流量;
[0037] C2、判断所述第一数量与第三数量是否相同,以及所述第一数据流量与第三数据流量是否相同;如果否,确定所述第一目标会话的每个第一取用特征串有效;如果均为是,则确定所述第一目标会话的每个第一取用特征串无效,进行步骤D2;
[0038] D2、识别第一目标会话的转移熵最小的第一取用特征串,并将该转移熵最小的第一取用特征串标记为丢弃特征串;将经过特征串调整的第一目标会话,以及每个第三会话作为每个第四会话;
[0039] E2、针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第四会话中的第一取用特征串作为第四取用特征串,根据每个第四取用特征串,确定该第二会话对应的每个第四字段信息,判断该第二会话的每个第四字段信息是否与任一第四会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第四数量,以及阻断的第四数据流量;判断所述第一数量与第四数量是否相同,以及所述第一数据流量与第四数据流量是否相同;如果否,确定经过特征串调整的第一目标会话的第一取用特征串有效;如果均为是,则确定经过特征串调整的第一目标会话第一取用特征串无效,进行步骤D2。
[0040] 进一步地,如果确定第二数量小于第一数量,所述方法还包括:
[0041] A3、将任一第一会话作为第二目标会话,将剩余的每个第一会话作为每个第五会话,识别第二目标会话的标记为丢弃特征串中,转移熵最大的丢弃特征串,并将所述转移熵最大的丢弃特征串标记为第一取用特征串;将经过特征串调整的第二目标会话,以及每个第五会话作为每个第六会话;
[0042] B3、针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第六会话中的第一取用特征串作为第五取用特征串,根据每个第五取用特征串,确定该第二会话对应的每个第五字段信息,判断该第二会话的每个第五字段信息是否与任一第六会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第五数量,以及阻断的第五数据流量;判断所述第一数量与第五数量是否相同,以及所述第一数据流量与第五数据流量是否相同;如果否,确定经过特征串调整的第二目标会话的第五取用特征串有效;如果均为是,则确定经过特征串调整的第二目标会话的第五取用特征串无效,进行步骤A3。
[0043] 进一步地,所述将所述有效特征串,作为从所述数据包中提取出的目标特征串之后,所述方法还包括:
[0044] 将所述目标特征串保存到已有的规则库中。
[0045] 另一方面,本发明实施例提供了一种提取特征串的装置,所述装置包括:
[0046] 第一确定模,用于根据应用对应的每个第一五元组信息,统计所述每个第一五元组信息对应的每个第一会话;针对每个第一会话,确定该第一会话中待提取特征串的数据包,并确定所述数据包的分词;将确定的每个分词,作为每个候选特征串;
[0047] 第二确定模块,用于根据已有的规则库和当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵;
[0048] 第三确定模块,用于针对每个候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该候选特征串中每相邻两个字符的转移概率;根据每相邻两个字符的转移概率及转移概率的对数,确定该候选特征串的转移熵;
[0049] 标记模块,用于针对每个候选特征串,判断该候选特征串的转移熵是否大于预设的阈值,如果否,将该候选特征串标记为丢弃特征串,如果是,将该候选特征串标记为第一取用特征串;
[0050] 第四确定模块,用于判断是否存在至少一个第一取用特征串为有效特征串,如果是,将所述有效特征串,作为从所述数据包中提取出的目标特征串;如果否,重置遗传变异系数,并触发第二确定模块。
[0051] 进一步地,所述第三确定模块,具体用于计算每相邻两个字符的转移概率与转移概率的对数的乘积,将得到的每个乘积求和,将得到的和值的负数,确定为该候选特征串的转移熵。
[0052] 进一步地,所述第一确定模块,具体用于针对每个第一会话,在预设的数据包传输方向上,获取该第一会话中的预设数量的数据包,将所述预设数量的数据包作为该第一会话中待提取特征串的数据包。
[0053] 进一步地,所述第一确定模块,具体用于针对待提取特征串的数据包,判断所述数据包是否为超文本传输协议HTTP数据包;如果是,根据预先定义完成的正则表达式,确定所述数据包的分词,如果否,根据语言模型N-Gram,确定所述数据包的分词。
[0054] 进一步地,所述第二确定模块,具体用于读取已有的规则库,针对所述已有的规则库中每相邻两个字符,统计该两个相邻字符出现的次数,以及在所述已有的规则库中除最后一个字符之外的字符中,统计该两个相邻字符中的前一个字符出现的次数,根据该两个相邻字符出现的次数与该两个相邻字符中的前一个字符出现的次数的比值,确定该两个相邻字符的转移概率;根据每相邻两个字符的转移概率,以及当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵。
[0055] 进一步地,所述装置还包括:
[0056] 更新模块,用于将该候选特征串中包含的字符从前往后依次重组,构成多个子候选特征串;针对每个子候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该子候选特征串中每相邻两个字符的转移概率,根据该子候选特征串中每相邻两个字符构成的字符组的转移概率、转移概率的对数及该子候选特征串中包含的字符组的数量,确定该子候选特征串的熵波值;针对该候选特征串,识别该候选特征串中熵波值最大的目标子候选特征串,根据该目标子候选特征串的熵波值与该候选特征串的转移熵的比值,确定该候选特征串的冗余度;判断该候选特征串的冗余度是否大于预设的冗余度阈值,如果否,保持该候选字符串不变;如果是,采用该目标子候选特征串对该候选特征串进行更新。
[0057] 进一步地,所述更新模块,具体用于计算该子候选特征串中每相邻两个字符构成的字符组的转移概率,与转移概率的对数的乘积,将得到的每个乘积求和,确定得到的和值与该子候选特征串中包含的字符组的数量的比值,将所述比值的负数作为该子候选特征串的熵波值。
[0058] 进一步地,所述第四确定模块,具体用于针对每个第一会话,确定该第一会话的每个第一取用特征串对应的每个第一字段信息;根据所述应用对应的每个第二五元组信息,统计所述每个第二五元组信息对应的每个第二会话;针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第一会话中的第一取用特征串作为第二取用特征串,根据每个第二取用特征串,确定该第二会话对应的每个第二字段信息,判断该第二会话的每个第二字段信息是否与任一第一会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第一数量,以及所述应用传输的第二会话的总的第二数量;判断所述第一数量和第二数量是否相同,如果是,判断每个第一取用特征串为有效特征串。
[0059] 进一步地,所述第四确定模块,还用于统计阻断的第一数据流量,以及所述应用传输的总的第二数据流量;判断所述第一数据流量与所述第二数据流量的比值是否大于预设的第一阈值;和/或判断所述第一数量与所述第二数量的比值是否大于预设的第二阈值;如果均为是,判断每个第一取用特征串为有效特征串。
[0060] 进一步地,所述第四确定模块包括:
[0061] 阻断单元,用于将所述每个第一会话依次作为第一目标会话,将剩余的每个第一会话作为每个第三会话,针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第三会话中的第一取用特征串作为第三取用特征串,根据每个第三取用特征串,确定该第二会话对应的每个第三字段信息,判断该第二会话的每个第三字段信息是否与任一第三会话包含的第一字段信息对应相同,如果是,阻断该第二会话;
[0062] 统计单元,用于统计阻断的第二会话的第三数量,以及阻断的第三数据流量;
[0063] 第一确定单元,用于判断所述第一数量与第三数量是否相同,以及所述第一数据流量与第三数据流量是否相同;如果否,确定所述第一目标会话的每个第一取用特征串有效;如果均为是,则确定所述第一目标会话的每个第一取用特征串无效,触发第一识别单元;
[0064] 第一识别单元,用于识别第一目标会话的转移熵最小的第一取用特征串,并将该转移熵最小的第一取用特征串标记为丢弃特征串;将经过特征串调整的第一目标会话,以及每个第三会话作为每个第四会话;
[0065] 第二确定单元,用于针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第四会话中的第一取用特征串作为第四取用特征串,根据每个第四取用特征串,确定该第二会话对应的每个第四字段信息,判断该第二会话的每个第四字段信息是否与任一第四会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第四数量,以及阻断的第四数据流量;判断所述第一数量与第四数量是否相同,以及所述第一数据流量与第四数据流量是否相同;如果否,确定经过特征串调整的第一目标会话的第一取用特征串有效;如果均为是,则确定经过特征串调整的第一目标会话第一取用特征串无效,触发第一识别单元。
[0066] 进一步地,所述第四确定模块还包括:
[0067] 第二识别单元,用于将任一第一会话作为第二目标会话,将剩余的每个第一会话作为每个第五会话,识别第二目标会话的标记为丢弃特征串中,转移熵最大的丢弃特征串,并将所述转移熵最大的丢弃特征串标记为第一取用特征串;将经过特征串调整的第二目标会话,以及每个第五会话作为每个第六会话;
[0068] 第三确定单元,用于针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第六会话中的第一取用特征串作为第五取用特征串,根据每个第五取用特征串,确定该第二会话对应的每个第五字段信息,判断该第二会话的每个第五字段信息是否与任一第六会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第五数量,以及阻断的第五数据流量;判断所述第一数量与第五数量是否相同,以及所述第一数据流量与第五数据流量是否相同;如果否,确定经过特征串调整的第二目标会话的第五取用特征串有效;如果均为是,则确定经过特征串调整的第二目标会话的第五取用特征串无效,触发第二识别单元。
[0069] 进一步地,所述装置还包括:
[0070] 保存模块,用于将所述目标特征串保存到已有的规则库中。
[0071] 本发明提供了一种网络设备,包括处理器、通信接口存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0072] 存储器,用于存放计算机程序
[0073] 处理器,用于执行存储器上所存放的程序时,实现如上述任一项所述的方法步骤。
[0074] 本发明提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法步骤。
[0075] 本发明实施例提供了一种提取特征串的方法、装置、网络设备及存储介质,所述方法包括:A1、根据应用对应的每个第一五元组信息,统计所述每个第一五元组信息对应的每个第一会话;针对每个第一会话,确定该第一会话中待提取特征串的数据包,并确定所述数据包的分词;将确定的每个分词,作为每个候选特征串;B1、根据已有的规则库和当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵;C1、针对每个候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该候选特征串中每相邻两个字符的转移概率;根据每相邻两个字符的转移概率及转移概率的对数,确定该候选特征串的转移熵;D1、针对每个候选特征串,判断该候选特征串的转移熵是否大于预设的阈值,如果否,将该候选特征串标记为丢弃特征串,如果是,将该候选特征串标记为第一取用特征串;E1、判断是否存在至少一个第一取用特征串为有效特征串,如果是,将所述有效特征串,作为从所述数据包中提取出的目标特征串;如果否,重置遗传变异系数,并进行步骤B1。
[0076] 由于在本发明实施例中,在确定出每个候选特征串之后,根据包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵,确定候选特征串的转移熵,将转移熵满足要求的候选特征串作为第一取用特征串,并将有效的第一取用特征串作为提取的目标特征串。而当不存在有效特征串时,重置遗传变异系数,并根据重置的遗传变异系数重新确定一阶马尔科夫转移概率矩阵,然后再进行目标特征串的提取。本发明实施例提供的提取特征串的方法不需要人工干预,可以完全实现对特征串的自动提取。附图说明
[0077] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0078] 图1为本发明实施例1提供的提取特征串的过程示意图;
[0079] 图2为本发明实施例6提供的提取特征串的过程示意图;
[0080] 图3为本发明实施例7提供的提取特征串的过程示意图;
[0081] 图4为本发明实施例9提供的提取特征串的过程示意图;
[0082] 图5为本发明实施例10提供的提取特征串的过程示意图;
[0083] 图6为本发明实施例提供的网络设备结构示意图;
[0084] 图7为本发明实施例提供的提取特征串的装置结构示意图。

具体实施方式

[0085] 下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0086] 实施例1:
[0087] 图1为本发明实施例提供的一种提取特征串的过程示意图,该过程包括以下步骤:
[0088] S101:根据应用对应的每个第一五元组信息,统计所述每个第一五元组信息对应的每个第一会话;针对每个第一会话,确定该第一会话中待提取特征串的数据包,并确定所述数据包的分词;将确定的每个分词,作为每个候选特征串。
[0089] 本发明实施例提供的提取特征串的方法应用于网络设备,该网络设备可以是网络安全设备、流量监控设备等。
[0090] 客户端触发应用之后,应用进行会话传输,客户端可以获取应用对应的每个第一五元组信息,并将每个第一五元组信息发送至网络设备。网络设备接收客户端发送的每个第一五元组信息,然后根据每个第一五元组信息,统计每个第一五元组信息对应的每个第一会话。其中,客户端获取应用对应的每个第一五元组信息,并将每个第一五元组信息发送至网络设备的过程属于现有技术,在此不再对该过程进行赘述。
[0091] 例如,第一五元组信息为192.168.1.1,10000,TCP,121.14.88.76,80。网络设备统计会话传输,将会话传输过程中,五元组信息为192.168.1.1,10000,TCP,121.14.88.76,80的会话作为第一会话。当然,第一五元组信息可以为一个,也可以为多个,在此仅以一个五元组信息为例进行说明。
[0092] 在确定出每个第一会话之后,针对每个第一会话,可以确定该第一会话中待提取特征串的数据包。其中,可以将该第一会话中的所有数据包都作为待提取特征串的数据包;也可以将该第一会话中的设定数量的数据包作为待提取特征串的数据包。在获取到待提取特征串的数据包之后,可以确定数据包中的分词,其中,可以根据现有的语言模型确定数据包中的分词,例如根据语言模型N-Gram确定数据包中的分词。在确定出分词之后,将每个分词作为每个候选特征串。
[0093] S102:根据已有的规则库和当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵。
[0094] 网路设备中保存有已有的规则库,规则库中包含有每个字符。网络设备针对每相邻两个字符,可以统计出在规则库中该相邻两个字符出现的次数,以及规则库中总的字符出现的次数,其中,总的字符出现的次数为已有的规则库中任意两个相邻字符出现的次数的总和。根据该相邻两个字符出现的次数、总的字符出现的次数、以及当前的遗传变异系数,可以确定出该相邻两个字符的转移概率。具体的,将该相邻两个字符出现的次数,与总的字符出现的次数的比值作为该相邻两个字符的初始转移概率,将该相邻两个字符的初始转移概率与当前的遗传变异系数的乘积作为该相邻两个字符的转移概率。
[0095] 或者,网络设备针对每相邻两个字符,可以统计出在规则库中该相邻两个字符出现的次数,以及规则库中该两个相邻字符中的前一个字符出现的次数。根据该相邻两个字符出现的次数、该两个相邻字符中的前一个字符出现的次数、以及当前的遗传变异系数,确定出该相邻两个字符的转移概率。具体的,将该相邻两个字符出现的次数,与该两个相邻字符中的前一个字符出现的次数的比值作为该相邻两个字符的初始转移概率,将该相邻两个字符的初始转移概率与当前的遗传变异系数的乘积作为该相邻两个字符的转移概率。
[0096] 这样,网络设备可以确定出每相邻两个字符的转移概率,进而根据每相邻两个字符的转移概率可以确定出包含每两个字符的转移概率的一阶马尔科夫转移概率矩阵。
[0097] S103:针对每个候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该候选特征串中每相邻两个字符的转移概率;根据每相邻两个字符的转移概率及转移概率的对数,确定该候选特征串的转移熵。
[0098] 网络设备针对确定的每个候选特征串,可以识别到该候选特征串中的每相邻两个字符,根据一阶马尔科夫转移概率矩阵,可以确定该候选特征串中的每相邻两个字符的转移概率,进而可以计算出每相邻两个字符的转移概率的对数,根据该候选特征串中的每相邻两个字符的转移概率及转移概率的对数,可以确定该候选特征串的转移熵。
[0099] 例如,可以根据每相邻两个字符的转移概率与转移概率的对数的乘积,确定该候选特征串的转移熵,也可以根据每相邻两个字符的转移概率与转移概率的对数的比值,确定该候选特征串的转移熵。
[0100] S104:针对每个候选特征串,判断该候选特征串的转移熵是否大于预设的阈值,如果否,将该候选特征串标记为丢弃特征串,如果是,将该候选特征串标记为第一取用特征串。
[0101] 网络设备中保存有预设的阈值,在针对每个候选特征串,确定该候选特征串的转移熵之后,判断该候选特征串的转移熵是否大于预设的阈值,如果该候选特征串的转移熵不大于预设的阈值,将该候选特征串标记为丢弃特征串,如果该候选特征串的转移熵大于预设的阈值,则将该候选特征串标记为第一取用特征串。并且,在将候选特征串标记为丢弃特征串或者第一取用特征串之后,保存每个特征串的标记信息,以及每个特征串的转移熵信息。
[0102] S105:判断是否存在至少一个第一取用特征串为有效特征串,如果是,将所述有效特征串,作为从所述数据包中提取出的目标特征串;如果否,重置遗传变异系数,并进行S102。
[0103] 网络设备在标记出每个第一取用特征串之后,判断每个第一取用特征串中是否存在至少一个第一取用特征串为有效特征串。其中,网络设备中可以预先保存有效特征串库,在标记出每个第一取用特征串之后,针对每个第一取用特征串,判断有效特征串库中是否保存有该第一取用特征串,如果是,则确定该第一取用特征串为有效特征串,如果否,则确定该第一取用特征串不是有效特征串。
[0104] 网络设备判断是否存在至少一个第一取用特征串为有效特征串,如果是,则将为有效特征串的第一取用特征串作为从数据包中提取出的目标特征串。而如果不存在有效特征串时,则说明提取的第一取用特征串都无效,此时需要重置遗传变异系数,然后根据已有的规则库和重置后的遗传变异系数,重新确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵。一般,初始的遗传变异系数为1,重置后的遗传变异系数可以是0.9、0.95、1.05、1.1等。
[0105] 根据已有的规则库和重置后的遗传变异系数,重新确定一阶马尔科夫转移概率矩阵,并根据重新确定的一阶马尔科夫转移概率矩阵,确定每个候选特征串的转移熵,进而将转移熵大于预设的阈值的特征串记为第一取用特征串,将转移熵不大于预设的阈值的特征串记为丢弃特征串。直至第一取用特征串中存在至少一个第一取用特征串为有效特征串,才将为有效特征串的第一取用特征串作为从数据包中提取出的目标特征串,否则继续重置遗传变异系数,进行特征串的提取过程。
[0106] 由于在本发明实施例中,在确定出每个候选特征串之后,根据包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵,确定候选特征串的转移熵,将转移熵满足要求的候选特征串作为第一取用特征串,并将有效的第一取用特征串作为提取的目标特征串。而当不存在有效特征串时,重置遗传变异系数,并根据重置的遗传变异系数重新确定一阶马尔科夫转移概率矩阵,然后再进行目标特征串的提取。本发明实施例提供的提取特征串的方法不需要人工干预,可以完全实现对特征串的自动提取,节省了大量的人力物力开销。
[0107] 现有技术中的提取特征串的方法,一旦应用出现更新时,就需要针对更新后的应用重新提取特征串,而原有的特征串一般会失效,这是因为现有技术中的提取特征串的方法对应用更新的适应能力较弱,也就是泛化能力(generalization ability)较弱。而在本发明实施例中,由于引入了遗传变异系数和一阶马尔科夫转移概率矩阵,因此能够在一定程度上去探测特征串的变化并提取出相应的特征串,这种能力可以在应用版本的更新之间传递下去并且不会衰减,因此具有较强的泛化能力。
[0108] 并且,由于本发明实施例提供的提取特征串的方法可以完全实现对特征串的自动提取,不需要人工干预,因此避免了协议分析人员在提取特征串时的主观因素影响,使得提取特征串更准确。
[0109] 实施例2:
[0110] 为了使确定该候选特征串的转移熵更准确,在上述实施例的基础上,在本发明实施例中,所述根据每相邻两个字符的转移概率及转移概率的对数,确定该候选特征串的转移熵包括:
[0111] 计算每相邻两个字符的转移概率与转移概率的对数的乘积,将得到的每个乘积求和,将得到的和值的负数,确定为该候选特征串的转移熵。
[0112] 网络设备确定该候选特征串中每相邻两个字符的转移概率之后,可以计算每相邻两个字符的转移概率的对数,然后计算每相邻两个字符的转移概率与转移概率的对数的乘积,将得到的每个乘积求和,将得到的和值的负数,确定为该候选特征串的转移熵。
[0113] 具体的,针对每个候选特征串,识别该候选特征串中的每相邻两个字符,并根据一阶马尔科夫转移概率矩阵,确定每相邻两个字符的转移概率,进而根据如下公式确定该候选特征串的转移熵:
[0114]
[0115] 其中,n表示候选特征串包含的字符数量,p(si,si+1)表示候选特征串中第i个字符si转移到第i+1个字符si+1的转移概率,H表示候选特征串的转移熵。
[0116] 下面通过一个具体的例子对确定候选特征串的转移熵的过程进行说明。
[0117] 例如,候选特征串为abcd,其中a,b,c,d分别为该候选特征串中的字符,根据一阶马尔科夫转移概率矩阵,可以确定字符a到字符b的转移概率p(a,b),字符b到字符c的转移概率p(b,c),字符c到字符d的转移概率p(c,d),进而,确定候选特征串abcd的转移熵为H=-[p(a,b)logp(a,b)+p(b,c)logp(b,c)+p(dc),lodg)。
[0118] 现有技术中针对提取的特征串无法进行量化评估,协议分析人员无法判断特征串的有效程度,只能根据经验选择特征串,然后逐个组合验证,浪费了大量的人力物力。本发明实施例提供的提取特征串的方法,针对每个候选特征串,根据一阶马尔科夫转移概率矩阵,可以确定该候选特征串的转移熵,根据转移熵可以实现对候选特征串的量化评估,转移熵越大,有效程度越高,因此将不小于预设的阈值的候选特征串标记为第一取用特征串,将小于预设的阈值的候选特征串标记为丢弃特征串。进而验证第一取用特征串的有效性,大大减少了特征串的验证次数,减少了人力物力的投入。
[0119] 实施例3:
[0120] 为了减小提取特征串的计算量,并且尽量保证提取的特征串的有效性,在上述各实施例的基础上,在本发明实施例中,所述针对每个第一会话,确定该第一会话中待提取特征串的数据包包括:
[0121] 针对每个第一会话,在预设的数据包传输方向上,获取该第一会话中的预设数量的数据包,将所述预设数量的数据包作为该第一会话中待提取特征串的数据包。
[0122] 网络设备中保存有预设的数据包传输方向,其中,预设的数据包传输方向可以为由客户端到服务器方向,或者服务器到客户端方向,或者客户端到服务器以及服务器到客户端方向。并且,网络设备中保存有预设数量,在确定出每个第一会话之后,针对每个第一会话,识别出该第一会话中每个数据包的传输方向,在预设的数据包传输方向上,将该第一会话中的预设数量的数据包作为该第一会话中待提取特征串的数据包。
[0123] 具体的,如果预设的数据包传输方向为由客户端到服务器方向,则识别出第一会话中由客户端向服务器传输的数据包,将由客户端向服务器传输的数据包中的,预设数量的任意数据包作为该第一会话中待提取特征串的数据包。较佳的,识别出第一会话中由客户端向服务器传输的数据包后,可以将识别出的数据包按照时间顺序进行排序,将时间靠前的预设数量的数据包作为该第一会话中待提取特征串的数据包。
[0124] 如果预设的数据包传输方向为由服务器到客户端方向,则识别出第一会话中由服务器向客户端传输的数据包,将由服务器向客户端传输的数据包中的,预设数量的任意数据包作为该第一会话中待提取特征串的数据包。较佳的,识别出第一会话中由服务器向客户端传输的数据包后,可以将识别出的数据包按照时间顺序进行排序,将时间靠前的预设数量的数据包作为该第一会话中待提取特征串的数据包。
[0125] 如果预设的数据包传输方向为客户端到服务器以及服务器到客户端方向,可以将预设数量的任意数据包作为该第一会话中待提取特征串的数据包。较佳的,可以将第一会话中的数据包按照时间顺序进行排序,将时间靠前的预设数量的数据包作为该第一会话中待提取特征串的数据包。
[0126] 由于在本发明实施例中,针对每个第一会话,在预设的数据包传输方向上,获取该第一会话中的预设数量的数据包,将预设数量的数据包作为该第一会话中待提取特征串的数据包,因此大大减少了提取特征串的计算量。并且,基于时间靠前的预设数量的数据包进行特征串提取,使得提取的特征串的有效性较高。
[0127] 实施例4:
[0128] 为了使确定数据包的分词更准确,在上述各实施例的基础上,在本发明实施例中,所述针对待提取特征串的数据包,确定所述数据包的分词包括:
[0129] 针对待提取特征串的数据包,判断所述数据包是否为HTTP数据包;如果是,根据预先定义完成的正则表达式,确定所述数据包的分词,如果否,根据N-Gram,确定所述数据包的分词。
[0130] 网络设备针对待提取特征串的数据包,可以判断数据包是否为HTTP数据包。具体的,可以根据数据包中是否包含与HTTP相关的关键字符串来判断数据包是否为HTTP数据包。例如与HTTP相关的关键字符串为“HTTP/1.1”,针对待提取特征串的数据包,判断该数据包中是否包含“HTTP/1.1”这样的字符串,如果包含,则确定该数据包为HTTP数据包,否则确定该数据包不是HTTP数据包。其中,与HTTP相关的关键字符串为“HTTP/1.1”只是其中的一个举例,在本发明实施例中,不对与HTTP相关的关键字符串进行限定。
[0131] 具体的,确定数据包为HTTP数据包的过程属于现有技术,在此不再对该过程进行赘述。
[0132] 如果确定出待提取特征串的数据包为HTTP数据包,由于HTTP数据包的格式标准,因此可以根据预先定义完成的正则表达式,确定数据包的分词,其中,网络设备可以预先采集HTTP数据包,根据采集的HTTP数据包的格式信息,定义正则表达式。针对HTTP数据包,根据正则表达式,确定出的数据包的分词格式规范,产生的分词数量也比较少。
[0133] 而如果确定出待提取特征串的数据包为非HTTP数据包,由于非HTTP数据包没有固定的格式,因此无法预先定义正则表达式来进行分词的确定。对于非HTTP数据包,可以根据N-Gram,确定数据包的分词。其中,N的值可以遍历[1,10]区间的整数,或者遍历[2,13]区间的整数等等,较佳的,N的值可以遍历[3,15]区间的整数。针对非HTTP数据包,根据N-Gram,确定出的数据包的分词数量比较多。其中,根据N-Gram确定数据包的分词的过程属于现有技术,在此不对该过程进行赘述。
[0134] 由于在本发明实施例中,根据预先定义完成的正则表达式,确定HTTP数据包的分词,根据N-Gram,确定非HTTP数据包的分词,因此使得确定数据包的分词更准确。并且,由于引入了根据正则表达式和N-Gram确定数据包的分词,因此能够解读和获取数据包中所包含的语义信息。
[0135] 实施例5:
[0136] 为了使确定一阶马尔科夫转移概率矩阵更准确,在上述各实施例的基础上,在本发明实施例中,所述根据已有的规则库和当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵包括:
[0137] 读取已有的规则库,针对所述已有的规则库中每相邻两个字符,统计该两个相邻字符出现的次数,以及在所述已有的规则库中除最后一个字符之外的字符中,统计该两个相邻字符中的前一个字符出现的次数,根据该两个相邻字符出现的次数与该两个相邻字符中的前一个字符出现的次数的比值,确定该两个相邻字符的转移概率;根据每相邻两个字符的转移概率,以及当前的遗传变异系数,确定包含每相邻两个字符的转移概率的转移矩阵。
[0138] 已有的规则库中包含有每个字符,网络设备在确定一阶马尔科夫转移概率矩阵时,通过读取已有的规则库,针对已有的规则库中每相邻两个字符,可以统计出该相邻两个字符出现的次数,并且在已有的规则库中除最后一个字符之外的字符中,可以统计出该两个相邻字符中的前一个字符出现的次数。根据该两个相邻字符出现的次数、该两个相邻字符中的前一个字符出现的次数、以及当前的遗传变异系数,可以确定出该相邻两个字符的转移概率。具体的,将该相邻两个字符出现的次数,与该两个相邻字符中的前一个字符出现的次数的比值作为该相邻两个字符的初始转移概率,将该相邻两个字符的初始转移概率与当前的遗传变异系数的乘积作为该相邻两个字符的转移概率。进而根据每相邻两个字符的转移概率可以确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵。
[0139] 例如,针对相邻的两个字符ab,网络设备中统计出字符ab在已有的规则库中出现的次数为150次,而在已有的规则库中除最后一个字符之外的字符中,统计出字符a出现的次数为600次,则确定出相邻两个字符ab的初始转移概率为150/600=0.25。如果当前的遗传变异系数为1,则相邻两个字符ab的转移概率为0.25*1=0.25。
[0140] 这样,网络设备可以确定出每相邻两个字符的转移概率,进而根据每相邻两个字符的转移概率可以确定出包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵。
[0141] 由于在本发明实施例中,网络设备针对已有的规则库中每相邻两个字符,根据该两个相邻字符出现的次数、该两个相邻字符中的前一个字符出现的次数、以及当前的遗传变异系数,确定该两个相邻字符的转移概率;根据每相邻两个字符的转移概率确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵,因此使得确定一阶马尔科夫转移概率矩阵更准确。
[0142] 并且,现有技术提取特征串的方法严重依赖于协议分析员人员的经验积累,而现在的应用识别规则库都非常庞大,其包含的特征串数量成千上万,没有人能完全记住每一条规则的特征串内容,因此现有技术依靠人工分析是没办法完全充分利用已有的规则库的。本发明实施例提供的提取特征串的方法,根据已有的规则库中包含的所有字符,确定一阶马尔科夫转移概率矩阵,进而基于一阶马尔科夫转移概率矩阵实现特征串的提取,因此能够充分的利用规则库中包含的所有信息。
[0143] 实施例6:
[0144] 为了使确定的特征串尽量精简,在上述各实施例的基础上,在本发明实施例中,所述将该候选特征串标记为第一取用特征串之前,所述方法还包括:
[0145] 将该候选特征串中包含的字符从前往后依次重组,构成多个子候选特征串;
[0146] 针对每个子候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该子候选特征串中每相邻两个字符的转移概率,根据该子候选特征串中每相邻两个字符构成的字符组的转移概率、转移概率的对数及该子候选特征串中包含的字符组的数量,确定该子候选特征串的熵波值;
[0147] 针对该候选特征串,识别该候选特征串中熵波值最大的目标子候选特征串,根据该目标子候选特征串的熵波值与该候选特征串的转移熵的比值,确定该候选特征串的冗余度;判断该候选特征串的冗余度是否大于预设的冗余度阈值,如果否,保持该候选字符串不变;如果是,采用该目标子候选特征串对该候选特征串进行更新。
[0148] 网络设备在确定出每个候选特征串之后,针对每个候选特征串,将该候选特征串中包含的字符从前往后依次重组,可以构成多个子候选特征串。这样,构成的子候选特征串的数量为该候选特征串中包含的字符的数量减1。
[0149] 例如,某个候选特征串为abcde,则通过从前往后依次重组,构成的多个子候选特征串分别为ab,abc,abcd和abcde。
[0150] 网络设备针对每个候选特征串,确定出该候选特征串的多个子候选特征串之后,针对每个子候选特征串,根据一阶马尔科夫转移概率矩阵,可以确定出该子候选特征串中每相邻两个字符构成的字符组的转移概率,然后计算转移概率的对数,进而根据每相邻两个字符构成的字符组的转移概率、转移概率的对数及该子候选特征串中包含的字符组的数量,可以确定出该子候选特征串的熵波值。
[0151] 其中,可以计算每相邻两个字符构成的字符组的转移概率与转移概率的对数的乘积,然后根据该乘积与该子候选特征串中包含的字符组的数量的比值确定该子候选特征串的熵波值,也可以计算每相邻两个字符构成的字符组的转移概率与转移概率的对数的商,然后根据该商与该子候选特征串中包含的字符组的数量的比值确定该子候选特征串的熵波值。
[0152] 网络设备针对每个候选特征串,可以识别该候选特征串中熵波值最大的目标子候选特征串,而且已经确定了该候选特征串的转移熵,根据目标子候选特征串的熵波值与该候选特征串的转移熵的比值,可以确定出该候选特征串的冗余度。网络设备中保存有预设的冗余度阈值,判断该候选特征串的冗余度是否大于预设的冗余度阈值,如果是,则该候选特征串可以精简,此时采用该目标子候选特征串对该候选特征串进行更新,而如果该候选特征串的冗余度不大于预设的冗余度阈值,则该候选特征串不需精简,此时保持该候选特征串不变。
[0153] 例如,某个候选特征串abcde中熵波值最大的目标子候选特征串为abc,根据目标子候选特征串abc的熵波值与该候选特征串abcde的转移熵的比值,确定出该候选特征串的冗余度,如果该候选特征串的冗余度大于预设的冗余度阈值,则采用该候选特征串中的目标子候选特征串abc对该候选特征串abcde进行更新;而如果该候选特征串的冗余度不大于预设的冗余度阈值,则保持该候选特征串abcde不变。
[0154] 为了使确定该子候选特征串的熵波值更准确,在本发明实施例中,所述根据该子候选特征串中每相邻两个字符构成的字符组的转移概率、转移概率的对数及该子候选特征串中包含的字符组的数量,确定该子候选特征串的熵波值包括:
[0155] 计算该子候选特征串中每相邻两个字符构成的字符组的转移概率,与转移概率的对数的乘积,将得到的每个乘积求和,确定得到的和值与该子候选特征串中包含的字符组的数量的比值,将所述比值的负数作为该子候选特征串的熵波值。
[0156] 网络设备针对每个候选特征串,确定出该候选特征串的多个子候选特征串之后,针对每个子候选特征串,根据一阶马尔科夫转移概率矩阵,可以确定出该子候选特征串中每相邻两个字符构成的字符组的转移概率,然后计算每相邻两个字符构成的字符组的转移概率的对数,进而计算该子候选特征串中每相邻两个字符构成的字符组的转移概率,与转移概率的对数的乘积,将得到的每个乘积求和,确定得到的和值与该子候选特征串中包含的字符组的数量的比值,将比值的负数作为该子候选特征串的熵波值。
[0157] 具体的,可以按照如下公式确定子候选特征串的熵波值:
[0158]
[0159] 其中,n表示候选特征串包含的字符数量,m表示每个子候选特征串包含的字符数量,p(si-1,si)表示子候选特征串中第i-1个字符si-1转移到第i个字符si的转移概率,A表示子候选特征串的熵波值,其中,m=1时,p(si-1,si)=1,。
[0160] 下面通过一个具体的例子对确定子候选特征串的熵波值的过程进行说明。
[0161] 例如,某个子候选特征串为abc,其中a,b,c分别为该子候选特征串中的字符,根据一阶马尔科夫转移概率矩阵,可以确定字符a到字符b的转移概率p(a,b),字符b到字符c的转移概率p(b,c),进而,确定子候选特征串abc的熵波值为A=-[p(a,b)logp(a,b)+p(b,c)logp(b,c)]/2。
[0162] 图2为本发明实施例提供的提取特征串的过程示意图,该过程包括以下步骤:
[0163] S201:根据应用对应的每个第一五元组信息,统计所述每个第一五元组信息对应的每个第一会话;针对每个第一会话,确定该第一会话中待提取特征串的数据包,并确定所述数据包的分词;将确定的每个分词,作为每个候选特征串。
[0164] S202:根据已有的规则库和当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵。
[0165] S203:针对每个候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该候选特征串中每相邻两个字符的转移概率;根据每相邻两个字符的转移概率及转移概率的对数,确定该候选特征串的转移熵。
[0166] S204:判断该候选特征串的转移熵是否大于预设的阈值,如果否,进行S205,如果是,进行S206。
[0167] S205:将该候选特征串标记为丢弃特征串。
[0168] S206:将该候选特征串中包含的字符从前往后依次重组,构成多个子候选特征串;针对每个子候选特征串,根据一阶马尔科夫转移概率矩阵,确定该子候选特征串中每相邻两个字符的转移概率,根据该子候选特征串中每相邻两个字符构成的字符组的转移概率、转移概率的对数及该子候选特征串中包含的字符组的数量,确定该子候选特征串的熵波值;针对该候选特征串,识别该候选特征串中熵波值最大的目标子候选特征串,根据该目标子候选特征串的熵波值与该候选特征串的转移熵的比值,确定该候选特征串的冗余度;判断该候选特征串的冗余度是否大于预设的冗余度阈值,如果否,保持该候选字符串不变;如果是,采用该目标子候选特征串对该候选特征串进行更新,将该候选特征串标记为第一取用特征串。
[0169] S207:判断是否存在至少一个第一取用特征串为有效特征串,如果是,将所述有效特征串,作为从所述数据包中提取出的目标特征串;如果否,重置遗传变异系数,并进行S202。
[0170] 现有的技术对提取的特征串无法进一步精简。主要原因在于:特征串过长时,对应用识别的约束会相应增强,不容易产生误识别,但是特征串的泛化能力却较差;特征串过短时对应用识别的约束会偏弱,容易导致误识别,但是特征串的泛化能力却得以增强。由于现有技术中无法提供量化的特征串冗余度,因此现有技术难以平衡泛化能力和约束力。为了确保对应用识别的约束能力,也就是不引起误识别,现有技术中往往会牺牲泛化能力,进而导致特征串过长,冗余不堪。并且,由于提取出的特征串冗余不堪,也会导致规则库臃肿不堪,需要频繁的去更新规则库。
[0171] 而在本发明实施例中,针对每个候选特征串,可以确定该候选特征串的目标子候选特征串,然后根据该目标子候选特征串的熵波值与该候选特征串的转移熵的比值,确定该候选特征串的冗余度,如果该候选特征串的冗余度大于预设的冗余度阈值,采用该目标子候选特征串对该候选特征串更新,这样便能够精简特征串。本发明通过引入特征串冗余度指标,使得特征串在有效的情况下尽量精简,有效的平衡了约束能力和泛化能力,并且降低了规则库的冗余程度,进而降低了规则库更新的频率,从而降低了规则维护的投入。
[0172] 网络设备提取出特征串之后,可以验证提取出的特征串是否有效,通过下述各实施例,对验证提取出的特征串是否有效的过程进行详细说明。
[0173] 实施例7:
[0174] 为了使验证第一取用特征串是否有效更准确,在上述各实施例的基础上,在本发明实施例中,所述判断是否存在至少一个第一取用特征串为有效特征串包括:
[0175] 针对每个第一会话,确定该第一会话的每个第一取用特征串对应的每个第一字段信息;
[0176] 根据所述应用对应的每个第二五元组信息,统计所述每个第二五元组信息对应的每个第二会话;针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第一会话中的第一取用特征串作为第二取用特征串,根据每个第二取用特征串,确定该第二会话对应的每个第二字段信息,判断该第二会话的每个第二字段信息是否与任一第一会话包含的第一字段信息对应相同,如果是,阻断该第二会话;
[0177] 统计阻断的第二会话的第一数量,以及所述应用传输的第二会话的总的第二数量;判断所述第一数量和第二数量是否相同,如果是,判断每个第一取用特征串为有效特征串。
[0178] 网络设备针对每个第一会话,确定出该第一会话的每个第一取用特征串之后,根据每个第一取用特征串,可以确定每个第一取用特征串对应的每个字段信息。
[0179] 例如,确定第一取用特征串Mozilla对应的字段信息为User-Agent,第一取用特征串Windows对应的字段信息为User-Agent,第一取用特征串wifi对应的字段信息为Type,第一取用特征串LG3217对应的字段信息为device。
[0180] 其中,确定每个第一取用特征串对应的每个字段信息的过程属于现有技术,在此不再对该过程进行赘述。
[0181] 在进行特征串有效性验证时,客户端再次触发应用,应用进行会话传输,客户端可以获取应用对应的每个第二五元组信息,并将每个第二五元组信息发送至网络设备。网络设备接收客户端发送的每个第二五元组信息,然后根据每个第二五元组信息,统计每个第二五元组信息对应的每个第二会话。并将每个第二会话保存到本地,以便后续特征串有效性验证过程中使用。
[0182] 网络设备针对每个第二会话,获取该第二会话的数据包中的每个特征串,然后将该第二会话的数据包中的每个特征串与第一会话中的每个第一取用特征串进行匹配,将对应匹配的第一取用特征串作为第二取用特征串,根据每个第二取用特征串,可以确定每个第二取用特征串对应的每个第二字段信息,将每个第二取用特征串对应的每个第二字段信息作为该第二会话对应的每个第二字段信息。进而判断该第二会话的每个第二字段信息是否与任一第一会话包含的第一字段信息对应相同,如果是,阻断该第二会话。否则不阻断该第二会话。
[0183] 还以上述例子进行说明,例如确定第一取用特征串Mozilla对应的字段信息为User-Agent,第一取用特征串Windows对应的字段信息为User-Agent,第一取用特征串wifi对应的字段信息为Type,第一取用特征串LG3217对应的字段信息为device。针对第二会话中的数据包,获取该数据包中的特征串,然后将该数据包中的特征串与第一取用特征串Mozilla、Windows、wifi和LG3217进行匹配。如果对应匹配的第二取用特征串为Mozilla、wifi和LG3217,或者Windows、wifi和LG3217,则该第二会话的每个第二字段信息与第一会话包含的第一字段信息对应相同,都为User-Agent、Type和device,此时阻断该第二会话,否则不阻断该第二会话。
[0184] 然后,网络设备统计阻断的第二会话的第一数量。并统计应用传输的第二会话的总的第二数量。进而判断第一数量和第二数量是否相同,如果相同,则说明第二会话恰好都能够被阻断,没有出现误报或漏报,因此,判断每个第一取用特征串有效。而如果第一数量大于第二数量,此时说明除了第二会话被阻断之外,还有其他会话被阻断,此时出现误报,判断每个第一取用特征串无效。
[0185] 例如,网络设备统计阻断的第二会话的第一数量为100个,应用传输的第二会话的总的第二数量也为100个,此时第一数量和第二数量相同,判断每个第一取用特征串有效。应用传输的第二会话的总的第二数量为95个,则除了第二会话被阻断,还有其他5个会话被阻断,也就是说出现了误报,此时判断每个第一取用特征串无效。
[0186] 图3为本发明实施例提供的提取特征串的过程示意图,该过程包括以下步骤:
[0187] S301:根据应用对应的每个第一五元组信息,统计所述每个第一五元组信息对应的每个第一会话;针对每个第一会话,确定该第一会话中待提取特征串的数据包,并确定所述数据包的分词;将确定的每个分词,作为每个候选特征串。
[0188] S302:根据已有的规则库和当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵;针对每个候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该候选特征串中每相邻两个字符的转移概率;根据每相邻两个字符的转移概率及转移概率的对数,确定该候选特征串的转移熵。
[0189] S303:判断该候选特征串的转移熵是否大于预设的阈值,如果否,进行S304,如果是,进行S305。
[0190] S304:将该候选特征串标记为丢弃特征串。
[0191] S305:将该候选特征串中包含的字符从前往后依次重组,构成多个子候选特征串;针对每个子候选特征串,根据一阶马尔科夫转移概率矩阵,确定该子候选特征串中每相邻两个字符的转移概率,根据该子候选特征串中每相邻两个字符构成的字符组的转移概率、转移概率的对数及该子候选特征串中包含的字符组的数量,确定该子候选特征串的熵波值;针对该候选特征串,识别该候选特征串中熵波值最大的目标子候选特征串,根据该目标子候选特征串的熵波值与该候选特征串的转移熵的比值,确定该候选特征串的冗余度;判断该候选特征串的冗余度是否大于预设的冗余度阈值,如果否,保持该候选字符串不变;如果是,采用该目标子候选特征串对该候选特征串进行更新,将该候选特征串标记为第一取用特征串。
[0192] S306:针对每个第一会话,确定该第一会话的每个第一取用特征串对应的每个第一字段信息;根据所述应用对应的每个第二五元组信息,统计所述每个第二五元组信息对应的每个第二会话;针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第一会话中的第一取用特征串作为第二取用特征串,根据每个第二取用特征串,确定该第二会话对应的每个第二字段信息,判断该第二会话的每个第二字段信息是否与任一第一会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第一数量,以及所述应用传输的第二会话的总的第二数量。
[0193] S307:判断所述第一数量和第二数量是否相同,如果相同,判断每个第一取用特征串有效,并将每个第一取用特征串,作为从所述数据包中提取出的目标特征串。
[0194] 由于在本发明实施例中,判断阻断的第二会话的第一数量,与应用传输的第二会话的总的第二数量相同时,说明第二会话恰好都能够被阻断,没有出现误报或漏报,因此每个第一取用特征串能够准确地识别出应用中的第二会话,确判断每个第一取用特征串有效。因此使得验证第一取用特征串是否有效更准确。
[0195] 实施例8:
[0196] 在第二数量大于第一数量的情况下,也就是部分第二会话没有被阻断,但是,在会话传输的过程中,有可能出现其他会话伪装成第二会话的情况,这样,其他会话是无法阻断的,但是这并不能说明第一取用特征串无效。而如果存在会话伪装的情况,伪装的会话的数据流量和数量一般都很小,因此,为了进一步使验证第一取用特征串是否有效更准确,在上述各实施例的基础上,在本发明实施例中,如果确定第二数量大于第一数量,所述方法还包括:
[0197] 统计阻断的第一数据流量,以及所述应用传输的总的第二数据流量;
[0198] 判断所述第一数据流量与所述第二数据流量的比值是否大于预设的第一阈值;和/或判断所述第一数量与所述第二数量的比值是否大于预设的第二阈值;如果均为是,判断每个第一取用特征串为有效特征串。
[0199] 如果第二数量大于第一数量,网络设备可以计算第一数量与第二数量的比值,网络设备中保存有预设的第二阈值,判断第一数量与第二数量的比值是否大于预设的第二阈值,如果大于,可以认为未阻断的第二会话是伪装的会话,此时仍然判断每个第一取用特征串为有效特征串。其中,预设的第二阈值可以为95%、98%等。
[0200] 另外,网络设备可以统计阻断的第一数据流量,以及应用传输的总的第二数据流量,计算阻断的第一数据流量,与第二数据流量的比值,网络设备中保存有预设的第一阈值,判断阻断的第一数据流量,与第二数据流量的比值是否大于预设的第一阈值,如果大于,可以认为未阻断的第二会话是伪装的会话,此时仍然判断每个第一取用特征串为有效特征串。其中,预设的第一阈值和预设的第二阈值可以相同或不同。
[0201] 较佳的,为了使验证第一取用特征串是否有效更准确,当网络设备判断第一数量与第二数量的比值大于预设的第二阈值,并且判断阻断的第一数据流量,与第二数据流量的比值大于预设的第一阈值时,判断每个第一取用特征串为有效特征串。
[0202] 下面通过一个具体的例子进行说明。
[0203] 例如,预设的第一阈值为0.96,预设的第二阈值为0.95。网络设备阻断的第二会话的第一数量为100个,应用传输的第二会话的总的第二数量为105个,第一数量与第二数量的比值为100/105=0.952,0.952大于预设的第二阈值0.95。阻断的第一数据流量为80M,应用传输的总的第二数据流量为82M,阻断的第一数据流量,与应用传输的总的第二数据流量的比值为80/82=0.975,0.975大于预设的第一阈值0.96。此时判断每个第一取用特征串为有效特征串。
[0204] 由于在本发明实施例中,如果确定第二数量大于第一数量,判断阻断的第一数据流量,与应用传输的总的第二数据流量比值大于预设的第一阈值,并且判断第一数量与第二数量的比值大于预设的第二阈值时,判断每个第一取用特征串为有效特征串。避免了伪装的会话的影响,进一步使得验证第一取用特征串是否有效更准确。
[0205] 实施例9:
[0206] 如果所述第一数据流量与所述第二数据流量的比值不大于预设的第一阈值;或所述第一数量与所述第二数量的比值不大于预设的第二阈值,此时说明出现了漏报,为了保证提取的特征串能够有效的识别应用中的会话,在上述各实施例的基础上,在本发明实施例中,如果所述第一数据流量与所述第二数据流量的比值不大于预设的第一阈值;或所述第一数量与所述第二数量的比值不大于预设的第二阈值,所述方法还包括:
[0207] 将所述每个第一会话依次作为第一目标会话,将剩余的每个第一会话作为每个第三会话,进行以下步骤:
[0208] A2、针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第三会话中的第一取用特征串作为第三取用特征串,根据每个第三取用特征串,确定该第二会话对应的每个第三字段信息,判断该第二会话的每个第三字段信息是否与任一第三会话包含的第一字段信息对应相同,如果是,阻断该第二会话;
[0209] B2、统计阻断的第二会话的第三数量,以及阻断的第三数据流量;
[0210] C2、判断所述第一数量与第三数量是否相同,以及所述第一数据流量与第三数据流量是否相同;如果否,确定所述第一目标会话的每个第一取用特征串有效;如果均为是,则确定所述第一目标会话的每个第一取用特征串无效,进行步骤D2;
[0211] D2、识别第一目标会话的转移熵最小的第一取用特征串,并将该转移熵最小的第一取用特征串标记为丢弃特征串;将经过特征串调整的第一目标会话,以及每个第三会话作为每个第四会话;
[0212] E2、针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第四会话中的第一取用特征串作为第四取用特征串,根据每个第四取用特征串,确定该第二会话对应的每个第四字段信息,判断该第二会话的每个第四字段信息是否与任一第四会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第四数量,以及阻断的第四数据流量;判断所述第一数量与第四数量是否相同,以及所述第一数据流量与第四数据流量是否相同;如果否,确定经过特征串调整的第一目标会话的第一取用特征串有效;如果均为是,则确定经过特征串调整的第一目标会话第一取用特征串无效,进行步骤D2。
[0213] 在第二数量大于第一数量的情况下,如果第一数据流量与第二数据流量的比值不大于预设的第一阈值;或第一数量与第二数量的比值不大于预设的第二阈值,此时说明出现了漏报,因此需要针对每个第一会话,验证该第一会话的第一取用特征串是否有效。
[0214] 在本发明实施例中,将每个第一会话依次作为第一目标会话,将剩余的每个第一会话作为每个第三会话。
[0215] 将保存在本地的每个第二会话在客户端中重新触发,网络设备针对每个第二会话,获取该第二会话的数据包中的每个特征串,然后将该第二会话的数据包中的每个特征串与第三会话中的每个第一取用特征串进行匹配,将对应匹配的第一取用特征串作为第三取用特征串,根据每个第三取用特征串,可以确定每个第三取用特征串对应的每个第三字段信息,将每个第三取用特征串对应的每个第三字段信息作为该第二会话对应的每个第三字段信息。进而判断该第二会话的每个第三字段信息是否与任一第三会话包含的第一字段信息对应相同,如果是,阻断该第二会话,否则不阻断该第二会话。
[0216] 然后,网络设备统计阻断的第二会话的第三数量,并统计阻断的第三数据流量。进而判断第一数量和第三数量是否相同,以及第一数据流量与第三数据流量是否相同。其中,第一数量是基于每个第一会话中的第一取用特征串进行阻断的第二会话的数量,第一数据流量是基于每个第一会话中的第一取用特征串进行阻断的数据流量;第三数量是基于除第一目标会话之外的每个第三会话中的第一取用特征串进行阻断的第二会话的数量,第三数据流量是基于除第一目标会话之外的每个第三会话中的第一取用特征串进行阻断的数据流量。如果第一数量和第三数量不相同,或者第一数据流量与第三数据流量不相同,则说明第一目标会话中的第一取用特征串对阻断第二会话是有效的,因此确定第一目标会话的每个第一取用特征串有效。而如果第一数量和第三数量相同,并且第一数据流量与第三数据流量相同,则说明第一目标会话中的第一取用特征串对阻断第二会话是无效的,此时确定第一目标会话的每个第一取用特征串无效。
[0217] 在第二数量大于第一数量的情况下,如果确定第一目标会话的每个第一取用特征串无效,则是由于第一目标会话的第一取用特征串数量过多,导致出现了漏报,因此可以减少第一目标会话的第一取用特征串的数量,然后判断第一目标会话的剩余的第一取用特征串是否有效。
[0218] 具体的,由于第一目标会话的每个第一取用特征串的转移熵已知,因此可以识别出转移熵最小的第一取用特征串,然后将转移熵最小的第一取用特征串标记为丢弃特征串。然后将经过特征串调整的第一目标会话,以及每个第三会话作为每个第四会话。
[0219] 再次将保存在本地的每个第二会话在客户端中重新触发,网络设备针对每个第二会话,获取该第二会话的数据包中的每个特征串,然后将该第二会话的数据包中的每个特征串与第四会话中的每个第一取用特征串进行匹配,将对应匹配的第一取用特征串作为第四取用特征串,根据每个第四取用特征串,可以确定每个第四取用特征串对应的每个第四字段信息,将每个第四取用特征串对应的每个第四字段信息作为该第二会话对应的每个第四字段信息。进而判断该第二会话的每个第四字段信息是否与任一第四会话包含的第一字段信息对应相同,如果是,阻断该第二会话,否则不阻断该第二会话。
[0220] 然后,网络设备统计阻断的第二会话的第四数量,并统计阻断的第四数据流量。进而判断第一数量和第四数量是否相同,以及第一数据流量与第四数据流量是否相同。如果第一数量和第四数量不相同,或者第一数据流量与第四数据流量不相同,则说明经过特征串调整的第一目标会话中的第一取用特征串对阻断第二会话是有效的,因此确定经过特征串调整的第一目标会话的每个第一取用特征串有效。而如果第一数量和第四数量相同,并且第一数据流量与第四数据流量相同,则说明经过特征串调整的第一目标会话中的第一取用特征串仍然对阻断第二会话是无效的,此时确定经过特征串调整的第一目标会话的每个第一取用特征串无效。
[0221] 如果确定经过特征串调整的第一目标会话的每个第一取用特征串无效,则继续对第一目标会话的第一取用特征串进行调整,也就是继续识别第一目标会话的转移熵最小的第一取用特征串,并将该转移熵最小的第一取用特征串标记为丢弃特征串,并重新验证经过特征串调整的第一目标会话的每个第一取用特征串的有效性,直至确定经过特征串调整的第一目标会话的每个第一取用特征串的有效为止。
[0222] 当确定经过特征串调整的第一目标会话的每个第一取用特征串的有效之后,采用经过特征串调整的第一目标会话的每个第一取用特征串对原第一目标会话的每个第一取用特征串进行更新。然后,将另一个第一会话作为第一目标会话,将剩余的每个第一会话作为每个第三会话,继续验证第一目标会话中的第一取用特征串的有效性,该验证过程与上述过程相同,在此不再进行赘述。
[0223] 另外,如果第一目标会话的第一取用特征串全部标记为丢弃特征串,仍然判断第一目标会话的第一取用特征串无效,此时滤除第一目标会话及其对应的所有特征串,在验证其他第一会话的过程中对滤除的第一目标会话对应的特征串不予考虑。
[0224] 下面通过一个具体的例子进行说明。
[0225] 例如确定的第一会话有3个,分别为会话1、会话2和会话3。会话1包含的字段信息为a1,a2和a3,字段信息a1对应的第一取用特征串为x1和x2,字段信息a2对应的第一取用特征串为x3,字段信息a3对应的第一取用特征串为x4和x5;会话2包含的字段信息为b1和b2,字段信息b1对应的第一取用特征串为y1和y2,字段信息b2对应的第一取用特征串为y3和y4;会话3包含的字段信息为c1和c2,字段信息c1对应的第一取用特征串为z1和z2,字段信息c2对应的第一取用特征串为z3和z4。
[0226] 首先将会话1作为第一目标会话,将会话2和会话3作为第三会话。针对每个第二会话,获取该第二会话的数据包中的每个特征串,如果获取的特征串为y2,y3,则与获取的特征串对应的第三取用特征串的第三字段信息分别为b1,b2,每个第三字段信息与会话2包含的第一字段信息对应相同,因此阻断该第二会话。如果获取的特征串为y2,z3,则与获取的特征串对应的第三取用特征串的第三字段信息分别为b1,c2,每个第三字段信息不与任何一个第三会话包含的第一字段信息对应相同,因此不阻断该第二会话。
[0227] 如果基于会话1,会话2和会话3中的第一取用特征串进行阻断的第二会话的数量,与基于会话2和会话3中的第一取用特征串进行阻断的第二会话的数量不同,或者基于会话1,会话2和会话3中的第一取用特征串进行阻断的数据流量,与基于会话2和会话3中的第一取用特征串进行阻断的数据流量不同,则判断会话1的第一取用特征串有效,否则判断会话
1的第一取用特征串无效。
[0228] 然后识别会话1的转移熵最小的第一取用特征串,并将该转移熵最小的第一取用特征串标记为丢弃特征串;然后基于经过特征串调整的会话1,会话2和会话3中的第一取用特征串阻断第二会话,如果阻断的第二会话的数量,与基于原会话1、会话2和会话3中的第一取用特征串进行阻断的第二会话的数量不相同,或者阻断的数据流量与基于原会话1、会话2和会话3中的第一取用特征串进行阻断的数据流量不相同,判断经过特征串调整的会话1的第一取用特征串有效,否则判断经过特征串调整的会话1的第一取用特征串无效,此时继续对会话1的第一取用特征串进行调整,也就是继续识别会话1的转移熵最小的第一取用特征串,并将该转移熵最小的第一取用特征串标记为丢弃特征串,并重新验证经过特征串调整的会话1的每个第一取用特征串的有效性,直至确定经过特征串调整的会话1的每个第一取用特征串的有效为止。
[0229] 进而将会话2作为第一目标特征串,将经过特征串调整的会话1和会话3作为第三会话,验证会话2的第一取用特征串的有效性;以及将会话3作为第一目标特征串,将经过特征串调整的会话1和会话2作为第三会话,验证会话3的第一取用特征串的有效性,其中,验证有效性的过程与上述相同,在此不再进行赘述。
[0230] 图4为本发明实施例提供的提取特征串过程示意图,该过程包括以下步骤:
[0231] S401:将所述每个第一会话依次作为第一目标会话,将剩余的每个第一会话作为每个第三会话,针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第三会话中的第一取用特征串作为第三取用特征串,根据每个第三取用特征串,确定该第二会话对应的每个第三字段信息,判断该第二会话的每个第三字段信息是否与任一第三会话包含的第一字段信息对应相同,如果是,阻断该第二会话。
[0232] S402:统计阻断的第二会话的第三数量,以及阻断的第三数据流量。
[0233] S403:判断所述第一数量与第三数量是否相同,以及所述第一数据流量与第三数据流量是否相同;如果否,确定所述第一目标会话的每个第一取用特征串有效;如果均为是,则确定所述第一目标会话的每个第一取用特征串无效,进行S404。
[0234] S404:识别第一目标会话的转移熵最小的第一取用特征串,并将该转移熵最小的第一取用特征串标记为丢弃特征串;将经过特征串调整的第一目标会话,以及每个第三会话作为每个第四会话。
[0235] S405:针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第四会话中的第一取用特征串作为第四取用特征串,根据每个第四取用特征串,确定该第二会话对应的每个第四字段信息,判断该第二会话的每个第四字段信息是否与任一第四会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第四数量,以及阻断的第四数据流量;判断所述第一数量与第四数量是否相同,以及所述第一数据流量与第四数据流量是否相同;如果否,确定经过特征串调整的第一目标会话的第一取用特征串有效;如果均为是,则确定经过特征串调整的第一目标会话第一取用特征串无效,进行S404。
[0236] 由于在本发明实施例中,如果第一数据流量与第二数据流量的比值不大于预设的第一阈值;或第一数量与第二数量的比值不大于预设的第二阈值,将每个第一会话依次作为第一目标会话,将剩余的每个第一会话作为每个第三会话,验证第一目标会话中的第一取用特征串的有效性,当第一目标会话中的第一取用特征串的无效时,将第一目标会话中的转移熵最小的第一取用特征串标记为丢弃特征串,继续验证第一目标会话中的第一取用特征串的有效性,直至确定经过特征串调整的第一目标会话的每个第一取用特征串的有效,因此可以保证调整后的第一取用特征串能够有效的识别应用中的会话。
[0237] 实施例10:
[0238] 为了在出现误报的情况下,保证提取的特征串能够有效的识别应用中的会话,,在上述各实施例的基础上,在本发明实施例中,如果确定第二数量小于第一数量,所述方法还包括:
[0239] A3、将任一第一会话作为第二目标会话,将剩余的每个第一会话作为每个第五会话,识别第二目标会话的标记为丢弃特征串中,转移熵最大的丢弃特征串,并将所述转移熵最大的丢弃特征串标记为第一取用特征串;将经过特征串调整的第二目标会话,以及每个第五会话作为每个第六会话;
[0240] B3、针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第六会话中的第一取用特征串作为第五取用特征串,根据每个第五取用特征串,确定该第二会话对应的每个第五字段信息,判断该第二会话的每个第五字段信息是否与任一第六会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第五数量,以及阻断的第五数据流量;判断所述第一数量与第五数量是否相同,以及所述第一数据流量与第五数据流量是否相同;如果否,确定经过特征串调整的第二目标会话的第五取用特征串有效;如果均为是,则确定经过特征串调整的第二目标会话的第五取用特征串无效,进行步骤A3。
[0241] 在第二数量小于第一数量的情况下,是由于第一会话的第一取用特征串数量过多,导致出现了误报,因此可以减少第一会话的第一取用特征串的数量,然后判断第一会话的剩余的第一取用特征串是否有效,在本发明实施例中,也是针对每个第一会话,验证该第一会话的第一取用特征串是否有效。
[0242] 具体的,将任一第一会话作为第二目标会话,将剩余的每个第一会话作为每个第五会话。由于第二目标会话的每个标记为丢弃的特征串的转移熵已知,因此可以识别出转移熵最大的丢弃特征串,然后将转移熵最大的丢弃特征串标记为第一取用特征串,添加到第二目标会话的第一取用特征串中,然后将经过特征串调整的第二目标会话,以及每个第五会话作为每个第六会话。
[0243] 再次将保存在本地的每个第二会话在客户端中重新触发,网络设备针对每个第二会话,获取该第二会话的数据包中的每个特征串,然后将该第二会话的数据包中的每个特征串与第六会话中的每个第一取用特征串进行匹配,将对应匹配的第一取用特征串作为第五取用特征串,根据每个第五取用特征串,可以确定每个第五取用特征串对应的每个第五字段信息,将每个第五取用特征串对应的每个第五字段信息作为该第二会话对应的每个第五字段信息。进而判断该第二会话的每个第五字段信息是否与任一第六会话包含的第一字段信息对应相同,如果是,阻断该第二会话,否则不阻断该第二会话。
[0244] 然后,网络设备统计阻断的第二会话的第五数量,并统计阻断的第五数据流量。进而判断第一数量和第五数量是否相同,以及第一数据流量与第五数据流量是否相同。如果第一数量和第五数量不相同,或者第一数据流量与第五数据流量不相同,则说明经过特征串调整的第二目标会话中的第一取用特征串对阻断第二会话是有效的,因此确定经过特征串调整的第二目标会话的每个第一取用特征串有效。而如果第一数量和第五数量相同,并且第一数据流量与第五数据流量相同,则说明经过特征串调整的第二目标会话中的第一取用特征串仍然对阻断第二会话是无效的,此时确定经过特征串调整的第二目标会话的每个第一取用特征串无效。
[0245] 如果确定经过特征串调整的第二目标会话的每个第一取用特征串无效,则继续对第二目标会话的第一取用特征串进行调整,也就是继续识别第一目标会话的转移熵最大的丢弃特征串,并将该转移熵最大的丢弃特征串标记为第一取用特征串添加到经过特征串调整的第二目标会话的第一取用特征串中,并重新验证经过特征串调整的第二目标会话的每个第一取用特征串的有效性,直至确定经过特征串调整的第二目标会话的每个第一取用特征串的有效为止。
[0246] 当确定经过特征串调整的第二目标会话的每个第一取用特征串的有效之后,采用经过特征串调整的第二目标会话的每个第一取用特征串对原第二目标会话的每个第一取用特征串进行更新。然后,将另一个第一会话作为第二目标会话,将剩余的每个第一会话作为每个第五会话,继续验证第二目标会话中的第一取用特征串的有效性,该验证过程与上述过程相同,在此不再进行赘述。
[0247] 另外,如果第二目标会话的丢弃特征串全部标记为第一取用特征串,仍然判断第二目标会话的第一取用特征串无效,此时滤除第二目标会话及其对应的所有特征串,在验证其他第一会话的过程中对滤除的第二目标会话对应的特征串不予考虑。
[0248] 图5为本发明实施例提供的提取特征串的过程示意图,该过程包括以下步骤:
[0249] S501:将任一第一会话作为第二目标会话,将剩余的每个第一会话作为每个第五会话,识别第二目标会话的标记为丢弃特征串中,转移熵最大的丢弃特征串,并将所述转移熵最大的丢弃特征串标记为第一取用特征串;将经过特征串调整的第二目标会话,以及每个第五会话作为每个第六会话。
[0250] S502:针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第六会话中的第一取用特征串作为第五取用特征串,根据每个第五取用特征串,确定该第二会话对应的每个第五字段信息,判断该第二会话的每个第五字段信息是否与任一第六会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第五数量,以及阻断的第五数据流量;判断所述第一数量与第五数量是否相同,以及所述第一数据流量与第五数据流量是否相同;如果否,确定经过特征串调整的第二目标会话的第五取用特征串有效;如果均为是,则确定经过特征串调整的第二目标会话的第五取用特征串无效,进行S501。
[0251] 由于在本发明实施例中,如果第二数量小于第一数量,将每个第一会话依次作为第二目标会话,将剩余的每个第一会话作为每个第五会话,验证第二目标会话中的第一取用特征串的有效性,当第二目标会话中的第一取用特征串的无效时,将第二目标会话中的转移熵最大的丢弃特征串标记为第一取用特征串,继续验证第二目标会话中的第一取用特征串的有效性,直至确定经过特征串调整的第二目标会话的每个第一取用特征串的有效,因此可以保证调整后的第一取用特征串能够有效的识别应用中的会话。
[0252] 另外,针对应用传输的会话只有一个,或者关键会话只有一个的情况,现有技术提取特征串时,需要反复触发应用,并采集这一个会话流量,然后反复对比分析,进而提取特征串,现有技术针对应用传输的会话只有一个的情况,提取特征串的能力较差。而本发明实施例提供的提取特征串的方法是针对每个第一会话中的数据包,基于一阶马尔科夫转移概率矩阵和转移熵进行特征串提取的,因此在不反复触发应用流量的情况下,仍然具有良好的针对单个会话提取特征串的能力。
[0253] 实施例11:
[0254] 为了保证之后提取特征串的有效性,在上述各实施例的基础上,在本发明实施例中,所述将所述有效特征串,作为从所述数据包中提取出的目标特征串之后,所述方法还包括:
[0255] 将所述目标特征串保存到已有的规则库中。
[0256] 在确定出目标特征串之后,将目标特征串保存到已有的规则库中,当下次提取特征串时,则根据最新的规则库计算一阶马尔科夫转移概率矩阵,并进行后续提取特征串的步骤。
[0257] 具体的,在将目标特征串保存到已有的规则库中时,可以先根据每个第一会话,确定每个第一会话对应的目标特征串,然后针对每个第一会话,确定该第一会话的目标特征串对应的每个字段信息,根据每个字段信息对目标特征串进行组合,生成每条应用识别规则。其中,相同字段信息对应的目标特征串为或关系,不同字段信息对应的目标特征串为与关系,组合后的目标特征串形成每条应用识别规则,可以将每条应用识别规则保存到已有的规则库中。
[0258] 下面通过一个例子进行说明。
[0259] 针对某个第一会话,该第一会话的目标特征串对应的每个字段信息分别为k1,k2和k3,字段信息a1对应的目标特征串为m1和m2,字段信息a2对应的目标特征串为m3和m4,字段信息a3对应的目标特征串为m5。组合后形成的每条应用识别规则中包含的目标特征串分别为m1,m3和m5;m1,m4和m5;m2,m3和m5;m2,m4和m5。将目标特征串以组合的形式保存到已有的规则库中。
[0260] 实施例12:
[0261] 在上述各实施例的基础上,本发明实施例中还提供了一种网络设备,如图6所示,包括:处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信;
[0262] 所述存储器603中存储有计算机程序,当所述程序被所述处理器601执行时,使得所述处理器601执行如下步骤:
[0263] A1、根据应用对应的每个第一五元组信息,统计所述每个第一五元组信息对应的每个第一会话;针对每个第一会话,确定该第一会话中待提取特征串的数据包,并确定所述数据包的分词;将确定的每个分词,作为每个候选特征串;
[0264] B1、根据已有的规则库和当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵;
[0265] C1、针对每个候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该候选特征串中每相邻两个字符的转移概率;根据每相邻两个字符的转移概率及转移概率的对数,确定该候选特征串的转移熵;
[0266] D1、针对每个候选特征串,判断该候选特征串的转移熵是否大于预设的阈值,如果否,将该候选特征串标记为丢弃特征串,如果是,将该候选特征串标记为第一取用特征串;
[0267] E1、判断是否存在至少一个第一取用特征串为有效特征串,如果是,将所述有效特征串,作为从所述数据包中提取出的目标特征串;如果否,重置遗传变异系数,并进行步骤B1。
[0268] 基于同一发明构思,本发明实施例中还提供了一种网络设备,由于上述网络设备解决问题的原理与提取特征串的方法相似,因此上述网络设备的实施可以参见方法的实施,重复之处不再赘述。
[0269] 本发明实施例提供的网络设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑个人数字助理(Personal Digital Assistant,PDA)、网络侧设备等。
[0270] 上述网络设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard Architecture,EISA)总线等。该通信总线可以分为地址总线数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0271] 通信接口602用于上述网络设备与其他设备之间的通信。
[0272] 存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0273] 上述处理器可以是通用处理器,包括中央处理器、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
[0274] 在本发明实施例中,在确定出每个候选特征串之后,根据包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵,确定候选特征串的转移熵,将转移熵满足要求的候选特征串作为第一取用特征串,并将有效的第一取用特征串作为提取的目标特征串。而当不存在有效特征串时,重置遗传变异系数,并根据重置的遗传变异系数重新确定一阶马尔科夫转移概率矩阵,然后再进行目标特征串的提取。本发明实施例提供的提取特征串的方法不需要人工干预,可以完全实现对特征串的自动提取。
[0275] 实施例12:
[0276] 在上述各实施例的基础上,本发明实施例还提供了一种计算机存储可读存储介质,所述计算机可读存储介质内存储有可由网络设备执行的计算机程序,当所述程序在所述网络设备上运行时,使得所述网络设备执行时实现如下步骤:
[0277] A1、根据应用对应的每个第一五元组信息,统计所述每个第一五元组信息对应的每个第一会话;针对每个第一会话,确定该第一会话中待提取特征串的数据包,并确定所述数据包的分词;将确定的每个分词,作为每个候选特征串;
[0278] B1、根据已有的规则库和当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵;
[0279] C1、针对每个候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该候选特征串中每相邻两个字符的转移概率;根据每相邻两个字符的转移概率及转移概率的对数,确定该候选特征串的转移熵;
[0280] D1、针对每个候选特征串,判断该候选特征串的转移熵是否大于预设的阈值,如果否,将该候选特征串标记为丢弃特征串,如果是,将该候选特征串标记为第一取用特征串;
[0281] E1、判断是否存在至少一个第一取用特征串为有效特征串,如果是,将所述有效特征串,作为从所述数据包中提取出的目标特征串;如果否,重置遗传变异系数,并进行步骤B1。
[0282] 基于同一发明构思,本发明实施例中还提供了一种计算机可读存储介质,由于处理器在执行上述计算机可读存储介质上存储的计算机程序时解决问题的原理与提取特征串的方法相似,因此处理器在执行上述计算机可读存储介质存储的计算机程序的实施可以参见方法的实施,重复之处不再赘述。
[0283] 上述计算机可读存储介质可以是网络设备中的处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器如软盘硬盘、磁带、磁光盘(MO)等、光学存储器如CD、DVD、BD、HVD等、以及半导体存储器如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD)等。
[0284] 在本发明实施例中提供的计算机可读存储介质内存储计算机程序,计算机程序被处理器执行时在确定出每个候选特征串之后,根据包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵,确定候选特征串的转移熵,将转移熵满足要求的候选特征串作为第一取用特征串,并将有效的第一取用特征串作为提取的目标特征串。而当不存在有效特征串时,重置遗传变异系数,并根据重置的遗传变异系数重新确定一阶马尔科夫转移概率矩阵,然后再进行目标特征串的提取。本发明实施例提供的提取特征串的方法不需要人工干预,可以完全实现对特征串的自动提取。
[0285] 图7为本发明实施例提供的提取特征串的装置结构示意图,该装置包括:
[0286] 第一确定模块71,用于根据应用对应的每个第一五元组信息,统计所述每个第一五元组信息对应的每个第一会话;针对每个第一会话,确定该第一会话中待提取特征串的数据包,并确定所述数据包的分词;将确定的每个分词,作为每个候选特征串;
[0287] 第二确定模块72,用于根据已有的规则库和当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵;
[0288] 第三确定模块73,用于针对每个候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该候选特征串中每相邻两个字符的转移概率;根据每相邻两个字符的转移概率及转移概率的对数,确定该候选特征串的转移熵;
[0289] 标记模块74,用于针对每个候选特征串,判断该候选特征串的转移熵是否大于预设的阈值,如果否,将该候选特征串标记为丢弃特征串,如果是,将该候选特征串标记为第一取用特征串;
[0290] 第四确定模块75,用于判断是否存在至少一个第一取用特征串为有效特征串,如果是,将所述有效特征串,作为从所述数据包中提取出的目标特征串;如果否,重置遗传变异系数,并触发第二确定模块72。
[0291] 所述第三确定模块73,具体用于计算每相邻两个字符的转移概率与转移概率的对数的乘积,将得到的每个乘积求和,将得到的和值的负数,确定为该候选特征串的转移熵。
[0292] 所述第一确定模块71,具体用于针对每个第一会话,在预设的数据包传输方向上,获取该第一会话中的预设数量的数据包,将所述预设数量的数据包作为该第一会话中待提取特征串的数据包。
[0293] 所述第一确定模块71,具体用于针对待提取特征串的数据包,判断所述数据包是否为超文本传输协议HTTP数据包;如果是,根据预先定义完成的正则表达式,确定所述数据包的分词,如果否,根据语言模型N-Gram,确定所述数据包的分词。
[0294] 所述第二确定模块72,具体用于读取已有的规则库,针对所述已有的规则库中每相邻两个字符,统计该两个相邻字符出现的次数,以及在所述已有的规则库中除最后一个字符之外的字符中,统计该两个相邻字符中的前一个字符出现的次数,根据该两个相邻字符出现的次数与该两个相邻字符中的前一个字符出现的次数的比值,确定该两个相邻字符的转移概率;根据每相邻两个字符的转移概率,以及当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵。
[0295] 所述装置还包括:
[0296] 更新模块76,用于将该候选特征串中包含的字符从前往后依次重组,构成多个子候选特征串;针对每个子候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该子候选特征串中每相邻两个字符的转移概率,根据该子候选特征串中每相邻两个字符构成的字符组的转移概率、转移概率的对数及该子候选特征串中包含的字符组的数量,确定该子候选特征串的熵波值;针对该候选特征串,识别该候选特征串中熵波值最大的目标子候选特征串,根据该目标子候选特征串的熵波值与该候选特征串的转移熵的比值,确定该候选特征串的冗余度;判断该候选特征串的冗余度是否大于预设的冗余度阈值,如果否,保持该候选字符串不变;如果是,采用该目标子候选特征串对该候选特征串进行更新。
[0297] 所述更新模块76,具体用于计算该子候选特征串中每相邻两个字符构成的字符组的转移概率,与转移概率的对数的乘积,将得到的每个乘积求和,确定得到的和值与该子候选特征串中包含的字符组的数量的比值,将所述比值的负数作为该子候选特征串的熵波值。
[0298] 所述第四确定模块75,具体用于针对每个第一会话,确定该第一会话的每个第一取用特征串对应的每个第一字段信息;根据所述应用对应的每个第二五元组信息,统计所述每个第二五元组信息对应的每个第二会话;针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第一会话中的第一取用特征串作为第二取用特征串,根据每个第二取用特征串,确定该第二会话对应的每个第二字段信息,判断该第二会话的每个第二字段信息是否与任一第一会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第一数量,以及所述应用传输的第二会话的总的第二数量;判断所述第一数量和第二数量是否相同,如果是,判断每个第一取用特征串为有效特征串。
[0299] 所述第四确定模块75,还用于统计阻断的第一数据流量,以及所述应用传输的总的第二数据流量;判断所述第一数据流量与所述第二数据流量的比值是否大于预设的第一阈值;和/或判断所述第一数量与所述第二数量的比值是否大于预设的第二阈值;如果均为是,判断每个第一取用特征串为有效特征串。
[0300] 所述第四确定模块75包括:
[0301] 阻断单元751,用于将所述每个第一会话依次作为第一目标会话,将剩余的每个第一会话作为每个第三会话,针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第三会话中的第一取用特征串作为第三取用特征串,根据每个第三取用特征串,确定该第二会话对应的每个第三字段信息,判断该第二会话的每个第三字段信息是否与任一第三会话包含的第一字段信息对应相同,如果是,阻断该第二会话;
[0302] 统计单元752,用于统计阻断的第二会话的第三数量,以及阻断的第三数据流量;
[0303] 第一确定单元753,用于判断所述第一数量与第三数量是否相同,以及所述第一数据流量与第三数据流量是否相同;如果否,确定所述第一目标会话的每个第一取用特征串有效;如果均为是,则确定所述第一目标会话的每个第一取用特征串无效,触发第一识别单元754;
[0304] 第一识别单元754,用于识别第一目标会话的转移熵最小的第一取用特征串,并将该转移熵最小的第一取用特征串标记为丢弃特征串;将经过特征串调整的第一目标会话,以及每个第三会话作为每个第四会话;
[0305] 第二确定单元755,用于针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第四会话中的第一取用特征串作为第四取用特征串,根据每个第四取用特征串,确定该第二会话对应的每个第四字段信息,判断该第二会话的每个第四字段信息是否与任一第四会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第四数量,以及阻断的第四数据流量;判断所述第一数量与第四数量是否相同,以及所述第一数据流量与第四数据流量是否相同;如果否,确定经过特征串调整的第一目标会话的第一取用特征串有效;如果均为是,则确定经过特征串调整的第一目标会话第一取用特征串无效,触发第一识别单元754。
[0306] 所述第四确定模块还包括:
[0307] 第二识别单元756,用于将任一第一会话作为第二目标会话,将剩余的每个第一会话作为每个第五会话,识别第二目标会话的标记为丢弃特征串中,转移熵最大的丢弃特征串,并将所述转移熵最大的丢弃特征串标记为第一取用特征串;将经过特征串调整的第二目标会话,以及每个第五会话作为每个第六会话;
[0308] 第三确定单元757,用于针对每个第二会话,获取该第二会话的数据包中的每个特征串,将与特征串对应匹配的第六会话中的第一取用特征串作为第五取用特征串,根据每个第五取用特征串,确定该第二会话对应的每个第五字段信息,判断该第二会话的每个第五字段信息是否与任一第六会话包含的第一字段信息对应相同,如果是,阻断该第二会话;统计阻断的第二会话的第五数量,以及阻断的第五数据流量;判断所述第一数量与第五数量是否相同,以及所述第一数据流量与第五数据流量是否相同;如果否,确定经过特征串调整的第二目标会话的第五取用特征串有效;如果均为是,则确定经过特征串调整的第二目标会话的第五取用特征串无效,触发第二识别单元756。
[0309] 所述装置还包括:
[0310] 保存模块77,用于将所述目标特征串保存到已有的规则库中。
[0311] 本发明实施例提供了一种提取特征串的方法、装置、网络设备及存储介质,所述方法包括:A1、根据应用对应的每个第一五元组信息,统计所述每个第一五元组信息对应的每个第一会话;针对每个第一会话,确定该第一会话中待提取特征串的数据包,并确定所述数据包的分词;将确定的每个分词,作为每个候选特征串;B1、根据已有的规则库和当前的遗传变异系数,确定包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵;C1、针对每个候选特征串,根据所述一阶马尔科夫转移概率矩阵,确定该候选特征串中每相邻两个字符的转移概率;根据每相邻两个字符的转移概率及转移概率的对数,确定该候选特征串的转移熵;D1、针对每个候选特征串,判断该候选特征串的转移熵是否大于预设的阈值,如果否,将该候选特征串标记为丢弃特征串,如果是,将该候选特征串标记为第一取用特征串;E1、判断是否存在至少一个第一取用特征串为有效特征串,如果是,将所述有效特征串,作为从所述数据包中提取出的目标特征串;如果否,重置遗传变异系数,并进行步骤B1。
[0312] 由于在本发明实施例中,在确定出每个候选特征串之后,根据包含每相邻两个字符的转移概率的一阶马尔科夫转移概率矩阵,确定候选特征串的转移熵,将转移熵满足要求的候选特征串作为第一取用特征串,并将有效的第一取用特征串作为提取的目标特征串。而当不存在有效特征串时,重置遗传变异系数,并根据重置的遗传变异系数重新确定一阶马尔科夫转移概率矩阵,然后再进行目标特征串的提取。本发明实施例提供的提取特征串的方法不需要人工干预,可以完全实现对特征串的自动提取。
[0313] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0314] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0315] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0316] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0317] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈