一种基于时空特征融合的网络攻击检测方法和系统转让专利

申请号 : CN202211180250.9

文献号 : CN115277258B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郑伟发肖岩军尤扬程培宇蔡梓涛谢少群

申请人 : 广东财经大学绿盟科技集团股份有限公司

摘要 :

本发明涉及一种基于时空特征融合的网络攻击检测方法和系统,所述方法包括:将待检测的网络流量数据进行预处理,作为训练后的GCN‑BiGRU神经网络模型的输入,通过GCN神经网络模块提取网络流量数据的空间特征,通过BiGRU神经网络模块提取网络流量数据的时间特征,在特征融合模块中对时间特征和空间特征进行特征融合,得到待检测的网络流量数据的分类标签。所述系统包括:采集模块、预处理模块以及分析模块。本发明通过提取网络流量数据的空间特征和时间特征并进行特征融合,将时空特征相结合进行网络攻击检测,有效提高了算法的可靠性。

权利要求 :

1.一种基于时空特征融合的网络攻击检测方法,其特征在于,包括:

获取网络流量数据作为样本集,并对其进行预处理,得到预处理后的样本集;

预设分类标签,所述分类标签包括正常流量标签、受害流量标签和攻击流量标签;

根据预设的分类标签对预处理后的样本集进行标注得到对应的分类标签集;

构建GCN‑BiGRU神经网络模型,所述GCN‑BiGRU神经网络模型包括GCN神经网络模块、BiGRU神经网络模块以及对GCN神经网络模块和BiGRU神经网络模块的输出进行特征融合的特征融合模块;

利用预处理后的样本集和对应的分类标签集对GCN‑BiGRU神经网络模型进行训练和测试得到最终的GCN‑BiGRU神经网络模型;

将待检测的网络流量数据进行预处理,作为最终的GCN‑BiGRU神经网络模型的输入,通过GCN神经网络模块提取所述待检测的网络流量数据的空间特征,通过BiGRU神经网络模块提取所述待检测的网络流量数据的时间特征,在特征融合模块中对时间特征和空间特征进行特征融合,得到待检测的网络流量数据的分类标签;

获取网络流量数据作为样本集,并对其进行预处理,得到预处理后的样本集,具体包括:获取网络流量数据作为样本集,对样本集进行初始化,形成初始化数据集;

根据初始化数据集获取节点数据集和边数据集;

根据初始化数据集进行归一化处理和编码处理,根据节点数据集、边数据集以及归一化和编码后的数据,构建边特征数据集;

和/或,

将待检测的网络流量数据进行预处理,具体包括:

将待检测的网络流量数据进行初始化,形成对应的待检测数据集;

根据对应的待检测数据集获取对应的节点数据集和边数据集;

根据对应的待检测数据集进行归一化处理和编码处理,根据待检测数据集对应的节点数据集、边数据集以及归一化和编码后的数据,构建待检测数据集对应的边特征数据集;

所述对样本集进行初始化,形成初始化数据集,以及,所述将待检测的网络流量数据进行初始化,形成对应的待检测数据集,均采用如下步骤实现:对网络流量数据进行初始化,形成初始化数据集RawDataSet,所述初始化数据集RawDataSet包括:连接第一次出现的时间Date first seen、持续时间Duration、使用协议类型Proto、源节点地址Src IP Addr、目的节点地址Dst IP Addr、源节点端口Src Pt、目的节点端口Dst Pt、包的数量Packets、字节数Bytes、数据流Flows、标识符Flags、服务类型Tos;

根据初始化数据集或待检测数据集获取节点数据集和边数据集,具体包括:

遍历初始化数据集RawDataSet,提取每条记录的源节点地址Src IP Addr、源节点端口Src Pt,根据“Src=Src IP Addr+ Src Pt”的原则,生成源网络节点字典SrcDict,所述源网络节点字典SrcDict包括SrcID和Src两个字段;

遍历初始化数据集RawDataSet,提取每条记录的目的节点地址Dst IP Addr、目的节点端口Dst Pt,根据“Dst=Dst IP Addr+ Dst Pt”的原则,生成目的网络节点字典DstDict,所述目的网络节点字典DstDict包括DstID和Dst两个字段;

新建节点数据集NodeSet和边数据集EdgeSet;

遍历初始化数据集RawDataSet,查阅源网络节点字典SrcDict和目的网络节点字典DstDict,将初始化数据集RawDataSet中的“Src IP Addr+ Src Pt”在源网络节点字典SrcDict对应的SrcID和Src插入节点数据集NodeSet,将初始化数据集RawDataSet中的“Dst IP Addr+ Dst Pt”在目的网络节点字典DstDict对应的DstID和Dst插入节点数据集NodeSet;

将源网络节点字典SrcDict对应的SrcID和目的网络节点字典DstDict对应的DstID分别作为边的起点和终点插入边数据集EdgeSet;

通过GCN神经网络模块提取所述待检测的网络流量数据的空间特征,具体包括:

根据待检测网络流量数据对应的节点数据集获取构建网络节点图的网络节点,根据待检测网络流量数据对应的边数据集获取构建网络节点图的边,根据获取的网络节点和边构建网络节点图;

根据网络节点图获取网络节点的邻居节点,根据邻居节点计算出网络节点图的邻接矩阵;

根据网络节点图获取网络节点相关联的边的数量,定义为网络节点的度;

根据网络节点的度计算出网络节点图的度矩阵;

根据网络节点图的邻接矩阵和度矩阵得到网络节点图的特征矩阵,作为待检测的网络流量数据的空间特征。

2.根据权利要求1所述的一种基于时空特征融合的网络攻击检测方法,其特征在于,样本集和/或待检测数据集对应的所述边特征数据集的构建方法包括:对初始化数据集RawDataSet中的持续时间Duration、包的数量Packets、字节数Bytes、数据流Flows进行归一化处理;

对初始化数据集RawDataSet中的使用协议类型Proto、标识符Flags、服务类型Tos进行编码;

遍历初始化数据集RawDataSet,将所述“Src IP Addr+ Src Pt”在SrcDict中对应的SrcID作为边的起点,所述“Dst IP Addr+ Dst Pt”在DstDict中对应的DstID作为边的终点,结合所述归一化后和所述编码后的数据作为边的特征数据,形成边特征数据集EdftSet。

