基于机器学习的入侵检测系统

article/2025/9/24 7:01:08
640?wx_fmt=jpeg

导 语


在过去十年中,机器学习技术取得了快速进步,实现了以前从未想象过的自动化和预测能力。随着这一技术的发展促使研究人员和工程师为这些美妙的技术构思新的应用。不久,机器学习技术被用于加强网络安全系统。

640?wx_fmt=jpeg

网络安全性最常见的风险就是入侵,例如暴力破解、拒绝服务,甚至是网络内部的渗透。随着网络行为模式的变化,有必要切换到动态方法来检测和防止此类入侵。许多研究都致力于这一领域。


我们需要可修改、可重复、可扩展的数据集来学习和处理,以便能够轻松绕过基本入侵检测系统(IDS)的复杂攻击。这是机器学习能够发挥作用的地方,我们将在本文学习可用于构建健壮的IDS的各种机器学习技术。

什么是IDS?


“巨大的”网络攻击击败了雅虎。这是CNN的一段摘录,描述了有史以来的首次DoS(拒绝服务)攻击。

“在太平洋标准时间上午10:30,雅虎路由器出现了分布式拒绝服务攻击”,一位不愿透露姓名的雅虎发言人表示。“我们相信它是互联网上的多个点上进行协调的。”

像这样的事件可能导致现代数字经济中数百万美元的损失。

确实存在入侵检测系统(IDS)以防止上述情况的组织。他们监控网络流量是否存在可疑活动,并在出现问题的时候发出警报。

IDS的类型


入侵检测系统可以使用不同类型的方法来检测可疑活动。它可以大致分为:


  • 基于签名的入侵检测:这些系统将传入流量与已知的已知攻击模式数据库(称为签名)进行比较。检测新攻击很困难。供应系统的供应商会主动发布新名称。(类似于防病毒软件)

  • 基于异常的入侵检测:它使用统计信息以不同的时间间隔形成网络的基线使用情况。引入它们是为了检测未知的攻击。该系统使用机器学习来创建模拟常规活动的模型,然后将新行为与现有模型进行比较。


IDS测不同地方的入侵。根据他们发现的地方,可以分为:


  • 网络入侵检测(NIDS):它是一个战略性地(单个或多个位置)系统,用于监控所有网络流量。


  • 主机入侵检测(HIDS):它在网络中连接到组织机构的Internet / Intranet的所有设备上运行。他们可以检测源自内部的恶意流量(例如,当恶意软件试图从组织中的主机传播到其他系统时)

IDS也可以根据它的行为进行分类:


  • 活动:它也被称为入侵检测和防御系统。它会生成警报和日志以及更改配置以保护网络的命令。


  • 被动:它只是检测恶意活动并生成警报或日志,但它不会采取任何行动。

在列出IDS的一般限制之后,我们将讨论使用机器学习的混合入侵系统。

传统IDS的局限性


  • 几次真正的攻击远远少于虚假警报的数量,这导致真正的威胁经常被忽视。

  • 噪声会通过产生高误报率严重降低IDS的能力。

  • 基于签名的IDS需要不断的软件更新才能跟上新威胁。

  • IDS监控整个网络,因此容易受到网络主机的相同攻击。基于协议的攻击可能导致IDS失败。

  • 网络IDS只能检测网络异常,这些异常限制了它可以发现的各种攻击。

  • 所有入站和出站流量都通过它时,网络IDS可能会产生瓶颈。

  • 主机IDS依赖于审计日志,任何攻击修改审计日志都会威胁到HIDS的完整性

IDS中的机器学习


在我们解决问题之前,有必要了解以下几点:

机器学习是一个研究领域,它使计算机能够从经验中学习和改进。机器学习侧重于开发可以使用数据发现特征的程序。

学习过程从观察或数据开始,以查找数据中的模式,并根据提供的示例做出更好的预测。主要目的是让计算机在没有人工协助的情况下学习,并相应的进行调整。

