运载火箭测发网络异常流量识别技术
徐洪平 1 , 刘洋 1 , 易航 1 , 阎小涛 1 , 康健 1 , 张文瑾 2     
1. 北京宇航系统工程研究所, 北京 100076;
2. 中国人民解放军 96616部队, 北京 100085
摘要:运载火箭测发网络系统是维系运载火箭各系统远距离测试发射控制的重要国防信息基础设施,测发网络流量数据的精准分析是检测异常行为和保障信息安全的关键举措。该文综合利用端口映射识别、载荷特征识别、统计分析和支持向量机(SVM)学习算法,构建动态混合识别策略,通过端口映射和载荷特征识别获取机器学习训练样本,利用信息增益完成特征选择,构建SVM机器学习识别模型并进行样本训练,建立投票机制实现流量数据综合分析。利用测发网络真实数据进行测试表明:该算法识别准确度达99.1%,并有效地降低了人工判决分析的次数。
关键词运载火箭测发网络    端口映射    载荷精确特征匹配    动态混合策略    支持向量机(SVM)学习    
Abnormal traffic flow identification for a measurement and control network for launch vehicles
XU Hongping1, LIU Yang1, YI Hang1, YAN Xiaotao1, KANG Jian1, ZHANG Wenjin2     
1. Beijing Institute of Astronautical System Engineering, Beijing 100076, China;
2. PLA 96616 Force, Beijing 100085, China
Abstract: The measurement and control network of a launch vehicle is an important national defense information infrastructure for remote measurements and launch control. This network provides a key measure to detect abnormal behavior and ensure information security through accurate analysis of the traffic. This paper describes a network strategy using the port mapping method, payload matching, and support vector machine (SVM) learning algorithm. The training samples are produced by the port mapping and payload matching method. Then, the key features are selected based on the information gain. Next, the SVM model is built with these features and trained by the training samples. The traffic data is then analyzed by the voting mechanism. Actual data from the network is used to verify the method with the results showing that this method has an accuracy of 99.1% with far fewer manual analyses.
Key words: measurement and control network of launch vehicle     port mapping     payload matching     dynamic strategy     support vector machine (SVM) learning    

运载火箭测发网络信息系统实现了各系统远距离测试发射控制,综合处理火箭控制、遥测、外部安全、故障检测等系统测试信息,是重要的国防安全信息基础设施。虽然目前的测发网络信息系统与外部物理隔离,可以有效地避免从互联网直接被侵入,但是物理隔离的网络信息系统并不意味着信息安全,例如,伊朗核电站曾遭遇的“震网”病毒高级可持续威胁攻击,严重破坏了其核设施。

测发网络流量承载了网络系统的关键信息,多数异常或攻击行为都会使系统网络流量呈现特定的差异,通过深层次分析系统流量,可快速识别系统中的不合规流量,及时发现冗余应用信息或异常行为,保障测发网络系统的可靠数据通信。Lang等使用基于端口的协议识别方法来获取纯净的网络流量,并验证了此方法的有效性[1]。陈亮等证明基于端口的协议识别方法无法适应动态端口应用,但在传统的网络应用中仍然具有高准确率[2]。实际应用中,可以基于包长分布和端口来识别网络流量[3]。Moore等通过减少载荷识别的长度和包数来降低时间和空间复杂度[4]。Yu等提出了半指导的机器学习方法解决网络流分类问题,达到了94%的识别准确率,并提出了一种模块化的机器学习系统,在大型网络中取得了良好的应用效果[5]。Zhang等提出基于支持向量机(support vector machine, SVM)和统计特征的分类方法[6]。Shafiq等应用Bayes和C4.5等机器学习算法进行流量识别研究,验证各类机器学习方法的可行性[7]。Ibrahim等针对网络流量识别领域现有各类机器学习算法应用情况进行了综述分析[8]