3.根据权利要求2所述的一种基于时空特征融合的网络攻击检测方法,其特征在于,根据预设的分类标签对预处理后的样本集进行标注得到对应的分类标签集,具体包括:根据预设的分类标签对样本集进行标注得到标签标注信息;

将样本集对应的标签标注信息进行数值编码;

遍历初始化数据集RawDataSet,将所述“Src IP Addr+ Src Pt”在SrcDict中对应的SrcID作为起点,将所述“Dst IP Addr+ Dst Pt”在DstDict中对应的DstID作为终点,结合样本集对应的标签标注信息对应的数值编码信息作为边分类标签数据,形成分类标签集LabelSet。

4.根据权利要求3所述的一种基于时空特征融合的网络攻击检测方法,其特征在于,利用预处理后的网络流量数据和对应的分类标签集对GCN‑BiGRU神经网络模型进行训练和测试得到训练后的GCN‑BiGRU神经网络模型,具体包括:将样本集对应的节点数据集NodeSet、边数据集EdgeSet、边特征数据集EdftSet和分类标签集LabelSet通过SrcID和DstID进行关联;

将样本集中一部分网络流量数据对应的节点数据集NodeSet、边数据集EdgeSet、边特征数据集EdftSet和分类标签集LabelSet组成训练集,分别命名为训练节点数据集TrainNodeSet、训练边数据集TrainEdgeSet、训练边特征数据集TrainEdftSet和训练分类标签集TrainLabelSet;

将样本集中剩余部分网络流量数据对应的节点数据集NodeSet、边数据集EdgeSet、边特征数据集EdftSet和分类标签集LabelSet组成测试集,分别命名为测试节点数据集TestNodeSet、测试边数据集TestEdgeSet、测试边特征数据集TestEdftSet和测试分类标签集TestLabelSet;

训练过程,将训练节点数据集TrainNodeSet和训练边数据集TrainEdgeSet作为GCN神经网络模块的输入,将训练边特征数据集TrainEdftSet作为BiGRU神经网络模块的输入,将训练分类标签集TrainLabelSet、GCN神经网络模块的输出、BiGRU神经网络模块的输出作为特征融合模块的输入,对GCN‑BiGRU神经网络模型进行训练,得到训练后的网络;

测试过程,将测试节点数据集TestNodeSet、测试边数据集TestEdgeSet、测试边特征数据集TestEdftSet和测试分类标签集TestLabelSet输入到训练后的GCN‑BiGRU神经网络模型中进行测试,得到最终的网络模型。

5.根据权利要求1所述的一种基于时空特征融合的网络攻击检测方法,其特征在于,通过BiGRU神经网络模块提取所述待检测的网络流量数据的时间特征,具体包括:根据待检测网络流量数据的边特征数据集获取网络流量时间序列;

所述BiGRU神经网络由两个单向的且方向相反的GRU构成,前向GRU用于捕捉下一时刻特征,反向GRU用于捕捉上一时刻特征,两个GRU同时处理网络流量时间序列的输入,共同得到当前时刻的输出;

根据当前时刻的输出,通过激活函数得到包含历史信息的网络流量数据的时间特征向量,作为待检测网络流量数据的时间特征。

6.根据权利要求5所述的一种基于时空特征融合的网络攻击检测方法,其特征在于,网络流量数据的特征融合包括特征融合步骤,所述特征融合步骤为:将GCN神经网络输出的空间特征OGCN以及BiGRU神经网络输出的时间特征OBiGRU进行融合,得到融合特征矩阵,其中n为网络流量数据量;

将得到的融合特征矩阵E经过激活函数处理得到网络流量数据的分类标签。

7.一种基于时空特征融合的网络攻击检测系统,包括:

采集模块,用于获取网络流量数据作为样本集,以及获取待检测的网络流量数据;

预处理模块,用于对样本集进行预处理,得到预处理后的样本集和对应的分类标签集,所述分类标签包括正常流量标签、受害流量标签和攻击流量标签;以及用于对待检测的网络流量数据进行预处理;

对样本集进行预处理,得到预处理后的样本集,具体包括:

获取网络流量数据作为样本集,对样本集进行初始化,形成初始化数据集;

根据初始化数据集获取节点数据集和边数据集;

根据初始化数据集进行归一化处理和编码处理,根据节点数据集、边数据集以及归一化和编码后的数据,构建边特征数据集;

和/或,

对待检测的网络流量数据进行预处理,具体包括:

将待检测的网络流量数据进行初始化,形成对应的待检测数据集;

根据对应的待检测数据集获取对应的节点数据集和边数据集;

根据对应的待检测数据集进行归一化处理和编码处理,根据待检测数据集对应的节点数据集、边数据集以及归一化和编码后的数据,构建待检测数据集对应的边特征数据集;

所述对样本集进行初始化,形成初始化数据集,以及,所述将待检测的网络流量数据进行初始化,形成对应的待检测数据集,均采用如下步骤实现:对网络流量数据进行初始化,形成初始化数据集RawDataSet,所述初始化数据集RawDataSet包括:连接第一次出现的时间Date first seen、持续时间Duration、使用协议类型Proto、源节点地址Src IP Addr、目的节点地址Dst IP Addr、源节点端口Src Pt、目的节点端口Dst Pt、包的数量Packets、字节数Bytes、数据流Flows、标识符Flags、服务类型Tos;

根据初始化数据集或待检测数据集获取节点数据集和边数据集,具体包括:

遍历初始化数据集RawDataSet,提取每条记录的源节点地址Src IP Addr、源节点端口Src Pt,根据“Src=Src IP Addr+ Src Pt”的原则,生成源网络节点字典SrcDict,所述源网络节点字典SrcDict包括SrcID和Src两个字段;

遍历初始化数据集RawDataSet,提取每条记录的目的节点地址Dst IP Addr、目的节点端口Dst Pt,根据“Dst=Dst IP Addr+ Dst Pt”的原则,生成目的网络节点字典DstDict,所述目的网络节点字典DstDict包括DstID和Dst两个字段;

新建节点数据集NodeSet和边数据集EdgeSet;

