论文初稿

发布时间 2023-05-19 20:01:35作者: lisyr

1  

 

1.1 研究背景与意义

随着互联网的快速发展和普及,计算机网络安全问题越来越受到人们的关注。主机入侵事件已成为一个重要的网络安全威胁,对于企业和个人而言,入侵事件的发生不仅会导致数据泄露、系统瘫痪等损失,还会给用户带来重大经济和社会影响。因此,如何有效地保护主机免受入侵是一个非常紧迫的问题。

传统的主机入侵检测方法主要基于规则匹配、特征匹配等技术,但这些方法需要工程师不断更新规则库或特征集,并且这种方法主要针对已知攻击模式,无法有效应对新型入侵行为。深度学习是近年来兴起的一种机器学习方法,它可以从海量数据中自动学习特征表示,能够处理高维、复杂的非线性数据,在图像识别、自然语言处理等领域具有良好的效果。基于深度学习的主机入侵检测系统可以通过自动学习样本的特征,并根据输入数据的反馈进行调整,从而更好地适应新型的入侵行为。

本文选择基于深度学习的主机入侵检测系统作为研究对象,探究如何利用深度学习技术实现主机入侵检测,并且对比传统的主机入侵检测方法,验证该方法的优越性。

1.2 国内外研究现状

目前,国内外学者在主机入侵检测领域的研究已经取得了一些进展。传统的主机入侵检测方法主要有基于规则、特征匹配和机器学习等方法。这些方法虽然在特定情况下能够取得不错的效果,但是由于攻击手段的复杂变化性,其准确率和效率有所限制。

近年来,深度学习作为一种新兴的机器学习方法,被广泛应用于主机入侵检测领域。通过对网络流量的深度学习处理,可以实现对主机入侵的精准检测和分类。目前,国内外学者已经提出了一系列基于深度学习的主机入侵检测系统,如基于LSTM的主机入侵检测系统、基于卷积神经网络的主机入侵检测系统等。

然而,目前还缺乏针对深度学习在主机入侵检测中的优化方法的研究,以及对于深度学习在主机入侵检测中的特征提取和模型选择方面的探索。因此,本文旨在通过对相关技术进行深入研究,设计和实现一种基于深度学习的主机入侵检测系统,并对其进行测试和分析,以期提高主机入侵检测的准确率和效率。

1.3 主要工作和创新点

本文旨在应用深度学习技术构建一种高效的主机入侵检测系统,以实现对计算机网络的实时监控和防御。我们的研究目标是设计出一种准确、高效、鲁棒的检测系统,可以有效地识别各种类型的攻击,同时具有较强的泛化能力和鲁棒性。为此,我们将收集KDD Cup 1999数据集,通过对数据进行预处理和特征选择,设计了全连接神经网络模型。实验结果表明,我们的模型可以有效地识别各种类型的攻击,同时也具有一定的鲁棒性和泛化能力本文的主要工作是设计和实现一种基于深度学习的主机入侵检测系统,具体包括以下几个方面:

1)调研和总结主机入侵检测领域的相关技术,包括传统主机入侵检测方法和深度学习在主机入侵检测中的应用等方面。

2)设计主机入侵检测系统的总体框架,并对数据预处理和特征提取、深度学习模型的选择和优化等方面进行详细阐述。

3)基于所选定的深度学习模型,利用公开数据集对系统进行实现和测试,以验证其准确率和效率。

本文的创新点主要体现在:

1)采用深度学习方法进行主机入侵检测,相对于传统方法可提高检测的准确率和效率。

2)研究深度学习模型的优化方法,以提高模型的性能和泛化能力。

3)探索在主机入侵检测中的特征提取和模型选择方面的问题。

1.4 组织结构

本论文主要研究基于深度学习的主机入侵检测系统,探究如何利用深度学习技术提高主机入侵检测的效率和准确性。具体内容包括以下五个章节:

第一章:绪论。本章介绍了研究背景和意义、国内外研究现状、主要工作和创新点,并对本文的主要内容和结构进行了简要介绍。

第二章:主机入侵检测系统相关技术。本章阐述了主机入侵检测系统的基本概念,介绍了深度学习的基本概念和方法,以及深度学习在主机入侵检测中的应用。

第三章:基于深度学习的主机入侵检测系统设计。本章设计了基于深度学习的主机入侵检测系统的总体框架,并对数据预处理、特征提取和深度学习模型的选择和优化等方面进行详细阐述。

第四章:基于深度学习的主机入侵检测系统实现。本章介绍了系统的实现环境和工具,准备了数据集并对系统进行了实现和功能测试,最后分析了系统的测试结果。

第五章:总结与展望。本章对全文进行了总结,并提出了当前研究存在的问题和未来的研究方向。

