一种具有计算资源自适应性的异常流量检测方法技术

技术编号:20875531 阅读:44 留言:0更新日期:2019-04-17 11:23
本发明专利技术提供一种具有计算资源自适应性的异常流量检测方法,属于计算机网络和机器学习的交叉领域。该方法包括模型训练和在线识别两部分,目的在于可以根据当前CPU资源情况,动态调节模型的参数,在满足准确率的情况下,提高识别的速度,同时可以降低内存占用率。本发明专利技术构建了一个动态获取参数方法,由此实现根据当前CPU占用率的情况,通过建立好的模型得到相应的参数,再利用该参数用深度学习模型对流量进行检测。

【技术实现步骤摘要】
一种具有计算资源自适应性的异常流量检测方法
本专利技术属于计算机网络和机器学习的交叉领域,涉及一种具有计算资源自适应性的异常流量检测方法。
技术介绍
近年来,随着互联网的不断发展,网络流量的规模呈现爆炸式的增长,同时网络应用的多样化使得网络安全问题变得复杂多样。一些恶意攻击产生的异常流量影响了网络服务的正常运行,严重者甚至可以造成大规模的网络瘫痪。网络异常流量检测一般是通过对网络流量数据进行检测和分析,尽早识别出网络中是否存在攻击和破坏行为,为网络安全管理提供决策依据。因此,网络异常流量检测已成为网络安全研究的重点。传统的流量检测方法包括基于端口的预测方法和基于有效载荷的深度检测方法。基于端口的方法很简单,因为许多众所周知的应用程序都有特定的端口号。然而并不是所有当前的应用程序都使用标准端口号,有些应用程序甚至使用其他应用程序的端口来伪装自己,避免了被该方法检测到。另一种方法是检查每个数据包的有效载荷。当有效载荷未加密时,这种技术可以是非常准确的。但是有些P2P的应用如BitTorrent使用纯文本密码、可变长度的包和一些加密手段来进行信息保护,从而无法实现检测与识别。为了避免传统方法存在的问题,人们越来越多开始研究使用机器学习的方法来实现流量检测。该类方法通常是基于训练数据集建立一个用于流量分类的模型,从而利用模型对流量进行分类来达到检测的目的。目前大多数的研究都是针对模型及算法进行改进来追求检测的准确率,而往往忽视了算法在实际应用中所要面临的计算资源有限性等问题。例如,在当前基于深度学习的流量检测模型中,所输入的数据长度往往是固定的。一些工作是截取网络流的前N个字节或前M个数据包,转换为图像作为二维卷积神经网络的输入;还有的工作是截取数据包的前N个字节直接作为一维卷积神经网络的输入。这些采用固定长度参数的方法会存在一些问题:(1)要研究的对象(对话或数据包等等)所包含的信息可能并没有那么多,就会进行大量的补零操作,导致识别应用的时间很长。(2)如果将参数修改很小,识别时间就会变短,并行计算会很快,程序调用的会更频繁导致CPU占用率变得很高。可能出现丢包以及系统崩溃的情况。综上,在当前新型应用不断涌现的互联网环境中,实现基于机器学习的网络异常流量检测,需要一种根据计算资源即CPU占用率来动态调节参数的方法作为支撑。
技术实现思路
为了克服上述不足,本专利技术提出了一种具有计算资源自适应性的异常流量检测方法,目的在于可以根据当前CPU资源情况,动态调节模型的参数,在满足准确率的情况下,提高识别的速度,同时可以降低内存占用率。本专利技术构建了一个动态获取参数方法,由此实现根据当前CPU占用率的情况,通过建立好的模型得到相应的参数,再利用该参数用深度学习模型对流量进行检测。为了达到上述目的,本专利技术所采用的技术方案如下:一种具有计算资源自适应性的异常流量检测方法,包括模型训练和在线识别;步骤一、模型训练首先,将给定数据集分成训练数据集与测试数据集;然后,利用训练数据集建立用于分类的网络模型1D-CNN,利用测试数据集测试1D-CNN,测试过程中不断修正参数,得到三类实验数据:识别时间、识别准确率和当前CPU占用率的情况;最后,将三类实验数据分别送到最小二乘法算法中得到三个回归模型:(1)识别时间与CPU空闲率:t=f1(x);(2)截取长度与识别时间:l=f2(x);(3)识别准确率与截取长度:p=f3(x);由图1可以很好理解整个模型训练的过程。当离线模型建立好之后,就进入了第二部分在线识别。本专利技术和其它的基于机器学习的流量识别方法不同在于,可以根据当前的CPU占用率的情况来实时调节参数,从而使得识别效果达到最佳状态。因此面对网络流量这个不断变化的应用场景,该方法十分适用。步骤二、在线识别(2.1)CPU占用率监控:监控并获取当前机器运转情况下CPU占用率的情况;(2.2)获取参数:(A)获取识别时间t设监控到当前CPU占用率为a,则空闲率为1-a,将当前CPU空闲率输入线性回归函数t=f1(x),得到获取识别时间t。(B)获取截取长度l将当前CPU占用率情况下允许的最短识别时间tmin输入线性回归函数l=f2(x),得到应截取的长度l;(C)获取识别准确率p将应截取的长度l输入非线性回归函数p=f3(x),得到识别准确率p。(D)判断准确率设当前保证准确率达到p’,则将步骤(C)获得的p与p’进行比较,当满足准确率要求时,则直接输出截取长度l,否则将l递增,循环执行步骤(C)中,直到满足准确率p’,再输出截取长度l。(2.3)网络流量数据的采集:对计算机网络数据流的特性和变化情况进行监测和分析,掌握整个网络的流量特性;(2.4)网络流量数据的预处理(E)通过editcap命令将应用的首个数据包分离提取出来;(F)将数据包的内容转换成用十进制表示;(G)截取前N个字节,即步骤(D)获取的截取长度l;(2.5)1D-CNN流量的识别(H)数据预处理:根据当前计算机的CPU占用率,计算出当前CPU的空闲率,再通过函数t=f1(x)计算出识别时间,然后根据时间-截断长度的关系式l=f2(x)计算出应输入的截取长度,根据截取长度对数据进行预处理,并对于网络模型中相应的截取长度参数进行修改。(I)特征提取:修改之后的数据送入1D-CNN网络中,首先经过大小为(5,32)的第一层卷积层进行卷积操作,接着进行Relu层的激活,然后BN层对于激活后的特征层进行标准化,标准化的结果送入到最大池化层进行特征压缩,用保存比率0.25的Dropout来防止过拟合;以上过程顺序执行两次,将普通的数据流量信息转变为高级的特色抽象,用于后续的分类预测。(J)全连接映射:将步骤(I)提取出来的高级的特色抽象进行线性映射,结合BN层和相应的保存比率为0.5的Dropout层来防止整体模型的过拟合;全连接层、BN层和Dropout层的顺序执行两次,两步的全连接权值大小均是200,然后经过大小为k(k代表数据集中所包含的类别)的全连接层进行输出的类别数量调整,对应全部的k个类别。(K)SoftMax类别预测与交叉熵loss监督:长度为k的向量送入SoftMax层进行归一化,在实时的在线识别过程中选取其中概率最大的结果作为最终的预测分类标签。在模型训练过程中,将k个类别对应的softmax逻辑值,与训练数据集中真实标签的one-hot编码进行交叉熵的计算,交叉熵作为1D-CNN网络模型的loss函数来监督1D-CNN网络模型的训练,1D-CNN网络模型通过自适应学习率的RMSprop算法进行优化;并最后识别出应用属于哪个类别,从而知道是否存在异常。所述步骤(2.1)中的监控方法为:通过打开任务管理器,监控当前的CPU占用率情况。所述步骤(2.3)中的采集方法为Sniffer法。本专利技术的有益效果:本专利技术是根据当前CPU资源情况动态调节参数进行的流量识别。目前的方法里面的参数都是固定不变的,不考虑当前机器的性能,这会带来很多问题如:当CPU占用率很低的情况下,截取很长的字节进行识别,这会增加内存的占用率,而且识别速度还比较慢;当CPU占用率很高的情况下,截取短的字节进行识别,程序调用的会很频繁,会出现CPU占用率过高导致系统崩溃等情况。所以本专利技术要考本文档来自技高网
...

