System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于网络安全的,具体涉及为一种基于重构误差时序表示的网络流量异常检测方法。
技术介绍
1、互联网和通信领域的快速发展使得网络规模和通信数据量爆炸式增长,各种网络应用不断出现,改变了人们生活、学习和工作方式,对我国的社会发展起到积极作用。与此同时许多新式网络攻击开始出现,给网络安全带来巨大威胁。为了应对日益突出的网络安全问题,研究网络流量异常检测变得尤为重要。网络流量异常检测(network trafficanomaly detection)是指对流量数据进行分析和建模,找出与正常行为不相符的流量数据。
2、传统的网络流量异常检测通过预先配置好的规则来识别恶意流量,这些方法需要维护一个由专家定义的规则数据库。尽管该方法有效的提高了检测准确率,但对于0-day攻击和多阶段攻击不能有效识别。为了解决上述问题,机器学习方法被广泛应用在异常检测领域。由于在异常检测任务中正常样本数目远远多于异常样本,对样本进行标注需要耗费大量人力。无监督学习方法在异常检测领域受到研究人员广泛关注。用于网络流量异常检测的无监督学习方法在正常样本上进行训练,所以又称作“零阳”学习,这些方法需要获得一个用于区分正常样本与异常样本的检测判据。用于异常检测的无监督浅层学习方法可分类为:(1)基于密度的方法;(2)基于聚类的方法;(3)基于孤立的方法等。这些方法通常假设样本独立同分布,以相对简单的方式对数据进行建模,不能捕获数据间的关联,也不能很好应对现实世界中高维非线性数据。
3、当前,深度学习由于具有提取高质量表示并且拟合复杂函数
技术实现思路
1、为了解决已有网络流量异常检测工作中存在的不足,针对上述存在问题(1),本专利技术提出rmse的时序表示,将阈值选取问题转换为孤立森林算法的超参数设置问题,孤立森林算法的超参数比较固定,避免了手动设置阈值;针对上述问题(2),本专利技术使用卷积自编码器(convolutional autoencoder,cae)对正常样本进行建模。受到u-net架构启发,将编码阶段的特征图拼接到解码阶段的特征图中,从而更好的结合浅层特征与深层特征;针对上述问题(3),提出源ip地址聚合机制,对原始rmse进行划分,得到细粒度的rmse。通过设定时间窗口得到细粒度rmse的时序特征,可以充分利用单一时间点rmse的上下文信息,同时也有助于对攻击ip地址进行溯源。
2、基于上述网络结构重新设计,本专利技术采用基于重构误差的方法,即将样本的重构误差作为异常分数,提出了一种基于重构误差时序表示的网络流量异常检测方法,使其可以充分的提取到数据流的特征,并根据提取到的特征进行分类,并且针对数据样本中存在的分布不平衡现象,利用数据样本分布变化设计算法,使得模型对于少数类样本的识别精准度进一步提升。
3、为了达到上述目的,本专利技术采取以下技术方案实现:一种基于重构误差时序表示的网络流量异常检测方法,其主要通过网络流量异常检测模型来实现,网络流量异常检测模型包括有数据预处理模块、时序特征提取模块和异常检测模块三部分,网络流量异常检测方法包括以下步骤:
4、步骤1、数据预处理:在数据预处理模块中,使用tshark工具捕获网络数据包得到pcap文件,并对pcap文件进行解析得到一组元信息,使用阻尼增量统计算法对该组元信息进行特征提取得到一组统计特征,将该组统计特征使用z值归一化处理,得到100维统计特征;
5、步骤2、网络流量异常检测模型的构建与训练:模型构建,其中时序特征提取模块由卷积自编码器模块和rmse聚合模块组成,且卷积自编码器模块采用pytorch搭建,rmse聚合模块为采用python实现,异常检测模块采用scikit-learn搭建;模型训练,分别对卷积自编码器模块和异常检测模块设定cae和if的训练轮次,将步骤1得到的100维统计特征输入到卷积自编码器模块中进行训练得到100维统计特征的重构误差,将该重构误差输入到rmse聚合模块中使用源ip聚合机制得到该重构误差的细粒度划分,并在细粒度划分后的重构误差上设定时间窗口w,得到时序特征;在异常检测模块中,使用时序特征对孤立森林算法进行训练;
6、步骤3、网络流量异常检测模型的性能评价:采用精准率、召回率、f1分数的宏平均值作为模型的评价指标,若f1分数的宏平均值大于95%,执行步骤4,否则,执行步骤2继续模型训练;
7、步骤4、网络流量的检测:从真实网络环境中采集网络流量,将该网络流量输入到数据预处理模块中执行步骤1,将得到100维统计特征输入到卷积自编码器模块中得到100维统计特征的重构误差,将该重构误差输入到rmse聚合模块中使用源ip聚合机制得到该重构误差的细粒度划分,并在细粒度划分后的重构误差上设定时间窗口w,得到时序特征;在异常检测模块中,使用孤立森林算法对时序特征进行检测。
8、作为上述技术方案的进一步实施方式,在步骤1中,数据预处理的具体步骤如下:
9、步骤1.1,数据包解析:使用tshark工具捕获网络数据包,得到pcap文件,然后通过tshark工具对pcap文件进行解析,得到数据包的一组元信息,作为步骤1.2的输入;
10、步骤1.2,统计特征提取:使用阻尼增量统计算法从该组元信息中计算得到一组统计特征,作为步骤1.3的输入;
11、步骤1.3,z值归一化处理:对步骤1.2得到的统计特征进行z值归一化处理,得到100维统计特征。
12、作为上述技术方案的进一步实施方式,在步骤2中,网络流量异常检测模型的构建与训练的具体步骤如下:
13、步骤2.1,数据样本加载:使用深度学习框架pytorch 2.0,继承dataset类,重载dataset类中__getitem__方法,将100维统计特征重塑为10×10的矩阵形式,作为步骤2.2的输入;
14、步骤2.2,卷积自编码器模块构建与训练:使用深度学习框架pytorch 2.0搭建卷积自编码器模块,卷积自编码器模块采用u-net架构,将编码阶段的特征图拼接到解码阶段的特征图中,将大小为1×10×10的矩阵块输入卷积自编码器模块中,得到样本的重构误差,将样本的重构误差及其对应的源ip地址作为步骤2.3的输入;其中卷积自编码器模块训练目标θfixed的计算公式:
<本文档来自技高网...【技术保护点】
1.一种基于重构误差时序表示的网络流量异常检测方法,其主要通过网络流量异常检测模型来实现,网络流量异常检测模型包括有数据预处理模块,其特征在于:网络流量异常检测模型还包括有时序特征提取模块和异常检测模块,网络流量异常检测方法包括以下步骤:
2.根据权利要求1所述的一种基于重构误差时序表示的网络流量异常检测方法,其特征在于:在步骤1中,数据预处理的具体步骤如下:
3.根据权利要求2所述的一种基于重构误差时序表示的网络流量异常检测方法,其特征在于:在步骤2中,网络流量异常检测模型的构建与训练的具体步骤如下:
4.根据权利要求3所述的一种基于重构误差时序表示的网络流量异常检测方法,其特征在于:在步骤4中,网络流量的检测具体步骤如下:
5.根据权利要求1至4中任一项所述的一种基于重构误差时序表示的网络流量异常检测方法,其特征在于:在步骤3中,评价指标的计算方式如下:
6.根据权利要求5所述的一种基于重构误差时序表示的网络流量异常检测方法,其特征在于:在步骤1中,该组元信息包含数据包的包长度、包到达时间戳、源IP地址、目的IP地址
...【技术特征摘要】
1.一种基于重构误差时序表示的网络流量异常检测方法,其主要通过网络流量异常检测模型来实现,网络流量异常检测模型包括有数据预处理模块,其特征在于:网络流量异常检测模型还包括有时序特征提取模块和异常检测模块,网络流量异常检测方法包括以下步骤:
2.根据权利要求1所述的一种基于重构误差时序表示的网络流量异常检测方法,其特征在于:在步骤1中,数据预处理的具体步骤如下:
3.根据权利要求2所述的一种基于重构误差时序表示的网络流量异常检测方法,其特征在于:在步骤2中,网络流量异常检测模型的构建与训练的具体步...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。