摘要:在数字化和网络化迅猛发展的时代,网络安全问题日益突出,传统恶意流量检测方法已难应对复杂攻击。本文提出了一种基于知识迁移的恶意流量检测方法,以提高检测的准确性和适应性。知识迁移利用已学知识处理新任务,提高了学习效率和性能。为了更好地实现对恶意流量的检测,本文通过对比决策树、随机森林、支持向量机和卷积神经网络(CNN)对NSL-KDD数据集的测试结果,发现CNN模型在准确率和F1值上显著优于其他模型。本文进一步结合知识迁移的思想,将ImageNet数据集上预训练好的模型VGG16和ResNet50,利用其已经学习好的特征检测能力,冻结预训练模型的权重,并在此基础上添加自定义的全连接层和输出层以适应对新的数据集CICIDS2017的处理。实验表明知识迁移后的模型在新数据集上对恶意流量检测的准确率超过99%,且训练时间和数据需求显著减少,证明了知识迁移在恶意流量检测中的有效性。
关键词:网络安全;恶意流量检测;知识迁移;卷积神经网络;机器学习
2024年1月,瑞星公司发布的《2023年中国网络安全报告》,基于星核平台的数据,详细分析了恶意软件、恶意网址、移动安全、企业安全、勒索软件等领域,并探讨了人工智能在网络安全上的风险及未来趋势。2023年,瑞星“云安全”系统截获病毒样本总量8,456万个,病毒感染次数9,052万次,较2022年增长了14.98%。
随着数字化进程的加快,网络安全问题成为全球性挑战,恶意流量检测是网络安全的核心任务之一。恶意流量包括病毒、僵尸网络、勒索软件等,可能导致信息泄露、数据损失、系统瘫痪,损害个人隐私和企业利益。传统恶意流量检测依赖手动设计特征和规则,面对不断演变的攻击手段存在局限性。
为探究更好的恶意流量检测方法,本文选择决策树、随机森林、支持向量机和卷积神经网络(Convolutional Neural Network,CNN)四种方法对公开数据集NSL-KDD进行训练和测试,比较各模型的准确率、精确率、召回率、F1值和AUC值。结果表明,基于CNN的检测模型在准确率和F1值上明显优于其他模型。
在当前学术界中,知识迁移是一种创新学习方式,它通过将源领域知识引入目标领域,来提高学习效果。因此,本文进一步借鉴知识迁移理论,选取数据量较大的CICIDS2017数据集,通过使用在数据集ImageNet上预训练的VGG16和ResNet50模型,冻结预训练模型的权重,并添加自定义层以适应新数据集的处理。实验结果表明,经知识迁移后的模型在新数据集上的准确率均超过99%,且需要较少的训练时间和数据量,展示了知识迁移在恶意流量检测中的重要作用。
恶意流量是指出于恶意目的生成的网络流量,可能来源于恶意软件分发、网络攻击、非法信息采集等活动,目标包括攻击网络和系统、控制设备、盗取数据、传播恶意软件等。
2.1.1 恶意攻击特点和行为
了解恶意流量的特点和行为对于预防和减轻网络安全威胁至关重要。以下是一些主要的恶意流量特点和行为:
(1)特点
目的明确:如窃取数据、篡改信息或执行DDoS攻击,具有特定的行为模式和通信特征。
异常访问:通常脱离正常通信路径,访问不常用或异常的IP地址和端口,执行不符合正常业务逻辑的请求。
高危性:后果严重,包括系统中断、数据泄露和业务停摆,带来重大经济损失和声誉损害。
(2)行为
扫描和爬虫行为:利用自动化工具执行端口、服务和漏洞扫描,识别系统漏洞和网络入口点。
拒绝服务攻击(DoS)和DDoS攻击:DoS通过大量请求使合法用户无法访问服务;DDoS由全球分布的受控设备(僵尸网络)进行,更难防御和追踪。
数据窃取:通过网络监听、钓鱼等手段非法获取敏感数据,如用户名、密码和财务信息。
恶意软件分发:通过下载请求等方式传播恶意软件,如通过电子邮件附件或恶意链接,引诱用户下载并运行恶意软件。
C2(命令和控制)通信:已感染设备与攻击者服务器通信,接收恶意指令或上传窃取的数据。
利用已知漏洞:利用SQL注入、缓冲区溢出等漏洞进行攻击。
2.1.2 恶意攻击类型
根据表现形式的不同,恶意攻击可分为如下四种
(1)DoS:使在线服务不可用,通过大量发送请求或数据包,超出系统处理能力,导致服务中断或崩溃。常见方法有SYN Flood、Tear Drop、Smurf等。
(2)探测攻击(Probe):获取网络系统信息,如弱点、服务、应用程序版本、操作系统类型、网络结构等,为进一步攻击做准备。常见方法有ICMP探测、操作系统探测、漏洞探测等。
(3)用户到根用户攻击(U2R):普通用户权限升级到根用户或管理员权限,完全控制系统,修改或删除敏感数据,安装恶意软件。常见方法有缓冲区溢出、提权漏洞等。
(4)远程到本地攻击(R2L):利用系统漏洞,从远程地点获取本地用户权限,攻击者最初无系统合法权限,通过攻击获得普通用户或更高权限。常见方法有IP Spoofing等。
知识迁移是将一个领域或任务中学习到的知识应用到另一个领域或任务中的技术,在机器学习和人工智能领域非常重要。它提高了学习效率,减少了对大量标注数据的需求,帮助了模型在新领域快速适应。尽管不同任务或领域可能差异较大,但它们之间存在共通的特征或模式,可作为迁移基础。
2.2.1 知识迁移技术的主要类型
知识迁移是一种利用已解决任务中获得的知识来解决新任务的方法。根据具体的迁移方式,知识迁移可分为以下几种主要类型:
(1)基于特征的迁移:将源任务的特征直接迁移到目标任务。例如,利用CNN在ImageNet上的预训练特征进行其他图像分类任务。
(2)基于参数的迁移:共享源任务的模型参数,并将其迁移到目标任务。在深度学习中,常见做法是冻结预训练模型的某些层的参数,然后在新任务上微调顶层参数。
(3)基于关系的迁移:适用于知识图谱和多任务学习,利用源任务和目标任务的关系,例如多任务学习中不同任务间的共享层捕捉共同特征。
(4)基于实例的迁移:基于源任务的实际数据样本,通过选择和再利用源任务的样本提升目标任务性能,例如实例选择和实例加权。
当前有多种针对恶意流量检测的方法和模型,本文选择常用的决策树、随机森林、支持向量机和CNN四种模型,为进一步利用知识迁移的思想提高恶意流量检测性能提供了最优模型。
3.1.1 NSL-KDD数据集
本文在进行模型选择的过程中选择使用NSL-KDD数据集。该数据集是网络入侵检测系统(NIDS)研究中常用的一个数据集,且已经划分好了训练集(NSL-KDD train)和测试集(NSL-KDD test),便于使用机器学习模型进行训练和评估。该数据集标识类型和数量如表1所示。
表1 NSL-KDD数据集标识类型数量
3.1.2 数据集预处理
数据预处理是指在将数据应用于机器学习模型之前,对数据进行清洗、转换和整理的过程。这包括处理缺失值、异常值,进行特征缩放、标准化,以及进行特征工程等操作,以确保数据质量和可用性,以及提高机器学习模型的性能和准确性。公开数据集NSL-KDD的处理过程如图1所示。
图1 NSL-KDD数据集预处理流程
3.2.1 决策树DT
决策树是一种用于分类和回归的机器学习算法,它利用树状结构模拟决策过程。
其中内部节点代表特征,边对应特征值,叶子节点表示类别标签或数值。构建过程遵循分而治之的策略。决策树的优点包括易于理解、能处理数值和类别数据、不易受缺失值影响;缺点是易过拟合,对噪声和异常值敏感。实验中通过参数调整优化模型,常用信息增益作为特征选择指标,值越大,特征重要性越高。构建树的步骤包括特征选择、数据集划分、构建、剪枝和预测。
3.2.2 随机森林RF
随机森林是一种集成学习方法,它通过构建多棵决策树并综合其结果进行分类或回归。它结合了决策树的易理解性和集成学习的优点,能够有效减少过拟合并提高泛化能力。随机森林由多棵通过放回抽样和随机特征选择构建的决策树组成,每棵树在不同的数据和特征子集上训练,从而增加多样性。分类时采用多数投票,回归时取平均值。优点包括降低过拟合、提高准确性和泛化能力,并能处理大量特征和样本,对缺失值不敏感。缺点是难以解释和可能消耗较多内存和计算资源。
3.2.3 支持向量机SVM
支持向量机(SVM)是一种经典的监督学习算法,广泛用于分类和回归任务。其核心原理是寻找一个最佳超平面,以最大化不同类别数据点之间的间隔,作为线性分类器。支持向量是距离超平面最近的训练样本点,决定了超平面的位置和方向,定义了分类边界。
对于非线性数据,SVM引入核函数,将输入空间映射到高维特征空间。常见核函数包括线性核、多项式核和高斯核(RBF核)。通过选择适当的核函数,SVM可以处理非线性分类问题。
SVM算法的一般步骤如下:
数据预处理:将数据集划分为训练集和测试集,并进行特征缩放。
构建模型:选择适当的核函数和惩罚参数,构建SVM模型。
训练模型:使用训练集进行训练,通过最大化间隔找到最优超平面。
预测:使用训练好的模型对测试集进行预测。
3.2.4 卷积神经网络CNN
CNN是一种深度结构的前馈神经网络,广泛用于深度学习领域。其主要组成部分包括卷积层、池化层和全连接层。CNN的权值共享机制能够显著降低模型复杂性和过拟合风险。
典型的CNN架构:
(1)输入层:标准化处理输入特征。
(2)卷积层:使用卷积核提取输入数据的特征,生成特征图,捕捉局部模式。
(3)池化层:通过池化函数降低特征图的维度,减少模型复杂性并防止过拟合。常见池化操作包括最大值池化和均值池化。
(4)全连接层:每个神经元与前一层所有神经元相连,将提取的特征转化为一维向量,并通过权重矩阵生成最终输出,用于分类或回归任务。
(5)激活函数:引入非线性元素,使网络能够解决非线性问题。常见激活函数有Sigmoid、Tanh、ReLU、ELU等。
本文构建的CNN模型包含两个卷积层和两个池化层,用来提取输入数据的特征,然后通过全连接层将这些特征转化为最终的输出。ReLU激活函数提高了模型的非线性特性,而sigmoid函数在输出层使用,使输出限制在0到1之间,方便进行二分类任务的概率预测。
输入层(input):模型接收的输入数据形状为(?,116),其中116表示特征数,?表示样本数量不定。
Reshape层:将数据形状变为(?,116,1),这里的1表示数据是一维的。
卷积层(Conv1D):第一个卷积层输出形状为(?,114,32),即32个滤波器,每个滤波器产生大小为114的特征图。
最大池化层(MaxPooling1D):特征图形状变为(?,57,32),池化层将每个特征图大小减半。
第二个卷积层(Conv1D):输出形状为(?,55,64),使用64个滤波器。
第二个最大池化层(MaxPooling1D):特征图形状变为(?,27,64)。
Flatten层:将特征图展平成一维向量,形状为(?,1728)。
全连接层(Dense):第一个全连接层输出形状为(?,64),最后一个全连接层输出形状为(?,1),用于二分类问题,输出为概率值。
模型的流程图如图2所示。
图2 卷积神经网络模型流程图
为了衡量模型的性能,本文使用机器学习领域中常用的二分类评估指标准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1值和ROC曲线下面积(Area Under an ROC Curve,AUC)进行模型性能的评估。四种模型的各项二分类评估结果如表2所示。
表2 四种实验模型评估结果
从表2的实验结果数据中可以看出,DT、RF、SVM对恶意流量检测的准确率、F1值和AUC值都明显低于CNN模型。从中可以得出结论,CNN模型对恶意流量检测的性能要明显优于其他三种机器学习算法。
为进一步提高模型对恶意流量的检测准确率,本文引入知识迁移的思想,对CNN模型进行进一步的探究,以期获得更好的实验效果。
4.1.1 CICIDS2017数据集
本文在进行知识迁移应用的过程中选用数据规模更大、数据结构更复杂的CICIDS2017数据集。该数据集包含真实的网络流量和攻击数据,涵盖正常流量和多种类型的网络攻击(如DoS、DDoS、暴力破解、渗透等)。该数据集包含来自不同协议(TCP、UDP、ICMP)和服务(HTTP、SSH、DNS)的流量。每个样本被标记为正常流量或具体攻击类型,特征包括源/目标IP地址、源/目标端口、协议、流量大小、持续时间等基本信息,如表3所示。
表3 CICIDS2017所包含恶意流量数目与种类
4.1.2 数据预处理
神经网络输入之前需要对原始流量数据进行预处理,本章数据输入是经过处理之后的csv格式数据。
首先进行数据加载和预处理。加载CICIDS2017数据集并进行必要的预处理,这个过程中需要处理缺失值,删除数据集中缺失类标签和缺少信息的实例。由于数据集中数据量巨大,需要删除其中无穷大和百万级别的数据,从而节省模型处理开销。
其次将数据转换为图像,由于VGG和ResNet模型都是图像分类模型,需要将网络流量数据转换为图像,相关代码如下所示:
target_features=32*32*3
num_samples=X_scaled.shape[0]
ifX_scaled.shape[1]>target_features:
X_scaled=X_scaled[:,:target_features]
elifX_scaled.shape[1]<target_features:
X_padded=np.zeros((num_samples,target_features))
X_padded[:,:X_scaled.shape[1]]=X_scaled
X_scaled=X_padded
X_images=np.reshape(X_scaled,(num_samples,32,32,3))
本文将使用VGG和ResNet模型进行基于特征的迁移。将在ImageNet数据集上预训练好的VGG和ResNet模型,冻结预训练模型的权重,并添加自定义层以适应新数据集的处理。最终通过知识迁移技术,应用到对CICIDS2017数据集的处理上。
(1)VGG模型
VGG模型最初是由牛津大学计算机视觉组提出,常见的版本有VGG16和VGG19,分别包含16和19层卷积网络。VGG模型主要由多个3×3的卷积层和2×2的最大池化层堆叠而成,最后接上若干个全连接层。本文采用的是VGG16模型。
(2)ResNet模型
ResNet由微软研究院提出,最初的版本包括ResNet-50、ResNet-101和ResNet-152。其核心思想是通过引入残差块(ResidualBlocks)来解决深层神经网络中的梯度消失和梯度爆炸问题。这些残差块通过短路连接(Shortcut Connections)将输入直接跳过特定的层,从而使得模型更易于训练。本文采用ResNet50结构。
首先,初始化预训练模型,加载在大型数据集ImageNet上预训练的VGG16和ResNet50模型。这些模型已学到大量低级特征(如边缘、纹理等),有助于更有效地提取新任务的数据特征。由于顶层通常为原数据集设计,因此需要剥离。
第二步是模型微调。在预训练模型的基础上,适应CICIDS2017数据集。具体步骤包括:
去除顶层:剥离预训练模型的顶层,因为这些层与原数据集类别相关。
添加新层:在去除顶层的预训练模型上添加新层,包括全局平均池化层和全连接层,并使用ReLU激活函数。最后,添加一个输出层,节点数等于CICIDS数据集的分类类别数,并使用softmax激活函数输出类别概率。
第三步是特征提取。冻结部分卷积层,仅微调顶层新添加的层,以利用预训练模型的高效特征提取能力。这样可以仅训练新添加的全连接层和输出层,加速训练过程并防止过拟合。
第四步是模型训练。采用知识迁移的方法在CICIDS2017数据集上进行微调,并通过验证集进行评估。
本文利用已经在大型数据集ImageNet上预训练的VGG16和ResNet50模型进行基于特征的迁移学习,将微调后的模型处理CICIDS2017数据集,并通过验证集进行评估。
VGG16模型经过迁移学习后对数据集CICIDS2017的检测结果如图3、图4所示。
图3 VGG16模型的准确率随迭代次数的变化
图4 VGG16模型的损失函数随迭代次数的变化
ResNet50模型经过迁移学习后对数据集CICIDS2017的检测结果如图5、图6所示。
图5 ResNet模型的准确率随迭代次数的变化
图6 ResNet模型的损失函数随迭代次数的变化
从图3~6中可以看出,两种网络模型结构在进行知识迁移后在新的数据集中对恶意流量的检测结果的准确率都能达到99%以上,说明经过知识迁移后的两种模型在针对恶意流量检测的问题上都具有十分优异的效果。
近年来,网络安全和数据隐私领域面临着恶意流量带来的诸多挑战,因此恶意流量检测技术受到了广泛关注和持续发展。本文积极探索基于知识迁移的恶意流量检测方法,知识迁移在恶意检测领域的应用,可以缩短训练时间,提高检测精度等。相信随着更复杂的深度学习模型和更丰富的数据集的不断出现,知识迁移将在恶意流量检测中发挥越来越重要的作用,将提高整体的网络防御能力和安全性。
参考文献。
庞 统(2001-),男,河南南阳人,现就读于北京理工大学,研究方向为数据科学与大数据技术。
马思琦(2002-),女,云南开远人,现就读于北京理工大学,研究方向为数据科学与大数据技术。
杨德全(1980-),男,山西人,高级工程师,博士,现就职于北京理工大学,研究方向为网络安全。
· end ·
来源 | 《自动化博览》2024年10月刊
责任编辑 | 赫敏
如需合作或咨询,请联系工业安全产业联盟平台小秘书微信号:ICSISIA20140417
往期荐读
原文始发于微信公众号(工业安全产业联盟平台):干货丨基于知识迁移的恶意流量检测的研究与实现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论