一种基于mRMR-SVM的空间信息网络数据流检测方法

2022-09-06 13:17魏德宾孔志翔
计算机应用与软件 2022年8期
关键词:空间信息数据流分类器

魏德宾 魏 宁 杨 力 孔志翔

1(大连大学信息工程学院 辽宁 大连 116622)2(大连大学通信与网络重点实验室 辽宁 大连 116622)3(南京理工大学自动化学院 江苏 南京 210094)

0 引 言

空间信息网络中的卫星节点和链路都暴露在空中,易受到环境干扰和蓄意破坏,其中卫星突然瘫痪造成流量中断异常,流量集中过大引起突发异常,以及恶意流量的攻击破坏卫星节点正常运行,都是网络受到干扰和破坏的重要表现形式。因此,建立有效的数据流检测安全机制对空间信息网络的正常运行具有十分重要的意义。

异常数据流是指流量集中过大引起突发异常以及恶意攻击节点的数据流,反之为正常数据流。文献[1]针对空间信息网络易受到异常流量的攻击行为,提出一种基于主成分分析和相似性分析的异常流量检测措施。此方法对流量模型中的特征因子采用主成分分析法进行降维,并分析降维后所形成特征因子的多维特征相关性,判断是否存在异常。但是该方法对于阈值的设定采用固定阈值检测方法,具备一定的局限性,不能满足实践的安全需要。文献[2]设计了卫星通信网络的分布式入侵检测系统。采用基于误用的异常流量检测机制,容许扩展各种异常流量检测规则,通过规则库对数据流量进行匹配检测,判别是否为异常流量。但是该系统检测的是地面站流入空间信息网络的流量,对其内部产生的异常流量还不能检测。

文献[3]提出一种运用遗传算法进行流量检测的方法,该方法同时考虑时间和空间编码信息,有助于识别复杂的行为模式,该系统能够防止大量恶意流量的破坏,但该系统的弱点在于会引起错误警报。文献[4]提出一种多级异常流量检测模型框架MSML,采用分层半监督K-均值算法找出所有的纯聚类,并应用基于集群的方法来寻找这些未知模式,细粒度分类模块可以实现对未知模式样本的细粒度分类,模型更新模块为再训练提供了一种机制,但模型参数的选择不够灵活,具有一定的经验性。

软件定义网络(Software Defined Network,SDN),其突出的特点是数据平面和控制平面既高度集中又互相分离,促进对网络资源的优化,提高网络资源的利用率[5-8]。文献[9]设计了一种MADMAS方法,该方法利用了软件定义网络特性,在应用平面和控制平面之间,使用数据探索技术来识别应用层数据特征,对网络流量分类,结合独立分量分析和主成分分析技术来减少特征空间和特征处理时间。文献[10]提出一种ARIMA-SVR的检测方法。根据软件定义网络的特性,周期性地获得网络流量,采用自回归积分滑动平均模型对流量进行预测,之后通过支持向量回归模型将预测结果进行校正。这些方法仅思考数据流特征与类别之间的相关性,疏忽了数据流特征之间的相关性,没有很好地去除冗余性,在流量识别分类方面没有较好的准确率。

针对SDN架构的空间信息网络,本文将空间信息网络数据流分为正常和异常两种状态,提出一种基于mRMR-SVM的空间网络数据流检测方法。首先在数据平面收集空间信息网络中的数据流,根据控制器下发的流表规则,采用最大相关与最小冗余(mRMR)方法,提取与每种状态相关性最大并且特征属性之间冗余最小的特征;然后采用加权欧氏距离改进采用径向基核函数的SVM训练分类器,并通过粒子群算法优化分类器的精度,以提高区分正常流量和异常流量的准确性;最后将数据流分为正常和异常两种类别,丢弃异常数据流量,转发正常数据流,保证空间信息网络的安全性。

1 基于SDN的空间信息网络架构

软件定义网络是一种新型的网络框架,它的核心思想是数控分离,完成了数据平面和控制平面的高度解耦,分布和集中控制综合网络系统。借由SDN的思想,空间信息网络的架构采用分层设计,分为应用平面、控制平面和数据平面,如图1所示。