通过以上五个章节的论述,本文将详细介绍基于深度学习的主机入侵检测系统的设计和实现过程,并探究其在实际应用中的表现和优劣势。

 


2  系统相关技术

 

2.1 主机入侵检测系统

2.1.1 入侵检测系统的分类和特点

入侵检测系统(Intrusion Detection System,简称IDS是一种对网络或主机进行实时检测,发现并阻止潜在攻击的安全设备[]。入侵检测系统根据监测对象和位置的不同,可以分为基于网络的入侵检测系统(Network-based Intrusion Detection System,简称NIDS)和基于主机的入侵检测系统(Host-based Intrusion Detection System,简称HIDS)两种[]

基于网络的入侵检测系统是一种部署在网络节点或网关上的软件或硬件,用于监测网络流量中的异常或可疑活动,并将警报发送给管理员[]。基于网络的入侵检测系统的优点是可以覆盖整个网络范围,实时地检测网络层和传输层的攻击,对网络性能影响较小;缺点是无法检测加密流量和应用层攻击,容易受到分片、欺骗等攻击手段的干扰,难以适应动态变化的网络环境[]

基于主机的入侵检测系统是一种部署在单个主机上的软件,用于监测主机内部的活动和状态,以发现和防御恶意行为[]。基于主机的入侵检测系统的优点是可以检测加密流量和应用层攻击,对主机进行细粒度的监控和保护,能够记录详细的审计日志和证据;缺点是需要在每台主机上安装软件,对主机性能影响较大,难以管理大量分散的主机,容易受到本地用户或管理员的篡改[]

入侵检测系统具有以下特点:

入侵检测系统是一种主动防御的安全技术,它不仅能够发现已知或未知的攻击,还能够及时地做出响应,如报警、断开连接、修改配置等。

入侵检测系统是一种智能化的安全技术,它利用专家系统、模式识别、机器学习等方法来分析数据,并根据不同情况采取不同策略

入侵检测系统是一种多层次的安全技术,它可以从网络层、传输层、应用层等不同角度来监控和防御攻击,并能够协调各层次之间的关系

本文主要针对主机入侵检测系统进行研究。

2.1.2 主机入侵检测系统定义和目的

主机入侵检测系统(HIDS)是一种基于主机的入侵检测系统,它通过在被检测的主机上运行一个代理程序(Agent),对主机的活动、状态和配置进行监控和分析,以发现是否有可疑活动或者违反安全策略的行为[]HIDS是一种对网络传输或者系统进行即使监视,在发现可疑传输或者行为时发出警报或者采取主动反应措施地网络安全设备。它的数据源时主机上的数据,而不是网络的数据包。因此它往往需要在每台受保护的主机上安装一个代理程序,对主机的文件、进程、注册表、日志、网络连接等进行检测。此外,HIDS只是一种软件应用程序,它不需要专门的硬件设备,就可以在各种操作系统或平台上运行,并且它可以和其他安全软件如杀毒软件、防火墙等协同工作,以提供更全面的安全防护。

HIDS的目的是为了提高主机的安全性,防止或者减少由于网络攻击或者内部破坏造成的损失。HIDS可以实现以下几个方面的功能:

1.监控和记录主机上发生的各种事件,如文件修改、进程启动、网络连接等,以便于审计和分析。

2.检测和识别主机上是否有异常或者恶意的活动,如木马、后门、提权、挖矿等,以及是否有违反安全策略的行为,如未授权访问、配置修改等。

3.报警和响应主机上发现的入侵行为,向管理员或者其他安全系统(如SIEM)发送告警信息,并根据预设的规则采取相应的措施,如隔离、删除、阻断等[]

2.1.3 主机入侵检测系统的工作原理

主机入侵检测系统通常由四个组成部分构成:数据采集、数据分析、响应处理和管理控制[]

数据采集是值从监测对象中收集相关信息。HIDS通过在被监控的主机上安装一个代理程序(Agent),对主机上各种数据进行采集,如日志文件、系统调用、应用程序日志、系统资源、网络通信、用户使用等。这些数据是判断主机是否被入侵的基础。

数据分析是指对收集到的信息进行处理和判断,以识别是否存在异常或可疑活动。数据分析可以根据不同的检测方法分为基于误用的检测(Signature-based Detection)和基于异常的检测(Anomaly-based Detection)两种[]

基于误用的检测技术是根据已知的入侵模式(Signature)或者规则(Rule)检测入侵行为,比如利用条件概率、状态迁移、键盘监控或者文本分类等方法进行模式匹配[]。这种技术的优点是检测简单,效率高,缺点是受模式库或者规则库的限制,不能检测未知或者变异的攻击[]

基于异常的检测是指通过建立系统正常行为的特征轮廓Profile对收集到的数据进行统计处理,与特征轮廓进行比较,根据二者的偏差是否超过指定阈值来判断异常[]基于异常的检测的优点是可以检测未知或变种攻击,具有更好的适应性和智能性;缺点是难以建立准确的正常行为模式或基线,对系统资源消耗较多,容易产生误报或漏报。

响应处理是指HIDS发现主机上有入侵行为时,会向管理员或者其他安全系统发送告警信息,并根据预设的规则采取响应的措施,如记录、隔离、删除、阻断等。响应处理可以根据不同的响应方式分为主动响应(Active Response)和被动响应(Passive Response)两种。

主动响应是指对入侵事件进行实时的干预和阻止,如断开连接、修改路由、重置密码等。主动响应的优点是可以有效地防止或减轻入侵造成的损失;缺点是可能影响正常业务或服务,需要高度的可信度和准确度。

被动响应是指对入侵事件进行记录和报告,如生成日志、发送邮件、弹出窗口等。被动响应的优点是不会影响正常业务或服务,可以为后续分析和溯源提供证据;缺点是无法及时地防止或减轻入侵造成的损失。

管理控制是指对入侵检测系统进行配置和管理,如设置参数、更新规则、查询日志、生成报表等。管理控制可以通过图形界面、命令行、Web等方式实现。

2.2 深度学习的基本概念和方法

2.2.1 深度学习概述

深度学习是一种基于表征学习思想的机器学习技术深度学习是机器学习的一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能。深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据[]。深度学习是一种基于人工神经网络和表示学习,并且可以是有监督的、半监督的或者无监督的学习方法。

深度学习的核心是人工神经网络,它是一种模仿生物神经系统的结构和功能的数学模型,由多个处理单元(神经元)按照不同层次组织起来,形成一个深层次的网络结构。每个神经元可以接收来自其他神经元或外部输入的信号,经过一个非线性的激活函数后,产生一个输出信号,传递给其他神经元或作为最终输出[]。深度学习的网络结构可以分为前馈神经网络、递归神经网络、卷积神经网络、生成对抗网络等多种类型,根据不同的应用场景和数据特点进行选择和设计。

深度学习可以分为有监督的、半监督的或者无监督的,根据是否需要人为提供标签数据来指导学习过程。有监督的深度学习主要用于分类和回归等问题,例如图像识别、语音识别、自然语言处理等。无监督的深度学习主要用于聚类和关联分析等问题,例如特征提取、降维、生成模型等。半监督的深度学习则结合了有监督和无监督的优点,利用少量的标签数据和大量的无标签数据来进行学习[]。深度学习的学习过程通常需要大量的数据和计算资源,因此需要采用合适的优化算法、正则化技术、损失函数等来提高模型的性能和泛化能力

深度学习在搜索技术,数据挖掘,机器翻译,自然语言处理,多媒体学习,语音,推荐和个性化服务,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步[]

深度学习也有一些优点和缺点,例如:

优点:深度学习可以自动地从数据中学习特征,而不需要人为地设计特征提取器;深度学习可以处理高维、非线性、复杂的数据,而不需要降维或者简化模型;深度学习可以利用大量的数据和计算资源,不断地提高模型的性能和泛化能力。

缺点:深度学习需要大量的数据和计算资源,对于小样本或者低配置的场景不太适用;深度学习的网络结构和参数很多,不容易理解和解释,缺乏可解释性和可信赖性;深度学习的训练过程很难调试和优化,需要选择合适的超参数、损失函数、优化算法等。

深度学习的发展离不开硬件和软件的支持。硬件方面,图形处理器(GPU)作为一种高效的并行计算设备,极大地加速了深度学习的训练和推理过程。GPU拥有数千个处理核心和高速的显存,能够同时处理大量的数据和计算任务[]。软件方面,各种深度学习框架和库为开发者提供了便捷和高效的编程接口和工具,例如TensorFlow, PyTorch, Keras, Caffe[]

综上所述,深度学习是一种基于人工神经网络和表示学习,并且可以是有监督的、半监督的或者无监督的学习方法。它在各个领域都有着广泛的应用和巨大的潜力,为人工智能的发展提供了强大的支撑。

2.2.2 神经网络

神经网络是一种模仿生物神经系统的结构和功能的计算模型,它由大量的简单处理单元(称为神经元)通过连接权重相互连接而成[]。神经网络可以根据输入数据自动地调整连接权重,从而实现对数据的学习和逼近[]

神经网络的基本组成部分是层,每个层包含一系列互连的神经元。神经网络通常由输入层、隐藏层、输出层组成。

神经网络中每个神经元都有一个激活函数,用于控制神经元的输出。神经网络的激活函数是一种对神经元的输入进行非线性变换的函数,它决定了神经元的输出。激活函数的作用是增加神经网络的非线性能力,使得神经网络可以拟合更复杂的函数和模式[]。激活函数的选择会影响神经网络的性能和收敛速度,因此需要根据不同的问题和数据选择合适的激活函数。常用的激活函数有以下几种:

Sigmoid函数:Sigmoid函数也叫Logistic函数,它将输入映射到(0,1)之间,可以用来表示概率或二值输出。Sigmoid函数的表达式和图像如下:

 

Tanh函数:Tanh函数也叫双曲正切函数,它将输入映射到(-1,1)之间,可以用来表示正负或对称输出。Tanh函数的表达式和图像如下:

 

ReLU函数:ReLU函数又称为修正线性单元(Rectified Linear Unit),它是一种分段线性函数,当输入小于零时输出为零,当输入大于零时输出等于输入。ReLU函数的表达式和图像如下:

 

Softmax函数:Softmax函数是一种将任意数值向量归一化为一个和为1的概率分布向量的函数,它可以用来表示多个互斥类别的输出。Softmax函数的表达式和图像如下:

 

神经网络的训练过程是一个优化过程,目的是找到一组最优的连接权重,使得网络的输出与期望的输出尽可能接近。常用的优化算法有:

1.反向传播算法(Backpropagation):通过计算网络输出与期望输出之间的误差,并根据误差反向传播来更新权重。

2.随机梯度下降法(Stochastic Gradient Descent, SGD):通过随机选取一个或一小批样本来计算梯度,并根据梯度下降方向来更新权重。

3.动量法(Momentum):在SGD的基础上增加了一个动量项,用于加速收敛并避免局部最优。

4.自适应学习率法(Adaptive Learning Rate):根据不同的参数和梯度来自动调整学习率,如AdaGrad, RMSProp, Adam等。

以上就是神经网络的基本概念和组成部分,以及常用的激活函数和训练过程的简要介绍。在未来,神经网络将在各个领域发挥更大的作用,同时也需要不断探索更优化的激活函数和学习算法,以提高神经网络的性能和效率。

2.2.3 常用深度学习模型

深度学习模型是指利用多层神经网络来学习数据特征和表达的模型,它可以处理高维、非线性、复杂的数据,如图像、语音、文本等。深度学习模型有很多种类,本节主要介绍两种常用的深度学习模型:卷积神经网络(Convolutional Neural NetworkCNN)和循环神经网络(Recurrent Neural Networks, RNN)。

卷积神经网络(CNN)是一类特殊的人工神经网络,区别于神经网络其他模型(如,BP神经网络,RNN神经网络等),其最主要的特点是利用卷积运算来提取数据中的局部特征,保持数据的空间结构,减少参数数量,增强泛化能力。因此,CNN在诸多领域应用特别是图像相关任务上表现优异,诸如,图像分类,图像语义分割,图像检索,物体检测等计算机视觉问题[]

循环神经网络(RNN)是一种专门用于处理序列数据(如文本、语音等)的神经网络结构,它由多个循环单元组成,每个循环单元都有一个隐藏状态,用于存储序列中的历史信息。循环神经网络的特点是它可以处理任意长度的序列,并且可以利用序列中的长期依赖关系。循环神经网络在自然语言处理、语音识别、机器翻译等领域都有广泛的应用。循环神经网络的一个主要问题是梯度消失或爆炸,即在反向传播过程中,梯度随着时间步的增加而指数级地衰减或增长,导致网络难以学习长期依赖。为了解决这个问题,人们提出了一些改进的循环神经网络结构,如:

1.长短期记忆网络(Long Short-Term Memory, LSTM):在循环单元中增加了一个记忆单元和三个门控结构(输入门、遗忘门和输出门),用于控制信息的存储和遗忘。

2.门控循环单元(Gated Recurrent Unit, GRU):是LSTM的简化版本,将记忆单元和隐藏状态合并为一个状态,并将三个门控结构简化为两个(重置门和更新门),用于控制信息的重置和更新。

3.双向循环神经网络(Bidirectional Recurrent Neural Networks, BiRNN):是一种在正向和反向两个方向上分别建立一个循环神经网络,并将两个网络的输出进行拼接或求和,从而使网络能够同时利用过去和未来的信息。

2.3 深度学习在主机入侵检测中的应用

尽管深度学习技术在入侵检测中已经取得了一定的进展,但仍面临着一些问题和挑战。

2.3.1 基于深度学习的入侵检测系统架构

基于深度学习的入侵检测系统是一种利用深度神经网络对网络流量进行分析和识别的系统,它可以有效地检测未知或新型的攻击,提高检测率和准确率。

基于深度学习的入侵检测系统的一般架构如图1所示,它主要包括以下几个部分:

数据采集模块:负责从网络中捕获原始数据包,并将其转换为可供深度神经网络处理的数据格式,如二进制向量或张量。

特征提取模块:负责从数据中提取有效的特征,如协议类型、源地址、目标地址、端口号、负载长度等,以及利用深度神经网络自动学习的高层特征。

异常检测模块:负责利用深度神经网络对特征进行分类或聚类,判断数据是否属于正常或异常,以及异常的类型和级别。

响应模块:负责根据异常检测的结果,采取相应的措施,如报警、阻断、隔离等,以保护网络安全。

1 基于深度学习的入侵检测系统架构

2.3.2 特征提取方法

特征提取是入侵检测系统中非常重要的一个环节,它直接影响了深度神经网络的性能和效果。特征提取方法可以分为两类:手工设计的特征和自动学习的特征。

手工设计的特征是指根据专家知识或经验,从数据中选择一些具有代表性和区分性的特征,如协议类型、源地址、目标地址、端口号、负载长度等。这种方法的优点是可以减少数据维度和计算量,缺点是可能忽略一些潜在的重要特征,而且难以适应不同类型和场景的数据。

自动学习的特征是指利用深度神经网络从数据中自动提取高层次和抽象的特征,如卷积神经网络(CNN)可以提取图像中的边缘、纹理、形状等特征,循环神经网络(RNN)可以提取序列数据中的时间依赖关系等。这种方法的优点是可以发现数据中隐藏的信息和规律,缺点是需要大量的数据和计算资源,而且难以解释提取出来的特征。

目前,有些研究者采用了两种方法相结合的方式,即先使用手工设计的特征作为深度神经网络的输入,然后利用深度神经网络对这些特征进行进一步的 提取和变换,得到更高级别和更具有判别力的特征。这种方式可以充分利用专家知识和深度学习能力,提高主机入侵检测系统的效果。

2.3.3 异常检测方法

异常检测是指识别出与正常行为或预期模式不一致的数据或行为,它是入侵检测系统的核心任务。异常检测方法可以分为两类:基于分类的方法和基于聚类的方法。

基于分类的方法是指利用深度神经网络对数据进行有监督的学习,即根据已知的正常或异常标签来训练网络,然后对新的数据进行分类,判断其是否属于正常或异常。这种方法的优点是可以准确地识别出已知的异常类型,缺点是需要大量的标注数据,而且无法检测未知的异常类型。

基于聚类的方法是指利用深度神经网络对数据进行无监督的学习,即根据数据本身的相似性或距离来将数据分为不同的簇,然后根据簇内或簇间的统计特征来判断数据是否属于正常或异常。这种方法的优点是不需要标注数据,而且可以检测未知的异常类型,缺点是可能产生较高的误报率和误报率。

目前,有些研究者采用了两种方法相结合的方式,即先使用基于分类的方法对已知的异常类型进行识别,然后使用基于聚类的方法对未知的异常类型进行检测。这种方法可以兼顾两种方法的优势,提高检测效果。

2.4 本章小结

本章介绍了主机入侵检测系统的相关技术,包括主机入侵检测系统的基本概念、深度学习的基本概念和方法、深度学习在主机入侵检测中的应用。首先,介绍了主机入侵检测系统的定义、目的、分类、特点和工作原理。其次,介绍了深度学习的发展历程、特点、神经网络和常用的模型,包括卷积神经网络(CNN)和循环神经网络(RNN)的结构和原理。然后,介绍了深度学习在主机入侵检测中的应用,包括基于深度学习的入侵检测系统架构、特征提取方法和异常检测方法。最后,介绍了一些基于深度学习的入侵检测系统的研究进展和成果,分析了它们的优缺点和适用场景。

 


3  基于深度学习的主机入侵检测系统设计

 

3.1 系统的总体框架

本文提出了一种基于深度学习的主机入侵检测系统,其总体框架如图3.1所示。该系统主要由以下几个模块组成:

数据预处理模块:该模块负责对原始数据进行清洗、编码、划分等操作,以便于后续的特征提取和模型训练。

特征提取模块:该模块负责利用卷积神经网络(CNN)和长短期记忆网络(LSTM)从数据中提取空间特征和时序特征,并将两种特征融合为一个特征向量。

模型训练模块:该模块负责利用提取出的特征向量和标签数据,训练一个全连接层(FC)作为分类器,实现对正常和异常行为的判别。

模型测试模块:该模块负责利用训练好的分类器,对新的数据进行入侵检测,并输出检测结果和性能指标。

3.2 数据预处理

本文使用KDD Cup 1999数据集进行实验。该数据集包含来自DARPA的网络流量数据,共有41个特征,涉及到22种不同的网络攻击类型。

为了减少数据集中的噪声和冗余信息,并提高模型学习效率,我们进行了一系列的数据预处理步骤。包括数据清洗、特征选择、特征编码和标准化等过程。

3.2.1 数据集来源与特点 

本文使用了KDDCUP99数据集作为实验数据。KDDCUP99数据集是由美国国防部高级研究计划局(DARPA)在麻省理工学院林肯实验室进行的一项入侵检测评估项目提供的,用于1999年举行的第三届国际数据挖掘和知识发现工具竞赛(KDD-99[]。该竞赛的目的是构建一个能够区分“恶意”的连接(称为入侵或攻击)和“正常”的连接的网络入侵检测器。该数据集包含了大约500万条网络连接记录,其中包括正常连接和四大类39种类型的攻击[]。每条记录由41个特征和一个标签组成,特征包括基本特征、内容特征和时间特征[],标签表示该记录是正常还是异常,以及异常的具体类型[]

KDDCUP99数据集具有以下几个特点:

数据量大:该数据集包含了大约500万条网络连接记录,其中正常连接占约19.69%,异常连接占约80.31%。这对于训练和测试网络入侵检测器提供了充足的样本。

数据复杂:该数据集涵盖了各种用户类型、各种不同的网络流量和攻击手段,反映了真实网络环境中的复杂性和多样性。同时,该数据集也存在一些噪声、冗余和不平衡等问题,给数据分析和处理带来了挑战。

数据有价值:该数据集提供了一个标准的数据集,用于评估不同的网络入侵检测方法和技术的性能和效果。该数据集也可以用于研究网络安全领域的相关问题,如异常检测、分类、聚类、特征选择等。

3.2.2 数据集预处理

数据预处理是数据分析或数据挖掘前的重要步骤,它主要通过一系列的方法来清理脏数据、抽取精准的数据、调整数据的格式,从而得到一组符合准确、完整、简洁等标准的高质量数据,保证该数据能更好地服务于数据分析或数据挖掘工作。数据预处理的主要步骤分为:数据清理、数据集成、数据规约和数据变换。本文将从这四个方面详细地介绍。

数据清理:由于现实世界中,获取信息和数据的过程中,会存在各类的原因导致数据丢失和空缺。对于缺失值的处理方法,主要是基于变量的分布特性和变量的重要性(信息量和预测能力)采用不同的方法。代码中采用了sklearn.preprocessing中的Imputer类来对缺失值进行均值填充,即用所在列的均值来替代缺失值。这是一种简单高效且不损失信息的方法,适用于缺失率较低且重要性较低的变量。其他常用的方法还有删除变量、定值填充、统计量填充(中位数、众数)、插值法填充(随机插值、多重差补法)、模型填充(回归、贝叶斯、随机森林等)和哑变量填充。

数据集成:数据分析任务多半涉及数据集成。数据集成将多个数据源中的数据结合成、存放在一个一致的数据存储,如数据仓库中。这些源可能包括多个数据库、数据方或一般文件。代码中没有涉及到多个源的集成,但是在实际应用中,可能会遇到实体识别问题(如不同源中使用不同名称或标识符表示同一实体)、冗余问题(如不同源中存在相同或相似的属性或维度)和冲突问题(如不同源中存在不一致或不兼容的属性值)等,需要进行相应的处理。

数据规约:数据规约技术可以用来得到数据集的归约表示,它小得多,但仍接近地保持原数据的完整性。这样,在归约后的数据集上挖掘将更有效,并产生相同 (或几乎相同) 的分析结果。代码中采用了sklearn.preprocessing中的LabelEncoder类来对属性变量进行编码,即将字符串类型的属性转换为整数类型。这是一种维度规约方法,可以减少属性数量,并使得属性更适合于数值型算法。其他常用的维度规约方法还有属性子集选择(逐步向前选择、逐步向后删除等)、主成分分析(PCA)等。除了维度规约外,还有数值规约方法,如直方图法、聚类法、抽样法等。

数据变换:数据变换是指将原始数据转换为更适合挖掘目标或算法所需形式的过程。代码中没有涉及到显式的数据变换操作,但是在实际应用中,可能会遇到需要对属性进行平滑(如移动平均法)、聚集(如按时间段统计)、概化(如按层次划分)或规范化(如最小-最大规范化、Z-分数规范化等)等操作。

3.3 深度学习模型的设计

3.3.1 模型选择

为了实现基于深度学习的主机入侵检测系统,本文设计了一个深度学习模型,能够有效地提取网络流量数据的空间和时间特征,从而提高检测性能。

本文所设计的深度学习模型是基于多层感知器(Multi-Layer Perceptron, MLP) 的卷积神经网络(Convolutional Neural Network, CNN) 模型。MLP是一种基础且常用的神经网络模型,由多个全连接层组成,可以实现对输入数据的非线性变换和分类。CNN是一种具有强大特征提取能力和表达能力的深度学习模型,在图像识别、自然语言处理等领域取得了巨大成功。本文将MLPCNN结合起来构建入侵检测模型,利用MLP对输入特征进行降维和预处理,并利用CNN对预处理后的特征进行卷积操作以提取高层抽象特征。

3展示了本文所设计深度学习模型的结构图。该模型由输入层、两个隐藏层和两个激活层和输出层组成。输入层接收经过预处理和特征提取后得到的40维向量作为输入;隐藏层即全连接层使用一个隐藏层对输入向量进行线性变换,并使用Dropout技术防止过拟合;激活层使用ReLU函数作为激活函数,增加模型的非线性;输出层使用Softmax函数对池化层输出结果进行归一化,并将特征空间按映射到23个类别中

3-1

3.3.2 模型优化

为了提高模型的性能和泛化能力,我们对模型进行了以下优化:
剪枝:使用剪枝技术,通过删除神经网络中的一些不重要的连接,来减少模型的参数数量和计算量,同时避免过拟合。

量化:使用量化技术,通过将模型的参数从32位浮点数转换为8位整数,来降低模型的存储空间和内存占用,同时提高模型的运行速度。

集群:使用集群技术,通过将模型的参数替换为一组较少的唯一值,来进一步压缩模型的大小,同时保持模型的准确性。

损失函数:使用交叉熵损失函数(Cross Entropy Loss),它是多分类问题中常用的损失函数,能够衡量模型输出的概率分布和真实标签的概率分布之间的差异。

优化器:使用Adam优化器,它是一种自适应的梯度下降算法,能够根据梯度的一阶矩和二阶矩动态调整每个参数的学习率,使得模型收敛更快更稳定。

协同优化:使用协同优化技术,通过结合以上三种技术,并利用量化感知训练来提高模型的精度,来实现对模型的综合优化。

3.3.3 模型评估

深度学习模型评估指标是用于衡量模型在训练和测试过程中的性能和准确度的一些量化指标。不同的深度学习任务和模型可能需要不同的评估指标,但是一些常用的评估指标有准确率(accuracy)、损失值(loss)和训练时间(training time)。

准确率(accuracy)是指模型在给定的数据集上正确预测的比例,它反映了模型的分类能力。准确率的取值范围是01,越接近1表示模型越准确。

损失值(loss)是指模型预测结果与真实结果之间的差距,它反映了模型的拟合程度。损失值的具体形式取决于机器学习任务的类型,比如回归任务常用均方误差(MSE),分类任务常用交叉熵(CE)。损失值的取值范围是0到正无穷,越接近0表示模型越好。

训练时间(training time)是指模型在训练过程中所消耗的时间,它反映了模型的复杂度和效率。训练时间受到多种因素的影响,比如数据集的大小,模型的结构,优化算法,硬件设备等。训练时间的取值范围是0到正无穷,越小表示模型越快。

3.4 本章小结

本章介绍了基于深度学习的主机入侵检测系统的设计和实现,包括系统的总体框架,包括数据预处理模块、特征提取模块、模型训练模块和模型测试模块;数据预处理过程,包括数据清理、特征选择、特征编码和标准化等步骤;深度学习模型的设计,包括模型选择、模型优化和模型评估等方面。

本章所设计的深度学习模型是基于MLPCNN的卷积神经网络模型,能够有效地提取网络流量数据的空间和时间特征,并利用剪枝、量化、集群和协同优化等技术对模型进行压缩和加速,从而提高检测性能和效率。本章所使用的评估指标是准确率、损失值和训练时间,用于衡量模型的分类能力、拟合程度和复杂度。

 

4  系统实验与分析

 

4.1 系统的实现环境和工具

本文设计的基于深度学习的主机入侵检测系统是一个软件系统,需要在一定的硬件和软件环境下运行。本节介绍了系统的实现环境和工具,包括硬件平台、操作系统、编程语言、深度学习框架和数据集。

1)硬件平台

为了保证系统的运行效率和稳定性,需要选择合适的硬件平台。本文选择了一台配置较高的计算机作为系统的实现平台,其主要硬件参数如表 4.1 所示。

 

硬件类型

参数

CPU

6 × Intel(R) Xeon(R) CPU E5-2678 v3 @ 2.50GHz

内存

62GB

硬盘

100GB

显卡

NVIDIA GeForce RTX 2080 Ti

 

4.1 系统实现平台的硬件参数

2)操作系统

