基于经验特征与卷积神经网络的数据流异常检测系统的制作方法

文档序号:16755474发布日期:2019-01-29 17:19阅读:241来源:国知局
基于经验特征与卷积神经网络的数据流异常检测系统的制作方法

本发明涉及一种信息安全技术,具体来说是一种基于经验特征与卷积神经网络的数据流异常检测系统。



背景技术:

随着互联网的飞速发展与广泛应用,网络攻击行为、网络故障等事件日趋频繁,网络空间域的信息安全对个人生活、经济社会稳定、甚至国家安全的重要性与日俱增。在网络空间中,攻击行为绝大多数以网络数据流为载体,例如dos等拒绝服务攻击、木马、蠕虫病毒等;而异常事件例如1.21dns解析故障事件,网络的故障也会第一时间反映在网络数据流的状态上。因此以观察网络数据流的模式进行异常检测为核心的数据流异常检测技术已成为信息安全领域的重要技术。

近年来随着大数据技术的发展,大规模数据能够进行有效的采集、存储;随着人工智能与机器学习技术的发展,海量数据能够有效进行分析处理获得模型。因此,基于机器学习的数据流异常检测技术日益完善。基于机器学习的方法核心部分在于:特征的选取和分类器的训练。

对于特征选取,由于网络数据流具有高维性,目前已有的方法主要有以下两种:一是利用网络数据流各个数据包的统计特征和以及各个数据包包头中特定字段信息,此种方法避免分析各个数据包的载荷和其他包头字段信息,因此较为直接快速。但由于网络攻击行为中,黑客往往会对其攻击进行隐藏,例如利用载荷放置攻击代码或将攻击代码隐藏在不常用的字段中,因此对非配合主动攻击行为往往漏检率较高。二是对数据流的所有信息进行分析,但由于数据流的高维性造成的维度灾难会造成机器学习方法准确率的下降,只能采取匹配的方式,全局数据处理也会造成消耗计算资源多,时间效率低的问题,不符合数据流异常检测的实时性要求。

对于分类器的选择,传统的决策树、支持向量机和贝叶斯分类都被提出用于数据流异常检测领域。由于网络数据流具有动态性,易发生数据漂移,此种情况下原有模型不符合新的数据分布,传统的方法往往需要重新训练新的模型,因此难以满足数据流异常检测的实时性要求。

海量的网络数据不断涌入,因此数据流检测对实时性的要求较高,而现有的对网络数据流的全部信息进行检查的算法都需要较大计算量和处理时间,难以大规模部署。



技术实现要素:

1、发明目的。

本发明提出一种基于深度学习的同时利用传统人工经验特征与深度全局特征的网络数据流异常检测系统,能够准确检测异常网络数据流。

2、本发明所采用的技术方案。

本发明提出了一种基于经验特征与卷积神经网络的数据流异常检测系统,包括:

经验特征提取模块,用于识别数据包异常识别作用较大的统计特征和包头特征共同作为基于人工经验的特征,并训练基于人工经验特征的svm分类器;

为有效发现网络攻击数据流中被攻击者故意隐藏在大量载荷和非常见包头字段中的攻击指令。比特流转化图片模块,用于将数据流从01比特的形式转化为二维灰度图片的形式,再通过卷积神经网络对其进行感知,提取全局的高层感知特征;

融合拼接模块,用于融合拼接经验特征提取模块和比特流转化图片模块的基于深度学习的全局特征作为数据流特征,利用神经网络的全连接层进行异常数据流识别;

为提高算法效率,降低计算代价,提高系统的可部署性。蒸馏模型模块,用于设计简单浅层的网络近似复杂深层网络的检测效果,在实际部署时替代复杂网络。

在实际部署阶段,一旦检测到发生了概念漂移,则利用最近数据流对深度网络进行模型微调,更新检测模型。概念漂移微调模块,用于实际检测到发生了概念漂移,则利用最近数据流对深度网络进行模型微调,更新检测模型,并将新的模型放入模型库备用。

更新经验数据库模块,用于随机采样样本,分别采用人工经验特征检测模型和融合特征检测模型对其进行异常检测,若结果不同,则对其进行人工分析,将新的网络攻击手段或是隐藏攻击指令的方式,加入人工经验数据库。

更进一步具体实施例中,所述的比特流转化图片模块包括:

比特流转化数字序列模块,用于将01比特流按照八个比特一组进行划分,将一个字节转化为一个0-255之间的整数,此时数据流由01比特序列变为数字序列;