基于端口的流量识别速度快但通用性差,错误率较高;基于载荷精确特征匹配的识别方法准确度高、速度较快,然而无法识别加密流量;基于统计的识别方法能识别加密协议,但统计特征难以选取,容易误报,且实时性相对较差;基于机器学习的流量协议识别方法具有智能性,识别准确率高,但依赖于较大规模的正确训练数据和恰当的网络流特征。本文综合利用基于端口的识别方法、基于载荷精确特征匹配的识别方法、基于统计识别的方法构建网络流量数据混合识别策略,实现流量数据精确识别分析,在获得较大规模已知标签的样本之后,利用SVM构建自学习机制,不断更新优化并取代统计识别方法,最终形成自迭代更新的网络流量综合识别机制。

1 基于动态混合策略的网络流量识别算法 1.1 流量数据获取与预处理

在进行流量分析前,一般通过数据流抓取工具如Sniffer、Wireshark、NetFlow、flow-tools和fprobe等[9-10]实现网络流量数据快速采集。为了满足实时处理的需求,在进行流量数据分析之前,依据五元组I(包括源IP(s_ip)、目的IP(d_ip)、源端口(s_port)、目的端口(d_port)、传输层协议号(p_num),即I=(s_ip, d_ip, s_port, d_port, p_num))先进行流量分流预处理。构建流表承载按一定规则分流的网络数据包,属于同一特定数据流的报文具有很多相同的属性,通过对网络数据包的五元组信息I进行Hash计算,获取各类五元组数据对应的Hash值hash_index。

$ {\rm{hash\_index = Hash}}\left( \mathit{I} \right){\rm{.}} $ (1)

依据Hash值将数据包分为不同的流,流表处理流程如图 1所示。分流后,将每个流的基本信息保存在流表中。流表的设计架构如图 2所示。

图 1 网络数据分流处理流程

图 2 流表设计架构

1.2 基于端口映射的流量识别

在复杂的互联网环境下,由于动态端口技术的使用,很多应用服务不再使用标准的端口,使得传统的基于端口映射的流量识别分析方法准确率大大降低。但是,在运载火箭测发网络系统这一特定内网环境中,大部分协议或应用仍然使用标准的端口进行通信,流量数据通过端口映射表(port_table)快速映射匹配(port-mapping),可实现流量数据高效率识别。F[*]表示端口-应用映射函数。

$ {\rm{Protocol = }}\mathit{F}\left[{{\rm{port\_table}}} \right]{\rm{.}} $ (2)

常见网络应用或协议所使用的端口如表 1所示。

表 1 常见网络应用及对应的端口和传输层协议
应用 常见端口 传输层协议
HTTP 80 TCP
FTP 21/22 TCP
EMULE 4 672 UDP
RTMP 1 935 TCP
SMTP 25 TCP
TELNET 23 TCP
测发网络应用 TCP/UDP

针对运载火箭测发网络中的大量特定应用,通过端口的提前规划设计,构建相对完备的端口、应用映射表,利用网络流量所使用的端口映射可实现流量数据的快速分析。

1.3 基于载荷精确特征匹配的识别

通过对流量数据载荷提取精确特征,针对捕获的网络流量数据,判断载荷是否含有特殊特征,从而实现对流量数据的分析识别。基于载荷精确特征匹配的方法对每个网络包进行拆分,将应用数据部分提取出来进行特征匹配。针对运载火箭测发网络信息系统的实际特点,首先针对系统设计的航天特殊领域流量协议提取特征,并进行标识,如式(3)所示,其中G[*]表示流量特征提取函数。

$ \rm{Protocal=}\mathit{G}\left[\rm{flows} \right]\xrightarrow{\rm{匹配}}\rm{protocal }\_\rm{ feature}\rm{.} $ (3)

例如:Protocol_1/0:0xEB_1:0x90_2:0x00_3:0x20和Protocol_2/0: 0x70_2:0x10_3:0x80分别表示协议在数据包中不同字节位置的特征信息,可以简单表示两类不同协议Protocol_1和Protocol_2的协议“指纹”特征。通过提取流量数据协议指纹,并利用AC/SRS(Aho-Corasick/shift-relay-shift)多模式匹配算法,可实现高效、快速的识别分析。处理流程如图 3所示。

图 3 基于载荷精确特征匹配的流量识别分析

基于载荷精确特征匹配的识别方法精度相对比较高,但因为需要对每个包进行分析,速度相对较慢,且针对一些加密协议或特殊的无法解析的协议,难以实现分析。