操作系统是软件系统的基础,需要选择一个支持深度学习框架和编程语言的操作系统。本文选择了 Linux Ubuntu 18.04 LTS 作为系统的操作系统,因为它是一个开源、免费、稳定、安全、易用和广泛支持的操作系统,且与深度学习框架和编程语言有良好的兼容性。

3)编程语言

编程语言是软件系统的实现工具,需要选择一个高效、灵活、易读、易维护和支持深度学习框架的编程语言。本文选择了 Python 3.9 作为系统的编程语言,因为它是一个解释型、面向对象、动态类型和多范式的编程语言,且有丰富的第三方库和社区支持,特别适合进行数据分析和深度学习。

4)深度学习框架

深度学习框架是软件系统的核心组件,需要选择一个功能强大、性能优异、易用、易扩展和支持多种深度学习模型的深度学习框架。本文选择了 Pytorch 作为系统的深度学习框架,因为它是一个由 Facebook开发和维护的开源、跨平台、分布式和可视化的深度学习框架,且有高层 API Torchvision 和低层 API Autograd,可以方便地构建、训练、评估和部署各种深度学习模型。

4.2 数据集准备

数据集是软件系统的输入源,需要选择一个规模大、质量高、标注准确、代表性强和适合主机入侵检测任务的数据集。本文选择了 KDD Cup99 数据集作为系统的数据集,因为它是一个由DARPAMIT/Lincoln Lab1999年发布的经典、广泛使用的网络入侵检测数据集,包含了正常流量和多种攻击类型,如DoSU2RR2LProbing等,且提供了详细的特征描述和标签信息,可以用于评估不同的入侵检测方法和系统。