数字序列转化图像模块,用于将数字序列中的每个数字视为像素值,对数字序列进行重新排列,使之成为二维图像的形式,从而转化为二维灰度图。

更进一步具体实施例中,比特流转化图片模块,对数据流转化为的灰度图像进行感知的网络采用imagenet预训练的resnet-101网络。

更进一步具体实施例中,融合拼接模块:将人工经验特征和拼接加入已经训练好的比特流转化图片模块中卷积神经网络的倒数第二个全连接层中,之后对模型进行再训练,即可以得到端对端的异常数据流检测网络,网络的输入分别是数据流中提取的人工经验和数据流转化得到的二维灰度图,网络输出为检测结果。

为满足实时性需求,更进一步具体实施例中,在蒸馏模型模块中,采用的简单网络采用lenet结构,含有两个卷积层、两个下采样层和两个全连接层。

为降低计算开销和时间复杂度都较低,更进一步具体实施例中,在概念漂移微调模块中,模型微调只需要少量训练样本,迭代训练少量轮数。

本发明提出了一种基于经验特征与卷积神经网络的数据流异常检测方法,

步骤一:对网络数据流进行数据预处理,将原始海量报文划分为数据流;

步骤二:经验特征提取步骤,对数据流提取人工经验特征,

(1)查询数据流统计信息数据库,得到数据流层面对检测异常数据流有效的统计量,包括四层协议端口号、流的包数目、包大小、包之间的时间间隔,对此种特征进行提取;

(2)查询包头信息数据库,得到数据包层面对检测异常数据流有效的敏感包头字,对此种特征进行提取;

(3)拼接(1)和(2)中特征得到人工经验特征;

步骤三:比特流转化图片模块、对数据流训练提取全局特征的卷积神经网络,

(1)将01比特的数据流转化为二维灰度图像,首先,将01比特流按照八个比特一组进行划分,将一个字节转化为一个0-255之间的整数,此时数据流由01比特序列变为数字序列;其次,将数字序列中的每个数字视为像素值,对数字序列进行重新排列,使之成为二维图像的形式,从而转化为二维灰度图像;

(2)将二维灰度图像作为卷积神经网络的输入,网络结构采用图像分类领域通用的在imagenet数据集上预训练过的resnet网络,网络的输出层换位两个神经元,输出是否为异常数据流的结果,训练此网络直至收敛;

步骤四:融合拼接模块、训练综合人工经验特征与全局特征的数据流异常检测网络,具体为,

(1)网络的输入:在步骤三针对灰度图像进行异常检测的卷积神经网络训练完成后,将人工经验特征作为网络另一个输入,与第一个全连接层的输出进行拼接后,输入到第二个全连接层;

(2)网络结构,采用imagenet数据集上预训练过的resnet-101网络;

(3)网络输出,由于需要用蒸馏模型的方式对复杂深层网络进行压缩,因此resnet-101网络采用软目标输出,其公式如下:

其中,表示样本第i类的概率,为网络输出,i和j为都为全连接层网络输出的索引,zi和zj表示上一层全连接层的输出,t表示设定的软化参数,此时设定t=30;

(4)网络损失,此网络的损失设定为网络的软目标输出yf与样本所应属类别的表示向量yh((0,1)或(1,0))之间的交叉熵损失;

步骤五:利用通过蒸馏模型的方式对深度的综合人工经验特征与全局特征深度网络进行压缩,得到浅层的近似网络,

(1)设定简单网络的输入:网络输入数据形式与原网络相同,第一部分为二维灰度图像,第二部分为人工经验特征;

(2)设定简单网络的网络结构:设计一个类似lenet结构的浅层网络,其具有两个卷积层、两个下采样层和两个全连接层;

(3)设定简单网络输出:网络输出为软目标yf′

其中t′=10;

(4)设定简单网络的损失:损失函数为l=αl1+βl2,其中第一项l1表示yf′与yf的交叉熵,第二项l2表示yf′与yh的交叉熵,参数设定为α=0.9,β=0.1;

(5)简单网络的部署:简单网络在实际使用部署时设定t′=1,网络输出为yf′,为样本属于异常网络数据流、正常网络数据流对应的概率;

步骤六:实际部署,对当前网络中的概念漂移更新模型、新的攻击方式和隐藏攻击行为进行人工经验数据库扩充。

更进一步具体实施例中,所述的步骤一根据原始报文首部信息:包括协议、源地址、目的地址、源端口号、目的端口号,将具有相同信息并在一定时间段内的原始报文聚合流数据。

更进一步具体实施例中,所述的步骤六实际部署包括:

(1)部署中的模型微调策略

