首页 > 专利 > 重庆理工大学 > 融合深度神经网络和层级注意力机制的恶意流量检测方法专利详情

融合深度神经网络和层级注意力机制的恶意流量检测方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2020-05-29
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2020-10-13
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2021-11-23
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2040-05-29
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN202010473313.4 申请日 2020-05-29
公开/公告号 CN111669384B 公开/公告日 2021-11-23
授权日 2021-11-23 预估到期日 2040-05-29
申请年 2020年 公开/公告年 2021年
缴费截止日
分类号 H04L29/06G06K9/62G06N3/04G06N3/08 主分类号 H04L29/06
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 5
权利要求数量 6 非专利引证数量 0
引用专利数量 5 被引证专利数量 0
非专利引证
引用专利 CN110166484A、CN110166484A、CN111027058A、CN108900546A、US20200076842A1 被引证专利
专利权维持 2 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 重庆理工大学 当前专利权人 重庆理工大学
发明人 刘小洋、刘加苗、丁楠 第一发明人 刘小洋
地址 重庆市巴南区红光大道69号 邮编 400054
申请人数量 1 发明人数量 3
申请人所在省 重庆市 申请人所在市 重庆市巴南区
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
重庆天成卓越专利代理事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
王宏松
摘要
本发明提出了一种融合深度神经网络和层级注意力机制的恶意流量检测方法,包括以下步骤:S1,获取原始流量数据,对获取的所述原始流量数据保存为能识别的文件格式的流量数据;S2,对步骤S1中保存的流量数据进行特征转换;S3,对步骤S2中转换后的流量数据进行数据包分段,得到数据包段;S4,通过时序处理特征向量捕获每个数据包段之间的特征信息;S5,分配得到注意力向量;S6,对其流量数据进行特征融合;S7,对其步骤S6中融合的特征进行线性变换;S8,将流量数据进行分类。本发明能够对恶意流量进行检测,增强性能。
  • 摘要附图
    融合深度神经网络和层级注意力机制的恶意流量检测方法
  • 说明书附图:图1
    融合深度神经网络和层级注意力机制的恶意流量检测方法
  • 说明书附图:图2
    融合深度神经网络和层级注意力机制的恶意流量检测方法
  • 说明书附图:图3
    融合深度神经网络和层级注意力机制的恶意流量检测方法
  • 说明书附图:图4
    融合深度神经网络和层级注意力机制的恶意流量检测方法
  • 说明书附图:图5
    融合深度神经网络和层级注意力机制的恶意流量检测方法
  • 说明书附图:图6
    融合深度神经网络和层级注意力机制的恶意流量检测方法
  • 说明书附图:图7
    融合深度神经网络和层级注意力机制的恶意流量检测方法
  • 说明书附图:图8
    融合深度神经网络和层级注意力机制的恶意流量检测方法
  • 说明书附图:图9
    融合深度神经网络和层级注意力机制的恶意流量检测方法
  • 说明书附图:图10
    融合深度神经网络和层级注意力机制的恶意流量检测方法
  • 说明书附图:图11
    融合深度神经网络和层级注意力机制的恶意流量检测方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-11-23 授权
2 2020-10-13 实质审查的生效 IPC(主分类): H04L 29/06 专利申请号: 202010473313.4 申请日: 2020.05.29
3 2020-09-15 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种恶意流量检测方法,其特征在于,包括以下步骤:
S1,获取原始流量数据,将获取的所述原始流量数据保存为能识别的文件格式的流量数据;
S2,对步骤S1中保存的流量数据进行特征转换;
S3,对步骤S2中转换后的流量数据进行数据包分段,得到数据包段;
S4,通过时序处理特征向量捕获每个数据包段之间的特征信息;在步骤S4具体包括以下步骤:
S41,根据输入的流量数据计算获得更新门数据;其更新门数据的计算方法为:
zt=σ(Wzxt+Uzht‑1),
Wz表示更新门的权重;
xt表示时刻t输入的流量数据;
Uz表示前一时刻隐藏状态矩阵ht‑1的更新门权重;
ht‑1表示t‑1时刻隐藏状态矩阵;
zt表示更新门数据;
σ()表示激活函数sigmoid;
S42,根据输入的流量数据计算得到重置门数据;其重置门数据的计算方法为:
rt=σ(Wrxt+Urht‑1),
Wr表示重置门的权重;
Ur表示前一时刻隐藏状态矩阵ht‑1的重置门权重;
rt表示重置门数据;
S43,根据步骤S42计算得到当前内存内容;其当前内存内容的计算方法为:
Wh表示流量数据xt的权重矩阵;
⊙表示按元素点乘;
U表示候选集的权重;
ht‑1表示t‑1时刻的隐藏状态矩阵;
表示当前候选集;
S44,根据步骤S41和步骤S43获取在当前时间步长的最后内存内容;其最后内存内容的计算方法为:
ht表示t时刻的隐藏状态矩阵;
S5,分配得到注意力向量;其注意力向量的计算方法为:
ui=tanh(Wwhi+bw),
tanh()表示双曲正切函数;
Ww表示隐藏状态矩阵hi的权重矩阵;
hi表示GRU模型在i时刻输出的隐藏状态矩阵;GRU模型用于步骤S4中,输入数据为流量数据;
bw表示权重矩阵Ww的偏置;
ui表示经过一层感知机后计算得到的值;
T表示矩阵的转置;
uw表示注意力权重矩阵;
l表示数据包段中数据分段的个数;
αi表示权重占比矩阵;
Vi=∑lαihi,
Vi表示注意力机制加权后的注意力向量;
S6,对流量数据进行特征融合;对流量数据进行特征融合的计算方法为:
max()表示取最大值函数;
Ci,j表示隐藏状态矩阵中i行j列的值;
Ci,j+1表示隐藏状态矩阵中i行j+1列的值;
得到一维的向量
S7,对步骤S6中融合的特征进行线性变换;对融合的特征进行线性变换的计算方法为:
H表示下一层有多少个神经单元;
Wkj表示第j个稠密单元的权重向量;
xk表示输入的信息;
bj表示第j个稠密单元的偏差;
f()表示激活函数;
将每个神经单元的输出连接起来得到稠密结果D=[D1,D2,D3,...,Dl];
S8,将流量数据进行分类。

2.根据权利要求1所述的恶意流量检测方法,其特征在于,在步骤S1中,原始流量数据的获取方法为采用抓包工具,并把抓好的数据包保存为pcap文件格式的流量数据。

