首页 > 其他分享 >探索NSL-KDD数据集:入侵检测的起点

探索NSL-KDD数据集:入侵检测的起点

时间:2024-08-01 13:53:41浏览次数:18  
标签:NSL KDD 检测 rate 主机 连接 起点

引言

        在信息安全的世界里,数据集是我们最宝贵的资源。就像厨师离不开食材,数据科学家也离不开数据集。对于入侵检测系统(IDS)而言,NSL-KDD数据集无疑是一个经典的选择。今天,我们将深入探讨这个数据集,帮助你理解它的结构、内容以及如何利用它来构建强大的IDS。准备好了吗?让我们开始吧!

NSL-KDD数据集简介

        NSL-KDD数据集是KDD Cup 1999数据集的改进版本。KDD Cup 1999数据集因其冗余和不平衡问题而广受批评。NSL-KDD数据集通过删除冗余记录和重新平衡样本,解决了这些问题,使其成为机器学习研究中的标准数据集之一。

        NSL-KDD数据集包含41个特征和一个标签,特征包括基本特征、内容特征和基于流量的特征。标签用于标识连接是正常(normal)还是攻击(attack)。攻击类型分为四类:DOS(拒绝服务攻击)、R2L(远程到本地攻击)、U2R(用户到根攻击)和Probe(探测攻击)。

数据集下载:

官网地址:NSL-KDD | Datasets | Research | Canadian Institute for Cybersecurity | UNB

百度网盘https://pan.baidu.com/s/1hX4xpVPo70vwLIo0gdsM8A?pwd=q88b

数据格式及描述

        NSL-KDD数据集是用于网络入侵检测研究的著名数据集,它是KDD Cup 1999数据集的一个改进版本。

数据集组成:NSL-KDD数据集包含多个子数据集,主要有以下几种格式的文件:

  • KDDTrain+.ARFF:完整的训练集,包含二进制标签,ARFF格式。
  • KDDTrain+.TXT:完整的训练集,包括攻击类型标签和难度等级,CSV格式。
  • KDDTrain+_20Percent.ARFF:KDDTrain+.arff文件的20%子集。
  • KDDTrain+_20Percent.TXT:KDDTrain+.txt文件的20%子集。
  • KDDTest+.ARFF:完整的测试集,包含二进制标签,ARFF格式。
  • KDDTest+.TXT:完整的测试集,包括攻击类型标签和难度等级,CSV格式。
  • KDDTest-21.ARFF:KDDTest+.arff文件的子集,不包含难度级别为21的记录。
  • KDDTest-21.TXT:KDDTest+.txt文件的子集,不包含难度级别为21的记录。

数据集内容与结构

NSL-KDD数据集的特征包括:

  1. 基本特征:这些特征描述了网络连接的基本属性,如持续时间、协议类型和服务类型等。
  2. 内容特征:这些特征捕获了网络连接的数据内容,如登录尝试次数和文件创建次数等。
  3. 基于流量的特征:这些特征基于过去两秒内网络流量的统计数据,如与同一主机或服务的连接数。
  4. 数据集组成:NSL-KDD数据集由四个子数据集组成,分别是KDDTest+、KDDTest-21、KDDTrain+、KDDTrain+_20Percent。其中,KDDTest-21和KDDTrain+_20Percent是KDDTrain+和KDDTest+的子集。
  5. 特征类型:数据集中的特征可以分为基本特征、流量特征和内容特征。基本特征从TCP/IP连接中提取,流量特征与同一主机或服务相关,内容特征反映了数据包的内容。
  6. 数据集优势:与原始KDD数据集相比,NSL-KDD数据集不包含训练集中的冗余记录,测试集中没有重复记录,使得检测率更为准确。

以下是NSL-KDD数据集的41个特征及其标签的详细信息:

特征名称

用法及意图

duration

连接持续时间(秒),用于判断连接是否异常长。

protocol_type

连接使用的协议类型(TCP、UDP、ICMP),不同攻击类型通常使用不同协议。

service

连接请求的服务类型(http、ftp、smtp等),帮助识别针对特定服务的攻击。

flag

连接状态标志位,检测连接的状态(如正常终止、错误等)。

src_bytes

从源到目标的字节数,用于判断流量异常。

dst_bytes

从目标到源的字节数,判断回送流量异常。

land

如果源IP地址和目标IP地址相同则为1,否则为0,用于检测Land攻击。

wrong_fragment

错误片段数,检测分片攻击。

urgent

