一种网络协议识别方法和装置的制造方法

文档序号:9527594阅读:242来源:国知局
一种网络协议识别方法和装置的制造方法
【技术领域】
[0001] 本发明涉及网络技术领域,具体涉及一种网络协议的识别技术。
【背景技术】
[0002] 随着网络的飞速发展和新应用的不断出现,对网络的安全审计、入侵检测、数据防 泄漏等网络信息安全产品的需求量也越来越大,这些网络安全产品主要基于深度包检测技 术DPI(DeepPacketInspection),而深度包检测技术的核心是应用层协议识别,即鉴别网 络链路上传输的数据是采用何种应用层协议,并对这些协议进行还原和分析。具体实现机 制是通过深入读取IP包载荷的内容来对0SI7层协议中的应用层信息进行重组,从而识别 出IP包的应用层协议内容,将其作为后续业务处理的依据。
[0003] 协议识别的关键是进行协议特征匹配,现有技术主要通过以下方式进行协议特征 匹配:
[0004] 静态匹配:通过定义协议库,将抓取到的网络协议与协议库中每个协议的内容进 行各个字段的匹配;动态匹配:先提取网络协议的特征,通过定义正则表达式对协议特质 进行动态的匹配,一个正则表达式由一系列规则和大量的状态数组组成;树形匹配:将网 络协议分组,通过树形结构组织协议库,通过树结构的遍历进行协议匹配。
[0005] 现有技术存在以下几个缺点:
[0006] 大数据量下分析性能有限:现有的DPI算法中,对协议的识别是以静态匹配技术 为基础,即定义标准的协议库,当发现网络流量数据时用采集的数据包与协议库内容进行 遍历匹配,如果存在上千种协议那么对每个数据包就要遍历近千次,大大影响实际使用效 果。在这种情况下,采用动态匹配的正则表达式方式模式匹配法作为辅助的效果也非常有 限,正则表达式提升了规则定义的灵活度却使分析的性能大大降低,无法实现对高速骨干 网络中大数据量、复杂协议的快速定位与识别。另外传统的树形结构协议库也存在弊端,特 征提取技术是这部分内容的瓶颈,每种协议的特征是变化的,反复更新协议特征库的方式 很难在大数据条件下实际应用,传统的树形结构协议库匹配方法难以识别变化后的协议特 征。
[0007] 对硬件设备进行定制兼容性差:现有技术中为了提高协议分析的性能,会采用定 制匹配引擎方式,即将协议匹配工作固化在硬件引擎中,硬件设备能避免软件分时处理所 造成的系统开销从而提高了分析性能。但固化硬件采用的是底层编译语言,对硬件依赖较 高无法实现程序的及时更新,并且不能跨设备部署即当单台设备达到处理极限时只能通过 增加设备的方式解决,在很多无法进行多路镜像的网络环境中这种方式很难发挥作用。
[0008] 对新增协议无法快速识别:网络技术发展日新月异,新技术新应用层出不穷,新的 网络协议不断涌现,这些协议既有根据开源协议进行定制,还有封闭的私有协议,不断变化 的因素也对网络协议分析带来了巨大挑战,传统网络协议分析采用静态的特征库技术,只 能对已有的网络协议进行识别,对于新增协议无法响应判断,只能被动等待特征库进行更 新,如果特征库更新缓慢或者有遗漏则无法发挥协议分析本来的作用。
[0009] 因此一种大数据量情况下快速识别协议并对新增未知协议进行快速智能识别的 方法亟待出现。

【发明内容】

