基于软件定义网络的安全控制模型

2021-12-14 08:38陈翕
移动通信 2021年6期
关键词:表项攻击行为特征提取

陈翕

(中移铁通有限公司信息和产品开发中心,北京 100038)

0 引言

随着移动互联网和物联网的高速发展,网络流量的时空分布呈现高度动态化、复杂化的特征。传统网络架构越来越难满足现代客户对网络带宽、网络性能和网络服务可控可靠的需求,因此,软件定义网络(SDN,Software Defined Network)技术应运而生。SDN 通过对传统的网络结构进行解耦,实现控制与转发的分离,利用可编程的网络控制特点提升网络服务可控性和网络管理灵活性[1]。SDN 虽然提升了网络服务可控性和网络管理的灵活性,但是由于其自身开放的可编程架构和集中控制的模式,也为黑客攻击行为带来了前所未有的便利性和威胁[2],因此,SDN 的网络安全问题成了制约其快速发展的关键因素。SDN 的安全研究[3]分为两个方面:一是利用SDN架构的优势加强传统网络安全;二是研究SDN 本身的安全问题。第一个问题是基于系统产生的各种告警数据和流量数据制定某种规则,控制器结合当前数据流量的现状将指令发给边缘设备,随后让边缘设备执行阻断行为,形成以SDN 技术为核心的入侵防御系统[4-8]。第二个问题是针对SDN 架构本身也存在安全问题,SDN 特有安全威胁主要是指控制器的安全保障问题[9-10],控制器的安全保障成为SDN 网络环境下的重中之重;而非SDN 特有的安全问题包括管理脆弱性和交换机脆弱性等[11-12]。

综上所述,本文主要着眼于控制器的安全保障问题,重点解决最常见的控制器安全威胁之一——分布式拒绝服务(DDoS,Distributed Denial of Service)攻击。该类型攻击的手法是:攻击者在确定攻击目标后,向网络发送大量的无效网络流量,进而耗尽控制器的资源,最终使得网络失去控制而发生瘫痪。因此,如何快速准确检测DDoS 的攻击引起安全管理领域专家的青睐。Bawany 等人[13]提出了一种基于SDN 的主动DDoS 防御框架(ProDefense),实验证明该框架能够用于检测和缓解大规模网络中的DDoS 攻击;Mousavi 等人[14]提出一种使用SDN 中央控制器进行攻击检测的轻量级解决方案——基于目标IP 地址熵变化的检测DDoS 攻击;Li 等人[15]提出一种基于深度学习的DDoS 检测模型和防御系统,从历史网络流量序列中学习攻击模式,使用基于该模型的防御系统可以有效地清除软件定义网络中的DDoS 攻击流量;Dharma 等人[16]提出一种基于DDoS 攻击检测的持续时间和DDoS 攻击时间模式的攻击检测方法,以防止未来的攻击。

通过相关的研究成果发现,虽然学者都设计了入侵检测算法,也采用深度学习等方法来对入侵行为数据进行特征提取以此提升入侵检测的泛化性,但大多数算法采用历史数据集进行训练并不能够有效反映SDN 真实的网络环境。因此,本文设计基于卷积神经网络的入侵检测模型,利用卷积神经网络优秀的特征提取能力,设计一种可应用与入侵检测领域的卷积神经网络结构,采用支持向量机离线训练一种通用的入侵检测模型,解决SDN 集中控制面临的“单点失效”的问题。除此之外,考虑到SDN 环境下黑客利用可编程架构制造多样性的攻击行为,本文设计一种在线增量学习的小样本数据训练方法,通过分阶段对在线小样本数据进行训练,并对比在线训练模型和离线训练模型的检测性能,对两种模型的权重进行更新,采用集成学习的方法优化入侵检测模型,提升实时数据检测的准确率。

1 基于卷积神经网络的入侵检测模型设计

1.1 入侵模型设计思路

入侵模型的设计思路如图1 所示,模型由历史数据采集与处理、基于卷积神经网络的数据特征提取与分类、构建初始入侵检测模型以及基于在线增量学习的入侵检测模型自适应更新四部分组成。数据采集与处理包括两个步骤:1)基于流表项数据采集方案,采集包括原始流表持续时间、数据分组数量、优先级、源IP、目的IP 等14 项原始数据;2)通过数据预处理的方法应对不同纲量的流表数据集,采用数据标准化的方式将原始数据转化成0-1 之间的取值,并且采用数据重构的方式构造出更有利于攻击行为检测的数据。

图1 入侵模型设计思路图

基于卷积神经网络的数据特征提取,实际上是采用卷积神经网络的方式实现数据特征筛选和语义表示的过程,采用卷积神经网络的方法对大量离线数据进行训练,学习攻击行为发生过程中流表数据的状态变化特征,尽可能获取流表数据的时域变化特征。初始入侵检测模型实际上是构建攻击行为的识别器,该识别器通过识别原始数据的多维语义,检测原始数据是否存在攻击的可能性。基于在线增量学习的入侵检测模型自适应更新,主要应对多次线下训练开销过大的问题,借助初始入侵检测模型和少量在线样本学习的入侵检测模型,结合集成学习的方法实现入侵检测模型的在线更新,以数据驱动的方式实现入侵检测模型的自适应更新,具有较高的实时行和可用性。