3.根据权利要求1所述的恶意流量检测方法,其特征在于,在步骤S2中,对保存的流量数据进行特征转换的方法为利用CICFlowmeter‑V4.0工具,将pcap数据解析成79个数字特征,即每一个数据包由一个79维度向量构成。

4.根据权利要求1所述的恶意流量检测方法,其特征在于,在步骤S3中,对流量数据进行数据包分段的方法为根据时间的先后顺序把流量数据按长度l进行分段,每个数据包段中有l个数据分段,记作[l,f],f表示每个数据分段中的特征数量。

5.根据权利要求2所述的恶意流量检测方法,其特征在于,在步骤S2中,利用CICFlowMeter‑V4.0工具提取到的特征,若样本存在缺失值,则对缺失值的特征采用平均值法进行处理。

6.根据权利要求1所述的恶意流量检测方法,其特征在于,在步骤S8中,对流量数据的分类方法为:
是归一化的因子;
(i)
y 表示第i个样本的标签值;
(i)
x 表示第i个样本的值;
θ表示监测方法中被训练的权重;
K表示分类的类别数;
P(|)表示条件概率;
θj表示θ中的第j个权重;
(i)
若样本分类概率hθ(x )在预设样本分类阈值范围内,则该样本为正常流量;
(i)
若样本分类概率hθ(x )未在预设样本分类阈值范围内,则该样本为恶意流量。
说明书

技术领域

[0001] 本发明涉及一种检测恶意流量技术领域,特别是涉及一种融合深度神经网络和层级注意力机制的恶意流量检测方法。

背景技术

[0002] 随着计算机网络的不断发展,它正在不断改变人们的生活、学习和工作方式,但是目前面临着各种安全威胁,并且这种威胁变得越来越严重。于是人们提出了网络安全,其包括为防止和监视计算机网络和可以通过网络访问资源而进行的未经授权访问、滥用、修改或拒绝的策略和实践。网络安全主要包括其承载者信息的保密性,完整性和可用性(Confidentiality Integrity Availability,CIA)。任何一种试图破坏CIA或绕过设定网络安全机制的活动都可以视为网络入侵。目前安全领域针对安全攻击检测办法一般采用入侵检测系统(Intrusion Detection System,IDS),它是监视网络或系统是否存在恶意活动或违反策略的设备或软件应用程序。通常将任何入侵活动或违规行为报告给管理员,或使用安全信息和事件管理系统集中收集。IDS通常会检查特定网络的所有传入和传出数据包,以确定每个数据包是否具有入侵迹象。精心设计的IDS以及其中相关的功能部件,可以识别大多数入侵活动的特征,并通过写入安全日志或发出警告来自动响应它们。
[0003] 根据入侵检测系统的技术分类可以分为两类:滥用检测和异常检测。滥用检测又称为基于规则的入侵检测。在滥用检测中,入侵过程模型在被观察系统中保留下的踪迹是决策的基础,因此实现根据经验规则或者专家知识定义某些非法的特征行为,然后将观察对象与之进行比较做出是否具有此种非法行为系统的判别。滥用检测基于已知的系统缺陷和入侵模式,它能够准确地检测到某些特定的攻击,但却过度依赖事先定义好的安全策略。
[0004] 异常检测又称为基于行为的入侵检测。与滥用检测不同的是,在异常检测中,观察到的不是已知入侵行为,而是研究的正常通信过程中异常现象。异常检测通过检测系统的行为或使用情况的变化来完成。在建立异常检测的模型之前,首先必须建立统计概率模型,明确所观察对象的正常情况,然后决定在何种程度上将一个行为标为“异常”,并给出相应的具体措施。异常检测只能识别出,那些与正常过程有较大偏差的行为,而无法知道具体入侵情况。由于各种网络环境的适应性不强,很难获得精确的判定准则,异常检测经常会出现虚警情况。但尽管误报率可能很高,但它可以检测未知攻击。当前,网络结构越来越复杂,入侵方法也随着多样化和复杂化的趋势而发展,给入侵检测系统带来了更多的挑战。
[0005] 从机器学习的兴起,关于机器学习学习的许多研究开发了具有机器智能的入侵检测技术。比如支持向量机(Support Vector Machine,SVM),人工神经网络(Artificial Neural Network,ANN),XGBoost,遗传学算法(Genetic Algorithm,GA)和集成学习在入侵检测领域都取得了不错的成绩。但是因为机器学习算法只能作为一个分类器使用,具有许多的局限性,而当入侵变得越来越复杂和多样化。于是需要更好学习方法,尤其在自动提取入侵特征和分析。
[0006] 因深度学习的广泛研究研究与应用,尤其在自然语言处理、图像处理和语音处理,以及天气预报方面取得了巨大的成功。使用深度学习建立的模型具有高度非线性的结构,能够出色处理复杂数据集的能力。并且近年来并行计算以及其硬件的发展,为深度学习算法推广和应用带来了新契机。
[0007] 由于在训练难易程度和计算复杂性的问题,递归神经网络(Recurrent Neural Network,RNN)在过去几年中未能成为主流网络模型。近年来,随着深度学习理论的发展,RNN开始进入快速发展时期。目前,RNN已成功应用于手写识别体,语音识别和机器翻译。RNN的主要特性是它在隐藏的层中循环信息,该层可以记住以前处理过的信息,从而为处理时间序列信息带来了结构上的优势。相似地,许多网络入侵行为可以抽象为来自底层网络层次模型的特定时间序列的事件。因此,RNN被认为适合构建IDS中恶意流量检测模型。

发明内容