机器学习算法可大致分为:

  • 监督机器学习算法:可以应用过去学到的东西来使用标记示例预测未来事件。算法分析称为训练数据集,用于生成推断函数以对输出值进行预测。经过充分的训练,系统可以为新的输入提供目标。该机器配备了一组新的示例,因此监督学习算法分析训练数据并从标记数据产生正确的结果。

  • 无监督机器学习算法:当用于训练的信息既未标记也未分类时使用。无人值守学习研究系统如何推断函数来描述未标记数据的隐藏结构。这里的机器任务是根据模式,相似性和差异对未分类信息进行分组,而无需任何先前的训练数据。设备受到限制,结构不反映。

  • 半监督机器学习算法:利用未标记的数据进行训练 - 混合使用标记较少的数据和大量未标记的数据。

  • 半监督学习介于无监督学习和监督学习之间:当你没有足够的标签数据来产生准确的模型,或者你缺乏获得更多的半监督技术的能力/资源时,可以使用这些学习训练数据的大小。

机器学习评估IDS


无监督学习算法可以“学习”网络的典型模式,并且可以在没有任何标记数据集的情况下报告异常。它可以检测新类型的入侵,但很容易出现误报警。因此,前面只讨论了一种无监督算法K均值聚类。为了减少误报,可以引入标记数据集,并教网络中正常数据包和攻击数据包之间的差异来构建受监督的机器学习模型。受监督的模型可以灵活的处理已知的攻击,并且还可以识别这些攻击的变化。将讨论标准监督算法(贝叶斯网络、随机森林、随机树、MLP、决策表)。


数据集

开始使用机器学习模型的最重要和繁琐的过程是获得可靠的数据。我们使用KDD Cup 1999数据来构建能够区分入侵或攻击以及有价值的连接的预测模型。该数据库包含一组标准数据,其中包括在军事网络环境中模拟的各种干预措施。它由4,898,431个实例和41个属性组成。


每个连接都标记为正常或攻击,只有一种特定的攻击类型。每个连接记录包含大约100个字节。


攻击分为四大类:

  • DOS:拒绝服务

  • R2L:远程计算机的未授权访问

  • U2R:未经授权访问本地root权限

  • 探测:监视和另一次探测


每个组都有各种攻击,共有21种类型的攻击。

640?wx_fmt=png

KDD集摘要

使用基于TCP/IP实现的任何连接收集的分类为必要信息的属性也如下所示:

640?wx_fmt=png

必须先处理数据,然后才能在机器学习算法中使用。这意味着必须选择功能,有些元素很容易找到;其他人必须通过试验和运行测试找到。使用数据集的所有功能并不一定能保证IDS的最佳性能。它可能会增加计算成本以及系统的错误率。这是因为某些功能是冗余的,或者对于区分不同的类没有用。


该数据集的主要贡献是引入专家建议属性,有助于理解不同类型攻击的行为,包括检测DOS、PROBE、R2L和U2R的基本特征。以下是域知识建议的一些内容功能列表。

640?wx_fmt=png

专家特色

其他几个数据集也在这里提及:

  • ISCX 2012数据集由加拿大网络安全研究所收集(标记为)

  • CTU-13数据集于2011年在捷克共和国CTU大学捕获(未标记)


机器学习算法概述


K-Means聚类

如上所述,K-Means聚类是一种无监督学习技术。它是最简单和最流行的机器学习算法之一。它在数据中查找组,其中组的数量有变量K表示。算法根据数据集的特征将数据点分配给K组之一。数据点基于特征的相似性进行聚类。


贝叶斯网络

贝叶斯网络是一种概率图形模型。它旨在通过在有向图的边缘上绘制依赖关系来利用条件依赖性。它假设所有未通过边连接的节点都是有条件独立的,并在创建有向非循环图时利用这一事实。


随机森林分类器

随机森林是一个集合分类器,这意味着它结合了许多算法用于分类目的。它们在随机数据子集上创建多个决策树。然后汇总每棵树的总票数以决定测试的类别,或者它为各个树的贡献分配权重。