本文使用了KDD Cup99数据集中的 10% 的子集,其中包含了494021条训练数据和311029条测试数据,每条数据包含了41个特征和一个标签。本文对数据进行了一些预处理操作,包括删除空值、去除重复数据、归一化数值特征、编码类别特征等,最终得到了训练集中的489843条数据和测试集中的311029条数据。数据集的协议类型和攻击类型如图4-1、图4-2所示。

 

4-1.协议分类

 

4-2.攻击分类

KDD Cup9910%数据集存在一种现象,即数据的特征存在差别很大,为了使数据集的分类结果更准确且符合数据集的标准情况,需要对数据集进行归一化处理。本文使用的方法是Min-Max方法,也叫作离差标准化,是将原始数据线性变化的结果映射到[0,1]之间,其函数如下所示:

 

代码如下图所示:

 

4-3 归一化处理数据

4.3 系统实现与结果分析

本节将根据前文提出的内容进行实验,使用全连接神经网络模型,验证该模型是否能有效应用与主机入侵检测之中。

本系统采用了全连接神经网络模型(Fully Connected Neural NetworkFCNN)作为深度学习模型,用于对网络流量数据进行特征提取和分类。FCNN是一种最基本的神经网络结构,由多个全连接层组成,每个全连接层由若干个神经元构成,每个神经元与上一层和下一层的所有神经元相连,并有一个权重和一个偏置。FCNN可以通过反向传播算法进行训练,不断更新权重和偏置,以达到最小化损失函数的目标。