图1 基于SDN的空间信息网络架构

基于SDN的空间信息网络中应用平面建立在空间站中或者地面上,在该层面进行编程操作。通过北向接口可对控制平面应用模块进行更新,方便对网络配置和应用业务的快速部署。

控制平面由GEO卫星组成,通过OpenFlow协议调度全网卫星,获取网络状态。该层面中控制器对数据平面的检测结果分析处理,查找异常状态流量产生原因,通过全局调度来减少异常状态流量的产生。

数据平面由LEO组成,包含数据流检测模块,负责数据流的检测和转发。当基站发出的数据到达数据平面时,使用数据流检测模块进行实时检测,识别出正常和异常状态流量,进行转发或剔除,并将识别的结果上传至控制平面。

2 基于SDN的空间信息网络数据流检测

空间信息网络中的异常流对网络进行恶意攻击会对网络的安全造成隐患,对实时到达的数据流进行检测,识别出正常和异常数据流,能够提高空间信息网络的安全性。本文基于SDN的空间信息网络数据流检测流程如图2所示。

图2 基于SDN的空间信息网络数据流检测流程

数据平面卫星节点在某一时刻对空间信息网络数据流进行统计和处理,根据控制器下发的流表规则,对数据进行流检测识别,识别出正常和异常状态的数据流并处理。识别的结果上传至控制平面,控制器分析结果对空间信息网络进行维护。数据平面的数据流检测方法通过最大相关与最小冗余准则来计算影响数据流分类的主要特征属性,采用加权欧氏距离和径向基核函数方法改进SVM训练分类器,再通过粒子群方法优化分类器的精度,从而检测出空间信息网络正常和异常状态的数据流。

2.1 最大相关与最小冗余的特征提取

数据流特征属性的重要程度将直接影响网络流量正常或异常状态的准确检测。随着提取特征维数的不断增加,会产生一些不相关和冗余的特征。特征选择是通过消除不相关和冗余的特征,获取含有最佳辨识能力的子集的过程。本文设定流包数均值、流平均字节数、流表项增速、流请求速率、源IP增速、端口增速、协议的熵等7个特征属性,根据控制器下发的表规则,采用最大相关与最小冗余(mRMR)方法提取网络流量的主要特征。

控制器下发的流表[11-12]中,包含了数据流的12项信息,其中,交换机入端口(Ingress Port)属于一层的标识;源MAC地址(Ether Source)、目的MAC地址(Ether Dst)、以太网类型(Ether Type)、VLAN标签(VLAN id)、VLAN优先级(VLAN priority)属于二层标识;源IP(IP src)、目的IP(IP dst)、IP协议字段(IP proto)、IP服务类型(IP ToS bits)属于三层标识;TCP/UDP源端口号(TCP/UDP Src Port)、TCP/UDP目的端口号(TCP/UDP Dst Port)属于四层的标识。这些匹配的字段较好地标识出“流”,提供了更为精细的粒度。流表的格式如图3所示。

Ingress PortEther SourceEther DstEther TypeVLAN idVLAN priorityIP srcIP dstIP protoIP ToS bitsTCP/UDP Src PortTCP/UDP Dst Port

对某一时刻流量统计后,通过皮尔逊相关系数(PCC)和最大信息系数(MIC)的相关性度量系数MPC来描述变量之间的关系,三种参数表示为:

(1)

式中:F和C分别表示特征属性和类别变量;I(F;C)表示F和C之间的互信息量。设C={c1,c2,…,cl},l表示类别总数,本文区分空间信息网络流量分为正常流量和异常流量,则C={c1,c2}。F={F1,F2,…,Fn}表示特征集合,Fi表示第i个特征。根据有监督的特征选择,特征Fi与类别标签C的相关度量系数可以定义为:

(2)

根据最大相关与最小冗余准则中的最大相关原则,被选择的特征Fi应该与类别C具有最大相关性,即为D(Fi,C)取最大值时的Fi,记为Fmax,表示为:

Fmax=arg maxD(Fi,C)