[0008] 本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种融合深度神经网络和层级注意力机制的恶意流量检测方法。
[0009] 为了实现本发明的上述目的,本发明提供了一种融合深度神经网络和层级注意力机制的恶意流量检测方法,包括以下步骤:
[0010] S1,获取原始流量数据,对获取的所述原始流量数据保存为能识别的文件格式的流量数据;
[0011] S2,对步骤S1中保存的流量数据进行特征转换;
[0012] S3,对步骤S2中转换后的流量数据进行数据包分段,得到数据包段;
[0013] S4,通过时序处理特征向量捕获每个数据包段之间的特征信息;
[0014] S5,分配得到注意力向量;
[0015] S6,对其流量数据进行特征融合;
[0016] S7,对其步骤S6中融合的特征进行线性变换;
[0017] S8,将流量数据进行分类。
[0018] 在本发明的一种优选实施方式中,在步骤S1中,原始流量数据的获取方法为采用抓包工具,并把抓好的数据包保存为pcap文件格式的流量数据;
[0019] 在步骤S2中,对保存的流量数据进行特征转换的方法为利用CICFlowmeter‑V4.0特征转换工具,将pcap数据解析成79个数字特征,即每一个数据包由一个79维度向量构成;
[0020] 在步骤S3中,对流量数据进行数据包分段的方法为根据时间的先后顺序把流量数据按长度l进行分段,每个数据包段中有l个数据分段,记作[l,f],f表示每个数据分段中的特征数量。
[0021] 在本发明的一种优选实施方式中,在步骤S2中,利用CICFlowMeter‑V4.0工具提取到的特征,若样本存在缺失值,则对缺失值的特征采用平均值法进行处理,即是利用其他样本未在该特征上未缺失进行加权平均,然后将其补上。
[0022] 在本发明的一种优选实施方式中,步骤S4包括以下步骤:
[0023] S41,根据输入的流量数据计算获得更新门数据;
[0024] S42,根据输入的流量数据计算得到重置门数据;
[0025] S43,根据步骤S41计算得到当前内存内容;
[0026] S44,根据步骤S42和步骤S43获取在当前时间步长的最后内存内容。
[0027] 在本发明的一种优选实施方式中,在步骤S41中,更新门数据的计算方法为:
[0028] zt=σ(Wzxt+Uzht‑1),
[0029] Wz表示更新门的权重;
[0030] xt表示时刻t输入的数据;
[0031] Uz表示前一时刻隐藏状态矩阵ht‑1的更新门权重;
[0032] ht‑1表示t‑1时刻隐藏状态矩阵;
[0033] zt表示更新门数据;
[0034] 在步骤S42中,重置门数据的计算方法为:
[0035] rt=σ(Wrxt+Urht‑1),
[0036] Wr表示重置门的权重;
[0037] xt表示时刻t输入的数据;
[0038] Ur表示前一时刻隐藏状态矩阵ht‑1的重置门权重;
[0039] ht‑1表示t‑1时刻隐藏状态矩阵;
[0040] rt表示重置门数据;
[0041] 在步骤S43中,当前内存内容的计算方法为:
[0042]
[0043] Wh表示流量数据xt的权重矩阵;
[0044] xt表示时刻t输入的数据;
[0045] rt表示重置门数据;
[0046] ⊙表示按元素点乘;
[0047] U表示候选集的权重;
[0048] ht‑1表示t‑1时刻的隐藏状态矩阵;
[0049] tanh()表示双曲正切函数;
[0050] 表示当前候选集;
[0051] 在步骤S44中,最后内存内容的计算方法为:
[0052]
[0053] zt表示更新门数据;
[0054] ht‑1表示t‑1时刻隐藏状态矩阵;
[0055] 表示当前候选集;
[0056] ht表示t时刻的隐藏状态矩阵。
[0057] 在本发明的一种优选实施方式中,在步骤S5中,注意力向量的计算方法为:
[0058] ui=tanh(Wwhi+bw),
[0059] tanh()表示双曲正切函数;
[0060] Ww表示隐藏状态矩阵hi的权重矩阵;
[0061] hi表示GRU模型在i时刻输出的隐藏状态矩阵;
[0062] bw表示权重矩阵Ww的偏置;
[0063] ui表示经过一层感知机后计算得到的值;
[0064]
[0065] ui表示经过一层感知机后计算得到的值;
[0066] T表示矩阵的转置;
[0067] uw表示注意力权重矩阵;
[0068] l表示数据包段中数据分段的个数;
[0069] αi表示权重占比矩阵;
[0070] Vi=∑lαihi,
[0071] αi表示权重占比矩阵;
[0072] hi表示GRU模型在i时刻输出的隐藏状态矩阵;
[0073] Vi表示注意力机制加权后注意力向量;
[0074] l表示数据包段中数据分段的个数。
[0075] 在本发明的一种优选实施方式中,在步骤S6中,对其流量数据进行特征融合的计算方法为:
[0076]
[0077] max()表示取最大值函数;
[0078] Ci,j表示隐藏层h矩阵中i行j列的值;
[0079] Ci,j+1表示隐藏层h矩阵中i行j+1列的值;
[0080] 得到一维的向量
[0081] 在本发明的一种优选实施方式中,在步骤S7中,对其融合的特征进行线性变换的计算方法为:
[0082]
[0083] H表示下一层有多少个神经单元;
[0084] Wkj表示第j个稠密单元的权重向量;
[0085] xk表示输入的信息;
[0086] bj表示第j个稠密单元的偏差;
[0087] f()表示激活函数;
[0088] 将每个单元的输出连接起来得到稠密结果D=[D1,D2,D3,...,Dl]。
[0089] 在本发明的一种优选实施方式中,在步骤S8中,对流量数据的分类方法为:
[0090]
[0091] 是归一化的因子;
[0092] y(i)表示第i个样本的标签值;
[0093] x(i)表示第i个样本的值;
[0094] θ表示模型中被训练的权重;
[0095] K表示分类的类别数;
[0096] T表示矩阵的转置;
[0097] P(|)表示条件概率;
[0098] 若样本分类概率hθ(x(i))在预设样本分类阈值范围内,则该样本为正常流量;
[0099] 若样本分类概率hθ(x(i))未在预设样本分类阈值范围内,则该样本为恶意流量。
[0100] 综上所述,由于采用了上述技术方案,本发明能够对恶意流量进行检测,增强性能。
[0101] 本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

实施方案