遍历初始化数据集RawDataSet,查阅源网络节点字典SrcDict和目的网络节点字典DstDict,将初始化数据集RawDataSet中的“Src IP Addr+ Src Pt”在源网络节点字典SrcDict对应的SrcID和Src插入节点数据集NodeSet,将初始化数据集RawDataSet中的“Dst IP Addr+ Dst Pt”在目的网络节点字典DstDict对应的DstID和Dst插入节点数据集NodeSet;

将源网络节点字典SrcDict对应的SrcID和目的网络节点字典DstDict对应的DstID分别作为边的起点和终点插入边数据集EdgeSet;

模型构建模块,用于构建GCN‑BiGRU神经网络模型,所述GCN‑BiGRU神经网络模型包括GCN神经网络模块、BiGRU神经网络模块以及对GCN神经网络模块和BiGRU神经网络模块的输出进行特征融合的特征融合模块;以及,利用预处理后的样本集和对应的分类标签集对GCN‑BiGRU神经网络模型进行训练和测试得到最终的GCN‑BiGRU神经网络模型;

检测模块,用于将预处理后的待检测的网络流量数据作为最终的GCN‑BiGRU神经网络模型的输入,通过GCN神经网络模块提取所述待检测的网络流量数据的空间特征,通过BiGRU神经网络模块提取所述待检测的网络流量数据的时间特征,在特征融合模块中对时间特征和空间特征进行特征融合,得到待检测的网络流量数据的分类标签;

通过GCN神经网络模块提取所述待检测的网络流量数据的空间特征,具体包括:

根据待检测网络流量数据对应的节点数据集获取构建网络节点图的网络节点,根据待检测网络流量数据对应的边数据集获取构建网络节点图的边,根据获取的网络节点和边构建网络节点图;

根据网络节点图获取网络节点的邻居节点,根据邻居节点计算出网络节点图的邻接矩阵;

根据网络节点图获取网络节点相关联的边的数量,定义为网络节点的度;

根据网络节点的度计算出网络节点图的度矩阵;

根据网络节点图的邻接矩阵和度矩阵得到网络节点图的特征矩阵,作为待检测的网络流量数据的空间特征。

说明书 :

一种基于时空特征融合的网络攻击检测方法和系统

技术领域

[0001] 本发明涉及网络安全领域,更具体地,涉及一种基于时空特征融合的网络攻击检测方法和系统。

背景技术

[0002] 随着信息技术的发展,网络安全受到越来越多的关注。近年来,由于网络攻击模式不断发生变化,网络攻击向更加新型、更加智能化的方向发展。而传统的网络攻击检测方法通常单纯从时间序列分析,并未涉及将空间和时间相结合进行分析,并且严重依赖人工进行特征选择,会产生大量误报或漏报的问题,准确率有待提高,不足以应对复杂的网络攻击模式。
[0003] GCN(Graph Convolutional Network,GCN)提供了一种从图数据中提取特征的方法,目前通常将GCN提取图数据特征应用于对图数据进行节点分类(node classification)、图分类(graph classification)、边预测(link prediction),以及得到图的嵌入表示(graph embedding)。
[0004] BiGRU(Bidirectional Gate Recurrent Unit,BiGRU)是一种经典的循环神经网络(Recurrent Neural Network,RNN),通常用于解决长期记忆和反向传播中梯度问题。

发明内容

