网络入侵检测 Network Intrusion Detection System (NIDS)

本文涉及的产品
云防火墙,500元 1000GB
简介: 网络入侵检测 Network Intrusion Detection System (NIDS)

网络入侵检测 Network Intrusion Detection System (NIDS)

1.学习内容

入侵检测技术被分为基于主机的入侵检测(HIDS)和基于网络的入侵检测(NIDS)。按照数据分析的方法差异,可以分为基于特征的检测和基于异常的检测。本质上都是在建立一个分类器模型,把输入的数据识别为不同的分类结果输出。


分类学习算法的主要思想是:基于训练数据构建一个能分类正常(和异常)事件的模型,基于该模型可以对新的事件进行分类。分类模型对输入数据的类别分布应具备较强的适应能力,处理输入数据(集合)可能存在的类不平衡(class imbalance)现象(例如网络在遭受攻击时,恶意流量占比可能会大大高于正常流量占比,而模型在训练时使用的训练数据可能恶意流量占比远远小于正常流量占比)。


2.数据集说明

在网络安全领域,类似规模的公开数据集虽然也可以找到一些,例如SecRepo.com - Samples of Security Related Data上就收集了大量包括恶意代码、网络流量、系统日志等在内的多个有标记数据集,但对于入侵检测来说,由于网络数据中可能包含真实用户隐私数据、企业内部机密数据等原因,现有的可以被用于入侵检测领域使用的公开训练数据集普遍都采用的是流量发生软硬件模拟产生的网络抓包数据或者经过匿名化处理的网络抓包数据集合甚至是已预处理好的特征工程文件,无论是数据的真实性还是数据的多样性都被打了折扣。因此,基于这些公开数据集训练出来的分类器,很难在真实网络中表现出很好的分类性能。


3.NIDS组件

NIDS 有两个主要组件:特征提取器和异常检测器。特征提取器在接收数据包流并从中提取特征以将它们反馈到异常检测器。然后, 异常检测器 为它接收到的每个输入输出一个分数,并与阈值进行比较。如果分数小于阈值,则相应的输入将被预测为良性,否则将被预测为恶意。可以以两种不同的方式构建特征提取器。它可以为接收到的每个数据包输出一个特征向量。这个特征向量不仅仅基于当前的数据包;它还可以考虑之前看到的数据包的历史记录。在这种情况下,这些特征可以像从数据包头中提取的原始值一样简单,也可以像手动创建的复杂特征一样简单。

0663aa31345845049a9fcc42462ff4b1.png



将去噪自动编码器用作异常检测器,根据自动编码器的输出和输入之间的差异计算的重建误差用作评价函数,以无监督的方式检测异常。


4.基于SDN的网络入侵检测

NIDS 被实现为 SDN 控制器上的应用程序。基于SDN的IDS架构如图所示。

它具有三个主要组件:流量收集器、特征提取器和异常检测器。


流收集器:当数据包输入消息到达时触发此模块。它将提取所有流统计信息,例如协议、源和目标IP以及源和目标端口。该模块还由定时器函数触发,向交换机发送ofp_flow_stats_request消息,请求所有流统计信息。收到请求后,将包含所有流条目的所有聚合统计信息的ofp_flow_stats_reply消息发送回控制器。


特征提取器:特征提取器接收数据流并从中提取特征以将它们馈送到异常检测器。


异常检测器:为它接收到的每个输入输出一个分数,并与阈值进行比较。如果分数小于阈值,则相应的输入将被预测为良性,否则将被预测为恶意。可采用 GRU/DNN/LSTM/RNN等算法作为 Anomaly Detector 模块的核心。异常检测器模块加载经过训练的模型,接收网络统计数据并确定流是否异常。


3a94fcd03f3d42209719974072d26077.png


二分类神经网络模型



31204a23254242bd98f416b40ef1ac70.png

5.实验步骤

下载数据集

下载地址:NSL-KDD | Datasets | Research | Canadian Institute for Cybersecurity | UNB


这里采用NSL-KDD数据集而没有采用CICIDS2017数据集,因为CICIDS2017数据集太大了,本机电脑跑不动,NSL-KDD是轻量版的KDD-CUP-1999,去除了冗余字段和重复的流条目,便于测试。


0338378e123b4bb8a809028896a6ad99.png


官网首页

6849f24686e9431ba8e8d08145acfeab.png


下载代码

https://github.com/mehrdadep/deep-learning-nids.git


d39e7bb7f4794a2e893dc4ee72edd18d.png


配置环境

版本如下