(3)

同样,根据mRMR中的最小冗余准则,被挑选的特征Fi之间具有最小冗余性,冗余度计算公式和最小冗余值Fmin表示为:

(4)

Fmin=arg minR(F)

(5)

利用增量搜索方法来获取由Φ(·)定义的近似最佳特征,算子Φ(D,R)用来定义优化最大相关和最小冗余信息。结合D与R,那么最佳特征Fopt挑选准则表示为:

Φ(D,R)=D(Fi,C)-R(F)

(6)

Fopt=arg maxΦ(D,R)

(7)

如果实验已经获取了k-1个特征的特征子集Fk-1,那么第k个特征Fk需要从特征集合F-Fk-1中挑选,则通过Φ(D,R),Fk的详细挑选准则表示为:

(8)

根据Fk的计算结果,训练分类器。

2.2 改进的支持向量机训练分类器

SVM[13-16]是一类按监督学习形式对数据进行二元分类的分类器,其目的是找到一个超平面把两类数据分开,适合二分类问题。支持向量机通过核函数将输入向量映射到高维空间,在高维空间找到最佳分类面并进行分类。本文采用加权欧氏距离和径向基核函数方法改进SVM,找到满足分类要求的最大分类间隔超平面,使得正常数据和异常数据正确分离。该方法适用于空间信息网络复杂的大数据环境。

向量机的问题是使用分解方法将大规模问题分解为小规模问题,迭代地解决子问题。首先为检测的数据集的每个特征属性赋予一定的权重,使用权重向量w修改标准欧几里得距离:

(9)

式中:dw(xi,xj)是两条流量xi和xj之间的加权欧几里得距离;xik是第i条流量的第k个特征属性值;w=(w1,w2,…,wn)是权重向量。权重向量是每个特征属性的重要度量。权重向量w使用计算的mRMR归一化定义:

(10)

exp(-Gamma[(xi-xj)TPPT(xi-xj)]

(11)

特征属性加权矩阵是n阶对角矩阵:

(12)

参数Gamma影响分类器分类的精度:

(13)

Gamma越小,σ越大,支持向量越多,Gamma越大,σ越小,支持向量越少。本文采用粒子群算法(Particle Swarm Optimization,PSO)[17-20]优化SVM分类器的精度。粒子群优化是参数优化的一种启发式方法,可以提高正常流量和异常流量识别的准确性。将空间信息网络流量集定义为一组m个粒子:

Z={z1,z2,…,zm}

(14)

每个粒子代表数据集的一个数据流,将其映射为空间D中的一个点,设D的维数为p。

zi=[zi1,zi2,…,zip]T∈Ai=1,2,…,m

(15)

式中:A代表搜索空间。定义优化的适应度函数为:

(16)

若干粒子组合成一个群体,群体包含当前适应度的信息。通过先前位置的最佳适应度以及随机添加的一个或多个其他粒子群的最佳适合度来确定其在搜索空间中的移动。粒子将在搜索空间A中迭代地移动,移动和移动位置的机制使用速度其表示:

vi=[vi1,vi2,…,vip]Ti=1,2,…,m

(17)

在PSO中有一个Q参数,它是一个存储集,存储最佳位置被标记为本地最佳(Qbest)。

Qbest=[qi01,qi02,…,qi0p]T∈A

(18)

从每一个群体中获得全局最佳值,其表明所有群体的最佳粒子值。

Gbesti=Qbesti∈A

(19)

为了获得Gbesti值,则必须在每次迭代时更新粒子的位置,更新位置和速度变换公式为:

(20)

式中:k1、k2是加速度常数,用来调节学习最大步长;θ1,θ2∈[0,1]为随机数,以增加搜索随机性。

(21)

根据上述公式和适应度函数来优化SVM,提高区分正常流量和异常流量的准确度。由于迭代次数的增多会增加分类器的复杂性,所以本文使用的迭代次数是10次。通过适应度函数f可以评估种群数据是否正常。适应度值越小,正常流量和异常流量的分类程度越好;反之,则分类程度越差。

2.3 复杂度分析

本文算法的时间复杂度主要由粒子移动组成。假设粒子数为r,迭代次数为k,适应度计算的时间复杂度O(N),因此,本文算法的时间复杂度为O(rkN)。

本文算法的空间复杂度主要指SVM训练的空间复杂度:1) 核函数的计算;2) 粒子群的移动占据空间约为O(rN)。因此,本文算法空间复杂度为O(rN)。