[0005] 本发明旨在克服上述现有技术的至少一种缺陷(不足),提供一种基于时空特征融合的网络攻击检测方法和系统,本发明通过将GCN神经网络模型和BiGRU神经网络模型相结合,构建GCN‑BiGRU神经网络模型,提取网络流量数据的空间特征和时间特征并进行特征融合,有效提高了网络攻击的检测算法的准确率。
[0006] 本发明采取的技术方案为:
[0007] 第一方面,提供一种基于时空特征融合的网络攻击检测方法,包括:
[0008] 获取网络流量数据作为样本集,并对其进行预处理,得到预处理后的样本集;
[0009] 预设分类标签,所述分类标签包括正常流量标签、受害流量标签和攻击流量标签;
[0010] 根据预设的分类标签对预处理后的样本集进行标注得到对应的分类标签集;
[0011] 构建GCN‑BiGRU神经网络模型,所述GCN‑BiGRU神经网络模型包括GCN神经网络模块、BiGRU神经网络模块以及对GCN神经网络模块和BiGRU神经网络模块的输出进行特征融合的特征融合模块;利用预处理后的样本集和对应的分类标签集对GCN‑BiGRU神经网络模型进行训练和测试得到最终的GCN‑BiGRU神经网络模型;
[0012] 将待检测的网络流量数据进行预处理,作为最终的GCN‑BiGRU神经网络模型的输入,通过GCN神经网络模块提取所述待检测的网络流量数据的空间特征,通过BiGRU神经网络模块提取所述待检测的网络流量数据的时间特征,在特征融合模块中对时间特征和空间特征进行特征融合,得到待检测的网络流量数据的分类标签。
[0013] 本发明通过将GCN神经网络模型和BiGRU神经网络模型相结合,构建GCN‑BiGRU神经网络模型,提取网络流量数据的空间特征和时间特征并进行特征融合,使用GCN‑BiGRU神经网络模型进行网络攻击检测的准确率高于单独使用GCN神经网络模型或者单独使用BiGRU神经网络模型,有效提高了网络攻击的检测算法的准确率。
[0014] 进一步的,所述获取网络流量数据作为样本集,并对其进行预处理,得到预处理后的样本集,具体包括:
[0015] 获取网络流量数据作为样本集,对样本集进行初始化,形成初始化数据集;
[0016] 根据初始化数据集获取节点数据集和边数据集;
[0017] 根据初始化数据集进行归一化处理和编码处理,根据节点数据集、边数据集以及归一化和编码后的数据,构建边特征数据集;
[0018] 和/或,
[0019] 将待检测的网络流量数据进行预处理,具体包括:
[0020] 将待检测的网络流量数据进行初始化,形成对应的待检测数据集;
[0021] 根据对应的待检测数据集获取对应的节点数据集和边数据集;
[0022] 根据对应的待检测数据集进行归一化处理和编码处理,根据待检测数据集对应的节点数据集、边数据集以及归一化和编码后的数据,构建待检测数据集对应的边特征数据集。
[0023] 对网络流量数据进行预处理是进行网络流量数据分析前不可或缺的一环,可以精准地抽取数据、调整数据的格式,从而得到符合准确、完整、简洁等标准的高质量数据,以及更加精准地提取所需要的数据输入对应的神经网络模型进行分析,保证该数据能更好地服务于数据分析的工作。
[0024] 进一步的,所述对样本集进行初始化,形成初始化数据集,以及,所述将待检测的网络流量数据进行初始化,形成对应的待检测数据集,均采用如下步骤实现:
[0025] 对网络流量数据进行初始化,形成初始化数据集RawDataSet,所述初始化数据集RawDataSet包括:连接第一次出现的时间Date first seen、持续时间Duration、使用协议类型Proto、源节点地址Src IP Addr、目的节点地址Dst IP Addr、源节点端口Src Pt、目的节点端口Dst Pt、包的数量Packets、字节数Bytes、数据流Flows、标识符Flags、服务类型Tos;
[0026] 根据初始化数据集或待检测数据集获取节点数据集和边数据集,具体包括:
[0027] 遍历初始化数据集RawDataSet,提取每条记录的源节点地址Src IP Addr、源节点端口Src Pt,根据“Src=Src IP Addr+ Src Pt”的原则,生成源网络节点字典SrcDict,所述源网络节点字典SrcDict包括SrcID和Src两个字段;
[0028] 遍历初始化数据集RawDataSet,提取每条记录的目的节点地址Dst IP Addr、目的节点端口Dst Pt,根据“Dst=Dst IP Addr+ Dst Pt”的原则,生成目的网络节点字典DstDict,所述目的网络节点字典DstDict包括DstID和Dst两个字段;
[0029] 新建节点数据集NodeSet和边数据集EdgeSet;
[0030] 遍历初始化数据集RawDataSet,查阅源网络节点字典SrcDict和目的网络节点字典DstDict,将初始化数据集RawDataSet中的“Src IP Addr+ Src Pt”在源网络节点字典SrcDict对应的SrcID和Src插入节点数据集NodeSet;
[0031] 将初始化数据集RawDataSet中的“Dst IP Addr+ Dst Pt”在目的网络节点字典DstDict对应的DstID和Dst插入节点数据集NodeSet;
[0032] 将源网络节点字典SrcDict对应的SrcID和目的网络节点字典DstDict对应的DstID分别作为边的起点和终点插入边数据集EdgeSet。
[0033] SrcID和DstID确保了源网络节点字典SrcDict和目的网络节点字典DstDict数据的ID全局唯一性。所得到的节点数据集NodeSet和边数据集EdgeSet为后续构建网络节点图服务,用于输入GCN神经网络模块进行空间特征提取。
[0034] 进一步的,样本集和/或待检测数据集对应的所述边特征数据集的构建方法包括:
[0035] 对初始化数据集RawDataSet中的持续时间Duration、包的数量Packets、字节数Bytes、数据流Flows进行归一化处理;
[0036] 对初始化数据集RawDataSet中的使用协议类型Proto、标识符Flags、服务类型Tos进行编码;
[0037] 遍历初始化数据集RawDataSet,将所述“Src IP Addr+ Src Pt”在SrcDict中对应的SrcID作为边的起点,所述“Dst IP Addr+ Dst Pt”在DstDict中对应的DstID作为边的终点,结合所述归一化后和所述编码后的数据作为边的特征数据,形成边特征数据集EdftSet。
[0038] 进一步的,根据预设的分类标签对预处理后的样本集进行标注得到对应的分类标签集,具体包括:
[0039] 根据预设的分类标签对样本集进行标注得到标签标注信息;
[0040] 将样本集对应的标签标注信息进行数值编码;
[0041] 遍历初始化数据集RawDataSet,将所述“Src IP Addr+ Src Pt”在SrcDict中对应的SrcID作为起点,将所述“Dst IP Addr+ Dst Pt”在DstDict中对应的DstID作为终点,结合样本集对应的标签标注信息对应的数值编码信息作为边分类标签数据,形成分类标签集LabelSet。
[0042] 更具体的,网络流量数据有三种分类标签类型,分别是正常流量标签normal、受害流量标签victim和攻击流量标签attacker。对分类标签类型进行编码,编码规则可以为,正常流量标签normal编码为0,受害流量标签victim编码为1,攻击流量标签attacker编码为2,编码后分类标签从文本数据转换为数值数据。
[0043] 进一步的,利用预处理后的网络流量数据和对应的分类标签集对GCN‑BiGRU神经网络模型进行训练和测试得到训练后的GCN‑BiGRU神经网络模型,具体包括:
[0044] 将样本集对应的节点数据集NodeSet、边数据集EdgeSet、边特征数据集EdftSet和分类标签数据集LabelSet通过SrcID和DstID进行关联;
[0045] 将样本集中一部分网络流量数据对应的节点数据集NodeSet、边数据集EdgeSet、边特征数据集EdftSet和分类标签集LabelSet组成训练集,分别命名为训练节点数据集TrainNodeSet、训练边数据集TrainEdgeSet、训练边特征数据集TrainEdftSet和训练分类标签集TrainLabelSet;
[0046] 将样本集中剩余部分网络流量数据对应的节点数据集NodeSet、边数据集EdgeSet、边特征数据集EdftSet和分类标签集LabelSet组成测试集,分别命名为测试节点数据集TestNodeSet、测试边数据集TestEdgeSet、测试边特征数据集TestEdftSet和测试分类标签集TestLabelSet;
[0047] 训练过程,将训练节点数据集TrainNodeSet和训练边数据集TrainEdgeSet作为GCN神经网络模块的输入,将训练边特征数据集TrainEdftSet作为BiGRU神经网络模块的输入,将训练分类标签集TrainLabelSet、GCN神经网络模块的输出、BiGRU神经网络模块的输出作为特征融合模块的输入,对GCN‑BiGRU神经网络模型进行训练,得到训练后的网络;
[0048] 测试过程,将测试节点数据集TestNodeSet、测试边数据集TestEdgeSet、测试边特征数据集TestEdftSet和测试分类标签集TestLabelSet输入到训练后的GCN‑BiGRU神经网络模型中进行测试,得到最终的网络模型。
[0049] 利用训练集对GCN‑BiGRU神经网络模型进行训练,再利用测试集对训练结果进行验证,测试通过的GCN‑BiGRU神经网络模型即为训练好的GCN‑BiGRU神经网络模型,可以进行正式网络安全检测。使用训练神经网络模型的方法进行网络安全检测,与人工检测相比可以提高发现网络攻击的精准度和可靠性。
[0050] 进一步的,通过GCN神经网络模块提取所述待检测的网络流量数据的空间特征,具体包括:
[0051] 根据待检测网络流量数据对应的节点数据集获取构建网络节点图的网络节点,根据待检测网络流量数据对应的边数据集获取构建网络节点图的边,根据获取的网络节点和边构建网络节点图;
[0052] 根据网络节点图获取网络节点的邻居节点,根据邻居节点计算出网络节点图的邻接矩阵;根据网络节点图获取网络节点相关联的边的数量,定义为网络节点的度;
[0053] 根据网络节点的度计算出网络节点图的度矩阵;
[0054] 根据网络节点图的邻接矩阵和度矩阵得到网络节点图的特征矩阵,作为待检测网络流量数据的空间特征。
[0055] 更具体的,因为网络节点之间的连接和数据传输,在空间上构成一个网络节点图,网络节点图是一种非欧几里德数据结构(Non‑Euclidean Data Structure),节点不规则排列,对于不同节点,其邻居节点数目也不同。而GCN神经网络可以通过小范围的网络节点有效分析其邻居节点,适用于进行网络节点的空间特征提取。
[0056] 进一步的,通过BiGRU神经网络模块提取所述待检测的网络流量数据的时间特征,具体包括:
[0057] 根据待检测网络流量数据的边特征数据集获取网络流量时间序列;
[0058] 所述BiGRU神经网络由两个单向的且方向相反的GRU构成,前向GRU用于捕捉下一时刻特征,反向GRU用于捕捉上一时刻特征,两个GRU同时处理网络流量时间序列的输入,共同得到当前时刻的输出;
[0059] 根据当前时刻的输出,通过激活函数得到包含历史信息的网络流量数据的时间特征向量,作为待检测网络流量数据的时间特征。
[0060] 更具体的,因为网络节点之间的连接和数据传输,在时间上形成一个流量时间序列,而网络流量时间序列在上下时刻之间,具有较强的关联性,单向GRU模型只能获取前向时刻的特征,在网络攻击识别任务中,要求模型能充分学习上下时刻特征,提取长时间距离依存关系,因此使用可以双向捕捉上下时刻特征的BiGRU神经网络进行网络节点的时间特征提取。
[0061] 进一步的,网络流量数据的特征融合包括特征融合步骤,所述特征融合步骤为:将GCN神经网络输出的空间特征OGCN以及BiGRU神经网络输出的时间特征OBiGRU进行融合,得到融合特征矩阵 ,其中n为网络流量数据量;
[0062] 将得到的融合特征矩阵E经过激活函数处理得到网络流量数据的分类标签。
[0063] 融合后的特征矩阵E吸收了网络流量数据空间和时间的特征,具有丰富的关键特征信息,从而可以帮助GCN‑BiGRU神经网络模型做出更加准确地检测。
[0064] 第二方面,提供一种基于时空特征融合的网络攻击检测系统,包括:
[0065] 采集模块,用于获取网络流量数据作为样本集,以及获取待检测的网络流量数据;
[0066] 预处理模块,用于对样本集进行预处理,得到预处理后的样本集和对应的分类标签集,所述分类标签包括正常流量标签、受害流量标签和攻击流量标签;以及用于对待检测的网络流量数据进行预处理;
[0067] 模型构建模块,用于构建GCN‑BiGRU神经网络模型,所述GCN‑BiGRU神经网络模型包括GCN神经网络模块、BiGRU神经网络模块以及对GCN神经网络模块和BiGRU神经网络模块的输出进行特征融合的特征融合模块;以及,利用预处理后的样本集和对应的分类标签集对GCN‑BiGRU神经网络模型进行训练和测试得到最终的GCN‑BiGRU神经网络模型;
[0068] 检测模块,用于将预处理后的待检测的网络流量数据作为最终的GCN‑BiGRU神经网络模型的输入,通过GCN神经网络模块提取所述待检测的网络流量数据的空间特征,通过BiGRU神经网络模块提取所述待检测的网络流量数据的时间特征,在特征融合模块中对时间特征和空间特征进行特征融合,得到待检测的网络流量数据的分类标签。
[0069] 与现有技术相比,本发明的有益效果为:
[0070] (1)使用GCN神经网络进行网络流量数据空间特征提取,可以通过小范围的网络节点有效分析其邻居节点;
[0071] (2)使用BiGRU神经网络进行网络流量数据时间特征提取,可以双向捕捉上下时刻的特征;
[0072] (3)构建GCN‑BiGRU神经网络模型提取网络流量数据的空间特征和时间特征,并进行特征融合,从而进行网络安全检测,准确率高于单独使用GCN神经网络模型或者单独使用BiGRU神经网络模型,有效提高了网络攻击的检测算法的准确率。