库/工具 版本号
python 3.7.10
joblib 1.1.0
keras 2.6.0
numpy 1.21.5
pip 21.2.4
scikit-learn 1.0.2
scipy 1.7.3
tensorflow 2.6.0

结构目录

859ad07f4c2c489382c20337c09ca296.png


运行程序

python run.py

第一步,选择数据集类型是NSL-KDD还是CICIDS


573b2334d71c49e98d8d22bfff145578.png


第二步,选择分类器:二分类或者多分类器


49fc3ef114c4460bbc2bf4e4d1aa5e1c.png


第三步,选择网络模型

e91672edb66c4903a1a2298d559469ec.png



第四步,选择训练的轮数


e3b613838845479a85a2462d739825c5.png


训练轮数跑但如果过大了就超出了显卡内存报错


2022-02-20 19:41:06.145684: I tensorflow/stream_executor/cuda/cuda_driver.cc:732] failed to allocate 3.87G (4160159744 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY: out of memory


ac05df0d962d49c9901b9bcc90c7e380.png


训练结果

经典网络模型的训练结果如下,


逻辑回归

dcf6ca89520f4a939464164d5d655e13.png



朴素贝叶斯


571b511864a942e1aec317beb44d5bf4.png


决策树

f968fb8e6a8449ed8f5f48fce29464eb.png

9ca1541ecde4492da6ce0603ab824872.png




随机森林


46ff661501614e0f9cfa209542904398.png


6.总结

基于网络入侵检测(NIDS)的框架和代码实现如上,后面的要做的工作有:设计实现GRU/DNN/LSTM/RNN等网络模型作为异常检测器的算法部分,除了做流量检测的二分器还要做多分类器,另外将训练的结果通过Tensor Board的Graphic图形化的显示出来。设计实现能看到每一轮神经网络的中间训练的结果。后期加大训练轮数,来看网络的预测准确率,精确率,误识别率如何。


参考论文

[1] Albahar M A. Recurrent neural network model based on a new regularization technique for real-time intrusion detection in SDN environments[J]. Security and Communication Networks, 2019, 2019.


[3] Phan X T, Fukuda K. Sdn-mon: Fine-grained traffic monitoring framework in software-defined networks[J]. Journal of Information Processing, 2017, 25: 182-190.


[4] Cheng T Y, Jia X. Compressive traffic monitoring in hybrid SDN[J]. IEEE Journal on Selected Areas in Communications, 2018, 36(12): 2731-2743.


[5] Sultana N, Chilamkurti N, Peng W, et al. Survey on SDN based network intrusion detection system using machine learning approaches[J]. Peer-to-Peer Networking and Applications, 2019, 12(2): 493-501.


[6] Hashemi M J, Keller E. Enhancing robustness against adversarial examples in network intrusion detection systems[C]//2020 IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN). IEEE, 2020: 37-43.


[10] Tang T A, Mhamdi L, McLernon D, et al. Deep recurrent neural network for intrusion detection in sdn-based networks[C]//2018 4th IEEE Conference on Network Softwarization and Workshops (NetSoft). IEEE, 2018: 202-206.


数据集

[2] Elsayed M S, Le-Khac N A, Jurcut A D. InSDN: A novel SDN intrusion dataset[J]. IEEE Access, 2020, 8: 165263-165284.


[7] Sharafaldin I, Lashkari A H, Ghorbani A A. Toward generating a new intrusion detection dataset and intrusion traffic characterization[J]. ICISSp, 2018, 1: 108-116.


[8] Gharib A, Sharafaldin I, Lashkari A H, et al. An evaluation framework for intrusion detection dataset[C]//2016 International Conference on Information Science and Security (ICISS). IEEE, 2016: 1-6.


[9] Panigrahi R, Borah S. A detailed analysis of CICIDS2017 dataset for designing Intrusion Detection Systems[J]. International Journal of Engineering & Technology, 2018, 7(3.24): 479-482.


–end–


相关文章
|
4天前
|
安全 关系型数据库 网络安全
信息安全:网络安全漏洞防护技术原理与应用.
信息安全:网络安全漏洞防护技术原理与应用.
22 3
|
8天前
|
运维 监控 安全
|
17天前
|
SQL 安全 网络安全
揭秘网络安全的盾牌与剑:漏洞防护与加密技术
【8月更文挑战第3天】在数字世界的海洋中,网络安全是航船的稳定舵手。本文将揭开网络安全的神秘面纱,从漏洞防护到加密技术,再到安全意识的提升,我们将深入探讨如何构建一道坚不可摧的防线。通过实例和代码示例,我们不仅分享知识,更激发行动的火花,引导读者成为数字时代的守护者。
|
1天前
|
安全 Linux 网络安全
"揭秘网络安全神秘面纱:防火墙基本原理大揭秘,小白也能轻松掌握!"
【8月更文挑战第19天】防火墙是网络防护的关键,像屏障般阻挡未授权访问。对新手而言,其原理可能不易理解。本文通过三个生活化的案例——家庭网络的守护、企业访问控制及防范DDoS攻击,搭配`iptables`示例,轻松阐述防火墙基础。学会这些,即便是初学者也能为网络安全贡献力量。
|
1天前
|
运维 Linux 网络安全
"揭秘Traceroute穿越防火墙的隐形障碍:为何路径追踪在此中断?解锁隐藏的网络回显之谜!"
【8月更文挑战第19天】Traceroute是网络故障排查的关键工具,用于追踪数据包路径。但防火墙常致回显问题,表现为路由节点信息缺失。本文通过案例分析此现象:数据包遇防火墙时,因安全策略拦截ICMP或UDP数据包而显示星号。解决方法包括检查防火墙策略以确保ICMP和UDP端口未被阻止,在Linux中使用ICMP版本的Traceroute(如`traceroute -I`),关闭防火墙接口管理功能,或调整安全策略以限制Traceroute访问。针对具体网络环境灵活运用这些策略可有效解决问题。
|
24天前
|
人工智能 安全 物联网
网络安全的盾牌与剑:漏洞防护与加密技术的双刃舞
在数字化浪潮中,网络安全成为守护信息资产的关键。本文深入探讨了网络安全中的漏洞问题和加密技术的应用,强调了安全意识的重要性,并指出了当前实践中存在的挑战及未来发展趋势。文章旨在提升读者对网络安全复杂性的理解,并激发对加强网络防御措施的思考。
|
30天前
|
安全 网络安全 数据安全/隐私保护
网络安全的盾牌与利剑:漏洞防护与加密技术的较量
【7月更文挑战第21天】在数字世界的棋盘上,网络安全是一场持续的攻防战。本文将探讨网络安全中的关键要素——漏洞管理和加密技术,并分析它们如何成为保护信息安全的盾牌与利剑。通过深入剖析最新的网络攻击案例和防御策略,揭示安全意识的重要性以及如何通过教育和培训来提升个人和组织的安全防御能力。文章旨在为读者提供一套实用的网络安全知识框架,以便更好地理解、应对和预防网络威胁。
30 1
|
13天前
|
监控 安全 Serverless
SAE 防火墙的震撼之举:默认拦截公网一切流量,开启网络安全的无敌模式!
【8月更文挑战第7天】在数字化时代,网络安全至关重要。SAE(Serverless Application Engine,无服务器应用引擎)的防火墙功能默认阻止所有公网流量,为应用与数据提供坚实保护。这像坚固城门,将潜在威胁拒之门外,减少恶意攻击风险。如同在混沌中建立秩序,划定网络安全边界。但依赖默认设置不足,需根据业务需求配置规则,如开放特定端口或IP范围。还需持续监控防火墙效果,通过分析访问日志等手段及时调整优化,确保最佳防护效果。
24 0
|
17天前
|
SQL 安全 网络安全
网络安全的盾牌与利剑:漏洞防护与加密实战
【8月更文挑战第3天】在数字世界的无垠战场上,网络安全是守护数据边疆的盾牌,而信息安全则是斩断威胁的利剑。本文将深入探讨网络防御的核心要素,从网络安全漏洞的识别、利用到防范策略,再到加密技术的应用和安全意识的培养。我们将以代码示例为依托,揭示保护网络空间的实用技巧和策略,旨在为读者提供一套全面的网络安全解决方案。
|
20天前
|
安全 网络安全 量子技术
云计算与网络安全:探索云服务中的信息安全技术网络安全的盾牌与剑:漏洞防护与加密技术的较量
【7月更文挑战第31天】在数字化时代,云计算的广泛应用带来了便利性与效率的同时,也对网络安全提出了新的挑战。本文深入探讨了云计算环境下的网络安全问题,包括数据保护、访问控制和身份认证等关键技术领域。通过分析当前云计算平台面临的安全威胁,本文提出了一系列针对性的安全策略和技术解决方案,旨在增强云服务的安全性。同时,文章还提供了一个代码示例,展示了如何在云环境中实施有效的安全措施。 【7月更文挑战第31天】在数字世界的无垠战场上,网络安全是守护数据边疆的盾牌与剑。本文深入探讨网络安全的两个核心领域——网络漏洞的识别与防御,以及加密技术的应用与挑战。通过分析近年来的重大安全事件、展示代码实例,并讨
16 0