1.4 基于统计特征和机器学习模型的检测识别

运载火箭测发网络信息系统中,不同应用的流量在网络层面通常呈现某种独特的统计特性,例如以流的空闲时间、平均流长度、流密度等为代表的网络流特征,以平均报文长度、报文间隔时间等为代表的报文特征,以及特定应用场景下以源-目的地通信数据比例等为代表的应用层特征等,对于不同应用来说是独一无二的,通过多个维度特征联合分析可实现区分辨别。大量研究表明,基于网络流量数据统计特性的识别分析是行之有效的[11-13]。尤其是在一些特定的应用场景下,可以对加密协议或者无法解析的流量数据实现快速识别分析。Moore等给出了一个249维的特征集合用于分析网络流量特性。网络流量特征的选择对于识别分析比较关键,实际检测分析中,许多数据特征包含的信息量小,或存在相关性及冗余性,对于检测精度的提升没有贡献,却带来时间复杂度和空间复杂度的增加。通过数据特征筛选可以实现特征维数约简,降低计算量,提高系统检测学习效率。

信息增益通过度量特征属性与类别的相关性,实现有效的样本特征过滤选择,具有较大信息增益的特征属性对分类性能的影响更大。特征A的信息增益定义为原信息需求与新需求之间的差[14],用gain(A)表示,

$ \begin{array}{l} \;\;\;\;{\rm{gain}}\left( \mathit{A} \right){\rm{ = inf}}\left( \mathit{D} \right){\rm{ - in}}{{\rm{f}}_\mathit{A}}\left( \mathit{D} \right){\rm{ = }}\\ {\rm{ - }}\sum\limits_{\rm{1}}^\mathit{m} {{\mathit{p}_\mathit{i}}} {\rm{lo}}{{\rm{g}}_{\rm{2}}}{\mathit{p}_\mathit{i}}{\rm{ - }}\sum\limits_{\mathit{j} = 1}^\mathit{n} {\frac{{{\rm{|}}{\mathit{D}_\mathit{j}}{\rm{|}}}}{{\left| \mathit{D} \right|}}} \cdot {\rm{inf(}}{\mathit{D}_\mathit{j}}{\rm{)}}{\rm{.}} \end{array} $ (4)

其中pi=|Ci, D|/|D|, 表示样本集合D中任意样本属于类Ci的非零概率。|D|是总样本数,|Ci, D|是属于Ci类的样本数。m是样本类别数。inf(D)表示识别D中元组的类别所需要的平均信息量。infA(D)表示基于特征A对集合D中元组分类所需要的期望信息量。n为划分子集Dj的个数。

网络流量识别的核心问题是决定网络流量和应用类别间的映射关系,面对大量不同维度的统计特征,难以通过阈值等直观规则实现映射。SVM方法建立在统计学习理论的基础上,具备很强的认知能力,尤其是对于小样本学习问题,可以通过统计学习掌握潜在非规则描述性规律,实现多维特征联合映射。

经过特征选择后,单位时间内获得网络流量基本特征及统计特征共计l个维度,构建高维的样本特征向量数据为X=[x1, x2, …, xl], 每个网络流量样本可以标记为D(X, yi),其中yi为该类流量数据样本标示的类别标签,yi∈{+1, -1}。区别不同类别的最优分类面可以表示为w·X+b=0, w为权重,b为常数项。最优分类面可以使得不同类别分类间隔最大。获取最优分类面等价于求解式(5)所示的最优化问题:

$ {\rm{min}}\frac{1}{2}\sum\limits_{\mathit{i}{\rm{ = 1}}}^\mathit{n} {\mathit{w}_\mathit{i}^2} {\rm{, }} $ (5)
$ {\rm{s}}{\rm{.t}}{\rm{.}}\;\;\;\;\;{\mathit{y}_\mathit{i}}\left( {\mathit{\boldsymbol{w}}{\rm{\cdot}}\mathit{\boldsymbol{X}}{\rm{ + }}\mathit{b}} \right){\rm{ - 1}} \ge {\rm{0, }}\;\;\;{\rm{ }}\mathit{i}{\rm{ = 1, \cdots , }}\mathit{n}{\rm{.}} $ (6)

