基于深度学习的入侵检测系统设计
与实现
摘要
进入21世纪以来,信息和网络技术飞速发展,互联网规模不断扩大,网络的影响已经渗透到社会生活的每一个角落。黑客在政治、经济或军事利益的驱使下,对计算机和网络基础设施,特别是各官方机构的网站发动了越来越严重和广泛的攻击。与此同时,也发生了重大网络事件,造成了严重后果。例如,在过去的两年里,每年都有一只熊猫吸烟,这给人们的工作和生活带来了许多不便,甚至造成了重大且不可逆转的损失。近年来,电子商务和其他在线经济活动的繁荣进一步加剧了入室盗窃事件的增加。如何应对这一趋势是人们无法避免的严峻考验。通过有效的入侵检测,您可以及时识别网络流量中的入侵行为。基于此,您可以运行自动响应步骤或提醒系统管理员采取措施快速响应,有效阻止恶意行为,避免进一步损失。这就是为什么入侵检测技术在当今社会中很重要。该项目基于Django和MySQL,使用B/S架构实现了一个用于模型训练和测试的在线系统。
关键词:深度学习;入侵检测;网络流量;
Abstract
Since the beginning of the 21st century, information and network technology have been developing at a high speed, the scale of the Internet has been expanding, and the impact of the network has penetrated into every corner of social life. Hackers, driven by political, economic, or military interests, have launched increasingly fierce and pervasive attacks on computer and network infrastructure, especially the websites of various official institutions. At the same time, there are significant and impactful cyber incidents with serious consequences. For example, in the past two years, panda burning incense occurred every year, which brought many inconveniences and even significant and irreversible losses to people’s work and life. In recent years, the prosperity of e-commerce and other online economic activities has further intensified the growth of intrusion incidents How to cope with this trend is a severe test that people cannot avoid. Through efficient intrusion detection, intrusion behaviors in network traffic can be identified in a timely manner. Based on this, automatic response steps can be triggered or system administrators can be reminded to take measures to respond in a timely manner, effectively blocking malicious behavior and avoiding further losses. Therefore, intrusion detection technology has significant importance in today’s society. This project is based on Django+MySQL and uses B/S architecture to implement a web system; Model training and testing based on the NSL-KDD dataset.
Keywords: deep learning; Intrusion detection; network flow;
目录
基于深度学习的入侵检测系统设计与实现 1
摘要 I
Abstract II
1 绪论 1
1.1 选题背景与意义 1
1.2 国内外研究现状及进展 1
1.3 研究方法 4
1.4 创新点 4
1.5 技术路线 5
2 相关理论基础 6
2.1 引言 6
2.2 入侵检测技术概述 6
2.2.1 入侵检测简介 6
2.2.2 入侵检测系统的架构 6
2.2.3 入侵检测分类及技术分析 8
2.3 网络入侵检测系统 10
2.3.1 网络入侵检测系统的定义 10
2.3.2 网络入侵检测的分类 10
2.3 深度学习理论及相关模型 13
2.3.1 因子分解机 14
2.3.2 卷积神经网络 14
3 基于 CNN-FM 的网络入侵检测模型 15
3.1 引言 15
3.2 数据集与数据预处理 15
3.2.1 数据集 15
3.2.2 数据预处理 16
3.3 基于 CNN-FM 的网络入侵检测模型 18
3.3.1 因子分解机 18
3.3.2 卷积神经网络 18
3.3.3 CNN-FM 模型 19
3.3.4 激活函数 21
3.3.5 梯度下降优化器 21
3.3.6 输出层分类器 22
4 实验仿真与结果 23
4.1 系统整体框架 23
4.2 核心训练过程 23
4.2.1.整个流程 25
4.2.2.数据收集与预处理 25
4.2.3.特征工程 26
4.2.4.深度学习模型构建和训练 27
4.3 逻辑设计 28
4.3.1 功能模块设计 28
4.3.2 用户管理 29
4.4 评估标准 31
4.5 实验结果与分析 32
5 总结 42
附录 43
1 绪论
1.1 选题背景与意义
随着信息技术的不断发展,中国的互联网普及率逐年提高。截至2020年12月底,中国互联网普及率达到70.40%,比2020年3月底增长5.90%;截至2020年6月底,我国互联网普及率为71.60%,比2020年底增长1.20%。随着网络应用的普及和深入,网络已经成为人类生活的必需品,它不仅支持人们的社交互动和娱乐,而且在医疗、交通、金融甚至军事等领域也有广泛的应用。随着网络在社会国家和人民生活中发挥着越来越重要的作用,网络安全逐渐成为国家安全的关键。该国有9532页被篡改,其中55页是被篡改的政府页面;全国植入后门的网站数量为2932个,其中包括3个政府页面;针对全国性网站的虚假页面数量为130个;国家信息安全共享平台(CNVD)收集并整理了信息系统中的漏洞1293。其中包括334个高风险漏洞和993个可用于远程攻击的漏洞。
因此,为了应对日益复杂的网络环境,有必要创建一个准确的网络入侵检测系统。入侵检测系统可以被定义为识别和处理恶意使用计算机和网络资源的系统。目前的检测技术主要分为两类:基于误用的入侵检测和基于异常的入侵检测。基于误用的入侵检测系统,也称为基于签名的入侵检测,将传入的网络流量与现有签名进行匹配,并在影响后发出警报消息以指示异常行为。基于误用的入侵检测系统在很大程度上依赖于现有的特征知识库,这使得检测未知攻击和适应新的智能攻击行为变得困难。因此,基于异常的入侵检测是目前科学家们研究和开发的中心。基于机器学习的传统检测技术和基于深度学习的检测技术都属于基于异常的入侵检测。随着网络规模的增长和网络入侵技术的发展,网络数据的复杂性和特征也在不断增加。基于浅层机器学习的学习变得有些不足,深度学习网络入侵检测算法逐渐成为主流。深度学习算法可以在本地系统中实现入侵检测模型,从包含攻击行为的数据中学习。与传统的检测方法相比,它更稳定,可以快速识别入侵数据,大大提高了入侵检测系统的检测性能。因此,深度学习网络入侵检测研究具有重要的价值和意义。。
1.2 国内外研究现状及进展
随着互联网的不断发展,网络攻击越来越频繁,网络入侵检测已成为保护网络安全的重要手段之一。随着网络技术的不断发展和普及,网络安全问题也越来越受到人们的关注。网络黑客是一种常见的网络安全问题,是指未经授权的人员或程序通过网络进入另一个计算机系统并从事非法活动。网络入侵不仅会导致数据泄露和系统故障等问题,还会造成重大的经济损失,损害公司和个人的声誉。因此,网络入侵检测技术的研究和应用具有重要的实践意义。如今,深度学习网络入侵检测技术已成为国际研究的热点之一。深度学习是一种基于人工神经网络的机器学习方法,可以通过对大量数据的学习和训练来自动提取数据特征并进行分类和识别。与传统的机器学习方法相比,深度学习具有更高的准确性和更强的泛化能力,因此在网络入侵检测领域具有广阔的应用前景。深度学习网络入侵检测是一个具有挑战性的领域,国内科学家已经取得了一些研究成果。未来,需要进一步解决数据集不足、算法的可解释性和鲁棒性等问题,以促进深度学习网络入侵检测技术的发展。在国外,深度学习网络入侵检测技术已经取得了一些研究进展。美国麻省理工学院、斯坦福大学和加州大学伯克利分校等世界知名大学在这一领域进行了深入的研究。其中,麻省理工大学的一个研究小组提出了一种深度学习网络入侵检测系统deep IDS,该系统可以自动了解网络流量的特征并对其进行分类,具有高准确性和良好的可靠性。斯坦福大学的一个研究小组提出了一种基于深度对流神经网络的网络入侵检测系统,该系统可以实时监控和分析网络流量,实时检测和预防网络攻击。此外,欧洲的一些研究机构和企业也对深度学习网络入侵检测技术进行了一些研究。例如,德国弗劳恩霍夫研究机构提出了一种名为DeepSec的深度学习入侵检测系统,该系统可以实时监控和分析网络流量,并根据学习到的函数对其进行分类和识别。此外,英国公司Darktrace开发了一种基于深度学习的网络安全产品,可以自动学习和分析网络流量,并在正确的时间检测和预防网络攻击。总体而言,深度学习网络入侵检测技术在国外的应用取得了一些研究进展和成果,但仍存在一些挑战和问题。例如,如何解决数据不平衡和样本噪声等问题,以及如何提高模型的可靠性和可解释性。因此,未来需要进一步的研究和探索,不断改进和提高深度学习网络入侵检测技术的能力和性能
传统的网络入侵检测方法往往需要人工干预,检测结果并不令人满意。近年来,随着深度学习技术的发展,深度学习网络入侵检测已成为研究热点。本文将分析中国的研究现状。
1.3 研究方法
- 文献研究法: 查阅国内外关于基于深度学习的入侵检测系统的相关文 献,了解前人的研究成果、技术路线及存在的问题,为本课题的研究提供理论支 持和思路借鉴。
- 实验研究法:搭建实验环境,利用 NSL - KDD 数据集进行多次实验,在 实验过程中不断调整模型参数、优化特征工程,通过对比分析实验结果,确定最 优的系统设计方案。
- 对比分析法: 比较 CNN-LSTM 二分类模型和多分类模型的性能,从准确 率、训练时间、模型复杂度等方面进行综合分析,评估不同模型的优缺点。
1.4 创新点
1.训练方式创新:通过选择不同的深度学习模型和蒸馏算法,结合前后的训 练结果,针对准确率,损失值等值进行可视化对比训练,通过控制不同参数的大 小值,来实现模型的不断调优操作,提高模型训练的便捷性与操作性。
2.特征优化创新:在特征工程阶段,结合领域知识与深度学习算法,探索一 套全新的特征提取与优化方法,能够快速、精准地筛选出对入侵检测最具价值的 特征,降低数据维度,提高模型训练效率。
3.模型创新:蒸馏模型(Knowledge Distillation)技术,旨在通过将复杂 的深度学习模型中的知识传递给一个较小且更高效的模型,从而提升模型的推理 速度与实时性。通过蒸馏过程,能有效保持复杂模型在准确率上的优势,同时减 少模型的计算资源消耗,使得入侵检测系统能够在资源有限的环境下运行。
4.过采样技术优化数据不平衡问题:在入侵检测任务中,正常流量和入侵流 量的比例通常存在严重不平衡,导致模型难以对少数类(入侵行为)进行准确识 别。为了解决这一问题,本研究结合了过采样技术(如SMOTE),通过生成新的 少数类样本来平衡数据集,从而提高模型对稀有攻击模式的检测能力,减少误报 与漏报的发生。
5. 自注意力机制增强特征表达能力 : 通过自注意力机制,模型能够更加精 准地捕捉到网络流量数据中的时序关联性与局部特征,尤其是在长时间序列数据的处理上。与传统的LSTM 相比, 自注意力机制能够更加灵活地关注输入序列中 的关键部分,从而提升模型的检测准确度和鲁棒性,尤其在应对复杂入侵行为时 具有显著优势。
6.创新性地将卷积神经网络(CNN)与长短时记忆网络(LSTM)结合应用于 入侵检测任务,利用 CNN 的局部特征提取能力与 LSTM 的时序建模能力,有效捕 捉网络流量中的空间特征和时间依赖性,提升对复杂攻击模式的检测能力。这种 结合能够更好地处理数据中的多维信息,提高模型对网络入侵行为的识别效果。
7.不仅采用了单一的 CNN-LSTM 模型,还通过多模型融合(如集成学习、模 型蒸馏等)来进一步提升入侵检测系统的性能。通过集成多个不同结构和特点的 模型,能够减少单一模型可能存在的过拟合或欠拟合问题,从而提高整体检测效 果的稳定性与准确性。
1.5 技术路线
- 数据采集:从公开数据源获取 NSL - KDD 数据集,并将其导入本地实验 环境。
- 数据预处理:使用 Python 中的数据处理库如 Pandas、Numpy 对数据进 行清洗、转换、归一化等操作。
- 模型构建:在 Python 环境下,利用 torch 库分别构建二分类和多分类 模型,依据数据特征和实验需求调整模型参数。
- 模型评估: 在 Python 环境下构建 CNN-LSTM 模型,并结合自注意力机制 进行优化,使用常见评估指标对模型进行性能评估。
- 系统集成:将训练好的模型封装到基于 Django 或 Flask 的 Web 框架 中,设计前端界面,实现用户交互与系统管理功能,最终完成入侵检测系统的构 建。
2 相关理论基础
2.1 引言
入侵检测系统作为网络安全防护的屏障,随着网络的发展和普及,其重要性是不可替代的,如今网络数据变得越来越复杂,呈现出大规模、高纬度的特点,深度学习技术在高纬度的大规模数据处理中具有有效的学习优势。
2.2 入侵检测技术概述
2.2.1 入侵检测简介
入侵检测作为一种主动安全防护技术,通过拦截和响应来自网络或系统漏洞的入侵,提供实时保护,防止内部攻击、外部攻击和用户故障。因此,入侵检测被认为是防火墙之后的第二道安全门,可以在不影响网络性能的情况下监控网络或系统。入侵检测的实施通常涉及执行以下任务:监控和分析用户和系统的活动;系统架构和漏洞审计:识别已知的攻击活动模式,并立即提醒相关方;异常行为模式的统计分析;评估重要系统和数据文件的完整性;操作系统的审计管理和跟踪。入侵检测是防火墙的合理补充,帮助操作系统应对网络攻击,增强操作系统管理员的安全管理能力(包括安全审计、监控、攻击识别和响应),提高信息安全基础设施的完整性。
2.2.2 入侵检测系统的架构
一般来说,入侵检测系统有两种分类标准。一种是根据系统处理的数据来源进行分类,另一种是按照检测非法事件的方法进行分类。根据处理数据的来源
同样,入侵检测系统可分为主机(HIDS)和网络(NiDS)。如图2-1所示,NIDS通过监控网络流量来检测入侵行为。一般来说,它监控网络中一些关键设备(路由器、交换机等)上以混合模式流过网卡的数据包的拦截和分析
监控网络行为。
图 2-1 NIDS 示意图
如图2-2所示,HIDS位于主机上,全权负责确保主机的安全。监控数据包括以非混合模式通过主机网卡的所有数据包,以及本地系统日志、系统连接和其他本地信息。请注意,HIDS监视的网络数据包会被定向到它们所在的主机。
这两种识别方式各有优点。相对而言,通过获得丰富详细的数据,HIDS具有相对较高的检测率和较低的误报率。但是,HIDS只监视一台计算机的行为,完全忽略网络上其他计算机的存在。因此,存在对威胁反应迟缓的问题。当它检测到自己机器上的入侵迹象时,攻击者攻击网络的意图通常会部分实现。此外,高级攻击者可以避免被检测到,例如修改本地日志文件。因此,HIDS通常被用作深度网络防御系统的最后一道防线。NIDS是大坝之后的第二道防线。由于对NIDS网络数据包的监控,可用于分析的数据远不如HIDS获得的数据丰富。因此,NIDS以稍粗的粒度监控整个网络系统,检测率相对较低,误报率较高。但NIDS对入室盗窃的一般状态非常敏感,可以对入室盗窃早期阶段做出快速反应,通常作为防火墙后的第二道防线。
图 2-2 HIDS 位置示意图
2.2.3 入侵检测分类及技术分析
根据检测方法,入侵检测可分为两类:不当入侵检测和异常检测。滥用检测,也称为特征检测或滥用检测,依赖于已知攻击的知识来建立攻击特征库。通过将用户或系统行为与功能库中的不同攻击模式进行比较来确定是否发生了漏洞。该检测系统的优点是误报率低,精度高;其局限性在于,它对未知攻击无能为力,并且对特定系统有很强的依赖性。异常检测假设所有入侵检测行为都不同于正常行为。确定、更新和选择“正常”行为轮廓的特征大小对于异常检测技术至关重要。异常检测技术的局限性在于,并非所有入侵都表现为异常,系统的轨迹难以计算和更新。
1.误用入侵检测
基于误用的检测技术大致有专家系统、模式匹配与协议分析,基于模型、键 盘监控、模型推理、状态转换分析、Petri 网状态转换等方法。下面就专家系统、 状态转换分析进行分析论述。
(1)基于专家系统的误用检浏方法。如今,大多数系统使用基于规则的专家系统来检测入侵行为,将入侵行为编码为专家系统规则。每个规则都有“如果条件,然后采取行动”的形式,其中条件是在发生特定入侵时由入侵检测系统执行的处理操作,并且该操作代表调用的规则。专家系统的建立基于知识库的完整性,而知识库又取决于实时审计记录的完整性和性质。这种方法的缺点是标准化。数据库的完整性,以及获得专业知识和规则的动态更新;专家系统必须在工作过程中分析所有审计数据,从而产生效率问题;如何在大型系统上获得连续的实时审计数据也是一个问题。
(2)基于状态转换分析的误用检刻方法。状态转换分析是将攻击表示为一系列受监控的系统状态转换的过程,其中攻击模式的状态是根据与系统状态同时进行的状态转换的状态进行评估的。事件类型不必与审核记录一一匹配。但是攻击模式只描述了一系列事件,因此不适合描述更复杂的事件。删除某些攻击匹配没有一刀切的方法,因此它不擅长分析过于复杂的事件,也无法检测与系统状态无关的入侵。
2.异常入侵检测
基于数据挖掘、神经网络、支持向量机的异常入侵检测是近几年的研究热点。
(1)基于数据挖掘的异常入俊检测。通过从审计记录中提取默认和潜在有用的知识,主要使用聚类分析、序列模式分析、分类分析和其他数据挖掘方法来提取与入侵活动相关的系统属性,并基于系统特征属性生成入侵事件的分类模型,以自动识别入侵事件。数据挖掘方法适用于处理大量数据,但其实施需要大量的审计数据作为基础,系统学习过程缓慢,难以实现实时入侵检测。此外,数据探索基于大样本,获取足够的样本来检测入侵是非常困难和昂贵的。
(2)基于神经网络的异常入侵检测。神经网络由大量的处理单元组成,它们通过加权连接相互作用。来自审计日志或正常网络访问行为的信息由数据预处理模块处理,并用作输入向量。神经网络用于处理输入向量,提取正常用户行为模式的特征,并在此基础上分析用户行为函数。这需要一个系统在了解每个用户行为模式特征的情况下,提前训练大量实例,以便能够识别偏离这些轮廓的用户行为,否则效率很高神经网络的缺点是:训练时间长,依赖于训练数据集,建模成本高,无法为被认为异常的事件提供解释。目前解决这个问题的方法是训练具有特定功能和简单结构的小型神经网络,并共同构建强大的神经网络。添加新数据后,只需要调整一个小网络,而无需重新学习整个神经网络。
(3)基于支持向童机的异常入侵检测。 目前为止应用于入侵检测的 SVM 有二
分类 SVM,N 分类 SVM,针对无标签数据分类以及大量训练样本的 SVM。基于支持 向量机的异常入侵检测分为两步:
(1)训练:在某种SVM 训练算法下利用样本数据 进行分类器训练,结束时可得到 SVM 决策函数。
(2)检测:首先将检测数据转换为 SVM 接受的输入向量格式,然后使用培训阶段获得的决策函数对输入向量进行分类。。
支持向量机在检测入侵方面取得了良好的效果,但其性能在很大程度上取决于核函数的选择,目前还没有很好的方法来指导核函数的选取;SVM训练的速度受数据集大小的影响很大;现有的SVM理论只讨论了具有固定惩罚率的情况,但事实上,正负样本之间的两种误判往往会导致不同的损失。
2.3 网络入侵检测系统
2.3.1 网络入侵检测系统的定义
入侵攻击的定义是指试图破坏系统网络资源的完整性、可靠性、机密性和可 用性的一个动作集合。从目前的各个分类角度来看,可以有伪装、入侵、拒绝服 务、系统渗透、恶意、泄漏使用等6种类型。入侵检测技术是一种用于识别和处理系统网络资源上各种非法行为的解决方案,以帮助系统应对来自网络的外部和内部攻击。采用主动防护方法,在各级网络协议中实施全面的入侵检测,提前检测和预防对系统的潜在攻击,这不仅有效地检测到网络外部的入侵,还检测到网络内部的行为。入侵检测显著提高了网络管理员的网络管理能力,并确保了信息安全结构的完整性。
2.3.2 网络入侵检测的分类
对于目前的入侵检测系统而言,不同的标准有不同的分类,大体上分为基于 数据来源划分和基于检测技术划分。基于数据来源划分主要分为两类,基于主机的入侵检测和基于网络的入侵检 测。基于主机的 IDS(Host-based Intrusion DetectionSystem, HIDS)通常是位 于被监视系统上的软件组件, 监视主机系统的操作或状态, 检测系统事件, 例如,未经授权的访问或安装,主要分析与操作系统信息相关的事件。通过浏览日志、系统调用、文件系统修改和其他状态和操作检测入侵。其优点是,它可以在发送和接收数据之前通过扫描流量活动来检测内部威胁。缺点是它只监视主机,必须安装在每台主机上。它无法监控网络流量或分析与网络相关的行为信息。在基于主机的入侵检测系统中,大多数系统可分为程序级IDS或操作系统级IDS。程序级IDS侧重于使用源代码、字节码、静态或动态控制流以及其他应用程序状态信息监视单个应用程序。操作系统级IDS监控系统的整体状态,并可以监控所有进程的组合行为,以区分操作系统级的正常和异常行为,其中可能包括系统日志、Windows注册表数据和其他相关内容。常见的基于主机的入侵检测数据集包括ADFA、Blue Gene/L数据等。
网络入侵检测系统(NIDS)实时监控和分析网络流量,并监控多台主机,目的是收集有关数据包的信息并查看其内容,以检测网络入侵的行为。NIDS的优点是只有一个系统监控整个网络,节省了在每个主机上安装软件的时间和成本。缺点是NIDS使得难以获得有关被监控系统状态的内部信息,这使得检测更加困难。其中,网络数据分为基于流的数据和基于包的数据。基于流的数据仅包含与网络连接相关的元信息,而基于分组的数据还包括负载。常用的网络入侵检测公开数据集包括DARPA1998、DARPA1999、KDD1999、NSLKDD、Gure KDD、CIDDS-001、CICIDS2017、ISC2012、Kyoto+、UNSW-NB15数据集等。
基于入侵检测技术,系统可分为基于误用的入侵检测和基于异常的入侵检测。基于误用的入侵检测系统(MIDS),也称为基于签名的入侵检测,将传入的网络流量与现有签名进行匹配,并在出现异常行为后发送警报消息。MIDS为任何类型的攻击设计签名,具有高检测精度。现有的MIDS包括以下三种方法:(1)状态建模,即在有限机器中对许多不同状态的攻击进行编码。观察配置文件中的移动,检测攻击行为。(2) 字符串匹配:是指通过匹配字符串模式搜索攻击特征来获取知识,以确定是否存在入侵行为的过程。