
译者 | 李睿
审校 | 重楼
零日攻击是当前网络安全领域最具破坏性的威胁之一,它们利用此前未发现的漏洞入侵,能够绕过现有的入侵检测系统(IDS)。传统的基于签名的入侵检测系统(IDS)依赖于已知攻击模式构建防御规则,因此在此类攻击面前往往失效。为了检测这种零日攻击,人工智能模型需要了解正常的网络行为模式,并自动识别并标记偏离正常模式的异常行为。
去噪自编码器(DAE)是一个很有应用前景的解决方案,作为一种无监督深度学习模型,DAE 的核心目标是学习正常网络流量的稳健特征表示。其核心理念是:在模型训练过程中,先对输入的正常网络流量数据加入轻微噪声(即“破坏”数据),再迫使模型学习从带噪数据中重建出原始的“干净数据”。这迫使其捕捉数据的本质特征,而不是记忆噪声。一旦遭遇未知的零日攻击,损失函数(即重建误差)将会激增,从而实现异常检测。本文将探讨在UNSW-NB15数据集上如何使用DAE进行零日攻击检测。
去噪自动编码器的核心理念
在去噪自编码器的运作机制中,我们在将输入数据传入编码器之前,会主动向其注入噪声。随后,模型的目标是学习从含噪输入中重构出纯净的原始数据。为了鼓励模型关注有意义的特征而不是细节,使用随机噪声破坏输入数据。其数学表达式如下:

图1损失函数
重建损失也称为损失函数,它评估原始输入数据x和重构输出数据x̂之间的差异。重建误差越低,表明模型越能忽略噪声干扰,并保留输入数据的核心特征。下图展示了去噪自编码器(DAE)的结构示意图。

图2 去噪自编码器的结构示意图
示例:二元输入案例
对于二元输入(x∈{0,1}),以概率q随机翻转某一位或将其置零,否则保持不变。如果允许模型以含噪输入x为目标最小化误差,模型将只学会简单复制噪声。但由于强制其重构真实值x,模型必须从特征间的关联中推断缺失信息。这使得去噪自编码器能够突破单纯记忆的局限,学习输入数据的深层结构,从而构建出具有噪声稳健性的模型,并在测试阶段展现出更强的泛化能力。在网络安全领域,去噪自编码器可以有效检测偏离正常模式的未知攻击或零日攻击。
案例研究:使用去噪自编码器检测零日攻击
这个示例演示了去噪自动编码器如何检测UNSW-NB15数据集中的零日攻击。训练模型在不受异常数据影响的情况下学习正常流量的底层结构。在推理阶段,模型可以评估显著偏离正常模式的网络流量(例如零日攻击相关流量),这些异常流量会产生高重建误差,从而实现异常检测。
步骤1.数据集概述
UNSW-NB15数据集是用于评估入侵检测系统性能的一个基准数据集,包含正常流量样本及九类攻击流量(如Fuzzers、Shellcode、Exploits等)。为了模拟零日攻击,只使用正常流量进行训练,并单独保留Shellcode攻击用于测试,从而确保模型能够针对未知攻击行为进行评估。
步骤2.导入库并加载数据集
导入必要的库并加载UNSW-NB15数据集。然后执行数字预处理,分离标签和分类特征,并仅聚焦正常流量进行训练。
python
复制输出:
复制输出显示数据集有254,004行和43列。标签0表示正常流量,1表示攻击流量。第五行是Shellcode攻击,使用它来检测零日攻击。
步骤3.预处理数据
python
复制输出:
复制在移除数据标签之后,仅保留良性样本(即标签i==0的样本)。数据集中包含37个数值型特征,以及4个经过独热编码处理的分类型特征——经编码后,分类型特征转化为多个二元特征,最终使得输入数据的总维度达到71维。这些特征共同构成了总计71个维度的输入。
步骤4.定义优化后的去噪自编码器(DAE)
在输入中加入高斯噪声,以迫使网络学习具有稳健的特征。批量归一化可以稳定训练过程,而小型瓶颈层(16个单元)则有助于形成紧凑的潜在表征。
Python
复制输出:
复制步骤5.使用提前停止法训练模型
复制训练损失曲线
复制输出:
复制步骤6.零日检测
复制输出:
复制将检测阈值设置为良性流量重建误差的95%。这意味着在模型对正常网络流量的检测中,只有4.8%的正常流量因重建误差超过阈值而被误标记为异常(即假阳性)。与此同时,在对Shellcode攻击流量的检测中,约91.5%的攻击流量的重建误差超过了该阈值,从而被模型准确识别为异常(即真阳性)。
步骤7.可视化
重建误差直方图
复制输出:
图3良性流量(蓝色)和零日流量(橙色)重建误差的叠加直方图
ROC曲线
python
复制输出:
图3 ROC曲线展示真阳性率与假阳性率的关系,AUC = 0.93
局限性
以下是这种方法的局限性:
- 去噪自编码器(DAE)可以检测异常,但无法对攻击类型进行分类。
- 选择合适的阈值取决于数据集的选择,并且可能需要微调。
- 只有在完全使用正常流量训练时,效果最好。
关键要点
- 去噪自编码器在检测未见的零日攻击方面非常有效。
- 批量归一化、更大的批次大小以及提前停止法提高了训练稳定性。
- 可视化(损失曲线、误差直方图、ROC)使模型行为可解释。
- 这种方法能够以混合方式实现,用于攻击分类或实时网络入侵检测系统。
结论
本文展示了如何使用去噪自编码器(DAE)在UNSW-NB15数据集中检测零日攻击。该模型通过学习正常网络流量的稳健模式,能够对未见过的攻击数据中的异常行为进行标记。去噪自编码器(DAE)为构建现代入侵检测系统提供了强大的基础,并可与先进架构或监督分类器结合,构建全面的入侵检测系统。
常见问题解答
Q1:在UNSW-NB15数据集上使用去噪自动编码器(DAE)的目的是什么?
A:在UNSW-NB15 数据集上使用去噪自编码器,目的是检测网络流量中的零日攻击。去噪自动编码器(DAE)仅在正常流量上训练,基于高重建误差识别异常或攻击流量。
Q2:如何在去噪自动编码器中添加噪声?
A:.在训练过程中,通过向输入数据添加高斯噪声来输入数据。尽管输入数据被轻微破坏,但训练自编码器重建原始的、干净的输入数据,从而使其能够捕捉更稳健和有意义的数据特征表示。
Q3:自编码器能否对不同的攻击类型进行分类?
A:自编码器属于无监督学习模型,其功能仅为检测异常,无法对攻击类型进行分类。它不会区分具体是哪种攻击,只会识别出偏离正常网络行为的流量——这类异常流量可能意味着零日攻击的发生。
Q4:如何进行零日攻击检测?
A:在训练完成后,评估测试样本的重建误差。如果流量的误差超过了设定的阈值(例如正常误差的95%),就将其标记为异常。在本文的示例中,将Shellcode 攻击流量视为零日攻击流量进行检测。
Q5:在这个例子中为什么称其为去噪自编码器
A:之所以称为去噪自编码器,主要原因是模型在训练阶段会向输入数据添加噪声。这种方法增强了模型的泛化和识别偏差的能力,这是去噪自编码器的核心理念。
原文标题:Zero-Day Attack Detection using Denoising Autoencoder on UNSW-NB15,作者:Nitin Wankhade