其中: i=1, …, n, n表示样本数。w不仅与样本的位置有关,还与样本的类别有关。在式(6)的约束下,通过凸二次优化可以实现对式(5)的求解。对于两分类问题,SVM分类判别函数可表示为

$ \begin{array}{l} \mathit{f}\left( \mathit{x} \right){\rm{ = sgn}}\left\{ {\mathit{\boldsymbol{w}}{\rm{\cdot}}\mathit{\boldsymbol{X}}{\rm{ + }}\mathit{b}} \right\}{\rm{ = }}\\ {\rm{sgn}}\left\{ {\sum\limits_{\mathit{i}{\rm{ = 1}}}^\mathit{t} {{\mathit{\alpha }_\mathit{l}}{\rm{\cdot}}{\mathit{y}_\mathit{i}}{\rm{\cdot}}{\mathit{x}_\mathit{l}}{\rm{ + }}\mathit{b}} } \right\}{\rm{.}} \end{array} $ (7)

基于SVM的流量分类实现过程如图 4所示。其中:αi为优化的Lagrange算子,wb确定分类面方程w·X+b=0。对于多分类问题,通过在任意两个类别间设计SVM辨别模型,对于k个类别,就需要设计Ck2个SVM分类,对于未知类别的待分类样本,获得票数最多的类别即为该样本的类别。

图 4 基于支持向量机的流量分类过程

利用已知类别的流量样本数据进行训练,获得基于SVM的网络流量检测分类模型。待识别分类的网络流量数据经过特征提取后,利用分类模型进行分类,最终获得应用层的分类识别检测结果。

1.5 基于混合策略的网络流量异常检测分析算法

在运载火箭测发网络异常流量检测识别应用中,基于端口的识别方法检测速度快,这也是主流的流量分析工具如Wireshark采用的方法,但这类方法的通用性和稳健性不强,一旦应用由于特殊原因,如遭遇渗透入侵,改变了其传输端口,则识别失效;基于载荷精确特征匹配的方法准确度较高,但由于是针对单个数据包进行检测分析,检测速度较慢,难以对较大规模的网络流量数据实现实时检测分析,且无法识别加密或者无权限解析的流量数据;基于统计特征直接识别的方法虽然简单,但识别规则很难统一确定,误报率很高;基于流量特征和机器学习的方法可以分析样本特征,自主认知规律,有效实现检测识别,但需要大量已知标签的流量数据作为训练样本,在运载火箭测发网络应用中,起步受限。

针对不同种类算法的优缺点,结合测发网络信息系统的实际特点,本文设计混合优化策略,综合利用各类检测方法的优势,实现测发网络流量数据的智能精准利用,从而有效检测出异常流量数据。

基于混合策略的网络流量异常检测分析算法如图 5所示,算法流程示意图如图 6所示。

图 5 异常流量检测识别算法

图 6 动态混合策略算法示意图

首先,在网络流量数据分流预处理的基础上,先通过端口映射识别获得初步分类识别结果,同时利用基于载荷精确特征匹配的方法进行识别。对两类方法识别的结果进行对比验证:对于两者识别结果不一致的协议数据,通过人工进行判别分析,最终确定协议数据类型;对于判别结果一致的流量数据,则直接作为该类型数据的样本标签。在识别分析的过程中,同步提取表 2中所列的网络流量特征,构建用于机器学习分类的特征向量,利用端口识别和基于载荷精确特征匹配模型识别分析获得大量带有标签的已知样本,构建训练样本数据,并采用SVM进行训练学习,获得知识分类识别模型。然后,不断地对分类识别模型进行训练识别和检测验证,当识别错误率低于设定阈值时,改变识别策略,将端口识别、基于载荷精确特征识别、机器学习识别的识别结果采用投票机制裁定最终识别结果,并继续用于训练SVM学习模型,进行自适应更新。

