机器学习中的网络入侵检测系统

2025年3月17日 | 阅读 14 分钟
Network Intrusion Detection System Using Machine Learning

随着互联网和通信技术的飞速发展,网络安全领域已成为研究的重点。这包括应用防火墙、杀毒软件和入侵检测系统(IDS)等资源来保护数字空间中的网络及其资源的安全性。在这些资源中,网络入侵检测系统(NIDS)占有关键地位,因为它们持续监控网络流量,以检测任何潜在的有害或可疑行为。

IDS 的概念最初由 Jim Anderson 在 1980 年提出,为各种 IDS 产品的开发奠定了基础,以满足网络安全的需求。尽管如此,技术的飞速发展带来了网络的扩张以及海量数据和应用程序的管理,这对保护网络节点和数据带来了挑战。当前的 IDS 在识别新型攻击和减少误报方面表现出局限性,这导致了对有效且精确的 NIDS 解决方案的需求。

为了满足对强大 IDS 的需求,研究人员已经进军人工智能领域,特别是机器学习和深度学习技术。这些方法在网络安全领域日益受到重视,很大程度上得益于强大的图形处理单元(GPU)的可用性。基于 ML 的 IDS 依赖于特征工程来从网络流量中提取见解,而基于 DL 的 IDS 则利用其复杂的架构从原始数据中自主学习复杂的模式。

在过去十年中,研究人员提出了基于 ML 和 DL 的解决方案,以提高网络入侵检测系统在检测恶意攻击方面的效率。然而,不断增长的网络流量和日益增加的安全威胁给 NIDS 有效查明入侵带来了挑战。

应用使用机器学习的网络入侵检测系统

将网络入侵检测系统与机器学习结合使用,在许多领域都产生了重大影响。这些由 ML 驱动的系统通过发现和阻止潜在危险来帮助保护计算机网络安全。这确保了网络和重要信息保持安全。以下是使用 ML 的 NIDS 有用的几个重要方面:

  • 异常检测:机器学习算法可以针对大量网络流量数据进行训练,以学习正常的模式和行为。通过分析实时网络数据,这些算法可以检测与正常行为的异常或偏差,这可能表明潜在的安全威胁,如入侵或恶意活动。异常检测有助于识别传统基于规则的入侵检测系统可能遗漏的、以前未知或零日攻击。
  • 入侵检测与防御:使用机器学习,我们可以创建模型,这些模型可以学习对网络活动进行分类,并识别特定的攻击模式,如拒绝服务(DoS)攻击、SQL 注入、恶意软件传播或未经授权的访问尝试。这些模型持续监控网络行为,并在检测到攻击时发出警报,甚至采取预防措施。例如,它们可能会阻止可疑的 IP 地址或实施即时安全措施。
  • 恶意软件检测:机器学习算法可以分析网络数据,包括数据包负载,以检测和分类恶意软件。通过学习已知的恶意软件模式和行为,这些算法可以识别新的恶意软件变种或以前未见的威胁。基于机器学习的恶意软件检测可以提高检测和缓解网络中恶意软件感染的效率和准确性。
  • 威胁情报与分析:机器学习可用于分析大量的威胁情报数据,包括安全日志、漏洞报告和安全公告。通过从这些数据中提取相关模式和相关性,机器学习算法可以帮助识别新兴威胁、预测攻击趋势,并为主动安全措施提供可操作的见解。这有助于组织保持在不断发展的威胁之上,并加强其整体安全态势。
  • 用户和实体行为分析(UEBA):机器学习算法可以分析用户行为,如登录模式、数据访问模式和资源使用情况,以检测可能表明内部威胁或用户账户被盗的异常。UEBA 系统可以学习网络内用户和实体的正常行为配置文件,并在观察到偏差或可疑活动时发出警报。这种主动检测内部威胁的方法有助于组织降低风险并防止数据泄露。
  • 网络流量分析:利用机器学习方法,我们可以采用数据分析来研究网络流量数据,识别可能预示着安全问题或潜在弱点的连接、趋势和关系。通过处理大量的实时网络数据,机器学习算法可以提供关于网络行为、流量趋势的宝贵信息,并发现潜在威胁(IOC)的迹象。机器辅助的网络流量分析有助于发现和应对高级持续性威胁(APT)和其他复杂的攻击。
  • 安全事件关联:机器学习方法在连接来自防火墙、入侵检测系统和日志文件等各种来源的安全事件和日志方面非常有用。通过分析这些关联事件,机器学习模型可以发现复杂的攻击模式,识别有组织的攻击序列,并提供对安全状态的全面概述。使用机器学习进行安全事件关联可以提高事件响应的有效性,同时通过查明重要且相关的安全事件来减少误报。