一旦检测到发生了概念漂移,则利用最近数据流对深度网络进行模型微调,具体方式为,固定前两个卷积层的参数不变,通过训练调整全连接层的参数,并且调低网络的学习率;得到收敛后的模型后,更新检测模型,并将新的模型放入模型库备用;

(2)部署中辅助分析人员发现新的攻击方式或隐藏攻击行为的方法

随着网络日趋庞大复杂,网络空间的形态瞬息万变,已有的经验往往难以发现新的异常状态,更难以发现海量正常数据流中隐藏的更深、手段更新颖的攻击行为。采用人工分析的方式分析海量数据是低效不现实的;

本方法在实际部署中,可以才用定时下采用的机制,采样判断为异常的数据流,对其分别采用人工经验特征训练得到的svm检测器和基于融合特征的深度学习检测器进行异常检测,若结果一致,则此数据流的异常状态已经被经验数据库包含,若结果不一致,则人工分析此数据流,分析其攻击或异常手段、隐藏方式,并添加入人工经验数据库,以便对人工经验数据路进行动态扩充。

3、本发明所产生的技术效果。

(1)针对已有方法忽略数据包载荷和不常见的包头字段,从而难以检测到非配合数据流例如刻意隐藏的网络攻击数据流的问题,本方法在人工经验研究得到的重点特征的基础上,感知数据流的所有信息,抽取全局语义特征,能有效提高对异常数据的检测效果;

(2)针对网络数据流具有高维性,感知全局信息所需计算开销往往较大的问题,本方法提出将01比特形式的网络数据流转化为二维灰度图像,并利用卷积网络进行感知,避免逐个字节分析,有效提高了处理效率,符合数据流检测的实时性需求;

(3)相比其他已有方法,在发生概念漂移时,本方法只需要对已有模型进行微调,而不需要重新训练模型,更能满足数据流异常检测的实时性要求;

(4)相比其他对数据流所有内容进行检测的算法,本方法由于将高维数据流转为图像,并且对卷积神经网络进行了蒸馏压缩,降低了计算复杂度,提高了时间效率,因此更易用于实际部署。

(5)相比其他已有方法,本方法采用概念漂移微调模块在实际系统部署中,能够通过比对仅采用人工经验特征的检测结果与采用融合特征的检测结果,对结果不同的数据流进一步人工分析,能够辅助数据流分析人员高效发现新的攻击手段或隐藏网络攻击的位置,从而不断扩充人工经验库,提升检测效果,一定程度上解决了现有方法单纯采用人工标注数据集工作量巨大的问题。

附图说明

图1原始报文划分为数据流示意图。

图2数据流抽取人工经验特征示意图。

图3基于人工经验特征和全局数据流的卷积神经网络示意图。

图4利用模型蒸馏对深度异常数据流检测网络进行压缩示意图。

图5整体框架训练阶段流程图。

图6整体框架实际部署阶段流程图。

具体实施方式

下面结合附图对本发明作进一步详细说明。

实施例

步骤一:对网络数据流进行数据预处理,将原始海量报文划分为数据流,详见图1。

根据原始报文首部的五元组信息(协议、源地址、目的地址、源端口号、目的端口号),将具有相同五元组信息并在一定时间段内的原始报文聚合流数据。步骤二:经验特征提取模块、对数据流提取人工经验特征,详见图2。

(1)查询数据流统计信息数据库,得到数据流层面对检测异常数据流有效的统计量,如四层协议端口号、流的包数目、包大小、包之间的时间间隔等,对此种特征进行提取。

(2)查询包头信息数据库,得到数据包层面对检测异常数据流有效的敏感包头字,对此种特征进行提取。

(3)拼接(1)和(2)中特征得到人工经验特征。

步骤三:比特流转化图片模块、对数据流训练提取全局特征的卷积神经网络。

(1)将01比特的数据流转化为二维灰度图像,详见图3上半部分。具体处理方式为:首先,将01比特流按照八个比特一组进行划分,将一个字节转化为一个0-255之间的整数,此时数据流由01比特序列变为数字序列;其次,将数字序列中的每个数字视为像素值,对数字序列进行重新排列,使之成为二维图像的形式,从而转化为二维灰度图像。

(2)将二维灰度图像作为卷积神经网络的输入,网络结构采用图像分类领域通用的在imagenet数据集上预训练过的resnet网络,网络的输出层换位两个神经元,输出是否为异常数据流的结果。训练此网络直至收敛。

步骤四:融合拼接模块、训练综合人工经验特征与全局特征的数据流异常检测网络,网络结构示意图详见图3下部。