3 仿真验证

3.1 实验环境设定

在虚拟机VMware下安装Ubuntu系统,使用Mininet搭建一个SDN网络环境,Mininet能够简单迅速地创建用户自定义拓扑。将floodlight控制器作为GEO节点,OpenVSwich节点表示LEO作为数据平面,建立一个11颗卫星的小型星座表示基于SDN的空间信息网络的网络结构。使用KDDCup’99数据集中10%的训练子集和测试子集作为实验仿真数据,通过仿真工具Mininet和Python脚本可根据数据信息生成数据流,发送给交换机。SDN控制器通过OpenFlow协议与SDN交换机进行网络交互,基于OpenFlow协议下发流表。

卫星节点信息如表1所示。

表1 卫星节点信息表

用STK构建卫星网络如图4所示。

图4 卫星网络2D拓扑结构示意图

本文设计3颗GEO卫星,高度为35 860 km,8颗LEO卫星,LEO卫星网络参数如表2所示。

表2 LEO卫星网络参数表

3.2 特征子集参数设定

本文通过提取流表项中与数据流相关的信息,选择出对分类有效的相关特征子集,特征子集设定如下:

(1) 流包数均值(Average Number of Packets,ANPF)。

式中:PacketsNumi是一定时间间隔内第i条流中数据包的数目;FlowsNum是这个时间间隔内流的总数。通过连续随机快速地生成大量的异常流,每条流的数据包数量将减少。

(2) 流平均字节数(Average Bytes per Flow,ABF)。

式中:BitNumi是一定时间间隔内第i条流的字节总数。同ANPF,异常流的字节数不是太高就是太低,因此,ABF成为检测异常流的重要特性。

(3) 流表项增速(Rate of Flow Entries,RFE)。

式中:FlowTableNum是一定时间间隔内流表项的总数;ΔT为时间间隔,异常流会使控制器产生大量的流表信息。

(4) 流请求速率(Flow Request Rate,FRR)。

式中:FlowsNum是一定时间间隔内流的总数。异常流的生成速度会显著提高,所以异常流的请求速率会比正常流大。

(5) 源IP增速(Source IP Growing Speed,SGS)。

式中:sIPNum指一定时间间隔内源IP地址的数目。异常流可能生成大量虚假IP地址对目标卫星进行破坏,所以源IP地址的增速一定会明显提升。

(6) 端口增速(Ports Gennerating Speed,PGS)。

式中:PortsNum是一定时间间隔内不同端口的数量。正常情况下端口的变化量比较稳定,而异常流不但会伪造IP地址,还会随机生成端口号。

(7) 协议的熵(Entropy of Protocol Type,EPT)。

式中:TypeNum是一定时间间隔内不同协议的数量。异常流量越多,流量协议的随机性就越小,导致异常流量协议的熵比正常流量的熵小。

3.3 评价指标

在流量识别中评估分类器的分类能力,通常使用真正数、假正数、真负数、假负数、准确率和误判率等。对任一输出类别A,真正数TP(True Positive)是指类别为A的流被判定为类别A的流个数;假正数FP(False Positive)是指类别非A的流被误判为类别A的流个数;真负数TN(True Negative)是指类别非A被判定为非A的流个数;假负数FN(False Negative)是指类别为A误判为非A的流个数。准确率和误判率代表分类器对每种类别的检测能力,基于SDN的空间信息网络数据流检测模型性能的指标:

3.4 实验结果分析

本文的实验仿真数据包括训练子集和测试子集,数据集中共有39种异常类型,训练集中包括22种,其余17种异常类型在测试集中。图5-图7是训练子集中上述7个特征参数随时间变化情况统计图。