表 2 网络流量特征
特征名称 特征说明
Inside_port 源IP对应的端口
Outside_port 目的IP端口
Duration 网络流持续时间
Flag TCP连接标识(包括:SF/S0/S1/REJ等)
Inside_pkg 来自源IP的包个数
Outside_pkg 来自目的IP的包个数
Inside_byte 来自源IP的字节数
Outside_byte 来自目的IP的字节数
Total_pkg 总包数
Total_byte 总字节数
Num_of_SYN SYN包个数
Num_of_eSYN SYN错包数
Num_of_epkg 错包个数
Num_of_fragment 分片个数
Num_of_option 有IP、TCP选项包个数
Max _pkg_length 来自源IP数据包中最大包长度
Min _pkg_length 来自目的IP数据包中最小包长度
Message_time 报文间隔时间
Max_flow_length 最大流长度
Ave_message_length 平均报文长度

2 实验验证与结果分析

为了验证基于动态混合策略的运载火箭测发网络异常流量识别算法的适用性,本文选取运载火箭测发网络信息系统的实际流量数据进行测试验证。测发网络系统的拓扑结构如图 7所示,处于发射阵地的前端各分系统设备与后端各分系统设备由一体化通信交换设备连接,实现指令及数据信息交互,通过从核心交换机端口镜像可获取测发网络的全网络实际流量数据用于本文的测试分析。实验使用的计算机主要配置如下:Intel LGA1155封装的i5-3450处理器、4 GB 1 333 MHz DDR3内存、1 TB SATA 7 200 r/s机械硬盘。

图 7 运载火箭测发网络信息系统拓扑结构

获得测发网络系统的流量数据后,选取部分样本子集,通过式(4)描述的信息增益进行特征选择,选取如表 2所示的网络流量特征构建机器学习特征向量。用于衡量SVM学习性能的阈值参数设置为90%。

部分网络流量特征时序如图 8所示,不同流量协议数据的时序特征也不同。

图 8 网络流量时序特征变化

用于实验测试的离线数据量约为13.2 GB,实际运行处理时间为2 min 50 s,结果表明本文方法可实现在线流量数据实时处理。实验测试数据经过处理后共包含9 742条流,其中测发网络系统私有协议流量约占49.18%。为了验证本文算法的有效性,将端口映射法、深度报文检测(DPI)法以及C4.5和朴素Bayes算法这两种典型的机器学习分类应用算法,与本文算法进行对比,实验结果如表 3所示。

表 3 算法分析性能对比
识别算法 准确率/% 未识别流量所占比例/%
端口映射 84.9 4.1
DPI 92.2 3.9
端口映射+DPI 81.9 17.5
C4.5 92.3 7.1
朴素Bayes 91.0 6.8
本文 99.1 0.57

表 3中的“端口映射+DPI”表示将端口映射法与深度报文检测法的输出结果进行比对,结果一致则输出识别结果,结果不一致则搁置标识为“未识别流量”,等待人工分析。表 3中的“未识别流量”表示该方法无法给出识别结果的流量,这些流量需人工识别分析。“端口映射+DPI”方法不一致的流量经过人工分析后,准确率可以提升至99.4%。由表 3结果可以看出,本文所提出的基于动态混合策略的流量识别分析算法识别准确率为99.1%,远高于其他方法,且需要人工分析处理的流量数据远少于其他5种方法,在大大减少人工判别分析的基础上提高测发网络流量识别分析的准确度。

完成网络流量数据识别分析后,可以直接匹配测发网络正常协议数据类型,实现异常协议数据的快速识别;还可以通过进一步深入分析正常协议数据的变化特征、组成及轮廓等信息,有效检测隐蔽性强的异常行为。

考虑到时间窗口大小的选择对统计特征的影响较大,进而影响识别效果,为了验证时间窗口选择对算法识别准确度的影响,本文选取不同的时间窗口进行测试验证,如图 9所示。实验结果表明:随着时间窗口的增大,预测的准确度先上升,后在一定的区间内浮动。此结果与实际情况一致,时间窗口选择过小,统计特征不稳定,时间窗口过大则可能掩盖特征数值的变化,实际使用时需要进行实验, 选择合适的时间窗口大小。

图 9 时间窗口的选择对算法性能的影响

3 结论