1.2 数据采集与预处理

根据OpenFlow 的协议,将与入侵检测相关的数据流表项进行数据直接采集,具体的流表项如表1 所示:

表1 数据流表原始数据采集名称及描述

为了提升入侵检测的精度,本文将上述的原始数据进行适当预处理:1)采用标准化处理不同纲量的数据;2)结合攻击行为对流量数据的影响,通过数据重构的方式构造出更加符合入侵检测要求的数据。

假设原始数据某一个数据表示为xij。本文采用零-均值规范化(z-score 标准化)的方法进行标准化处理,rij表示经过标准化处理的流表项数据。

其中uj表示i个样本中第j个流表项的平均值;σj表示i个样本中第j个流表项的方差。

攻击行为识别的思路是对流量数据的状态变化特征进行有效的识别,因此,构建流表数据的时域变化特征将更加精准反映DDoS 攻击的意图。本文考虑到DDoS攻击行为将大量数据包从源IP 发给目标IP 的攻击方式,着重对流量数据的时域变化特征进行重构,包括:数据包平均数量、平均流比特数、源和目标IP 数量增加、流表项数量的快速增加、流表匹配成功率下降等。重构后的流表项数据如表2 所示:

表2 重构后的流表项数据

1.3 基于卷积神经网络的数据特征提取

采用尺寸不同卷积核对样本进行卷积处理,形成了一个能够表达流表项数据不同尺寸维度的综合特征——高维语义信息和低维细节信息融合的特征,进而得到深浅层不同维度的网络安全态势指标的特征。卷积神经网络的数据特征提取过程如图2 所示:

图2 卷积神经网络的数据特征提取过程图

图2 从三个不同大小的卷积核实现流表项数据不同尺寸维度特征综合特征提取过程。第一个卷积过程是:先用3×3 的卷积核进行卷积后,再采用2×2 的池化层进行池化完成第一次特征提取;然后采用3×3 的卷积核进行卷积,再采用2×2 的池化层进行池化完成第二次特征提取;最后采用3×3 的卷积核进行卷积,再采用2×2的池化层进行池化完成第三次特征提取,第一个卷积过程的结果是特征S1。第二个卷积过程和第三个卷积过程与第一个卷积过程类似,只是采用不同的卷积核和池化层对数据进行操作。通过对数据进行三个卷积处理后,得到特征S1、S2 和S3,通过将上述三个特征进行平铺后,将特征进行拼接,实现流表数据综合特征的提取,获得流表项数据综合语义特征——S4。

1.4 构建初始入侵检测模型

在获得综合语义特征后,将特征输入到支持向量机中,构建初始入侵检测模型。初始入侵检测模型的工作流程图如图3 所示:

图3 入侵检测模型工作流程图

图3 所示的入侵检测模型流程包括如下步骤:

(1)输入流表项综合语义特征,并将特征以向量的形式发送给支持向量机。

(2)采用支持向量机和系统设定的概率阈值判断当前流表项数据是否正常,如果正常,则将该行为标记为正常行为,然后进入下一步;否则,判断行为是入侵行为。

(3)判断上述行为是否完成入侵检测,如果是,则结束流程,如果不是,则进入下一个处理步骤。

1.5 基于在线增量学习的入侵检测模型自适应更新

为了避免多次线下重复训练所带来的开销过大问题,提出一种采用在线少量数据训练模型并结合集成学习实现入侵检测模型持续更新的方法。上一步骤通过大量离线数据的学习得到初始入侵检测模型,不适用于新的网络环境的入侵检测。除此之外,入侵检测受到网络部署环境的影响,因此,初始模型必须根据新的数据进行持续更新,才能保证入侵检测的精度。因此,本文通过分阶段对在线小样本数据进行训练,并对比在线训练模型和离线训练模型的检测性能,采用在线集成学习的方法对初始的入侵检测模型进行优化。流程如图4 所示。

图4 所示的在线增量学习自适应更新模型流程包括如下步骤:

图4 在线增量学习自适应更新模型的工作流程图

(1)分阶段、分周期采用深度学习对少量在线数据进行综合语义特征提取,结合支持向量机实现少量样本的在线训练,形成在线入侵检测在线学习模型。

(2)结合模型性能反馈数据,对现有的N阶段数据进行准确率统计,根据准确率的大小,采用加权平均的方法实现初始模型和N阶段在线学习模型进行权重的更新。

(3)采用归一化的方法更新每一个模型的权重,并判断更新后的权重是否满足阈值要求,如果不满足,那就说明该模型的性能很差,准确率很低,需要丢弃;否则,模型保留。

(4)采用集成学习,结合不同的权重对各模型进行集成,实现入侵检测模型的在线自适应更新。