图5 流包数均值、源IP增速、端口增速、协议的熵变化情况统计图

图6 流平均字节数随时间变化情况统计图

图7 流表项增速和流请求速率随时间变化情况统计图

可以看出,随着时间的变化,7个特征都会出现不同程度的变化,流表项增速、流请求速率、源IP增速、端口增速的提高,流包数均值、协议的熵的降低,以及流平均字节数的大幅度提高和降低都是异常数据流的聚集区。异常数据流增多,特征参数会出现明显的变化。

上述7个特征变化情况服从正态分布,其参数如表3所示。

表3 7个特征变化情况正态分布参数

采用粒子群算法优化SVM参数Gamma,提高分类器的精度,因此,本文的Gamma值取0.9时,分类器的精度达到最佳。分类器精度随参数Gamma变化情况如图8所示。

图8 Gamma和分类器精度关系

将本文算法与文献[9]MADMAS算法和文献[10]ARIMA-SVR算法进行对比,这两种算法都是基于SDN技术,与本文算法都是在同等条件下的应用。ARIMA-SVR算法是一种轻量级算法,相比之下可以证明本文算法在空间信息网络的适用性;MADMAS算法对数据流细粒度分类,对异常数据流检测精确度较好,相比之下可证明本文算法的精确性。本文方法与MADMAS、ARIMA-SVR的对比分析如下。数据集包含正常和异常两种状态的数据,在相同的数据集下对比其检测正常和异常两种状态数据流的准确率和正常数据流被检测为异常数据流的误判率。

图9表示检测数据流正常和异常的准确率。可以看出,随着数据数量的增加,三种方法检测准确率略有下降。但本文方法整体准确率要比其他两种方法高,因为本文所采用的mRMR算法提取流量中状态相关性最大、特征属性之间冗余最小的特征,改进的SVM算法适合大数据环境下的数据流检测,优化分类器参数提高分类器的精度,提高识别正常和异常数据流的准确率。本文方法的检测的平均准确率比MADMAS提高了2.1百分点,比ARIMA-SVR提高了4.9百分点,对数据流的检测具有较高的准确率。

图9 数据流检测准确率

图10表示正常数据流检测为异常数据流的误判率。随着数据数量的增加,三种方法误判率有所上升,但本文方法要比其他两种方法误判率低,因为特征提取的mRMR算法在数据增多、流量种类变多时会影响对数据流检测的结果。通过实验对比分析,本文方法检测的平均误判率比MADMAS提高了6.1%,比ARIMA-SVR提高了11.4%。

图10 数据流检测误判率

图11是三种方法的检测时间对比。可以看出,随着数据数量的增加,三种方法的检测时间都有所增多。在开始阶段,本文方法所用的检测时间高于其他两种方法,数据平面包含数据流检测和转发功能,特征提取和优化分类器参数会有一定的时间消耗。本文方法检测时间总体介于MADMAS和ARIMA-SVR之间。

图11 数据流检测时间

4 结 语

本文提出一种基于SDN的空间信息网络的数据流检测方法。该方法根据设定的7个特征属性,采用mRMR算法提取数据流的主要特征,采用加权欧氏距离和径向基核函数改进SVM训练分类器,再通过粒子群方法优化分类器的精度,对数据流实时检测。最后对本文方法、MADMAS和ARIMA-SVR的性能进行仿真对比,本文方法的准确率更高,误判率更低。但是随着数据数量的增加,检测时间有所增加,是本文方法代价体现。在未来的研究中可以考虑降低检测算法的复杂度,减少数据平面的资源消耗和检测时间,提高空间信息网络的安全性。

猜你喜欢
空间信息数据流分类器
优先级驱动的泛化航电网络实时性能分析
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
学贯中西(6):阐述ML分类器的工作流程
数据流和波形诊断技术在发动机故障诊断中的应用
数据流安全查询技术综述
共建空间信息走廊 助力“一带一路”
基于AdaBoost算法的在线连续极限学习机集成算法
城市空间导示系统中的空间信息编码研究
利用数据流进行电控故障诊断的案例分析
基于局部窗口的端元提取光谱优化方法