本系统的FCNN模型由输入层、三个隐藏层和输出层组成。输入层接收网络流量数据的41个特征作为输入向量;隐藏层分别包含256128个神经元,并使用ReLU激活函数;输出层包含23个神经元,输出每个类别的概率分布。本系统使用交叉熵作为损失函数,使用Adam优化器进行优化,使用批量大小为128的小批量梯度下降法进行训练。

本系统在训练集上进行了20次迭代训练,并在测试集上进行了检测。本系统使用损失值和准确率作为评价指标。损失值反映了模型预测结果与真实标签之间的差异程度,越小越好;准确率反映了模型预测正确的样本占总样本数的比例,越高越好。

4-4和图4-5显示了本系统在训练集和测试集上的损失值变化曲线;图4-6和图4-7显示了本系统在训练集和测试集上的准确率变化曲线。从图中可以看出,随着训练次数的增加,本系统在训练集和测试集上的损失值都呈现下降趋势,并逐渐趋于稳定;同时,在训练集和测试集上的准确率都呈现上升趋势,并逐渐趋于稳定。这说明本系统具有较好的收敛性能和泛化能力。

4-4

 

4-5

 

4-6

 

4-7

 

4-1给出了本系统在测试集上对不同类别进行检测时的混淆矩阵(Confusion Matrix)。混淆矩阵是一种常用的评价分类模型性能的工具,它显示了模型预测结果与真实标签之间的对应关系。表中第i行第j列表示真实标签为第i类而预测标签为第j类的样本数量。表中对角线上的元素表示预测正确的样本数量,非对角线上的元素表示预测错误的样本数量。从表中可以看出,本系统对正常连接和DOS攻击类型有较高的检测准确率,而对R2LU2R攻击类型有较低的检测准确率。这可能是由于R2LU2R攻击类型在测试集中占比较低,且与正常连接或其他攻击类型具有较高的相似性,导致模型难以区分。

4-1混淆矩阵

真实\预测

正常

DOS

R2L

U2R

PROBE

正常

60293

0

0

0

0

DOS

0

229853

0

0

0

R2L

0

0

16367

0

0

U2R

0

0

2886

52

0

PROBE

0

0

0

0

41078

 

4.4 本章小结

本章首先对系统的实验环境和工具进行介绍,然后又对数据集准备方面进行介绍,最后对实验结果进行了分析。综上所述,本文提出的方法有较好的表现。