【技术保护点】
1.一种具有计算资源自适应性的异常流量检测方法,其特征在于,包括模型训练和在线识别;步骤一、模型训练首先,将给定数据集分成训练数据集与测试数据集;然后,利用训练数据集建立用于分类的网络模型1D‑CNN,利用测试数据集测试1D‑CNN,测试过程中不断修正参数,得到三类实验数据:识别时间、识别准确率和当前CPU占用率的情况;最后,将三类实验数据分别送到最小二乘法算法中得到三个回归模型:(1)识别时间与CPU空闲率:t=f1(x);(2)截取长度与识别时间:l=f2(x);(3)识别准确率与截取长度:p=f3(x);步骤二、在线识别(2.1)CPU占用率监控:监控并获取当前机器运转情况下CPU占用率的情况;(2.2)获取参数:(A)获取识别时间t设监控到当前CPU占用率为a,则空闲率为1‑a,将当前CPU空闲率输入线性回归函数t=f1(x),得到获取识别时间t;(B)获取截取长度l将当前CPU占用率情况下允许的最短识别时间tmin输入线性回归函数l=f2(x),得到应截取的长度l;(C)获取识别准确率p将应截取的长度l输入非线性回归函数p=f3(x),得到识别准确率p;(D)判断准确率设当前保证准确率达到p’,则将步骤(C)获得的p与p’进行比较,当满足准确率要求时,则直接输出截取长度l,否则将l递增,循环执行步骤(C)中,直到满足准确率p’,再输出截取长度l;(2.3)网络流量数据的采集:对计算机网络数据流的特性和变化情况进行监测和分析,掌握整个网络的流量特性;(2.4)网络流量数据的预处理(E)通过editcap命令将应用的首个数据包分离提取出来;(F)将数据包的内容转换成用十进制表示;(G)截取前N个字节,即步骤(D)获取的截取长度l;(2.5)1D‑CNN流量的识别(H)数据预处理:根据当前计算机的CPU占用率,计算出当前CPU的空闲率,再通过函数t=f1(x)计算出识别时间,然后根据时间‑截断长度的关系式l=f2(x)计算出应输入的截取长度,根据截取长度对数据进行预处理,并对于网络模型中相应的截取长度参数进行修改;(I)特征提取:修改之后的数据送入1D‑CNN网络中,首先经过大小为(5,32)的第一层卷积层进行卷积操作,接着进行Relu层的激活,然后BN层对于激活后的特征层进行标准化,标准化的结果送入到最大池化层进行特征压缩,用保存比率0.25的Dropout来防止过拟合;以上过程顺序执行两次,将普通的数据流量信息转变为高级的特色抽象,用于后续的分类预测;(J)全连接映射:将步骤(I)提取出来的高级的特色抽象进行线性映射,结合BN层和相应的保存比率为0.5的Dropout层来防止整体模型的过拟合;全连接层、BN层和Dropout层的顺序执行两次,两步的全连接权值大小均是200,然后经过大小为k的全连接层进行输出的类别数量调整,对应全部的k个类别;(K)SoftMax类别预测与交叉熵loss监督:长度为k的向量送入SoftMax层进行归一化,在实时的在线识别过程中选取其中概率最大的结果作为最终的预测分类标签;在模型训练过程中,将k个类别对应的softmax逻辑值,与训练数据集中真实标签的one‑hot编码进行交叉熵的计算,交叉熵作为1D‑CNN网络模型的loss函数来监督1D‑CNN网络模型的训练,1D‑CNN网络模型通过自适应学习率的RMSprop算法进行优化;并最后识别出应用属于哪个类别,从而知道是否存在异常。...

