APP下载

基于卷积神经网络的网络异常检测方法研究

2021-01-14英锋

现代信息科技 2021年12期
关键词:网络流量卷积神经网络

摘  要:随着高校信息化建设从数字校园到智慧校园的过渡,高校逐步实现数据服务和应用的全覆盖,同时网络安全问题日渐突出。文章分析了校园网普遍存在的安全威胁,根据网络威胁在网络流量中的异常表现,对卷积神经网络架构、训练过程进行了研究,建立了基于卷积神经网络的网络流量异常检测模型,并对模型建立后的数据准备、分类识别方法进行了探讨,实现了网络流量的分类。

关键词:卷积神经网络;网络流量;异常检测

中图分类号:TP309.2  文献标识码:A    文章编号:2096-4706(2021)12-0094-04

Abstract: With the transition of informatization construction from digital campus to wisdom campus, colleges gradually realize the full coverage of data services and applications. At the same time, the problem of network security is becoming more and more prominent. This paper analyzes the common security threats in campus network, studies the architecture and training process of convolutional neural network according to the abnormal performance of network threats in network traffic, establishes the network traffic anomaly detection model based on convolutional neural network, discusses the data preparation, classification identification methods after the model is established, and realizes the classification of network traffic.

Keywords: convolutional neural network; network traffic; anomaly detection

0  引  言

“十四五”时期,高等院校信息化建设逐渐从数字化时代向智慧校园时代过渡,数据服务和数据应用范围扩展到学校工作的各个方面,深入师生的工作、生活。校园网对人们的工作生活影响越深,网络安全的重要性就越突出。

2021年4月1日至4月30日30天周期內学校网络中心共报告网络威胁事件2 935件,其中高危事件513件,约占所有威胁的四分之一。网络威胁频繁出现给网络安全带来严重影响,存在信息泄漏、丢失的危险,降低用户体验。无论正常网络行为还是网络威胁行为都要在网络中产生流量,如果流量使用的是被允许使用的端口并且不具备已知威胁相应特征,网络就认为该流量没有对网络产生威胁。恶意程序就是利用这个特点在网络中进行非法信息的传播。我们对网络中存在的所有流量不再认为都是合法的,而是进行分析、查明,证明是合法还是非法。

流量分类技术可以在复杂的网络环境中对采集到的网络流量进行处理、分类识别,对恶意流量进行拦截,帮助用户提高网络应用质量,保障网络安全。

目前常见流量分类方法有很多,不同分类方法有各自的优点和缺点。基于端口号的分类方法识别是最容易实现的方法,但识别准确率较低、范围有限。准确率高的是特征字段分析,但其对加密流量的识别则无能为力,且计算复杂,容易侵犯隐私。基于传输层行为的分类方法可以应用于速度较高的网络环境,但数据包加密和NAT等技术影响其分类性能[1]。因此利用机器学习的方法对网络流量进行异常检测的应用日渐广泛,但是机器学习方法对网络环境的适应性较差[2]。

深度学习在语音图像识别领域中表现出优秀的技能,利用深度学习技术,可以解决机器学习中特征数据提取的难点,在学习过程中特征数据由模型自动生成。

1  卷积神经网络

1.1  卷积神经网络架构

卷积神经网络(CNN),是深度学习最重要、最有代表性的一种训练算法,比较适合应用在图像语音识别领域,GoogleNet、AlphaGo、ResNet等代表性的应用突破都采用这种学习模型。卷积神经网络连接图如图1所示。

分析图1,输入层的宽度和输入图像的宽度相对应,即每一行像素点个数;而高度则应于图像的高度,即每一列的像素点个数;深度为表示图像的通道数,彩色图为3,灰度图为1。卷积层1包含3套参数,即有3个过滤器。每个过滤器对输入图像进行卷积运算得到一个特征图,3个过滤器就可以得到3个特征图,这样卷积层1对图像从左上角开始进行卷积运算,提取3组不同特征,得到3个特征图。每个卷积层含有的过滤器的个数是一个超参数,由用户根据需要自由设定。

继续分析图1,池化层1对卷积层的输出进行采样,输出3个特征图,这3个特征图比卷积层的输出更小。同卷积层1的卷积运算类似,卷积层2通过提取5组不同特征,得到5个特征图。池化层2按池化层1的方法继续采样,输出5个特征图[3],这5个特征图比前面输出进一步缩小。

池化层2后面是两个全连接层,因为通过两次卷积和池化,特征图同输入图像相比已经非常小,可以采用全连接。全连接层1的每个神经元同池化层2输出特征每个神经元相连,输出层即全连接层2的每个神经元则与全连接层1的每个神经元相连后得到输出。