紧急包数,检测紧急数据包攻击。

hot

热连接数量,检测可疑的连接活动。

num_failed_logins

登录失败次数,检测猜测密码攻击。

logged_in

如果成功登录则为1,否则为0,检测未授权访问。

num_compromised

被攻击的次数,检测系统受损程度。

root_shell

如果获得根shell则为1,否则为0,检测U2R攻击。

su_attempted

如果尝试过su命令则为1,否则为0,检测尝试提升权限的攻击。

num_root

使用root权限的命令数,检测获得root权限后的行为。

num_file_creations

创建文件数,检测可疑文件创建活动。

num_shells

使用shell的次数,检测恶意shell活动。

num_access_files

访问文件数,检测未授权文件访问。

num_outbound_cmds

向外发送的命令数,仅在ftp会话中有效,检测FTP攻击。

is_host_login

如果登录主机则为1,否则为0,检测主机攻击。

is_guest_login

如果登录为访客则为1,否则为0,检测访客攻击。

count

过去两秒内与同一主机的连接数,检测同一主机的连接行为。

srv_count

过去两秒内与同一服务的连接数,检测同一服务的连接行为。

serror_rate

过去两秒内连接出现错误的比例,检测服务错误率。

srv_serror_rate

过去两秒内服务连接出现错误的比例,检测服务错误率。

rerror_rate

过去两秒内连接被重置的比例,检测连接重置率。

srv_rerror_rate

过去两秒内服务连接被重置的比例,检测服务连接重置率。

same_srv_rate

过去两秒内同一服务连接的比例,检测服务连接模式。

diff_srv_rate

过去两秒内不同服务连接的比例,检测服务连接多样性。

srv_diff_host_rate

过去两秒内连接不同主机的比例,检测主机连接多样性。

dst_host_count

目标主机的连接数,检测目标主机的连接负载。

dst_host_srv_count

目标主机的服务连接数,检测目标主机的服务连接负载。

dst_host_same_srv_rate

目标主机的同一服务连接比例,检测目标主机的服务连接模式。

dst_host_diff_srv_rate

目标主机的不同服务连接比例,检测目标主机的服务连接多样性。

dst_host_same_src_port_rate

目标主机的同一源端口连接比例,检测目标主机的源端口连接模式。

dst_host_srv_diff_host_rate

目标主机的不同服务连接比例,检测目标主机的服务连接多样性。

dst_host_serror_rate

目标主机的连接错误比例,检测目标主机的错误率。

dst_host_srv_serror_rate

目标主机的服务连接错误比例,检测目标主机的服务错误率。

dst_host_rerror_rate

目标主机的连接重置比例,检测目标主机的重置率。

dst_host_srv_rerror_rate

目标主机的服务连接重置比例,检测目标主机的服务重置率。

标签名称

用法及意图

标签(label)

标识连接是正常(normal)还是攻击(attack),用于训练和评估机器学习模型。

攻击类型及检测意图

NSL-KDD数据集的攻击类型分为四类:

  1. DOS(拒绝服务攻击):通过大量合法的请求占用资源,使正常用户无法获得服务。
  2. R2L(远程到本地攻击):攻击者远程发送数据包,获得本地系统的访问权限。
  3. U2R(用户到根攻击):本地用户通过系统漏洞,提升自己的权限到根用户。
  4. Probe(探测攻击):攻击者扫描网络,获取系统信息,寻找漏洞。

这些攻击类型在数据集中都有详细的标注,帮助研究人员和工程师们理解并识别不同的攻击行为。

实战应用

        理解NSL-KDD数据集的结构和内容是构建入侵检测系统的第一步。通过对这些特征和标签的分析,我们可以设计出更有效的检测算法和策略。比如,通过分析流量特征,可以识别出异常的网络行为;通过分析内容特征,可以识别出恶意登录尝试和文件操作等。

        在接下来的系列文章中,我们将逐步深入,从数据集的准备、特征提取、模型训练到最终的系统实现,全方位地展示如何构建一个基于机器学习的入侵检测系统。

结语

        通过对NSL-KDD数据集的详细介绍和分析,我们初步了解了构建入侵检测系统所需的基本知识。在接下来的文章中,我们将继续深入探讨如何使用这些数据特征进行模型训练和评估,从而实现高效、精准的入侵检测。如果你准备好了,让我们一起踏上这段充满挑战和乐趣的旅程吧!

源码指导与教学

