• 158
当前针对网络协议进行识别的常用软件,大多是对特定的网络数据报文进行识别,自动化程度不高,无法满足当前声纳系统需求。针对上述情况本文设计并构建了一个新的协议识别系统,该系统使用深度包检测技术,对非加密的数据报文使用深度包检测的方法,对数据包进行特征字提取之后再进行自动推理识别及反馈,能够对DDS 、UDP 以及EIPC 等不同的协议数据进行分类识别。经在实验室环境下测试表明,所构建的系统在保证准确率的情况下,能够准确识别多种网络协议,从而为声纳系统内的网络数据传输进行数据整理分析、状态监控、安全防护提供了新的技术方法和手段。
当前声纳系统大多采用一体化分层开放式体系架构,采用标准化模块化设计,以数据为中心,整个处理流程紧紧围绕阵元域数据、波束域数据、接触/目标域数据三个标准数据层以及数据库进行处理展开。
随着信号处理技术和网络技术的高速发展,声纳系统已变得越来越庞大和复杂,数据量疯狂增长导致网络压力也越来越大。尽管目前系统已使用万兆(甚至40G )网络交换设备,加上整个网络中的冗余数据变得越来越多,因此当前系统网络的完整性、安全性、稳定性以及保密性均受到了非常大的挑战。
对于声纳用户或者识别系统的管理员来说,能够快速准确的识别出声纳系统网络内通信的数据报文所使用的具体协议有十分重要的意义,特别是对研究系统网络流量异常监控以及分析各功能软件的状态或行为等。因此当前急需一个协议识别系统来监控这大量数据的正确合理性以及减轻网络压力等。同时随着声纳系统使用的协议种类不断变化和增加,协议规范也在不断的更新和变化,这就使得网络协议的识别变得更加困难。
声纳一体化系统内部有大量的数据、命令交互,交换基于DDS 的数据分发、UDP 的组播、TCP 的点播和EIPC 的命名服务等多种方式。为了适用于艇用声纳系统标准化、通用化的内部通信协议,确保了系统内部通信协议的独立性,满足系统可扩展性要求,对应不同的外部系统的需求,都由声纳主控软件进行报文协议内容转换,完成声纳系统内外的信息交互、转换、分发,以及全系统设备的状态采集、评估和故障诊断等功能,因此,可以说声纳主控软件是系统的“大脑”。这就要求主控软件能够提供数据内容分析处理的能力,并可以让用户决定处理哪些内容,哪些字段,甚至哪些字节。本文设计即是主控软件实现网络协议自动识别的一个功能。
1  系统组成与工作原理
基于特征字的声纳系统网络协议自动识别系统由4部分组成,分别是:数据预处理、特征提取、协议识别及分析反馈部分。整个系统架构如图1
所示。
图1 识别系统架构图
整个声纳系统针对的数据是网络以太帧报文,预处理阶段就是将训练数据和待识别数据以帧格式进行输入后对应用层信息进行截取或重组,然后按照系统已知的协议管理策略进行整形操作,提取含有特征的那部分内容。整形后的数据就可以根据协议规则进行识别分析。协议的识别,要靠训练后得到的特征进行。识别后进行分析,对于不明或未知数据进行反馈,再次提取特征或者人工干预进行判断。特征库的建立可以是系统明确的协议等先验知识,也可以通过训练数据提取特征自动更新。
2  系统详细设计
2.1  数据预处理模块的设计
数据预处理模块一方面是对数据包进行截取或重组等整形操作,另一方面是负责特征库的建立和训练。
训练数据是指按照声纳系统协议规则编排的各种数据帧,供识别系统特征提取后建立特征库,以便后续学习、比对、识别。训练后,当IP 数据包、DDS 、EIPC 、TCP 或UDP 数据流通过识别系统时,该系统允许含有特征的数据报文通过。
特征库:主要由特征提取模块获得。对于系统定义的协议如DDS ,TCP ,UDP ,EIPC 等都有明确的格式和规范,因此规范中定义的某些特定字段值,可以直接作为特征字存入特征库中。同理,经过训练提取的系统内部协议特征也可以存入库中,这些特征叫做先验知识。本识别系统主要是指声纳系统内部协议的特征提取与识别。2.2  特征提取模块的设计
不同的系统通常采用不同的通信协议,而协议又有其特殊的特点,这些特点可能是特定的端口、字符串或者Bit 序列。目前,识别的方法有很多种:如字符串匹配、数值属性、端口识别等方法。我们主
要利用字符串匹配法和行为和启发式方法实现特征提取功能。
图2 特征提取流程图
基于特征字的声纳系统网络协议自动识别系统构建
中国船舶集团有限公司第七一五研究所  王凤华  申屠铠宇  孙文俊
• 159
字符串匹配法就是把输入数据报文中的特定字段内容与标准协议进行比较,检查其是否相符而确定协议的种类,以及检测相关敏感(特定序列)关键字。其特征提取流程如图2所示。
未识别的网络
由图2可知,数据包的特征字提取主要采用深度包检测方法,提取后即得到特征,对于未知协议的数据通过反馈机制来进行识别,反馈得到的协议类型进行自定义命名后也可存入特征库中,及时对特征库进行更新和补充。例如,根据某型系统协议的训练内容如表1、表2所示:
表1 DDS协议格式
序号字段名称类型长度(字节)
1版本号short2
2信息单元长度short2
3信息单元标识/主题号long4
4时间戳long4
5标识short2
6数据内容……
表2 UDP协议格式
序号字段名称类型长度(字节)
1信息单元长度unsigned short2
2信息主题名unsigned long4
3时间戳double8
4数据内容……
2.3  协议识别及分析反馈模块的设计
协议识别及分析反馈模块包括两部分内容:协议识别、分析反馈。
协议识别的流程和特征提取相似,区别在于特征提取是对被识别数据进行有针对性的特征提取,协议识别需要再通过对特征库中的特征向量进行“特征比对”,从而得到数据特征。例如,包特征检测部分则是直接针对特征库中的特征字进行匹配,判断被识别数据是否具有此特征字,比如某四个连续序列字节为0x02、0x02、0x00、0x01,若匹配成功则将该特征字作为此数据包特征来进行数据的分析处理。
数据包是按照协议标准进行组织的,某些位置上的特定序列不会随着数据内容的改变而改变,如协议头部的信息单元标识的位置和内容是固定不变的。
信息单元标识用于标识某一类数据(或控制命令),为long型8位十进制数,由数据类型标识号、设备/软件模块标识号、功能标
识号、对应功能的顺序号四部分组成。
图3
数据类别标识号(xy)区分不同工种状态下的数据:50:定义为上行数据,例如各软件模块通过功能管理转发至显控的数据;51:定义为下行数据(或控制命令),例如显控软件通过功能管理转发至各软件模块的命令;52:各设备/软件模块内部数据,例如内部协议可使用的信息单元标识;53:定义为各设备/软件模块之间共享的数据,例如预成波束数据。设备/软件模块标识号(ab)区分系统内各设备/软件模块的数据。功能标识号(cd)区分各设备/软件模块功能标识的数据。cd的排序从01开始,01可以为警戒功能,02可以为跟踪功能;对于所有设备/模块,00可以为参数设置相关数据。对应功能的顺序号(ef)区分功能下的数据顺序号。例如警戒功能下有3种数据,则依次从01开始排序。
对于满足上述信息单元标识规则的数据包,通过特征比对进行反馈后确认学习。
3  系统运行结果分析
为了验证所设计和构建的声纳系统网络协议自动识别系统的准确性,在实验室环境下,采用某型声纳系统仿真数据开展实验进行验证。
首先选取已知协议帧,即仿真数据报文作为输入进行训练,使用深度包检测技术提取数据包特征向量;通过特征字识别协议种类,最后通过网络获取的数据来验证特征向量的准确性。
其识别率通过识别准确率Acc进行计算判定:
算法公式为:Acc(P)=K′L/KL,其中L是网络数据报文帧数,K是符合协议P的报文实际帧数,K′是能够识别出的帧数。
实验室环境下,网络协议识别系统经过训练后,已经可以对系统内的数据帧进行分析,由于协议格式已知,选取部分主题报文分别模拟3000包数据,表3是通过特征提取模块提取的的频率和位置。
表3 特征提取统计表
编号字符串位置频率识别包个数
10x02020001[4,7]1包/s2999
20x02020002[4,7]1包/s3000
30x03020001[4,7]1包/s2998
40x02020002[4,7]1包/s3000
550010101[2,5]10包/s2990
651010101[2,5]1包/s2996
752020100[2,5]10包/s2997
853010101[2,5]200包/s2991
由表3统计可知,识别准确率在98%以上,满足系统使用需求。实验结果充分说明此系统对于未加密数据有很好的识别效果。
本文所设计和实现的基于特征字的声纳系统网络协议自动识别系统,基于深度包检测技术,并且采用训练学习和反馈机制,不仅增加了协议识别的自动适应性,而且还提高了识别效率。不仅能够对声纳
系统内常见的多种网络协议进行有效的识别,还能够过滤非法数据,减轻网络压力。一方面,本识别系统目前能够满足声纳系统调试及监控的需求,另一方面,本文设计系统对于协议自动识别具有一定的参考意义。