使用机器学习的网络入侵检测系统面临的挑战

使用机器学习(ML)的网络入侵检测系统(NIDS)有许多应用和好处,但它也伴随着需要仔细考虑的挑战。这些挑战包括:

  • 数据不平衡:在训练入侵检测模型时,由于正常流量样本的数量与恶意流量样本的数量存在显著差异,因此会产生一个问题。数据集中的这种不平衡可能导致模型出现偏差,使其无法准确识别不频繁或罕见的攻击。解决这种不平衡对于确保模型能够熟练地区分常见和不常见的威胁至关重要。
  • 动态网络行为:网络行为的持续演变给使用机器学习构建精确的入侵检测模型带来了重大挑战。由于软件更新、用户行为变化以及新安全威胁的出现,网络会持续呈现模式变化。构建能够熟练适应这些不断变化的模式——捕获合法行为,同时突出显示指示恶意活动的偏差——的模型,是一个艰巨的挑战。
  • 高维数据:网络流量数据固有的高维度性给可视化、处理和分析带来了复杂性。构成网络行为的变量数量巨大,给计算带来了挑战,可能会减慢分析和检测的速度。采用降维技术对于简化处理和提高模型效率至关重要。
  • 对新攻击的分类:训练数据中不存在的新型复杂攻击对机器学习模型构成了重大挑战。这些模型可能难以识别这些以前未见的威胁,导致误报和潜在的安全漏洞。开发能够适应新出现的攻击向量并能够泛化的模型仍然是一个重大挑战。
  • 对抗性攻击:攻击者可以通过利用机器学习模型的漏洞来操纵网络流量以逃避检测。对抗性攻击需要持续的模型更新和稳健性测试,以确保模型在对抗对抗性规避尝试方面保持有效。
  • 模型可解释性:许多机器学习算法,特别是深度学习模型,作为复杂的“黑箱”运行。其决策过程缺乏透明度,给理解特定决策背后的原因带来了挑战。解释这些决策,特别是向系统管理员和安全专家解释,被证明是确保信任、透明度和有效决策的关键方面。
  • 隐私问题:处理敏感网络数据会带来隐私问题,因此需要采取强大的数据匿名化和严格的安全措施来保护敏感信息。

关于数据集

提供的审计数据集包含在军事网络环境中模拟的各种入侵。该环境旨在复制典型美国空军 LAN 的条件,捕获原始 TCP/IP 转储数据。这涉及到模拟真实网络环境并对其进行各种攻击模拟。在此上下文中,“连接”表示发生在特定时间间隔内的 TCP 数据包序列,其中数据在源 IP 地址和目标 IP 地址之间按照定义的协议传输。这些连接中的每一个都被归类为“正常”或“攻击”,并且每种攻击都与特定的攻击类型相关联。每个连接记录包含大约 100 字节的数据。

对于每个 TCP/IP 连接,都会从正常和攻击数据中提取一组 41 个定量和定性特征。这些特征包括 3 个定性和 38 个定量属性。数据集中的类变量包含两个类别:

  • "正常"
  • "异常"

现在我们将尝试使用各种机器学习算法来预测给定数据集中的入侵。我们还将查看它们的准确率,并尝试确定哪种算法更适合入侵检测。

  • 导入库
  • 读取数据集

输出

Network Intrusion Detection System Using Machine Learning
  • EDA(探索性数据分析)

探索性数据分析(EDA)是一种分析数据的基本方法,包括系统地检查和图形化表示数据集以提取有价值的观察和趋势。此过程包括数据分析、摘要和信息可视化等活动,以掌握数据的分布、相关性和特征。EDA 旨在查明潜在的异常数据点、数据缺失的区域以及不规则性。它还评估数据的可靠性和适用性,以进行更高级的分析或模型构建。

输出

Network Intrusion Detection System Using Machine Learning
Network Intrusion Detection System Using Machine Learning

我们的数据集中有 42 列和 25192 行。

输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

缺失数据

我们的数据集中没有一个缺失值。这是非常值得称道的,因为它保证了分析的稳健性和可靠性。