1.2  卷积神经网络训练过程

卷积神经网络模型建立后分两个步骤进行模型训练。第一步称为前向传播,输入数据从网络低层向高层传播。某层节点的输出是通过与前层连接权重加权计算后,同偏置值进行运算,最后通过激活函数运算得到,每一层重复此运算。如果第一步结果不符合模型预算结果,则进行第二步反向传播,将上述过程反向进行,从高层向低层进行训练,消除误差。

训练过程为:

(1)网络进行权值初始化。

(2)输入数据从低层向高层进行前向传播得到结果。

(3)将运算结果与预期结果进行比较计算误差。

(4)如果运算结果与预期结果相差超出模型允许范围时,再把误差向上一层传递,按顺序求得全连接层、下采样层、卷积层的误差。当运算结果与预期结果相差在模型允许范围时,结束训练。

(5)根据求得误差进行权值更新。然后再进入到第二步。

2  模型设计

2.1  人类视觉原理的启示

通过对人类的视觉原理研究,得知:人类对光的感知过程首先从视网膜感知亮度、颜色开始,视网膜感知结果传递到大脑皮层,大脑皮层对感知结果进行简单处理发现物体的边缘和位置,抽象出物体的形状,判断该物体具体是什么物体。

人类视觉也是通过这样逐层分级、逐步抽象,分辨出人脸、汽车、动物、家具的不同。各种图形的底层特征基本相同,通过依次向上层层抽象,逐渐提取出不同物体的不同特征,人类根据不同的特征组合可以精确地分辨出不同的物体。

2.2  异常检测模型的建立

受人类视觉原理的启发,我们可以通过构造多层的神经网络,模仿人类视觉实现原理,实现图像的分类识别。神经网络的低层对图像初级特征进行识别,多个低层识别的底层特征组成下一层特征,这样层层抽象、层层组合,最后实现分类[4]。

根据人类视觉原理,采用经典LeNet-5结构,采取多层组合构造CNN学习模型,模型架构示意图如图2所示。

该模型构造一个分辨率为28×28×1的单通道图像,截取载荷的前784个字节,不足784的补0。卷积核大小核宽×核高×通道数,卷积层1的卷积核为5×5×1,每次卷积完后卷积核移动一位。

图像输入到计算机中时,首先进行归化处理,将像素灰度值转换为0或者1。计算机会将图像看作一个数组,每个图像都有三个参数:列像素点个数、行像素点个数、图像通道数。卷积核从输入图像的左上角开始遍历做卷积运算,每做一次运算,都可以在原图像上找到一个与卷积核同样大小的区域。运算时,原图像与卷积核相应位置进行乘法运算,将这些结果相加,得到新图形上对应位置的数值,然后卷积核右移一位,继续对应位置相乘,最后的输出结果。输入一个28×28×1的图像,使用5×5过滤器进行卷积,最后生成的特征图为28×28,因为有32个通道,所以最后得到32个同分辨率的特征图。

为降低训练参数的个数,在后面的卷积层之间循环引进池化层。一方面,池化缩小图像空间。每个纵深维度的池化是独自完成的,图像纵深不变,使特征图变小,简化网络计算复杂度;另一方面,池化层进行特征压缩,提取主要特征。池化虽然能降低运算量,但是由于压缩特征,有可能会影响到网络的准确度,所以要设置合适的池化层。最常见形式是最大池化,最常见的池化大小是2×2(步长2),保留其中的最大值,将其余三个数据去除。经过第一个池化生成32个特征图,分辨率为14×14。

第二个卷积层和第一个类似,因为有64个通道,所以得到的特征图是64个14×14,经过第二次池化64个7×7特征图。通过全连接层数据变成1 024和10。

3  数据准备

3.1  数据流量与图像

网络物理层中数据传都是二进制流的串行传输,二进制流以字节为单位,每个字节8位,所以每个字节的取值有256种可能。灰度图像的像素范围也有256种可能,所以CNN模型的输入数据是将采集提到的流量数据转换成灰度图像,流量分类就变成了灰度图像识别[5]。

3.2  数据准备过程

数据准备的过程一般分以下几个阶段:采用流量抓取工具如sniffer、MRTG、PRTG、Etheral、NetDector等抓取原始流量[6],用pcap格式保存在计算机中。然后对原始文件进行切分、清理,形成图像文件,最后转换成IDX格式,作为CNN的标准输入,具体过程如图3所示。