本文提出一种基于动态混合策略的运载火箭测发网络系统流量识别算法,综合端口映射法、载荷特征识别法、统计分析法和机器学习等不同方法的特点,构建混合识别策略。通过构建投票裁定机制,综合利用端口映射法、载荷特征匹配法和精度达到阈值要求的机器学习方法的识别结果,在保证识别准确度的同时,大大减少了人工分析,还可以不断自适应更新,提高了检测分析系统的智能化和自动化水平。未来将通过对运载火箭测发网络系统流量数据进行长期分析和不断迭代更新,逐步实现测发网络系统流量数据透明化和可信化,从而有效保障测发网络信息系统安全可靠运行。

参考文献
[1] LANG T, BRANCH P, ARMITAGE G. A synthetic traffic model for Quake3[C]//2004 ACM SIGCHI International Conference on Advances in Computer Entertainment Technology. Singapore: ACM, 2004: 233-238.
[2] 陈亮, 龚俭, 徐选. 基于特征串的应用层协议识别[J]. 计算机工程与应用, 2006, 42(24): 16–19.
CHEN L, GONG J, XU X. Identification of application level protocols using characteristic[J]. Computer Engineering and Applications, 2006, 42(24): 16–19. DOI:10.3321/j.issn:1002-8331.2006.24.005 (in Chinese)
[3] LIN Y D, LU C N, LAI Y C, et al. Application classification using packet size distribution and port association[J]. Journal of Network and Computer Applications, 2009, 32(5): 1024–1030.
[4] MOORE A W, PAPAGIANNAKI K. Toward the accurate identification of network applications[C]//6th International Conference on Passive and Active Network Measurement. Boston, MA, USA: Springer, 2013: 41-54.
[5] YU J, LEE H, IM Y, et al. Real-time classification of Internet application traffic using a hierarchical multi-class SVM[J]. KSII Transactions on Internet and Information Systems, 2010, 4(5): 859–876.
[6] ZHANG J, XIANG Y, WANG Y. Network traffic classification using correlation information[J]. IEEE Transactions on Parallel and Distributed Systems, 2013, 24(1): 104–117. DOI:10.1109/TPDS.2012.98
[7] SHAFIQ M, YU X Z, LAGHARI A, et al. Network traffic classification techniques and comparative analysis using machine learning algorithms[C]//20162nd IEEE International Conference on Computer and Communications. Chengdu, 2016: 2451-2455.
[8] IBRAHIM H A H, ZUOBI O R A A, AL-NAMARI M A, et al. Internet traffic classification using machine learning approach: Datasets validation issues[C]//2016 Conference of Basic Sciences and Engineering Studies. Khartoum, Sudan, 2016: 158-166.
[9] DEVI S R, YOGESH P. A hybrid approach to counter application layer DDoS attacks[J]. International Journal on Cryptography and Information Security, 2012, 2(2): 45–52.
[10] 高赟, 周薇, 韩翼中, 等. 一种基于文法压缩的日志异常检测算法[J]. 计算机学报, 2014, 37(1): 73–86.
GAO Y, ZHOU W, HAN J Z, et al. An online log anomaly detection method based on grammar compression[J]. Chinese Journal of Computers, 2014, 37(1): 73–86. (in Chinese)
[11] WANG C Z, ZHANG H L, YE Z W. A peer to peer traffic identification method based on support vector machine and artificial bee colony algorithm[C]//2015 IEEE 8th International Conference on Intelligent Data Acquisition and Advanced Computing Systems: Technology and Applications. Warsaw, Poland, 2015: 982-986.
[12] WANG Y, CHEN C, XIANG Y. Unknown pattern extraction for statistical network protocol identification[C]//2015 IEEE 40th Conference on Local Computer Networks. Clearwater Beach, USA, 2015: 506-509.
[13] CHEN T, LIAO X. An optimized solution of application layer protocol identification based on regular expressions[C]//201618th Asia-Pacific Network Operations and Management Symposium. Kanazawa, Japan, 2016: 1-4.
[14] HE H M, TIWARI A, MEHNEN J. Incremental information gain analysis of input attribute impact on RBF-kernel SVM spam detection[C]//2016 IEEE Congress on Evolutionary Computation. Vancouver, Canada, 2016: 1022-1029.