2 实验说明与结果分析

2.1 实验环境说明

本文在windows 环境下采用Tenorflow 的深度学习框架,利用python 语言编写入侵检测算法,实现入侵检测准确率(AC)、召回率(Recall)的结果计算。相关硬件设备型号如表3 所示。

表3 硬件设备型号表

2.2 实验测试与结果说明

本文从三个方面对入侵检测模型进行测试。第一,为了验证本文设计的特征提取方法的有效性,测试不同卷积过程的特征维数对实验结果的影响;第二,入侵检测算法优化部分,采用不同阶段在线训练的模型,针对不同的阶段的改进方案进行实验对比;第三,为了验证本文所提入侵检测模型的性能,与其他文献中所提到的模型进行实验对比。

(1)输入数据维数与入侵检测模型准确率的关系

本文采集15 个周期的流表项数据,通过仿真的方式模拟随机的攻击行为,获取攻击流量数据集1 237 条,正常流量数据集3 491 条。为了实现两类样本集的平衡性,本文将攻击流量数据进行复制,得到3 711 条攻击流量数据。然后随机抽取训练数据集和测试数据集,两者比例是4:6。

分别采用1 个卷积过程、2 个卷积过程、3 个卷积过程对经过标准化处理的数据集进行特征提取,每一个卷积过程都产生一定维数的特征,将上述的特征作为输入特征,输入到支持向量机中进行训练,得到的入侵检测模型准确率如图5 所示。

从图5 可知,当输入数据维度大于23 维时,入侵检测的正确率变化不大。因此本文在对流表项数据进行不同尺寸维度综合特征提取时,尽量将选取特征控制在23 维左右,因为选取维度越多,在训练入侵检测模型时所花费的时间越多。因此,针对准确率变化不太明显的卷积过程,可以适当去掉。

图5 入侵检测准确率

(2)入侵检测算法优化

本文将不同阶段在线训练的模型进行集成,以得到优化后的入侵检测算法。本实验对比了初始模型和优化模型的准确率,从图6 和图7 可知,优化后模型收敛更快,训练次数达到360 次时,优化后的模型准确率和召回率基本达到识别的要求。这是因为,初始模型不能很好应对动态多变的网络环境,在线增量学习可在一定程度上提升收敛的速度,同时也有效提升数据的准确率和召回率。

图6 初始模型和在线优化模型的准确率对比结果图

图7 初始模型和在线优化模型的召回率对比结果图

(3)不同算法的性能结果对比

为了保证实验的科学性,本实验采用NSL-KDD 数据集下实验结果进行对比,具体对比结果如表4 所示,其中AC1、Recall1、AC2、Recall2 分别表示在训练集和测试集下的准确率、误报率、召回率,在测试集中设定15种未知攻击类型,因此测试集和训练集准确率、误报率、召回率的差异反映模型的泛化水平。测试时长是处理测试集所用时间,反映了算法的数据处理效率。对比文献[17]中未经改进的CNN 算法,本文入侵检测模型不仅降低了56% 的训练时间,并具有更高的精度,这是因为本文采用线性优化的方法减少模型训练的复杂度,从而降低了大量的训练的时间。对比文献[18]中的KNN-PSO 模型,本文模型在检测未知攻击时表现更好,具有更高的准确率和更好泛化能力,这是因为在线优化模型采用实时的数据进行模型的自适应更新,从而增加了未知攻击行为的特征,提升了模型的泛化能力。

表4 不同入侵模型的性能对比表

3 结束语

本文针对SDN 存在的安全问题,提出了当前动态变化网络环境下的入侵检测模型,设计面向SDN 的入侵检测和优化模型,采用卷积神经网络提取综合语义特征,结合支持向量机训练一种通用的入侵检测模型,解决SDN集中控制面临的“单点失效”的问题;针对攻击行为多样化的特征,设计一种分阶段的在线增量学习方法,结合多阶段在线训练模型进行算法集成,实现入侵检测模型的在线自适应更新。仿真表明,本文的模型能够较好地应对SDN 动态多变的攻击行为,并具有较强的泛化能力;采用在线增量学习的方法使得训练过程具有更快的收敛速度,更好的收敛稳定性,降低了过拟合的风险。总而言之,本文模型具有一定的实用性,能够在一定程度提升入侵检测模型的动态识别能力。

猜你喜欢
表项攻击行为特征提取
一种改进的TCAM路由表项管理算法及实现
住院精神病人暴力攻击行为原因分析及护理干预
基于人工蜂群算法的无线网络攻击行为的辨识研究
基于ARMA模型预测的交换机流表更新算法
基于Daubechies(dbN)的飞行器音频特征提取
SDN数据中心网络基于流表项转换的流表调度优化
Bagging RCSP脑电特征提取算法
基于MED和循环域解调的多故障特征提取
基于计划行为理论的高职学生攻击行为探析
Walsh变换在滚动轴承早期故障特征提取中的应用