网络入侵检测 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–


相关文章
|
12天前
|
Kubernetes 安全 Devops
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
37 10
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
|
4天前
|
人工智能 运维 监控
超越传统网络防护,下一代防火墙安全策略解读
超越传统网络防护,下一代防火墙安全策略解读
23 6
|
22天前
|
存储 安全 算法
揭秘网络安全的盾牌与矛:漏洞防护与加密技术的较量
在数字化时代的棋局中,网络安全是每个参与者必须面对的挑战。本文将深入探讨网络安全中的两个关键角色——漏洞与加密技术。通过分析最新的安全漏洞案例,我们揭示网络攻击者如何利用这些漏洞进行破坏。同时,我们将展示加密技术如何成为保护数据不被窃取的强大盾牌。文章还将讨论提升个人和企业的安全意识的重要性,并通过实际的代码示例,展示如何在实践中应用这些知识来加强我们的网络防线。
|
22天前
|
SQL 安全 算法
网络安全的盾牌:漏洞防护与加密技术的融合之道
在数字化浪潮中,网络安全成为维护信息完整性、保障个人隐私的关键。本文深入探讨网络漏洞的产生机理和防御策略,揭示加密技术的核心原理及其在信息安全中的重要角色。通过分析安全意识的培养方法,文章旨在提升大众对网络安全的认知水平,促进一个更加安全的网络环境。
|
29天前
|
SQL 运维 安全
网络安全的护城河:漏洞防护、加密技术与安全意识
在数字时代的浪潮中,网络安全成为了我们每个人都无法回避的话题。本文将深入浅出地探讨网络安全中的几个关键要素——漏洞防护、加密技术和安全意识,并通过实际案例和代码示例,揭示它们如何共同构建起保护信息安全的坚固防线。无论你是IT专业人士还是对网络安全感兴趣的普通用户,这篇文章都将提供给你宝贵的知识和见解。
67 5
|
1月前
|
SQL 人工智能 安全
网络安全的盾牌:漏洞防护与加密技术解析
在数字时代的浪潮中,网络安全和信息安全成为了维护社会稳定和保护个人隐私的关键。本文将深入探讨网络安全中的常见漏洞、先进的加密技术以及提升安全意识的重要性。通过分析网络攻击的手法,揭示防御策略的构建过程,并分享实用的代码示例,旨在为读者提供一套全面的网络安全知识体系,以增强个人和组织在网络空间的防御能力。
|
1月前
|
存储 安全 网络安全
揭秘网络安全的盾牌:漏洞防护与加密技术
【10月更文挑战第41天】在数字时代的浪潮中,网络安全成为了保护个人隐私和企业资产的关键防线。本文将深入探讨网络安全的两大支柱:安全漏洞的防护和加密技术的应用。我们将通过实际代码示例,展示如何识别和修补常见的安全漏洞,以及如何使用加密技术来保护数据的安全。无论你是网络安全的初学者还是有一定基础的开发者,这篇文章都将为你提供宝贵的知识和技能,帮助你在这个充满挑战的领域中站稳脚跟。
|
1月前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
90 3
|
1月前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
84 2
|
1月前
|
SQL 安全 算法
网络安全的屏障与钥匙:漏洞防护与加密技术解析
【10月更文挑战第31天】在数字世界的海洋中,网络安全是航船的坚固屏障,而信息安全则是守护宝藏的金钥匙。本文将深入探讨网络安全的薄弱环节——漏洞,以及如何通过加密技术加固这道屏障。从常见网络漏洞的类型到最新的加密算法,我们不仅提供理论知识,还将分享实用的安全实践技巧,帮助读者构建起一道更加坚不可摧的防线。
37 1