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


相关文章
|
2月前
|
SQL 安全 算法
网络安全与信息安全的守护之道:漏洞防护、加密技术与安全意识提升
【9月更文挑战第21天】在数字化浪潮中,网络安全与信息安全成为维系社会稳定和个体隐私的重要屏障。本文将深入探讨网络安全中的常见漏洞,分析其成因及防范措施;介绍加密技术的基本原理及其在信息保护中的应用;强调安全意识的重要性,并通过具体案例分享如何在日常生活中提升个人和企业的安全防御能力。文章旨在为读者提供一套综合性的网络安全防护策略,以应对日益复杂的网络威胁。
|
11天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
46 3
|
11天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
35 2
|
18天前
|
SQL 安全 算法
网络安全的屏障与钥匙:漏洞防护与加密技术解析
【10月更文挑战第31天】在数字世界的海洋中,网络安全是航船的坚固屏障,而信息安全则是守护宝藏的金钥匙。本文将深入探讨网络安全的薄弱环节——漏洞,以及如何通过加密技术加固这道屏障。从常见网络漏洞的类型到最新的加密算法,我们不仅提供理论知识,还将分享实用的安全实践技巧,帮助读者构建起一道更加坚不可摧的防线。
27 1
|
1月前
|
机器学习/深度学习 Python
深度学习笔记(九):神经网络剪枝(Neural Network Pruning)详细介绍
神经网络剪枝是一种通过移除不重要的权重来减小模型大小并提高效率的技术,同时尽量保持模型性能。
52 0
深度学习笔记(九):神经网络剪枝(Neural Network Pruning)详细介绍
|
2月前
|
安全 网络安全 量子技术
探索网络安全世界:从漏洞防护到加密技术与安全意识
本文旨在深入探讨网络安全与信息安全的关键方面,包括网络安全漏洞、加密技术以及安全意识的重要性。通过分析这些要素,我们将揭示如何构建一个更加安全的网络环境,并强调个人和组织在维护网络安全中的角色。本文不仅提供技术性的见解,还强调了普及安全意识的必要性,旨在为读者提供一个全面的网络安全知识框架。
45 3
|
2月前
|
SQL 安全 网络安全
网络安全的盾牌与矛:漏洞防护与加密技术解析
【9月更文挑战第20天】在数字化时代的浪潮中,网络安全成了我们不得不面对的严峻话题。本文将深入探讨网络安全中的两个核心要素——漏洞防护和加密技术,以及它们如何共同构建起保护信息安全的坚固防线。通过分析最新的网络攻击案例、介绍常见的安全漏洞类型、阐述加密技术的原理及其应用,并强调安全意识的重要性,本文旨在为读者提供一场关于网络安全知识的精彩分享,帮助大家更好地理解并应对日益复杂的网络威胁。
52 7
|
2月前
|
SQL 安全 网络安全
网络安全的屏障与钥匙:漏洞防护与加密技术解析
【9月更文挑战第22天】在数字时代的浪潮中,网络安全和信息安全成为维护个人隐私与企业资产的重要防线。本文将深入探讨网络安全漏洞的成因与防范措施,分析加密技术在信息安全中的应用,并强调提升安全意识的必要性。通过实例分析,我们将了解如何构建坚固的网络防御体系,以及在日益复杂的网络环境中保持警觉的重要性。
|
2月前
|
运维 监控 安全
网络管理:防火墙和安全组配置详解
网络管理:防火墙和安全组配置详解
81 1
|
2月前
|
存储 安全 算法
网络安全之盾:漏洞防护与加密技术的现代演绎
【9月更文挑战第16天】在数字化浪潮中,网络安全成为守护个人隐私与企业数据的核心防线。本文将深入探讨网络安全的两大支柱——漏洞防护和加密技术,揭示它们如何共同构筑起一道坚固的信息安全屏障。从最新的网络攻击案例出发,我们将分析常见的安全漏洞及其防御策略,并透过代码示例,展示加密技术在保护数据传输和存储中的关键作用。最后,文章强调了提升个人和组织的安全意识对于构建安全文化的重要性。
53 2
下一篇
无影云桌面