多层感知器(MLP)

MLP是前馈神经网络。它至少包含三层:输入层、隐藏层和输出层。在训练期间,调整权重或参数以最小化分类中的误差。在每个隐藏节点中引入非线性。反向传播用于相对于误差进行那些权重和偏差调整。

执行


将使用Python及其广泛的库来使用IDS。在我们开始申请之前,需要安装Pandas、numpy、scipy。如果你使用的是Ubuntu shell,请使用

 
1sudo pip install numpy scipy pandas


首先需要对数据集进行预处理。需要下载数据集,并将其解压缩到你将编写程序的文件夹中。


数据集应采用.csv格式,python可以轻松读取。

 
1# Import pandas2import pandas as pd3# reading csv file4dataset = pd.read_csv("filename.csv")
2import pandas as pd
3# reading csv file
4dataset = pd.read_csv("filename.csv")


前面提到的机器学习算法都存在于奇妙的scipy库中。你可以按照以下步骤通过不同的模型快速运行数据集:

K-MEANS

 
1import numpy as np2from sklearn.cluster import KMeans3print(dataset.describe()) # to view the summary of the dataset loaded4kmeans = KMeans(n_clusters=2) # You want cluster the threats into 5: Normal, DOS,PROBE, R2L and U2R5kmeans.fit(X)6prediction = kmeans.predict(dataset[0]) # predicts the type for the first entryimport numpy as np
2from sklearn.cluster import KMeans
3print(dataset.describe()) # to view the summary of the dataset loaded
4kmeans = KMeans(n_clusters=2# You want cluster the threats into 5: Normal, DOS,PROBE, R2L and U2R
5kmeans.fit(X)
6prediction = kmeans.predict(dataset[0]) # predicts the type for the first entry


随机森林

 
1#Import Random Forest Model2from sklearn.ensemble import RandomForestClassifier3#Create a Gaussian Classifier4clf=RandomForestClassifier(n_estimators=50)5#Train the model using the training dataset6clf.fit(dataset,dataset[:,LAST_COLUMN]) #LAST_COLUMN is the index of the column with the labelled type of threat or normal7pred=clf.predict(dataset)#Import Random Forest Model
2from sklearn.ensemble import RandomForestClassifier
3#Create a Gaussian Classifier
4clf=RandomForestClassifier(n_estimators=50)
5#Train the model using the training dataset
6clf.fit(dataset,dataset[:,LAST_COLUMN]) #LAST_COLUMN is the index of the column with the labelled type of threat or normal
7pred=clf.predict(dataset)


NAIVE BAYES NETWORK

 
1from sklearn.naive_bayes import GaussianNB2#Create a Gaussian Naive Bayes Classifier3gnb = GaussianNB()4gnb.fit(dataset,dataset[:,LAST_COLMN])5pred=predict(gnb,dataset[0])from sklearn.naive_bayes import GaussianNB
2#Create a Gaussian Naive Bayes Classifier
3gnb = GaussianNB()
4gnb.fit(dataset,dataset[:,LAST_COLMN])
5pred=predict(gnb,dataset[0])


MULTI_LAYER PERCEPTRON

 
1From sklearn.neural_network import MLPClassifier2#Create a Multi-Layer Perceptron3clf = MLPClassifier(solver='lbfgs', alpha=1e-5,4hidden_layer_sizes=(5, 2), random_state=1)5clf.fit(dataset,dataset[:,LAST_COLMN])6pred=clf.predict(dataset[0]);import MLPClassifier
2#Create a Multi-Layer Perceptron
3clf = MLPClassifier(solver='lbfgs', alpha=1e-5,
4hidden_layer_sizes=(52), random_state=1)
5clf.fit(dataset,dataset[:,LAST_COLMN])
6pred=clf.predict(dataset[0]);

结 果


为了衡量机器学习模型的准确性,我们使用各种参数。此处使用的指标包括平均准确度、误报率和误差率。K-Means被排除在该度量之外,因为它是无监督算法。

平均准确度定义为正确分类的数据点与数据点总数的比率。

640?wx_fmt=png

误报是那些应该作为威胁返回的情况,但实际并不是。

640?wx_fmt=png

下面给出了一些其他指标比较:

  • 精确和真实的积极

  • 精确度是感知威胁与总威胁的比率。

  • 真正的积极因素是威胁并正确识别为威胁的数据包。

640?wx_fmt=png

如何使你的业务受益

所有当前的IDS都在转向机器学习技术,以应对不断增加的网络安全威胁。这不仅使入侵检测过程自动化,而且还具有惊人的准确性。企业可以使用这些结果来定位攻击源,阻止进一步的尝试并优化其网络。另一个重要的优势是公司不必为特定的专有签名付费以保护自己免受新攻击。

结 语

IDS正在使用本文中讨论的许多机器学习技术:

●K-means

●贝叶斯网络

●随机森林分类器

●多层感知器

不同的技术在各种指标中表现更好。IDS应根据要求提供最有效的解决方案。有一件事是肯定的,任何公司现在或在不久的将来都不会采用这些技术,这会危及数据或服务器。建议保证安全,采用机器学习。

                                                 

640?wx_fmt=jpeg

长按二维码 ▲

订阅「架构师小秘圈」公众号

如有启发,帮我点个在看,谢谢↓


http://chatgpt.dhexx.cn/article/kjtBXFS7.shtml

相关文章

入侵检测系统(IDS)分类

入侵可以定义为任何类型的对信息系统造成损害的未经授权的活动。这意味着任何可能对信息机密性、完整性或可用性构成威胁的攻击都将被视为入侵。例如,使计算机服务对合法用户无响应的活动被视为入侵。 IDS 是一种软件或硬件系统,用于识别计算机系统上的恶…

IDS(入侵检测系统)

目录 一、结合以下问题对当天内容进行总结 1. 什么是IDS? 2. IDS和防火墙有什么不同? 3. IDS工作原理? 4. IDS的主要检测方法有哪些详细说明? 5. IDS的部署方式有哪些? 6. IDS的签名是什么意思?签名…

入侵检测系统,浅析几个著名的入侵检测系统

原文:http://www.cuntuba520.net/xiaozhishi/2347367.html 一 > 浅析几个著名的入侵检测系统 入侵检测系统是一种对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备。它与其他网络安全设备的不同之处便在于,入侵…

入侵检测系统的原理与应用

入侵检测是一种主动保护自己免受攻击的网络安全技术。作为防火墙的合理补充,入侵检测技术能够帮助系统对付网络攻击,扩展了系统管理员的安全能力(包括安全审计、监视、攻击识别和响应),提高了信息安全基础结构的完整性…

IDS入侵检测系统

文章目录 一、IDS是什么二、入侵检测系统的作用和必然性三、入侵检测系统功能四、入侵检测系统的分类五、入侵检测系统的架构六、入侵检测工作过程七、入侵检测性能关键参数八、入侵检测技术九、入侵响应技术十、IDS的部署十一、入侵检测体系结构(主机入侵检测、网络…

入侵检测系统详解(IDS)

目录 入侵检测系统(IDS)概念入侵检测系统的分类根据数据源分类1 基于主机的入侵检测系统(HIDS)2 基于网络的入侵检测系统(NIDS) 根据检测原理分类1 异常入侵检测。2 误用入侵检测。 根据体系结构分类1.集中…

入侵检测系统原理和实现

1. 入侵检测系统简介 1.1 入侵检测分类 按信息源分类 根据信息源的不同,入侵检测技术分为基于主机型和基于网络型两大类。 1)基于主机的入侵检测技术 基于主机的入侵检测技术可监测系统、事件和WindowsNT下的安全记录,以及Unix环境下的系统…

什么是入侵检测系统?有哪些分类?

在现在网络中,攻击无处不在,可以不夸张的说,每一秒都有企业或者个人被网络攻击。有人说了,不是有防火墙嘛? 确实,防火墙是防止有害和可疑流量流入系统的首选解决方案,但是防火墙并不能保证 100…

IDS(入侵检测系统)简介

目录 1. 什么是IDS? 2. IDS和防火墙有什么不同? 3. IDS工作原理? 4. IDS的主要检测方法有哪些详细说明? 5. IDS的部署方式有哪些? 6. IDS的签名是什么意思?签名过滤器有什么作用?例外签名…

网络安全之入侵检测系统

一 入侵检测定义 入侵:指一系列试图破坏信息资源机密性、完整性和可用性的行为。对信息系统的非授权访问及(或)未经许可在信息系统中进行操作。入侵检测:是通过从计算机网络系统中的若干关键节点收集信息,并分析这些信…

入侵检测系统(IDS)简介

文章目录 一、入侵检测系统(IDS)简介二、入侵检测系统的组成参考链接 一、入侵检测系统(IDS)简介 入侵检测系统(intrusion detection system,简称“IDS”)是一种对 网络传输 进行即时监视&…

13款入侵检测系统介绍(HIDS)

原文 阅读目录 1 什么是入侵检测系统(IDS)? 工具列表 2 入侵检测系统的类型 3 基于主机的入侵检测系统(HIDS) 4 基于网络的入侵检测系统(NIDS) 5 HIDS or NIDS? 6 检测方法:基…

利用msfvenom生成后门木马

msfvenom工具介绍 msfvenom a Metasploit standalone payload generator,Also a replacement for msfpayload and msfencode.是用来生成后门的软件。MSFvenom是Msfpayload和Msfencode的组合,将这两个工具都放在一个Framework实例中。 用msfvenom生成一…

网络安全实战植入后门程序

在 VMware 上建立两个虚拟机:win7 和 kali。 Kali:它是 Linux 发行版的操作系统,它拥有超过 300 个渗透测试工具,就不用自己再去找安装包,去安装到我们自己的电脑上了,毕竟自己从网上找到,也不…

服务器有木马后门如何查找SSH后门

关于SSH后门木马查杀,那SSH协议其实它是一个加密的网络传输协议,通常咱们使用它作为Linux管理使用,那它用来传输命令界面和远程执行命令,也就是咱们现在看到的这个界面,通常计算机被入侵之后,如果这个计算机…

14、TheFatRat木马生成工具-创建后门或payload

kail攻击主机: Kali 192.168.11.106 靶机:windows server 2008 r2 192.168.11.134 x64 32位 一、TheFatRat介绍 TheFatRat创建的后门或者payload,可以在Linux,Windows,Mac和Android上等多种平台上执行,可…

网络安全实战之植入后门程序

在VMware上建立两个虚拟机:win7和kali。 Kali:它是Linux发行版的操作系统,它拥有超过300个渗透测试工具,就不用自己再去找安装包,去安装到我们自己的电脑上了,毕竟自己从网上找到,也不安全。它…

Kali Linux渗透测试小实践——Metasploit与后门木马

目录 一、环境和工具准备 1.Metasploit 2.Kali Linux与靶机 二、实践过程 1.打开Kali Linux,进入终端 2.输入生成木马的命令,并配置相关参数 一、环境和工具准备 1.Metasploit Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和…

应急响应 WEB 分析日志攻击,后门木马(手动分析 和 自动化分析.)

网络安全--应急响应 应急响应”对应的英文是“Incident Response”或“Emergency Response”等,通常是指一个组织为了应对各种意外事件的发生所做的准备以及在事件发生后所采取的措. 网络安全应急响应:针对已经发生的或可能发生的安全事件进行监控、分析…

上传木马后门

1.进入监听模块 use exploit/multi/handler 2.修改LPORT和LHOST、payload参数 set payload windows/x64/meterpreter/reverse_tcp 3.run -j 4.监听 5.用xshell连接虚拟机,输入命令:sz 后门名称,即可下载到本机中(要把电脑管家…