[0114] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0115] 本发明提出了一种层级注意力模型(HAGRU)用于恶意流量检测,且该模型基于目前有效、可靠的深度循环神经网络。层级注意力模型与之前所提出的用于恶意流量检测的神经网络相比,具有较高检测的准确率,较低的误报率和相对较好的实时性。恶意流量检测所提出的层级注意力模型的示意图如图1所示。
[0116] 本发明所设计的用于恶意流量检测的层级注意力模型(HAGRU)共分为五个部分,即输入层,特征转换部分、双向门控记忆单元部分,注意力层级部分以及多层感知机输出部分。下面本发明将逐一介绍其中的每一个部分的功能:
[0117] 首先是模型的输入层,输出层接收的是原始流量数据,它的数据来源于抓包工具(例如wireshark),并把抓好的数据包保存为pcap文件格式。
[0118] 接下来就是特征转换部分,该部分用于处理抓取的原始的pcap流量进行特征处理,所用到工具是CICFlowmeter‑V4.0,它能够让pcap数据解析成79个数字特征,即每一个数据包由一个79维度向量构成。但由于网络的数据流量具有时序性,且用于训练的数据包数量有上百万个,考虑到模型训练的硬件限制,把数据进行分段处理,划分每一个数据包段用于模型的训练。
[0119] 数据包段是根据时间的先后顺序,把流量数据按长度l进行分段,图2是一个具体的数据包段Seqi∈{Seq1,Seq2,Seq3,...,SeqI},里面包含有v1,v2,v3,...,vl共计l个数据分段,I为数据包段的总个数,i为1,2,3,……,I;且流量数据包段内含有正常的流量和恶意流量(也叫攻击流量),那么每一次输入到层级注意模型数据形如[l,f],f指数据分段中的特征数量。
[0120] 双向门控记忆单元通过时序处理特征向量,也是在图1标注的连接层,该层采用了双向的GRU,即数据可以从头到尾和从尾到头进行训练,更能够捕获每个数据包段之间的特征信息。
[0121] 剩下两部分是注意力机制和多层感知机输出。注意力机制能够使模型在计算力不变的情况,获得更多模型性能的提升,并且在恶意流量与普通流量之间能够做出更好的识别。本发明不仅使用了注意力机制提取重要特征,还使用最大池化特征进行融合,在原有特征映射提取丰富的特征信息,使得模型具有高的检测精度。而多层感知机把层级融合的特征进行线性变换,最终输出流量的类别。
[0122] 用于恶意流量检测层级注意模型(HAGRU)中的细节内容逐一进行详细的阐释。
[0123] 1.1门控循环单元GRU
[0124] GRU是一种循环神经网络,也是一种门控的神经网络。由Kyunghyun Cho等人于2014年所提出。如果想要明白GRU的工作机制,就需要先了解LSTM网络,它是由Hochreiter&Schmidhuber最早提出的一个特殊的循环神经网络。而GRU网络是根据LSTM网络变种得到的,GRU与LSTM相比由于缺少一个门,因此其参数量比LSTM少。在网络流量检测领域中,网络安全人员希望检测的设备能够快速检测经过的流量,而不希望网络流量在传输中产生比较大的延迟,模型的参数减少势必会使计算力需求下降,从而减少流量通过检测模型的时间,提升流量传输实时性。同时网络传输的流量数据包都有较强时序性,即上一时刻的数据和下一时刻的数据可能具有高度关联,因此模型的需要能够处理时序数据的能力。从本段所讲,流量检测模型需要至少两个特点:①能够尽可能减少参数,②能够处理时序数据。所以采用GRU作为模型的一部分。
[0125] 根据图3所示,展示GRU模型的内部具体一些结构,GRU模型主要由更新门和重置门分别使用zt和rt表示,相比LSTM模型少了一个门控信号,于是GRU的参数量就下降了。
[0126] 更新门数据zt用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门数据的值越大说明前一时刻的状态信息带入越多。
[0127] zt=σ(Wzxt+Uzht‑1)                                        (1)[0128] σ()表示激活函数sigmoid;
[0129] Wz表示更新门的权重;
[0130] xt表示时刻t输入的流量数据;
[0131] Uz表示前一时刻隐藏状态矩阵ht‑1的更新门权重;
[0132] ht‑1表示t‑1时刻隐藏状态矩阵;
[0133] zt表示更新门数据;
[0134] 重置门数据rt控制前一状态有多少信息被写入到当前的候选集 重置门数据越小,前一状态的信息被写入的越少。
[0135] rt=σ(Wrxt+Urht‑1)                                        (2)[0136] σ()表示激活函数sigmoid;
[0137] Wr表示重置门的权重;
[0138] xt表示时刻t输入的流量数据;
[0139] Ur表示前一时刻隐藏状态矩阵ht‑1的重置门权重;
[0140] ht‑1表示t‑1时刻隐藏状态矩阵;
[0141] rt表示重置门数据;
[0142] 当xt插入网络单元时,它乘以自身的权重Wr。同样的,它包含了之前t‑1时刻的信息,并乘以它自身的权重Ur。将这两个结果相加,并应用一个sigmoid激活函数来压缩0到1之间的结果。
[0143] 当前内存内容为:
[0144]
[0145] Wh表示流量数据xt的权重矩阵;
[0146] xt表示时刻t输入的流量数据;
[0147] rt表示重置门;
[0148] ⊙表示按元素点乘;
[0149] U表示候选集的权重;
[0150] ht‑1表示t‑1时刻的隐藏状态矩阵;
[0151] tanh()表示双曲正切函数;
[0152] 表示当前内存内容,即是当前候选集;
[0153] 将输入xt乘以一个权重Wh,ht‑1和一个权重U,计算重置门rt和Uht‑1之间的Hadamard(元素方面的)乘积。
[0154] 在当前时间步长的最后内存内容为:
[0155]
[0156] zt表示更新门;
[0157] ht‑1表示t‑1时刻隐藏状态矩阵;
[0158] 表示当前候选集;
[0159] ht表示当前时刻t步长的最后内存内容,即是t时刻的隐藏状态矩阵;
[0160] 步骤1:应用元素方式的乘法到更新门zt,ht‑1;
[0161] 步骤2:应用元素方式的乘法到更新门(1‑zt),
[0162] 步骤3:对步骤1和2的结果求和。
[0163] 1.2激活函数
[0164] 在神经网络中激活函数主要用于把神经网络单元的数值进行非线性变换,增加神经网络模型的非线性,提升神经网络模型表达能力。公式(5)表示的双曲正切函数,用于在注意力机制的一个激活函数。公式(6)表示ReLU(The Rectified Linear Unit)在网络模型中层之间的激活函数。
[0165] f1(x)=tanh(x)                                      (5)
[0166] f2(x)=max(0,wTx+b)                                        (6)[0167] tanh()表示双曲正切函数;
[0168] max()表示取最大值函数;
[0169] w表示输入数据x的权重向量;
[0170] T表示矩阵的转置;
[0171] b表示输入数据x的偏置;
[0172] 1.3注意力机制
[0173] 在网络中流量检测环境通常部署在防火墙上,而防火墙所承载的硬件平台通常计算资源和存储资源都有限制,超过额定的带宽流量让防火墙成为网络传输链路上瓶颈,不利于网络的传输。特别是有限的计算资源情况下,更应该使流量实时通过防火墙,因此流量检测器必须使用合理的计算机资源。而注意力机制恰好能解决一个难点,注意力机制是解决信息超载问题的主要手段的一种资源分配方案,将计算资源分配给更重要的任务。合理有效的利用计算资源让检测模型集中注意力在恶意流量特征映射上的识别。
[0174] 注意力机制分为软注意力、硬注意力和自注意力。本发明采用软注意力的机制方式,首先模型有一个可以训练的注意力权重矩阵,通过激活函数后把值传输给Softmax函数得到一个权值和为1的K(数据集标签类别)维度权重向量,最后与GRU的隐藏层加权计算得到注意力向量。
[0175] ui=tanh(Wwhi+bw)                                        (7)
[0176]
[0177] Vi=∑lαihi                                        (9)
[0178] tanh()表示双曲正切函数;
[0179] Ww表示隐藏状态矩阵hi的权重矩阵;
[0180] hi表示GRU模型在i时刻输出的隐藏状态矩阵;
[0181] bw表示隐藏状态矩阵hi的偏置;
[0182] ui表示经过一层感知机后计算得到的值;
[0183] T表示矩阵的转置;
[0184] uw表示注意力权重矩阵;
[0185] l表示数据包段中数据分段的个数;
[0186] αi表示权重占比矩阵;
[0187] Vi表示注意力机制加权后注意力向量。
[0188] 此时令i=t;则有:
[0189] ut=tanh(Wwht+bw);
[0190]
[0191] Vt=∑lαtht;
[0192] tanh()表示双曲正切函数;
[0193] Ww表示隐藏状态矩阵ht的权重矩阵;
[0194] ht表示GRU模型在t时刻输出的隐藏状态矩阵;
[0195] bw表示权重矩阵Ww的偏置;
[0196] ut表示经过一层感知机后计算得到的值;
[0197] T表示矩阵的转置;
[0198] uw表示注意力权重矩阵;
[0199] l表示数据包段中数据分段的个数;
[0200] αt表示权重占比矩阵;
[0201] Vt表示注意力机制加权后注意力向量。
[0202] 1.4最大池化
[0203] 最大池化是基于样本的离散化过程,主要用于对隐藏层(循环神经网络)输出或者图像的张量进行下采样,以减少其尺寸。本发明使用最大池化主要使用在第一阶段中,对GRU循环神经网络输出的隐藏层进行下采样,这样得到流量的显著特征,帮助模型减少过拟合。同样,它通过减少学习参数的数量来减少计算成本,并为内部表示提供基本的平移不变形。在本发明使用的一维的最大池化,对隐藏层h={h1,h2,h3,...,ht‑1,ht}最大池化,h1为在1时刻输出的隐藏状态矩阵,h2为在2时刻输出的隐藏状态矩阵,h3为在3时刻输出的隐藏状态矩阵,……ht‑1为在t‑1时刻输出的隐藏状态矩阵,ht为在t时刻输出的隐藏状态矩阵;用Ci,j表示隐藏层h中的每个特征映射值,通过式(10),以滤波器大小为2,计算每个维度最大值
[0204]
[0205] max()表示取最大值函数;
[0206] Ci,j表示隐藏层h矩阵中i行j列的值;
[0207] Ci,j+1表示隐藏层h矩阵中i行j+1列的值;
[0208] 隐藏层h最终通过最大池化结果,得到一维的向量 l表示序列长度(即数据包段中数据分段的个数)。
[0209] 1.5多层感知机
[0210] MLP(Multilayer Perceptron)是一种前向结构的人工神经网络,是映射一组输入向量到输出向量。在每个结点的地方都有一个非线性激活函数单元,如公式(11)表示一个神经网络完成计算后,需要经过激活函数(11),把值传递到下一神经单元。
[0211]
[0212] D=[D1,D2,D3,...,Dl]                                        (12)[0213] H表示下一层有多少个神经单元;
[0214] Wkj表示第j个稠密单元的权重向量;
[0215] xk表示输入的信息;即
[0216] bj表示第j个稠密单元的偏差;
[0217] f()表示激活函数,通常是relu激活函数;l表示数据包段中数据分段的个数;
[0218] 对于每个单元可以得到输出Dj,最后将每个单元的输出连接起来得到稠密结果D。
[0219] 1.6输出Softmax
[0220] Softmax回归是逻辑回归函数的一种,在数据集K类标签下,得到值在(0,1)的K维度的一维向量σ(x),计算该向量公式如(13)所示。
[0221]
[0222] xj表示输入到softmax层的值;
[0223] K表示分类的类别数;
[0224] 在流量分类输出的最后阶段使用Softmax regression能够完成这一个多分类任务。为了建立一个多分类器,MLP输出x到Softmax,需要一个假设函数来估计每个类j的概率P(y=j|x)。也就是说,需要估计每个可能的分类输出的概率。具体来讲,假设函数应该输出一个K维向量(向量元素之和为1)以表示估计的概率。假设函数的公式如(14)所示。
[0225]
[0226] y(i)表示第i个样本的标签值;
[0227] x(i)表示第i个样本的值;
[0228] θ表示模型中被训练的权重;
[0229] K表示分类的类别数;
[0230] T表示矩阵的转置;
[0231] P(|)表示条件概率;
[0232] 式中,假设函数是hθ(x(i)),且θ0,θ1,...,θK是确定的参数, 是归一化的因(i)子。若样本分类概率hθ(x )在预设样本分类阈值范围内,则该样本为正常流量;若样本分(i)
类概率hθ(x )未在预设样本分类阈值范围内,则该样本为恶意流量。此外,如果θ→∞,那么Softmax会变成最大函数。当采取不同的有限值,Softmax可以被认为是一个参数化和最大化的软化功能。
[0233] 在显示屏上显示统计监测到的恶意流量的总数目和恶意流量所对应的时刻,以及展示当天、每个星期、每个月、每个季度、当年之一或者任意组合的恶意流量的攻击次数曲线及其准确率、查准率、检测率、误报率、综合率等性能评价参数。
[0234] 1.7损失函数
[0235] 使用交叉熵损失函数(目标函数),用于计算真值和模型预测值之间的损失值,然后使用损失值,反向传播求导,梯度更新迭代,最后得到模型近似最优解θ。式(15)是交叉熵损失表达式,适用于二分类或者多分类loss函数的计算。
[0236]
[0237] 其中,x(i)表示第i个样本的值,y(i)表示第i个样本的标签值,m为训练样本的数量,(1) (1) (2) (2) (m) (m)模型中被训练的权重θ,训练集{(x ,y ),(x ,y ),...,(x ,y )},训练样本标签有K(i)
类,则y ∈{1,2,...,K}。
[0238] 2实验和分析
[0239] 2.1实验环境
[0240] 本发明提出的模型的超参数:初始化学习率0.01;学习率参数调整方式采用余弦退火;梯度参数优化器Adam,且其中参数betas为0.9和0.99;Epoch为320。
[0241] 实验的硬件环境是处理器CPU是I7‑4790K@4.4GHz,内存是64GB,存储SSD容量为2TB,用于实验的网络模型加速训练设备是NVIDIA RTX‑2080TI。本实验操作系统是Ubuntu18.04 LTS,CUDA 10.1,cuDNN 7.5,网络模型使用PyTorch框架编写。
[0242] 2.1数据集
[0243] 实验的数据集是用来验证本发明所提出的HAGRU模型性能,接下来分析三个数据集(NSL‑KDD、CIC‑IDS2017和CSE‑CIC‑IDS2018)的组成和数据集的一些特征。
[0244] 2.2.1NSL‑KDD
[0245] NSL‑KDD数据集于2009年被生成,然后被广泛用于入侵检测实验。在一些网络安全入侵检测实验中,几乎所有的研究人员都将NSL‑KDD用作基准数据集,NSL‑KDD不仅有效地解决了KDD Cup 1999数据集固有的冗余样本问题,而且合理调整数据集的各类样本的比例,使数据集类别更加的平衡,这样流量分类器模型就不会偏向更频繁的数据样本类别。NSL‑KDD数据集包含训练集(KDDTrain+)和测试接(KDDTest+),它们具有正常流量记录和四种不同类型的攻击流量的记录。如表1所示,统计训练集和测试集包含的流量数据标签类别分别是正常流量和四种攻击流量:Dos(拒绝服务攻击)、R2L(unauthorized access from a remote machine)、U2R(unauthorized access to local superuser(root)privileges)、Probe(surveillance and other probin)。如表2展示每一条流量经过数值特征化后得到一条流量的特征向量,共有41个特征,其中包含基本特征(编号0‑9的特征)、内容特征(编号
10‑21)、通信特征(编号22‑40)。并且在测试集中有一些独特的攻击类型,但是训练集并没有出现,模型在这样测试集上更能够反应模型实际的恶意流量检测的能力。
[0246] 表1 NSL‑KDD数据中标签分类
[0247]   Toal Normal Dos Probe R2L U2R+
KDDTrain 125973 67343 45927 11656 995 52
KDDTest+ 22544 9711 7458 2421 2754 200
[0248] 表2 NSL‑KDD数据集特征
[0249] No. Feature Type No. Feature Type0 duration continuous 21 is_guest_login discrete
1 protocol_type discrete 22 count continuous
2 service discrete 23 Srv_count continuous
3 src_bytes continuous 24 serror_rate continuous
4 dst_bytes continuous 25 Srv_serror_rate continuous
5 flag discrete 26 Rerror_rate continuous
6 land discrete 27 Srv_reror_rate continuous
7 wrong_fragment continuous 28 Same_srv_rate continuous
8 urgent continuous 29 Diff_srv_rate continuous
9 hot continuous 30 Srv_diff_host_rate continuous
10 num_failed_logins continuous 31 Dst_host_count continuous
11 logged_in discrete 32 Dst_host_srv_count continuous
12 num_compromised continuous 33 Dst_host_same_srv_rate continuous
13 root_shell discrete 34 Dst_host_diff_srv_rate continuous
14 su_attempted discrete 35 Dst_host_srv_diff_host_rat continuous
15 num_root continuous 36 Dst_host_srv_diff_host_rat continuous
16 num_file_creations continuous 37 Dst_host_serror_rate continuous
17 num_shells continuous 38 Dst_host_srv_serror_rate continuous
18 num_access_files continuous 39 Dst_host_rerror_rate continuous
19 num_outbound_cmds continuous 40 Dst_host_srv_rerror_rate continuous
20 is_hot_login discrete      
[0250] 2.2.2 CIC‑IDS2017
[0251] CIC‑IDS2017数据集包含良性和最近的常见攻击流量数据,是在真实的背景流量(正常流量)下展开模拟黑客攻击,并通过监视器收集到网络数据流量。为了解决用于训练的恶意流量检测模型的数据真实有效性,于是CIC‑IDS2017涵盖了非常广泛的流量,例如:具有完整的网络拓扑,包括调制解调器、防火墙、交换机、路由器、以及各类操作系统(Windows,Ubuntu and Mac OS)和多样性的攻击,大约包含基于Web攻击、暴力破解、DoS、DDoS、常见渗透攻击、心脏滴血、僵尸网络、网络扫描。另外根据每个时间段的攻击来标定攻击流量的数据类型,如表3展示CIC‑IDS2017数据集各类攻击样本的分布情况,由于正常的流量比攻击流量样本多,因此需要进行数据平衡,保证模型泛化能力的性能。CIC‑IDS2017数据与CSE‑CIC‑IDS2018一样使用CICFlowmeter‑V4.0把流量数据进行特征处理变成数值向量信息,并且流量特征达到79项,比NSL‑KDD特征数量还多,这样更容易让恶意流量检测模型精度的提高。
[0252] 表3 CIC‑IDS2017数据集攻击类型分布
[0253]Attack Name Frequency Attack Name Frequency
SSH‑Patator 5897 Web Attack&Brute Force 1507
FTP‑Patator 7938 Web Attack&XSS 652
DoS slowloris 5796 Web Attack&Sql Injection 21
DoS GoldenEye 10293 Infiltration 36
Heartbleed 11 Bot 1966
DoS Slowhttptest 5499 PortScan 158930
DoS Hulk 231073 DDoS 128027
[0254] 2.2.3CSE‑CIC‑IDS2018
[0255] CSE‑CIC‑IDS2018数据集由加拿大网络安全研究所(Canadian Cyber Security Research Institute,CIC)和通信安全机构(CSE)创建的数据集,模拟真实的网络通信环境下恶意用户可能发起的网络攻击而收集到的流量数据,该数据集记录了10天网络流量(其中包含合法流量和恶意流量)。数据集收集了七种不同场景的攻击,包括暴力破解,Heartbleed,僵尸网络,DoS,DDoS,Web攻击以及内网络的渗透。
[0256] CSE‑CIC‑IDS2018数据集中包含样本流量类别标签。类别标签分为正常网络流量和具有攻击性的网络活动产生的流量。数据特征信息包含了网络交互的信息)例如,协议名称、时间段、源IP、目标IP,源端口,目的端口等信息)。表4列出具体攻击类型以及相应的样本的数量。
[0257] 表4 CSE‑CIC‑IDS2018中不同攻击类型样本统计
[0258]
[0259]
[0260] CIC团队每天记录原始数据,包括网络流量和事件日志。在从原始数据进行特征提取的过程中,他们使用CICFlowMeter‑V4.0提取了超过了80多个网络流量特征。最后,将这些数据保存为CSV文件方便机器学习方法的研究。
[0261] 2.3数据预处理
[0262] 2.3.1数字化
[0263] 实验使用的三个数据集中当中,只有NSL‑KDD数据集需要数值处理,目的是把字符类型的特征转化成数值特征。在NSL‑KDD数据中有38个数值型特征和3个字符型特征。因为恶意流量检测模型输入必须为数值型特征向量,必须对非数值型特征进行数值化处理,例如“protocol_type”,“service”和“flag”特征。例如特征‘protocol_type’有三种属性,分别是‘tcp’,‘udp’and‘icmp’,将这个特征进行one‑hot编码为(1,0,0),(0,1,0),(0,0,1)向量。同上,‘service’有70种属性,‘flag’有11种属性都需要进行one‑hot编码。
[0264] 2.3.2归一化
[0265] 本论文实验所使用三个数据集都需要数据归一化操作,数据归一化的能够让模型的参数梯度更新每次都朝向正确的方向,同时也能稳定收敛。例如“duration[0,58329]”,“src_bytes[0,1.3×109]”,“dst_bytes[0,1.3×109]”,这些特征值最大和最小值相差较大,需要min‑max标准化,对原始数据进行线性变换,使特征值映射到(0‑1)之间。进行数值归一化使用Min‑Max的方法,公式如(16)。
[0266]
[0267] Min表示数据中的最小值;
[0268] Max表示数据中的最大值;
[0269] xi表示数据中的第i个数据;
[0270] 2.3.3数据缺失值处理
[0271] 流量数据通过CICFlowMeter‑V4.0工具提取到的特征,有少部分样本的存在缺失值,本发明针对缺失值的特征采用平均值法进行处理,利用其他样本未在该特征上未缺失进行加权平均,然后将其补上。
[0272] 另外一个不同于缺失值的情况,在特征上出现“NAN”和“Infinity”的情况,本发明采用了平均值法,将其填充。
[0273] 2.3.4数据采样
[0274] (1)恶意流量频次采样
[0275] 根据攻击对攻击行为的分析,一般情况下,网络攻击基本是连续性的,那么其对应产生的攻击流量会在某一个段时间内频繁出现。为了把训练的数据模拟成真实环境下的攻击请求频率,采用局部攻击数据采样。如图4所示,网络攻击的在时间段上频率,当频率值为0时,即表示此时没有网络攻击流量。
[0276] 根据图4的网络攻击频率在和结合本发明所提出的数据包段方式,如图2,即在数据包段内出现攻击数据包的频次作网络攻击频率。显然当没有出现攻击时数据包段内部并没有攻击数据包,当攻击频次很少时,相对应的在数据包段的攻击数据包也很少,同理当攻击频次非常高时,那数据包段内几乎都是攻击数据包。
[0277] (2)数据样本不平衡
[0278] 在文章中用于实验的三个数据集,其中有CIC‑IDS2017、CSE‑CIC‑IDS2018数据集的样本类别数量不平衡,因为在网络环境中收集的数据大多数是正常的流量,只有少部分是攻击的流量,如果不处理数据平衡问题那么就可能导致训练的模型具有偏向性,导致模型的泛化能力比较差。于是本发明应对正常流量样本比攻击流量多很多情况下,决定使用欠采样,即对正常流量样本抽取部分用于模型的训练,保证数据类别的平衡性。
[0279] 2.4性能评估
[0280] 对于分类问题,可以有二分类和多分类,二分类的结果分为正确或不正确,而多分分类是按标签进行多分类,但是多分类的问题可以拆解为多个二分类的问题,那么所有可能的结果可以分为以下四个情况,如表5所示。
[0281] 表5混淆矩阵
[0282]
[0283] TP(True Positive):实际攻击被归类为攻击;
[0284] TN(True Negative):实际正常记录被分类为正常;
[0285] FP(False Positive):实际的正常记录被归类为攻击;这种情况也称为假警报;
[0286] FN(False Negative):实际攻击被归类为正常记录。
[0287] 接下来使用不同评价指标来评估所提出的模型的性能:
[0288]
[0289] 准确率衡量被正确分类流量样本占总流量样本的比例。
[0290]
[0291] 查准率是衡量恶意流量检测模型把标签为恶意的流量样本预测为恶意流量样本占整个恶意流量样本之比。
[0292]
[0293] 检测率是衡量标签为恶意流量占被模型检测到恶意流量之比,来衡量模型检测恶意流量的能力。
[0294]
[0295] 误报率是衡量正常流量被检测模型分为恶意攻击型流量的概率。
[0296]
[0297] Precision表示查准率;
[0298] F‑score是由查准率和检测率两个因素平衡构成的综合率,这是有效评价一个模型综合检测的有效性度量。式(21)中的β是一个权重因子,通常取值为1。
[0299] 一方面,从模型分类器的角度来看,查准率和检测率是一对相互矛盾的指标。更高的查准率意味着更少的误报,但是更高的检测率也意味着更少的误报。例如,如果将更多可疑攻击归为攻击(那么在极端情况是将所有流量归为攻击流量),则检测率将会提高,但查准率将大大降低,反之亦然。因此,单个高查准率或检测率并没有意义的。另一方面,从入侵检测的角度来看,尤其是在某些严格的环境中(需要高度的安全的网络环境,尤其在电商、银行等网络环境),入侵的容忍度很低,因此单独的检测率也是重要指标。F‑score度量是对查准率和检测率的综合考虑,F‑score是基于查准率和检测率的谐波平均值。F‑score值越高,那么意味着准确率和检测率越高。
[0300] 2.5实验结果
[0301] 本发明提出一种层级注意力的恶意流量检测模型HAGRU,然后用实验证明该模型在NSL‑KDD、CIC‑IDS2017以及CES‑CIC‑IDS2018三个不同数据集上的有效可行性。在实验中进行了数据频率采样和数据不平衡处理,并在每个数据集上进行了训练集和测试集的划分,其比例为8:2。采用了三种机器学习模型和三种深度学习模型与所提出的HAGRU模型进行对比分析。被选择的三个机器学习模型为SVM、XGBoost、Random Forest,三个模型都其具体的代表性,SVM是单一分类器,XGBoost是一种串行流的集成学习算法,而Random Forest是一种并行的集成学习算法。而在深度学习模型方面对比,本发明采用的是经典神经网络作为对比,分别是多层感知机(MLP)、LSTM、GRU。所提出的HAGRU模型是基于GRU模型之上,因此选择与GRU模型进行对比是很有必要的。
[0302] 实验结果均是模型在测试集上的表现。如表6~表8所示,表6~表8的列显示各个数据集内具体样本类型,表6~表8的行显示提出的HAGRU模型和其余6个对比模型。本发明选择了准确率(Acc)、误报率(FPR)、F‑score作为主要的评估指标,而有关本发明所提出HAGRU模型在这三个数据集详细评估指标和混淆矩阵在附录(如图6~图11)展示。评估指标的数均在[0‑1]之间,其中准确率(Acc)评估指标越高。模型的在这类数据上效果越好,同理F‑score也是。但是误报率(FPR)是值越低越好,误报率越小,模型在恶意流量检测越好,可以提高网络安全,减少因误报造成的安全问题。
[0303] 表6数据集NSL‑KDD各模型性能对比,单位是百分数(%)
[0304]
[0305] 表7数据集CIC‑IDS2017各模型性能对比,单位是百分数(%)
[0306]
[0307] 表8数据集CES‑CIC‑IDS2018各模型性能对比,单位是百分数(%)
[0308]
[0309] 接下来分析所提出的HAGRU模型和6个经典模型在各个数据集上评估指标分析。
[0310] 表6中是各个模型在NSL‑KDD数据集上的评估指标。为了便于观察,表格内所有数值均是百分制单位。通过表6可知,本发明所提出HAGRU模型在总样本的准确率和总样本的F‑score比对照的模型稍好。HAGRU模型在NSL‑KDD数据集的Normal、DoS、Probe、R2L类别上并没有在性能指标上领先对比模型,而在最后一个类别U2R上比对比模型性能突出,这样使HAGRU模型在总的样本上评估指标比对照模型的指标要优异一些且达到了准确率为99.74%和F‑score为95.56%。由于NSL‑KDD数据集上存在数据样本类别不平衡,且即使已经进行了数据采样处理,也不能完全解决这一个问题,且在恶意流量检测中所使用数据无法进行数据增强方式来扩充数据多样性。但由于HAGRU模型采用了注意力机制方式,即针对数据量比较少样本的情况也能够做出好的识别,使得HAGRU模型在类别不平衡数据集也取得相对较好的性能。
[0311] 表7中是各个模型在CIC‑IDS2017数据集上的表现。实验中把CIC‑IDS2017重新进行归类采样,原有的数据类别(表3)Web Attack&Brute、Web Attack&XSS、Web Attack&Sql,因为数据量太小,无法满足实验的需求,于是把这个三个类别都重新划分为Web Attack。同理其他类似样本,都按照攻击类型的相似性进行类别划分,于是得到了Bot、DDoS、DoS、Patator、PortScan、Web Attack六种攻击类别。根据表7可知,HAGRU同样在总样本的性能上比对照模型优异一些,准确率和F‑score分别为99.73%、96.10%,但同样得指出并不是在所有类别上每个评估指标都良好,例如Bot类别提出的模型并没有比其他模型表现突出。但从综合的角度来考量所提出的HAGRU模型比其他模型好,尤其在某些类别不平衡的情况下,例如Web Attack类别的F‑score值达到了89.72%,均比其他模型的F‑score值高。在表7中当FPR的值为0时即使误报率为0,这种情况不一定模型表现性能就好,需要进一步查看F‑score的值,例如使用Random Forest模型对Bot分类,虽然FPR为0,但F‑score值为1.51,远小于其他模型的值,这种情况下Random Forest模型对Bot类别分类性能非常槽糕,同理但凡模型出现这种类似的情况都可以认定为模型的性能比较差。而提出的HAGRU模型对CIC‑IDS2017数据各类别流量样本分类比其他模型具有一定的提升。
[0312] 表8中是各类模型在CSE‑CIC‑IDS2018数据集上的表现。根据CSE‑CIC‑IDS2018数据集中各攻击样本统计如表4所示,有些攻击类别非常少,造成与其他样本出现严重的数据集平衡。因此不仅需要做样本不平衡处理,同时也要进行样本重定义标签,本发明依据攻击近似前提下对Brute Force‑Web、Brute Force‑XSS、SQL Injection这个三类合成Web Attack。于是在CSE‑CIC‑IDS2018数据集中一共分为13个类别:Benign、DDoS AttacksLOIC‑HTTP、Bot、DDoS attack‑HOIC、DoS Attack‑Hulk、FTP‑Brute Force、SSH‑Brute Force、Infilteration、DoS Attacks lowHTTPTest、DoS Attacks‑GoldenEye、DoS Attacks‑SlowLoris、DDoS Attack‑LOIC‑UDP、Web‑Attack。本发明提出的HAGRU模型依然能够在总样本情况下取得不错的成绩,准确率和F‑score的值分别是94.87%和93.95%。在每个攻击类别上,HAGRU模型与其他模型相比基本都有一些性能上的提升,并且HAGRU模型在DDoS Attack‑LOIC‑UDP、SSH‑Brute Force、DDoS attack‑HOIC这三类中实现了0误报率,准确度和F‑score都接近100%,表明该模型能够非常好的识别这类攻击。
[0313] 本发明还进行了数据包段长度对HAGRU模型的影响,因此选择数据包段长度为64、128、256、512、1024进行对比。实验结果如图5所示,经过综合指标precision、Detection Rate、FPR、F‑score的考虑,当数据包段长度为384时,HGRU模型性能表现良好。于是在实验中HAGRU模型数据包分段大小都选择384这个值。
[0314] 通过在三个数据集上实验进行分析来看,本发明所提出的HAGRU模型在总的样本分类性能具有一定的优势,且相比NSL‑KDD这种小型数据集,在CIC‑IDS2017和CSE‑CIC‑IDS2018相对较大数据集上,HAGRU模型不仅在总的样本分类取得不错的成绩,同时在多数攻击类别上也取得不错的成绩。因此越大的数据集和越多样本类别来训练提出的HAGRU模型,会使模型的性能越来越好。
[0315] 尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

附图说明

[0102] 本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0103] 图1是本发明恶意流量检测模型示意框图。
[0104] 图2是本发明流量数据包段示意图。
[0105] 图3是本发明GRU的结构示意图。
[0106] 图4是本发明网络攻击频率示意图。
[0107] 图5是本发明数据包分段大小对模型的影响示意图。
[0108] 图6是本发明在CSE‑CIC‑IDS2018数据集上的表现示意图。
[0109] 图7是本发明在CSE‑CIC‑IDS2018中各类别样本评估示意表(单位是百分数(%))。
[0110] 图8是本发明在CIC‑IDS2017数据集上的表现示意图。
[0111] 图9是本发明在CIC‑IDS2017中各类别样本评估示意图(单位是百分数(%))。
[0112] 图10是本发明在NSL‑KDD数据集上的表现示意图。
[0113] 图11是本发明在NSL‑KDD中各类样本评估示意图(单位是百分数(%))。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号