网络入侵检测 Network Intrusion Detection System--NIDS

  • 网络入侵检测 Network Intrusion Detection System (NIDS)
    • 1.学习内容
    • 2.数据集说明
    • 3.NIDS组件
    • 4.基于SDN的网络入侵检测
    • 5.实验步骤
      • 下载数据集
      • 下载代码
      • 配置环境
      • 结构目录
      • 运行程序
      • 训练结果
    • 6.总结
      • 参考论文
      • 数据集

申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计5077字,阅读大概需要3分钟
更多学习内容, 欢迎关注我的个人公众号:不懂开发的程序猿

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

1.学习内容

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

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

2.数据集说明

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

3.NIDS组件

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

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

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

NIDS 被实现为 SDN 控制器上的应用程序。基于SDN的IDS架构如图所示。
它具有三个主要组件:流量收集器、特征提取器和异常检测器。

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

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

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

二分类神经网络模型

5.实验步骤

下载数据集

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

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

官网首页

下载代码

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

配置环境

版本如下

库/工具 版本号
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

结构目录

运行程序

python run.py

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

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

第三步,选择网络模型

第四步,选择训练的轮数

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

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

训练结果

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

逻辑回归

朴素贝叶斯

决策树

随机森林

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–

网络入侵检测 Network Intrusion Detection System (NIDS)相关推荐

  1. 鉴源论坛 · 观辙丨基于规则的车载网络入侵检测技术

    作者 | 柳泽上海控安可信软件创新研究院研发工程师 来源 | 鉴源实验室 在过去的几十年中,CAN总线是最广泛被应用的车载网络现场总线.但随着汽车电子产品的功能逐渐丰富,以及新一代的智能辅助驾驶系统的 ...

  2. Libnids库-网络入侵检测的基础框架

    1.Libnids介绍: Libnids(library  network intrusion detection system)是网络入侵检测开发的专业编程接口,实现了网络入侵检测系统的基本框架,提 ...

  3. The Cross-evaluation of Machine Learning-based Network Intrusion Detection Systems

    本文提出了交叉检验的框架,指的是在不同的数据集进行交叉验证.we endorse the idea of cross-evaluating ML-NIDS by using malicious sam ...

  4. 网络入侵检测论文阅读1

    2016 A Deep Learning Approach for Network Intrusion Detection System 1.主要工作:使用Self-taught Learning在N ...

  5. 文献笔记 —— GIDS: GAN based Intrusion Detection System for In-Vehicle Network

    文献笔记 -- GIDS: GAN based Intrusion Detection System for In-Vehicle Network(GIDS: 基于GAN的车载网络入侵检测系统) 这篇 ...

  6. (NIDS)网络入侵检测函数接口说明

     网络入侵检测系统(NIDS)函数接口说明 基本函数 1.nids_register_chksum_ctl struct nids_chksum_ctl { u_intnetaddr; u_int ...

  7. 网络入侵检测--Snort软件NIDS模式报警信息详解

    Snort最有价值的地方,就是它作为NIDS网络入侵检测软件来分析监控实时流量,那么最终能够产生的报警结果,也就是我们最关注的东西,即我们使用snort需要的就是拿到报警信息,并且联动到我们其他软件模 ...

  8. A Comparative Analysis of Deep Learning Approaches for Network Intrusion Detection Systems (N-IDSs)

    论文阅读记录 数据类型 在预定义时间窗口中,按照传输控制协议/互联网协议(TCP/IP)数据包将网络流量数据建模成时间序列数据. 数据:KDDCup-99/ NSL-KDD/ UNSW-NB15 NI ...

  9. 【论文阅读】FC-Net: A Method of Few-Shot Network Intrusion Detection Based on Meta-Learning Framework

    文章目录 0. Abstract 1. Introduction 2. Problem Formulation 3. Network Traffic Representation (数据与其处理方式) ...

最新文章

  1. JS中的作用域(一)-详谈
  2. LLVM官方文档翻译---- LLVM原子指令与并发指引
  3. #include quot;*.cquot;文件的妙用
  4. [测试]单元测试框架NUnit
  5. 区块链BaaS云服务(36)欧盟EBSI“使用场景”
  6. python网络编程:UDP方式传输数据
  7. CSS的六种垂直居中
  8. 是否可以将 json 反序列化为 dynamic 对象?
  9. 仿百度地图全景小球旋转
  10. Oracle PL SQL完全自学手册pdf
  11. 181022词霸有道扇贝每日一句
  12. 巴西矿坝决堤事故已致58人死亡 多达300人失踪
  13. 海康监控摄像头能做视频直播那些事!
  14. linux下ftp命令打印日志,ftp服务器日志解析
  15. Gateway 出现Can not connect to tcp://127.0.0.1: Connection refused
  16. 小程序源码:修复登录接口版最新知识付费变现小程序源码下载-独立后台版本
  17. tp5 操作web3
  18. Hive 自定义UDF函数讲解
  19. 到底什么是类脑计算?
  20. MFC: DeviceIoControl 通过API访问设备驱动程序

热门文章

  1. RT-thread培训学习和心得(二)
  2. 多益网络游戏引擎面试
  3. cesium-模型室内漫游
  4. com.springsource.org.aspectj.weaver-1.7.2.RELEASE.jar的下载
  5. SMT车间贴片机Feeder管理方案
  6. 判断二进制数除以3的余数
  7. xff_referer
  8. win10电脑右键新建没有记事本的解决方法
  9. win10怎么用记事本编译C语言,大师教你win10系统使用记事本打开文件的设置教程...
  10. 2021-08-11校网比赛A题