毕业设计难搞定? 考研、找工作忙得不可开交? 别担心, 我们团队提供专业可靠的代做服务,帮你轻松解决毕设需求,助你答辩一路绿通。高效、安心,全面服务,一对一跟进,确保你的毕业之旅顺利完成!我们不仅提供高质量的代写服务,更希望通过我们的努力,让你在掌握知识的同时,感受到数字世界的魅力。

标签:NSL,KDD,检测,rate,主机,连接,起点
From: https://blog.csdn.net/weixin_51756171/article/details/140809063

相关文章

  • NSL-KDD入侵检测系统的设计与实现系列预告
    每日进阶-基于机器学习的入侵检测系统——打怪升级之道        在当今的数字时代,网络安全不仅是防御,更是主动出击。你是否想知道如何用机器学习技术设计一套入侵检测系统(IDS),让黑客无所遁形?本系列文章将为您揭开这一神秘领域的面纱,从数据准备到模型实现,全方位手把手指......
  • Google Translate API 客户端没有“Translate_image”属性
    importosfromgoogle.cloudimporttranslate_v3beta1astranslatedefupload_and_translate(input_dir,output_dir,target_language):"""Uploadsallimagesinadirectory,translatesthemusingGoogleTranslate,anddownloadsthetrans......
  • 拆解东鹏饮料“五码合一”,数百万终端起飞的起点
    鹏智瑞官网:pengzhirui.com东鹏饮料从2015年开始尝试数字化,2016年全面展开,到2017年成立独立的IT公司——鹏讯云商(现更名为:鹏智瑞),并于2019年尝试深度链接B端,基于“一物一码”的实践经验,开启了“五码关联”的数字化进阶之路。关键词:五码合一,五码关联,商户小程序,bC联动经过“......
  • C程序起点main函数
    C程序起点main函数mainc语言中main函数接收两个参数intargc,char*argv[]intmain(intargc,char*argv[]);intmain(intargc,char**argv);如上,argc代表参数的数量,argv但是参数字符串指针数组./program-i192.168.0.1-p2000此时共有五个参数,argv[0]-->./prog......
  • 【待做】【AI+安全】数据集:KDD CUP99
    https://mp.weixin.qq.com/s?__biz=Mzg5MTM5ODU2Mg==&mid=2247494059&idx=1&sn=fdbfa26d8a3fc53596e5c8fe061f22a6&chksm=cfcf5966f8b8d0709e0992983b7ea9ebfc4f0331758b732394515e75eda99f82cd4829128144&scene=21#wechat_redirect[当人工智能遇上安全]6.基于机器学习......
  • 【待做】【AI+安全】数据集:KDD CUP 99
    KDDCUP99KDDCUP99dataset是KDD竞赛在1999年举行时采用的数据集。1998年美国国防部高级规划署(DARPA)在MIT林肯实验室进行了一项入侵检测评估项目收集而来的数据,其竞争任务是建立一个网络入侵检测器,这是一种能够区分称为入侵或攻击的“不良”连接和“良好”的正常连接的预测模......
  • 谷歌画电子围栏,根据已知起点计算去是否在围栏内
    #电子围栏<!DOCTYPEhtml><html><style>#map{width:760px;height:400px;top:10px;bottom:0;}.search-button{display:inline-block;padding:3px20px;background-color:#4CAF50;/*按钮背景颜色*/color:white;/......
  • 如何使用 HuggingFace 的 run_translation.py 脚本从头开始训练翻译?
    我尝试了各种HuggingFace脚本来构建语言模型,例如run_mlm.py(link)、run_clm.py(link)和run_translation.py(link)。对于前两个脚本,它可以从头开始训练语言模型(即没有基本模型)。但是,我无法使用run_translatio......
  • Python 中的 azure.ai.translation.document - 无法使用当前权限访问源文档位置
    我在使用Python中的azure.ai.translation.document库时遇到问题。我已经在Azure中设置了翻译服务以及带有两个容器的Blob存储。我已使用“用户委托密钥”创建了SAS连接。一种用于源(读取/列表),一种用于目标(写入/列表)。例如我尝试运行Python程序,但源b......
  • Unsloth 微调 Llama 3
    本文参考:https://colab.research.google.com/drive/135ced7oHytdxu3N2DNe1Z0kqjyYIkDXp改编自:https://blog.csdn.net/qq_38628046/article/details/138906504文章目录一、项目说明安装相关依赖下载模型和数据二、训练1、加载model、tokenizer2、设置LoRA训练参数3......