原始流量在一个采集周期内形成一个原始文件,为了进行下一步的处理,需要将原始流量进行分割。粒度是流量分割的最小单位[7]。分割的依据不同,分割得到的数据集形式也不相同,研究人员根据自己实际情况选择分割方法。该模型是按流量对文件进行切割,获得独立的五元组信息、建立时间、负荷、所用协议,最后形成数据集。

数据传输需要依靠MAC来识别对方地址。发送数据的时候,数据发送端计算机首先拿接收端的计算机IP与自己主机子网掩码相匹配,匹配后,发现跟自己是同一网段的,则使用MAC地址去寻找对方,如果不是同一网段的,則封装上对方的IP地址为目标地址,发现网关,由网关发现其他网络。这两个信息会对分类特征提取产生不利因素,为消除影响需要进行流量清理。

图3中步骤3的作用是对是前面文件清理结果长度进行统一,大于规定长度的进行截取,小于规定长度的进行补0。为方便用户查看文件,也可以将文件变成对应的灰度图像,当然也可以跳过这个步骤,直接执行步骤4。

4  分类识别

4.1  分类识别过程

进行分类识别时,首先采用流量抓取工具抓取pcap格式化的流量数据,之后使用选用的分割方法对格式化文件切割,清理掉IP和MAC地址,统一长度转换成图像数据,作为卷积神经网络的数据源,通过多次卷积、池化处理,学习的特征作为Softmax分类器的输入,按照流类别划分应用类别。分类识别过程如图4所示。

4.2  模型验证

模型验证采用深度学习框架TensorFlow,数据集采用KDD Cup 99數据集。TensorFlow最初用于机器学习和深度神经网络的研究,在数值计算领域也被普通使用,TensorFlow是一个开源软件,因此使用TensorFlow™编程对研究结果进行验证。KDD Cup 99数据集包含训练数据、验证数据和测试数据,是入侵检测常用数据集,所有数据来自虚拟的美国空军网络,增加了众多的模拟攻击数据。

卷积层1的权重初始值和偏置量分别设置为0.1和32,卷积层2的权重初始值和偏置量分别设置为0.1和64,全连接层初始设有1 024个神经元,该层的神经元数需要根据经验和实验结果进行反复调参确定。在运行过程中通过对参数进行调整得到了不同的准确率,如图5所示。

4.3  结果分析

经过多次参数调整,准确率均未超过0.7,低于相关研究的准确率。经过分析,对模型架构进行调整,在全连接层1前再增加一个卷积层和展平层,可以改变训练数据的不平衡问题,提高训练的准确率。

5  结  论

综上所述,神经网络是人工智能非常重要且比较成熟的领域,在网络威胁事件频发的情况下,提出基于卷积神经网络的网络流量分类模型,根据网络流量分类原理实现网络流量的分类,经模拟数据集验证可以实现预设功能,对模型需要进一步改进以提高检测效率和准确率。

参考文献:

[1] 杨丹丹.基于深度学习的网络流量分类研究 [D].杭州:浙江工商大学,2018:10-14.

[2] 赵英,刁鑫颖,陈骏君.基于网络流量分类模型的集成策略研究 [C]//中国计算机用户协会网络应用分会2018年第二十二届网络新技术与应用年会.中国计算机用户协会网络应用分会2018年第二十二届网络新技术与应用年会论文集.苏州,2018:269-272.

[3] 张闪青.基于卷积神经网络的图像分类算法简 [J].计算机产品与流通,2019(6):112.

[4] 陈章斌.基于深度学习人脸识别技术在高校课堂点名中的设计及实现 [J].兰州文理学院学报(自然科学版),2018,32(6):68-71+77.

[5] 刘金来.深度学习模型在网络流量分类中的应用研究 [D].哈尔滨:哈尔滨理工大学,2018:17-22.

[6] 李振国,郑惠中.网络流量采集方法研究综述 [J].吉林大学学报(信息科学版),2014,32(1):70-75.

[7] 王鹏,兰巨龙,陈庶樵.粒度自适应的多径流量分割算法 [J].通信学报,2015,36(1):215-221.

作者简介:英锋(1970—),男,汉族,江苏连云港人,教授,本科,研究方向:计算机技术应用。

猜你喜欢

网络流量卷积神经网络
基于卷积神经网络温室智能大棚监控系统的研究
一种用于敏感图像快速加密的图像注入技术仿真
基于深度卷积神经网络的物体识别算法
基于小波神经网络的网络流量预测研究
对软件定义网络环境下安全流平台的探究
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
基于卷积神经网络的树叶识别的算法的研究
移动运营商流量经营体系建设的相关思考
基于时间序列分析的网络流量预测模型研究