【技术特征摘要】
1.一种具有计算资源自适应性的异常流量检测方法,其特征在于,包括模型训练和在线识别;步骤一、模型训练首先,将给定数据集分成训练数据集与测试数据集;然后,利用训练数据集建立用于分类的网络模型1D-CNN,利用测试数据集测试1D-CNN,测试过程中不断修正参数,得到三类实验数据:识别时间、识别准确率和当前CPU占用率的情况;最后,将三类实验数据分别送到最小二乘法算法中得到三个回归模型:(1)识别时间与CPU空闲率:t=f1(x);(2)截取长度与识别时间:l=f2(x);(3)识别准确率与截取长度:p=f3(x);步骤二、在线识别(2.1)CPU占用率监控:监控并获取当前机器运转情况下CPU占用率的情况;(2.2)获取参数:(A)获取识别时间t设监控到当前CPU占用率为a,则空闲率为1-a,将当前CPU空闲率输入线性回归函数t=f1(x),得到获取识别时间t;(B)获取截取长度l将当前CPU占用率情况下允许的最短识别时间tmin输入线性回归函数l=f2(x),得到应截取的长度l;(C)获取识别准确率p将应截取的长度l输入非线性回归函数p=f3(x),得到识别准确率p;(D)判断准确率设当前保证准确率达到p’,则将步骤(C)获得的p与p’进行比较,当满足准确率要求时,则直接输出截取长度l,否则将l递增,循环执行步骤(C)中,直到满足准确率p’,再输出截取长度l;(2.3)网络流量数据的采集:对计算机网络数据流的特性和变化情况进行监测和分析,掌握整个网络的流量特性;(2.4)网络流量数据的预处理(E)通过editcap命令将应用的首个数据包分离提取出来;(F)将数据包的内容转换成用十进制表示;(G)截取前N个字节,即步骤(D)获取的截取长度l;(2.5)1D-CNN流量的识别(H)数据预处理:根据当前计算机的CPU占用率,计算出当前CPU的空闲率,再通过函数t=f...

【专利技术属性】
技术研发人员:张琬茜齐恒李克秋王军晓
申请(专利权)人:大连理工大学
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1