(1)网络的输入:在步骤三针对灰度图像进行异常检测的卷积神经网络训练完成后,将人工经验特征作为网络另一个输入,与第一个全连接层的输出进行拼接后,输入到第二个全连接层;

(2)网络结构,采用imagenet数据集上预训练过的resnet-101网络;

(3)网络输出,由于需要用蒸馏模型的方式对复杂深层网络进行压缩,因此resnet-101网络采用软目标输出,其公式如下:

其中,表示样本第i类的概率,为网络输出,zi和zj表示上一层全连接层的输出,t表示设定的软化参数,此时设定t=30;

(4)网络损失,此网络的损失设定为网络的软目标输出yf与样本所应属类别的表示向量yh((0,1)或(1,0))之间的交叉熵损失;

步骤五:利用通过蒸馏模型的方式对深度的综合人工经验特征与全局特征深度网络进行压缩,得到浅层的近似网络,详见图4。

(1)设定简单网络的输入:网络输入数据形式与原网络相同,第一部分为二维灰度图像,第二部分为人工经验特征;

(2)设定简单网络的网络结构:设计一个类似lenet结构的浅层网络,其具有两个卷积层、两个下采样层和两个全连接层,如图4右部;

(3)设定简单网络输出:网络输出为软目标yf′

其中t′=10;

(4)设定简单网络的损失:损失函数为l=αl1+βl2,其中第一项l1表示yf′与yf的交叉熵,第二项l2表示yf′与yh的交叉熵,参数设定为α=0.9,β=0.1

(5)简单网络的部署:简单网络在实际使用部署时设定t′=1,网络输出为yf′,为样本属于异常网络数据流、正常网络数据流对应的概率。

步骤六:实际部署

(1)部署中的模型微调策略

一旦检测到发生了概念漂移,则利用最近数据流对深度网络进行模型微调,具体方式为,固定前两个卷积层的参数不变,通过训练调整全连接层的参数,并且调低网络的学习率。得到收敛后的模型后,更新检测模型,并将新的模型放入模型库备用。

(2)部署中辅助分析人员发现新的攻击方式或隐藏攻击行为的方法

随着网络日趋庞大复杂,网络空间的形态瞬息万变,已有的经验往往难以发现新的异常状态,更难以发现海量正常数据流中隐藏的更深、手段更新颖的攻击行为。采用人工分析的方式分析海量数据是低效不现实的。

本方法在实际部署中,可以才用定时下采用的机制,采样判断为异常的数据流,对其分别采用人工经验特征训练得到的svm检测器和基于融合特征的深度学习检测器进行异常检测,若结果一致,则此数据流的异常状态已经被经验数据库包含,若结果不一致,则人工分析此数据流,分析其攻击或异常手段、隐藏方式,并添加入人工经验数据库,以便对人工经验数据路进行动态扩充。

工作模式

下面根据系统的工作模式来阐述此系统的工作流程。

一、训练模式

训练模式的整体流程如图5所示

(1)数据准备

1.1将原始海量报文划分为数据流。根据原始报文首部的五元组信息(协议、源地址、目的地址、源端口号、目的端口号),将具有相同五元组信息并在一定时间段内的原始报文聚合流数据;

1.2按照7:1:2的比例划分训练集、验证集和测试集;

1.3将各个数据流通过先量化在重新排列的方式转化为二维灰度图片;

(2)通过查询人工经验数据库(包括统计信息数据库和敏感字段数据库),分别抽取数据流的统计特征和各个包头的字段特征,拼接作为人工经验特征;

(3)将二维灰度图片作为输入,异常或是正常的结果作为网络训练标签,训练经过imagenet预训练的resnet-101网络,得到对二维数据流图片进行异常检测的深度网络nd;

(4)在对二维数据流图片进行异常检测的深度网络nd基础上,将人工经验特征作为网络的输入,与网络的pool5层输出拼接,共同输入网络的第一个全连接层。固定resnet-101网络的卷积层参数,降低网络的学习率,学习两个全连接层参数。网络收敛后得到对人工经验特征和二维数据流图片进行异常检测的深度网络nd′;

(5)在nd′的基础上采用模型蒸馏的方式,利用二维数据流图片和人工经验特征作为网络输入,训练lenet结构的浅层数据流异常检测模型ns。

二、部署模式

部署模式的整体流程如图6所示。

(1)将原始海量报文划分为数据流。根据原始报文首部的五元组信息(协议、源地址、目的地址、源端口号、目的端口号),将具有相同五元组信息并在一定时间段内的原始报文聚合流数据;