重复行

输出

Network Intrusion Detection System Using Machine Learning

同样,我们没有任何重复的行。

异常值

异常值是指与数据集中其余数据的普遍模式或趋势存在显著偏差的数据点。这些数据值明显远离数据集内其他值的较大集群。这些异常值可能会影响数据分析或模型结果,通常是通过引入不能反映数据正常特征的干扰或不规则性。

输出

Network Intrusion Detection System Using Machine Learning

在整个数据集中,我们没有任何异常值。

相关性

输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

标签编码

标签编码是一种在数据准备用于分析时使用的技术。它将类别(如事物类型)转换为数字。每个类别都有自己的编号。这有助于计算机程序(如机器学习中使用的程序)理解和处理数据,尤其是在需要数字进行计算时。


输出

Network Intrusion Detection System Using Machine Learning
  • 特征选择

特征选择涉及从数据集中挑选最有意义和最关键的属性或因素,以用于模型或分析。这简化了数据,使其不那么复杂,并提高了模型的有效性。通过查明正确的特征,我们可以专注于最有影响力的细节,从而提高我们分析或预测的准确性和效率。

我们将尝试选择最有意义的属性,因为您已经知道我们最初的数据集有 42 列。属性数量过多会降低模型的效率。


输出

Network Intrusion Detection System Using Machine Learning

以上是适用于我们模型的相关特征。


  • 建模

接下来,我们将继续训练以下模型,并在训练和测试数据集上评估其得分。

  • KNN(K 近邻)
  • 逻辑回归
  • 决策树分类器
  • 随机森林分类器
  • SKLearn 梯度提升
  • XGBoost
  • Light Gradient Boosting
  • ADAboost
  • Catboost
  • 朴素贝叶斯
  • 投票模型
  • SVM

1. KNN(K 近邻)

输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

2. 逻辑回归

输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

3. 决策树分类器


输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

4. 随机森林分类器


输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

5. SKLearn 梯度提升

输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

6. XGBoost

输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

7. Light Gradient Boosting

输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

8. ADAboost


输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

9. Catboost


输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

10. 朴素贝叶斯

输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

11. 投票模型


输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

12. SVM


输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

输出

Network Intrusion Detection System Using Machine Learning

模型选择

现在我们将查看我们使用的所有模型的得分,并选择模型。

输出

Network Intrusion Detection System Using Machine Learning

正如我们所见,几乎所有模型的准确率都很高。因此,根据直觉,我们可以选择模型进行进一步实践。建议使用集成方法,如随机森林、梯度提升和投票,以利用结合了多个模型的集成技术来提高性能。它们通常可以有效地处理数据中的复杂关系

如果您想要一个更容易解释的模型,那么决策树很容易解释和可视化,这可能有利于理解入侵检测过程。逻辑回归和朴素贝叶斯也是相对可解释的模型。

对于高维数据,我们可以使用 SVM。

使用机器学习的网络入侵检测系统的未来前景

结合机器学习的网络入侵检测系统(NIDS)的未来前景广阔。随着 NIDS 模型的进步,它们在检测新兴威胁和攻击方面的适应性将更强。迁移学习的概念将加速知识共享,从而进一步提高检测效率。识别异常活动(异常)的能力将变得更加精确,即使它们很微妙。实时快速分析将有助于更快地响应威胁。通过整合不同类型的数据,将有可能获得对潜在危险更完整的画面。

确保模型决策清晰(模型可解释性)将是一个重点。防御系统的集体智慧将协同工作以对抗威胁。利用人工智能,事件响应将实现自动化。详细的分析将提供对威胁更细致的理解。将使用保护敏感信息的方法来解决隐私问题。持续学习和集成先进计算(如量子计算)将使 NIDS 更加强大。总之,由机器学习驱动的 NIDS 将通过新的方法、团队合作和自动化来改进网络安全。

结论

使用机器学习的网络入侵检测系统代表了网络安全的一个范式转变。随着威胁变得越来越复杂,NIDS 必须与之同步发展。机器学习赋予 NIDS 适应性、准确性和实时能力,以有效对抗现代网络威胁。虽然挑战仍然存在,但未来有望出现更先进的技术和协作方法来确保我们数字景观的安全。通过利用机器学习的 NIDS,组织可以自信地驾驭复杂且不断变化的数字安全格局。