附图说明

[0073] 图1为本发明实施例1的方法步骤流程图。
[0074] 图2为本发明实施例1的GCN网络节点图。
[0075] 图3为本发明实施例1的GRU单元模型结构图。
[0076] 图4为本发明实施例1使用GCN‑BiGRU神经网络模型、单独使用GCN神经网络模型和单独BiGRU神经网络模型实验结果对比图。
[0077] 图5为本发明实施例2的系统示意图。

具体实施方式

[0078] 本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0079] 实施例1
[0080] 如图1所示,本实施例提供一种基于时空特征融合的网络攻击检测方法,包括:
[0081] S1、获取网络流量数据作为样本集,并对其进行预处理,得到预处理后的样本集;
[0082] S2、预设分类标签,所述分类标签包括正常流量标签、受害流量标签和攻击流量标签;
[0083] S3、根据预设的分类标签对预处理后的样本集进行标注得到对应的分类标签集;
[0084] S4、构建GCN‑BiGRU神经网络模型,所述GCN‑BiGRU神经网络模型包括GCN神经网络模块、BiGRU神经网络模块以及对GCN神经网络模块和BiGRU神经网络模块的输出进行特征融合的特征融合模块;
[0085] S5、利用预处理后的样本集和对应的分类标签集对GCN‑BiGRU神经网络模型进行训练和测试得到最终的GCN‑BiGRU神经网络模型;
[0086] S6、将待检测的网络流量数据进行预处理,作为最终的GCN‑BiGRU神经网络模型的输入,通过GCN神经网络模块提取所述待检测的网络流量数据的空间特征,通过BiGRU神经网络模块提取所述待检测的网络流量数据的时间特征,在特征融合模块中对时间特征和空间特征进行特征融合,得到待检测的网络流量数据的分类标签。
[0087] 示例性的,本实施例所使用的网络流量数据样本集为CIDDS‑01(Coburg Intrusion Detection Data Sets)公开数据集,CIDDS‑01数据集在一个模拟的企业环境中捕获,持续时间为四周,采集的网络流量包含SSH暴力攻击、DoS和端口扫描等网络攻击行为,可以有效地训练本发明的GCN‑BiGRU神经网络模型。
[0088] 本实施例的S1获取网络流量数据作为样本集,并对其进行预处理,得到预处理后的样本集,具体包括:
[0089] S101、获取网络流量数据作为样本集,对样本集进行初始化,形成初始化数据集;
[0090] S102、根据初始化数据集获取节点数据集和边数据集;
[0091] S103、根据初始化数据集进行归一化处理和编码处理,根据节点数据集、边数据集以及归一化和编码后的数据,构建边特征数据集。
[0092] 本实施例S101,所述对样本集进行初始化,形成初始化数据集,均采用如下步骤实现:对样本集中的网络流量数据进行初始化,形成样本集对应的初始化数据集RawDataSet,所述初始化数据集RawDataSet包括:连接第一次出现的时间Date first seen、持续时间Duration、使用协议类型Proto、源节点地址Src IP Addr、目的节点地址Dst IP Addr、源节点端口Src Pt、目的节点端口Dst Pt、包的数量Packets、字节数Bytes、数据流Flows、标识符Flags、服务类型Tos。具体地,CIDDS‑01(Coburg Intrusion Detection Data Sets)公开数据集中提取了上述所述12个的网络流量。
[0093] 本实施例S102中所述根据初始化数据集获取节点数据集和边数据集,具体包括:
[0094] 遍历样本集对应的初始化数据集RawDataSet,提取每条记录的源节点地址Src IP Addr、源节点端口Src Pt,根据“Src=Src IP Addr+ Src Pt”的原则,生成源网络节点字典SrcDict,所述源网络节点字典SrcDict包括SrcID和Src两个字段;
[0095] 遍历初始化数据集RawDataSet,提取每条记录的目的节点地址Dst IP Addr、目的节点端口Dst Pt,根据“Dst=Dst IP Addr+ Dst Pt”的原则,生成目的网络节点字典DstDict,所述目的网络节点字典DstDict包括DstID和Dst两个字段;
[0096] 新建样本集对应的节点数据集NodeSet和边数据集EdgeSet;
[0097] 遍历样本集对应的初始化数据集RawDataSet,查阅源网络节点字典SrcDict和目的网络节点字典DstDict,将样本集对应的初始化数据集RawDataSet中的“Src IP Addr+ Src Pt”在源网络节点字典SrcDict对应的SrcID和Src插入节点数据集NodeSet;将样本集对应的初始化数据集RawDataSet中的“Dst IP Addr+ Dst Pt”在目的网络节点字典DstDict对应的DstID和Dst插入样本集对应的节点数据集NodeSet;将源网络节点字典SrcDict对应的SrcID和目的网络节点字典DstDict对应的DstID分别作为边的起点和终点插入样本集对应的边数据集EdgeSet。
[0098] 本实施例S103中样本集对应的所述边特征数据集的构建方法包括:
[0099] 对样本集对应的初始化数据集RawDataSet中的持续时间Duration、包的数量Packets、字节数Bytes、数据流Flows进行归一化处理;
[0100] 对样本集对应初始化数据集RawDataSet中的使用协议类型Proto、标识符Flags、服务类型Tos进行编码;所述编码可以采用one‑hot编码实现。
[0101] 遍历样本集对应的初始化数据集RawDataSet,将所述“Src IP Addr+ Src Pt”在SrcDict中对应的SrcID作为边的起点,所述“Dst IP Addr+ Dst Pt”在DstDict中对应的DstID作为边的终点,结合所述归一化后和所述编码后的数据作为边的特征数据,形成边特征数据集EdftSet。
[0102] 本实施例S3所述根据预设的分类标签对预处理后的样本集进行标注得到对应的分类标签集,具体包括:
[0103] 根据预设的分类标签对样本集进行标注得到标签标注信息;
[0104] 将样本集对应的标签标注信息进行数值编码;
[0105] 遍历初始化数据集RawDataSet,将所述“Src IP Addr+ Src Pt”在SrcDict中对应的SrcID作为起点,将所述“Dst IP Addr+ Dst Pt”在DstDict中对应的DstID作为终点,结合样本集对应的标签标注信息对应的数值编码信息作为边分类标签数据,形成分类标签集LabelSet。
[0106] 示例性的,以连接时间Duration为例说明归一化处理过程,遍历样本集对应的初始化数据集RawDataSet,找出持续时间Duration的最大值Dmax和最小值Dmin,当前的Duration时间 ,得出归一化后的连续时间 。
[0107] 本实施例可以采用Python语言的Sklearn工具进行对初始化数据集RawDataSet中的协议类型Proto、标识符Flags、服务类型Tos进行One‑Hot编码。
[0108] 本实施例的网络流量数据有三种分类标签类型,分别是正常流量标签normal、受害流量标签victim和攻击流量标签attacker。对标签标注信息进行编码,编码规则可以为,正常流量标签normal编码为0,受害流量标签victim编码为1,攻击流量标签attacker编码为2。
[0109] 本实施例S5利用预处理后的网络流量数据和对应的分类标签集对GCN‑BiGRU神经网络模型进行训练和测试得到训练后的GCN‑BiGRU神经网络模型,具体包括:
[0110] 将样本集对应节点数据集NodeSet、边数据集EdgeSet、边特征数据集EdftSet和分类标签数据集LabelSet通过SrcID和DstID进行关联;
[0111] 将样本集中一部分网络流量数据对应的节点数据集NodeSet、边数据集EdgeSet、边特征数据集EdftSet和分类标签集LabelSet组成训练集,分别命名为训练节点数据集TrainNodeSet、训练边数据集TrainEdgeSet、训练边特征数据集TrainEdftSet和训练分类标签集TrainLabelSet;
[0112] 将样本集中剩余部分网络流量数据对应的节点数据集NodeSet、边数据集EdgeSet、边特征数据集EdftSet和分类标签集LabelSet组成测试集,分别命名为测试节点数据集TestNodeSet、测试边数据集TestEdgeSet、测试边特征数据集TestEdftSet和测试分类标签集TestLabelSet;
[0113] 训练过程,将训练节点数据集TrainNodeSet和训练边数据集TrainEdgeSet作为GCN神经网络模块的输入,将训练边特征数据集TrainEdftSet作为BiGRU神经网络模块的输入,将训练分类标签集TrainLabelSet、GCN神经网络模块的输出、BiGRU神经网络模块的输出作为特征融合模块的输入,对GCN‑BiGRU神经网络模型进行训练,得到训练后的网络;
[0114] 测试过程,将测试节点数据集TestNodeSet、测试边数据集TestEdgeSet、测试边特征数据集TestEdftSet和测试分类标签集TestLabelSet输入到训练后的GCN‑BiGRU神经网络模型中进行测试,得到最终的网络模型。
[0115] 示例性的,将80%网络流量数据对应的节点数据集NodeSet、边数据集EdgeSet、边特征数据集EdftSet和分类标签集LabelSet组成训练集,将剩余20%网络流量数据对应的节点数据集NodeSet、边数据集EdgeSet、边特征数据集EdftSet和分类标签集LabelSet组成测试集。
[0116] 具体地,步骤S6中将待检测的网络流量数据进行预处理的具体步骤包括:
[0117] S601、将待检测的网络流量数据进行初始化,形成对应的待检测数据集;
[0118] S602、根据对应的待检测数据集获取对应的节点数据集和边数据集;
[0119] S603、根据对应的待检测数据集进行归一化处理和编码处理,根据待检测数据集对应的节点数据集、边数据集以及归一化和编码后的数据,构建待检测数据集对应的边特征数据集。
[0120] 其中,步骤S601中所述将待检测的网络流量数据进行初始化,形成对应的待检测数据集,具体包括:
[0121] 对待检测的网络流量数据进行初始化,形成待检测网络流量数据对应的初始化数据集RawDataSet,所述初始化数据集RawDataSet所包括的信息和样本集所对应的初始化数据集所包括的信息是一样的,都包括:连接第一次出现的时间Date first seen、持续时间Duration、使用协议类型Proto、源节点地址Src IP Addr、目的节点地址Dst IP Addr、源节点端口Src Pt、目的节点端口Dst Pt、包的数量Packets、字节数Bytes、数据流Flows、标识符Flags、服务类型Tos。
[0122] 本实施例S6通过GCN‑BiGRU神经网络模型中的GCN神经网络模块提取所述待检测的网络流量数据的空间特征,具体包括:
[0123] S6021、根据待检测网络流量数据对应的节点数据集获取构建网络节点图的网络节点,根据待检测网络流量数据对应的边数据集获取构建网络节点图的边,根据获取的网络节点和边构建网络节点图;
[0124] S6022、根据网络节点图获取网络节点的邻居节点,根据邻居节点计算出网络节点图的邻接矩阵;
[0125] S6023、根据网络节点图获取网络节点相关联的边的数量,定义为网络节点的度;
[0126] S6024、根据网络节点的度计算出网络节点图的度矩阵;
[0127] S6025、根据网络节点图的邻接矩阵和度矩阵得到网络节点图的特征矩阵,作为待检测网络流量数据的空间特征。
[0128] 如图2所示,假设网络节点va的邻居节点 ,P表示网络节点图中边的集合,如果网络节点va是网络节点vb的邻居,那么网络节点vb也是网络节点va的邻居。网络节点va的度d(va)表示和该节点相关联的边的数量。度矩阵D是对角阵,对角上的元素为各个网络节点的度,令无向图中网络节点va的度d(va)=N(va),a=1,...,n,n为网络节点图中网络节点的数量,则网络节点图的度矩阵为:
[0129] A为网络节点图的邻接矩阵, ,则网络节点va和vb的邻接矩阵Aab为:
[0130]
[0131] X为特征矩阵, ,n为网络节点图中网络节点的数量,k表示特征维度,GCNL神经网络的第L+1层的输入为第L层输出的特征矩阵X 和邻接矩阵A,输出为更新后的特征L
矩阵X。则第L+1层的特征矩阵为:
[0132]
[0133] 其中,L代表第L层图卷积层, ,I是网络节点图的单位矩阵, 是矩阵的度矩阵, 是对邻接矩阵A的归一化处理,作为一个近似的图卷积滤波器,L
W是第L层的权重矩阵,通过神经网络训练得出;而函数 是激活函数。
[0134] 示例性的,本实施例根据训练节点数据集TrainNodeSet生成V,有165080个网络节点,因此V是一个维度为165080的行向量,即z=165080;根据训练边数据集TrainEdgeSet生成 ,有400000条边,即m=400000;按邻接矩阵定义生成邻接矩阵A, ,另L=0得到0
初始化时刻的特征矩阵 ,根据测试边特征数据集TestEdftSet生成X ,测试边特征数据集L
TestEdftSet中归一化后特征有40个,即特征维度k=40,因此 。W是神
经网络模型训练的结果。
[0135] 本实施例采用ReLU激活函数,为提高计算效率,GCN神经网络模块采用两层图卷积层,即L=1。经过两层图卷积层后,将输出结果输入线性连接层,通过线性连接层提取更高阶特征,同时将特征维度k=40降为k=5,令输出结果为OGCN,将其送入特征融合模块,与BiGRU网络的输出结果进行特征融合。示例性的,线性连接层使用Python中的torch.nn.liner函数创建。
[0136] 本实施例S6通过GCN‑BiGRU神经网络模型中的BiGRU神经网络模块提取所述待检测的网络流量数据的时间特征,具体包括:
[0137] S6031、根据待检测网络流量数据对应的边特征数据集获取网络流量时间序列;
[0138] S6032、所述BiGRU神经网络由两个单向的且方向相反的GRU构成,前向GRU用于捕捉下一时刻特征,反向GRU用于捕捉上一时刻特征,两个GRU同时处理网络流量时间序列的输入,共同得到当前时刻的输出;
[0139] S6033、根据当前时刻的输出,通过激活函数得到包含历史信息的网络流量数据的时间特征向量,作为网络流量数据的时间特征。
[0140] 本实施例选用Sigmoid函数为激活函数,输入t时刻的隐藏状态,输出包含历史信息的特征向量。
[0141] 具体地,在步骤S4中,对GCN‑BiGRU神经网络模型进行训练和测试的过程中,GCN神经网络模块和BiGRU神经网络模块的处理过程可以参照S6021‑ S6025以及S6031‑ S6033来实现。
[0142] 示例性的,本实施例中训练边特征数据集TrainEdftSet数据集作为BiGRU的训练数据,边特征数据集的每条记录既是边的特征,也是网络流量数据的特征融合包括特征融合步骤,所述特征融合步骤为:将GCN神经网络输出的空间特征OGCN以及BiGRU神经网络输出的时间特征OBiGRU进行融合,得到融合特征矩阵 ,其中n为网络流量数据量;根据得到的融合特征矩阵E通过激活函数处理得到网络流量数据的分类标签;
所述样本集中的网络流量数据和待检测的网络流量数据都采用所述特征融合步骤完成特征融合。每条记录的特征向量就是t时刻的特征向量 ,因此输入的网络流量特征向量维度k=40。将Pytorch 的nn.GRU函数bidirectional参数设置为true,GRU层数设置为1,输入初始维度k=40,特征维度为q=5,计算可得BiGRU神经网络输出结果 和ht。令输出结果为 ,将其送入特征融合层,与GCN神经网络的输出结果进行特征融合。
[0143] 本实施例S4和S6中网络流量数据的特征融合均包括特征融合步骤,所述样本集中的网络流量数据和待检测的网络流量数据都采用所述特征融合步骤完成特征融合,所述特征融合步骤为:
[0144] S6041、将GCN神经网络输出的空间特征OGCN以及BiGRU神经网络输出的时间特征OBiGRU进行融合,得到融合特征矩阵 ,其中n为网络流量数据量;
[0145] S6042、将得到的融合特征矩阵E经过归一化处理得到网络流量数据的分类标签。
[0146] 本实施例的特征矩阵E采用PyTorch中的cat函数进行拼接融合,吸收了空间和时间上的特征,具有丰富的关键特征信息,从而帮助模型做出更加准确的预测,然后将得到的融合特征矩阵E输入softmax函数,从而输出网络流量数据的分类标签。
[0147] 本实施例还使用交叉熵损失函数来优化损失值,通过迭代求解损失值和随机梯度下降来优化GCN‑BiGRU神经网络模型,使得损失函数的值收敛到最小。考虑到模型的复杂性,避免模型在训练的过程中出现过拟合,本实施例采用L2正则项对参数进行约束,因此模型的最终损失函数为:
[0148]
[0149] 其中,m为训练集数据量;yi为训练集第i个网络流量数据的分类标签; 为训练集第i个网络流量数据的预测概率; 为L2正则项; 为模型的所有参数集合。
[0150] 本实施例使用的软件环境为Python3.8,Pytorch1.8,实验硬件条件为Intel(R) Core(TM) i7‑9750H,NVIDIA GeForce GTX1650,16G RAM。采用Adam优化器对GCN‑BiGRU神经网络模型进行训练,Adam学习率为0.1,Epoch均为100,激活函数采用Sigmoid函数。
[0151] 本实施例采用分类准确率(Accuracy)、精确率(Precision)、召回率(Recall)和综合评价指标(F‑Measure)判断模型分类效果。设TP表示正确识别为攻击类的样本数,FP表示错误识别为攻击类的样本数,TN表示正确识别为正常类的样本数,FN表示错误识别为正常类的样本数。
[0152] Precision表示被分为攻击类的网络数据中实际为攻击类的比例,计算公式为:
[0153]
[0154] Recall表示被分为攻击类的网络数据占所有攻击类数据的比例,计算公式为:
[0155]
[0156] F‑Measure是Precision和Recall加权平均,用于综合Precision和Recall的评分,计算公式为:
[0157]
[0158] 用于调节准确率和召回率的比重,当 时F‑Measure为F1评分。
[0159] 实验结果如图4所示,其中normal表示正常网络流量,victim表示受害流量,attacker表示攻击流量,可以看出GCN‑BiGRU神经网络模型的准确率高于单独GCN神经网络模型或者单独BiGRU神经网络模型。
[0160] 实施例2
[0161] 如图5所示,本实施例提供一种基于时空特征融合的网络攻击检测系统,包括:
[0162] 采集模块101,用于获取网络流量数据作为样本集,以及获取待检测的网络流量数据,具体包括:
[0163] 形成初始化数据集RawDataSet,所述初始化数据集RawDataSet包括:连接第一次出现的时间Date first seen、持续时间Duration、使用协议类型Proto、源节点地址Src IP Addr、目的节点地址Dst IP Addr、源节点端口Src Pt、目的节点端口Dst Pt、包的数量Packets、字节数Bytes、数据流Flows、标识符Flags、服务类型Tos;
[0164] 预处理模块102,用于对样本集进行预处理,得到预处理后的样本集和对应的分类标签集,所述分类标签包括正常流量标签、受害流量标签和攻击流量标签;以及用于对待检测的网络流量数据进行预处理;
[0165] 模型构建模块103,用于构建GCN‑BiGRU神经网络模型,所述GCN‑BiGRU神经网络模型包括GCN神经网络模块、BiGRU神经网络模块以及对GCN神经网络模块和BiGRU神经网络模块的输出进行特征融合的特征融合模块;以及,利用预处理后的样本集和对应的分类标签集对GCN‑BiGRU神经网络模型进行训练和测试得到最终的GCN‑BiGRU神经网络模型。
[0166] 检测模块104,用于将预处理后的待检测的网络流量数据作为最终的GCN‑BiGRU神经网络模型的输入,通过GCN神经网络模块提取所述待检测的网络流量数据的空间特征,通过BiGRU神经网络模块提取所述待检测的网络流量数据的时间特征,在特征融合模块中对时间特征和空间特征进行特征融合,得到待检测的网络流量数据的分类标签。
[0167] 显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。