(2)将各个数据流通过先量化在重新排列的方式转化为二维灰度图片;

(3)通过查询人工经验数据库(包括统计信息数据库和敏感字段数据库),分别抽取数据流的统计特征和各个包头的字段特征,拼接作为人工经验特征;

(4)将二维灰度图片和人工经验特征输入到浅层的数据流异常检测模型ns中;

(5)若不发生概念漂移则输出检测结果;

(6)若发生概念漂移,则对模型ns进行微调,固定两个卷积层参数,调低学习率,学习两个全连接层参数,模型收敛后得到模型ns′,以此作为部署模型,并将ns′放入模型库中备用;

(7)对异常数据进行采样,得到异常数据流集合s={s1……sn},其中i代表异常数据流的索引,si为每个异常数据流,进行基于人工经验特征的svm分类,对集合s中svm模型判断为正常的数据流sj,采用人工分析的方式,分析其异常原因、攻击手段、攻击隐藏方式,用分析结果更新人工经验数据库。

验证

1、数据集收集

数据收集过程中,在局域网内,通过服务器与各客户机之间进行数据传输,模拟互联网上的数据传输,并对网络攻击进行仿真。对流经服务器的数据流进行采集,平均每半小时收集30mbps的网络流量,通过预处理、网络数据流划分形成20000条网络数据流,平均每个数据流含有17个数据包。由于是在局域网内仿真收集,因此可以确定地直接判断数据流是否异常。

2、评价指标

在数据流异常检测中,由于异常数据流只占所有数据流中的很少一部分,但对异常数据流的检测却是系统的核心作用,因此不能仅仅采用通用分类中采用的准确率指标,因此,采用准确率、漏检率和误警率。

首先,对构成这些指标的4个基本术语进行解释:真阳性(truepositive,tp)、真阴性(truenegative,tn)、假阳性(falsepositive,fp)和假阴性(falsenegative,fn),p为正类样本,n为负类样本。真阳性是指被分类器正确分类的正类样本数量,真阴性是指被分类器正确分类的负类样本数量,假阳性是指被分类器错分为正类的负类样本数量,假阴性是指被分类器错分为负类的正类样本数量,准确率指分类器分类正确的样本占所有样本的比例,公式如下:

漏检率为分类器判断为正常的异常样本占所有异常样本中的比例,公式如下:

误警率为分类器判断为异常的正常样本占所有正常样本的比例,公式如下:

3、对比方法

为验证本网络数据流异常检测方法具有更高的准确性和更好的可部署性,采用如下的三种其他方法与其作对比:

(1)基于人工经验特征的svm分类器

(2)分析数据包所有载荷信息的基于dpi流量分类技术

(3)不进行模型蒸馏的卷积网络

4、实验验证效果

表1各方法数据流异常检测效果对比

通过观察上表可以发现,仅仅基于人工经验特征的svm分类器准确率较低,对异常数据流的漏检率最高。分析其原因主要在于对于异常数据流,特别是网络攻击,人工经验难以覆盖日益更新且千变万化的网络攻击手段,而且主动的网络攻击往往会对其攻击代码作隐藏,放在载荷中或不常见的字段中,很容易规避掉仅针对包头和统计信息的特征抽取,因此漏检率会相对较高。但由于数据流异常检测问题中异常样本较少,而人工经验特征对配合的采用固定网络协议的正常样本总是能较好感知,因此缺陷在准确率指标上表现并不十分明显。

基于dpi的流量分类技术,具有较高的准确率但漏检率却相对较高。分析其原因在于,基于dpi流量分类技术通常采用分析比对的思路,即与数据库中的白名单黑名单进行对比,而网络数据流形态处于不断动态变化中,数据库的不完全造成了漏检率较高。但由于其对每个数据包的信息都逐个分析,因此对正常数据流的误警率很低,因此整体准确率得到提升。但此种方法的问题在于其准确率的保障在于对信息的逐个判断,匹配数据库,因此时间复杂度较高,可部署性差。

本文所提出的基于人工经验特征和数据流全局信息的网络模型整体准确性达到了较高精度,并且明显具有更低的漏检率,可见其通过卷积网络能够较好的感知整体信息,并且机器学习手段能够在面对尚未发现或归纳的攻击手段时,学习样本中的信息,对其进行有效的异常检测。

通过对比模型蒸馏方法对模型进行压缩前后的样本准确性指标、处理时间和模型大小,可以发现模型蒸馏有效实现了,在保证准确性的基础上,提高处理速度,压缩模型大小,使方法更易于实际部署。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1