[0010] 本发明提供一种网络协议识别方法,所述方法包括:
[0011] 将相同IP端口的码流数据进行比对,获得各网络协议中固定的特征信息;
[0012] 依照各网络协议中所述特征信息出现的次序将所述特征信息存入协议知识库;
[0013] 将所述协议知识库存储的特征信息构建决策树,所述决策树中的叶子节点标识该 叶子节点所在分支的网络协议;
[0014] 根据所述决策树各节点和各节点分支标识的信息,对待识别数据进行协议识别;
[0015] 根据识别到达的叶子节点确定所述待识别数据的网络协议。
[0016] 优选的,所述方法还包括:
[0017] 若识别不能到达叶子节点,则将与该待识别数据相同IP端口的数据码流进行比 对,获取该IP端口数据码流中确定的特征信息,将新的所述特征信息更新至所述协议知识 库并根据所述更新的协议知识库更新所述决策树。
[0018] 优选的,所述方法还包括:
[0019] 根据所述协议知识库中存储的网络协议特征信息校验所述决策树识别出的所述 待识别数据网络协议,校验通过则本次协议识别完成。
[0020] 优选的,所述方法还包括:
[0021] 将所述通过校验的待识别数据的IP端口和与该IP端口对应的网络协议存储存储 结构,当有新的待识别数据时,先在所述存储结构中匹配查找新的待识别数据的IP端口, 查找匹配成功则直接确定与该IP端口相应的网络协议为所述新待识别数据的网络协议。
[0022] 进一步的,所述将相同IP端口的码流数据进行比对,获得各网络协议中确定的特 征信息的方法具体为:
[0023] 使用特征向量标识所述码流数据比对过程中保持不变数据,依次序记录所述保持 不变的数据和该数据的起始位置,并将所述各起始位置和从所述各起始位置开始保持不变 的数据标记为该IP端口网络协议固定的特征信息。
[0024] 更进一步的,所述依照各网络协议中所述特征信息出现的次序将所述特征信息存 入协议知识库的方法具体为:
[0025] 创建所述协议知识库,将所述各网络协议中出现次序相同的特征信息存入以顺序 标识命名的特征字段列中,每个网络协议中的所有特征信息依次序存入相同的行中。
[0026] 详细的,所述将所述协议知识库存储的特征信息构建决策树的方法具体为:
[0027] 计算各特征字段的增益,并获得各特征字段所包含的特征信息子集数量;
[0028] 根据所述各特征字段增益由大到小确定决策树中父节点和子节点,根据所述各特 征字段所包含的特征信息子集数量确定该节点的分支;
[0029] 从所述决策树的根节点通过一条分支路径到达的叶子节点为包含这条分支路径 上所有特征信息的网络协议。
[0030] 详细的,根据所述决策树各节点和各节点分支标识的信息,对待识别数据进行协 议识别的方法具体为:
[0031] 接收待识别数据,根据所述决策树中根节点分支所指示的特征信息与所述待识别 数据中相应位置的数据进行比对;
[0032] 根据所述比对结果为特征信息一致的分支获得下一个节点,并根据该节点分支所 指示的特征信息继续与所述待识别数据中相应位置的数据进行比对。
[0033] 详细的,所述使用特征向量标识所述码流数据比对过程中保持不变数据,依次序 记录所述保持不变的数据和该数据的起始位置的方法具体为:
[0034] 分别创建码流数组和与所述码流数组对应的特征向量数组,所述特征向量数组各 位置的初始值均设置为固定标识,所述码流数组初始存储当前码流数据;
[0035] 根据所述特征向量的固定标识位置信息,对待比对码流数据和所述当前码流数据 的相应位置进行一致性比对;
[0036] 记录比对过程中保持不变数据和该数据的起始位置,并根据比对过程中不一致的 位置信息将所述特征向量数组中的相应位置更新为变化标识,将所述待比对码流数据更新 至所述码流数组。
[0037] 详细的,所述计算各特征字段增益的方法具体为:
[0038] 计算所述协议知识库中所有特征字段的先验熵;
[0039] 计算所述协议知识库中每个特征字段的后验熵;
[0040] 获取所述先验熵与所述每个特征字段后验熵的差值,即为所述各特征字段的增
[0041] 本发明还公开一种网络协议识别装置,所述装置包括:
[0042] 特征信息获取单元,用于将相同IP端口的码流数据进行比对,获得各网络协议中 确定的特征信息;
[0043] 协议知识库,用于依照所述各特征信息出现的次序,存储所述特征信息获取单元 获取的各网络协议中所述特征信息;
[0044] 决策树构建单元,用于将所述协议知识库存储的特征信息构建决策树,所述决策 树中的叶子节点标识该叶子节点所在分支的网络协议;
[0045] 协议识别单元,用于根据所述决策树构建单元构建的决策树中各节点和各节点分 支标识的信息,对待识别数据进行协议识别,根据识别到达的叶子节点确定所述待识别数 据的网络协议。
[0046] 优选的,所述装置还包括自学习单元:
[0047] 若所述协议识别单元对待识别数据的协议识别不能到达叶子节点,则所述特征信 息获取单元将与该待识别数据相同IP端口的数据码流进行比对,获取该IP端口数据码流 中确定的特征信息;
[0048]自学习单元,用于进行协议特征自学习,将所述特征信息获取单元获取的新所述 特征信息更新至所述协议知识库并根据所述更新的协议知识库更新所述决策树。
[0049] 优选的,所述装置还包括:
[0050] 校验单元,用于根据所述协议知识库中存储的网络协议特征信息校验通过所述协 议识别单元识别出的所述待识别数据网络协议。
[0051] 优选的,所述装置还包括:
[0052] 识别结果存储单元,用于保存所述通过校验单元校验的待识别数据的IP端口和 网络协议;
[0053] 预识别单元,用于当有新的待识别数据时,根据新的待识别数据的IP端口,在所 述识别结果存储单元中匹配查找新的待识别数据的IP端口,对其进行预识别,查找匹配成 功则直接确定与该IP端口相应的网络协议为所述新待识别数据
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1