关于KDD99入侵检测数据集的FAQ

关于KDD99入侵检测数据集的FAQ

本文总结了关于KDD99数据集的一些常见问题,来自之前文章的评论和邮件,其中有些观点提供了看待该问题的不同视角。

Q1: KDD数据集是怎么采集的?是直接截获的网络分组?有基于系统日志的吗?

A1:基于网络的入侵检测数据集是由 TCPDUMP 采集的,然后提取特征形成的。TCPDUMP和sniffer之类的抓包工具一样,不过是在linux下的命令行工具。DARPA还包括基于主机的BSM(Basic Security Module)审计数据,BSM安装于一个独立主机之上,用于采集关键点日志。

Q2: KDD99 数据集包含的是多个网络连接。首先用这个集合去训练检测系统,接着用训练好的的检测系统检测新的连接。那是不是说检测都是在整个连接已经建立的基础上进行的?snort的警报规则都是对数据包而言的?

A2: KDD的一条记录就是一个完整的连接,这样才会出现诸如连接时长,接受/发送字节数等具有时间跨度的特征。它不同于snort等工具基于对数据包头部的分析,来判断是否为入侵。

因为判断连接的发起和结束,并且从中获得所需要的特征是比较繁琐的,会影响检测系统的效率,所以KDD更多的用于离线入侵检测,并多作为研究人员的实验对象来用的。

Q3: 我有个问题请教,如何分析darpa数据集里的数据,我把数据集文件后缀名改为.csv后用matlab读取系统报错,如果用其他的工具用什么读取,我的是window系统,好像不能用tcptump?

A3: darpa的数据文件是 tcpdump 程序的输出的 tcpdump 格式的文件。linux下用 “tcpdump -r filename“ 来读取其中的内容。windump是windows版本的 tcpdump,也可以用windows下的 sniffer,wireshark 这些抓包工具来读,UltraEdit 也可以看,只是可能看不懂。

Q4: kdd里面共有41个特征属性,感觉太多,有些属性不但对入侵检测分类意义不大,而且影响入侵检测效率。请问这41个属性中,对入侵分类贡献大地属性都是哪些?

A4: 特征选择要看使用哪种类型的分类器,比如用SVM和k-means就会得到不同的主要特征。并且对不同的入侵类型,也有不同的特征组合。

Q5: kddcup有辦法能轉換成原本PCAP形式,可以發送出去,拿來檢測snort的效能嗎?還是kddcup不適合拿來做檢測效能的用途?

A5: 不能说是简易,KDD里没有包含DARPA的所有信息,有用的留下,没用的丢掉。并且增加了统计信息。所以也不能从KDD转换成PCAP的格式。

kdd不能用作snort的数据源。

Q6: 关于SVM,实时入侵检测?

A6: 用SVM等机器学习的方法做分类器的话就得先用训练集训练出分类模型,才能进行后面的实时检测。实时检测的精度,取决于你训练的模型的好怀。比如在工业环境中,可以用神经网络、SVM建模,因为只要有以前几个月的历史数据,这些数据包含了输入与输出,经过训练后得到的模型就可以放在实际环境中进行预测。

而现实网络状况下,一个已经被标记(label)好了的训练集是很难得到的。因为训练集中要已知所在网络中normal和abnormal的连接记录,KDD99的环境是在实验室中模拟出来的纯净的局域网,正常数据流和攻击类型都是人为加入的。而实际网络环境中,我们无法知道哪些是正常的数据流,哪些是异常数据。也就是说,我们只知道输入(通过嗅探数据包)但无法知道输出(是正常or 异常)。

对于实时的IDS,你可以参考几个当下比较流行的几个开源的入侵检测项目(snort, prelude等)。比如最有名的snort,本质上只是一个可以分析数据包、匹配攻击类型的嗅探器而已,也就是说他是一种“误用检测(misuse detection)”方法,只能检测出已知攻击类型,原理类似杀毒软件。一些商业的IDS加入了应用层协议分析技术,可以实现”异常检测(anomaly detection)”。

如果你想搭建一个局域网络环境自己做实验,可以。如果要在现实环境中做实时检测,比较难。特征筛选是可以的,有很多方法来做,比如PCA,还有一些智能的优化算法。如果你做一些研究性的仿真,用KDD的数据集完全可以。

Q7: 第29和第30个属性描述

(29)same_srv_rate. 过去两秒内,在与当前连接具有相同目标主机的连接中,与当前连接具有相同服务的连接的百分比,连续,[0.00, 1.00]。

(30)diff_srv_rate. 过去两秒内,在与当前连接具有相同目标主机的连接中,与当前连接具有不同服务的连接的百分比,连续,[0.00, 1.00]。

从上面的解释来看,29和30互为补,他们的和应该是1才对。但是KDD CUP 99数据集上看到的数据和这个不吻合。

A7: same_srv_rate=(与当前连接具有相同目标主机的连接中,与当前连接具有相同服务的连接数)/过去两秒内的所有连接数*100%

Q8: 在数据预处理时,不知道怎么提取DOS入侵的特征值,我要把DOS入侵的特征值数字化,不知道怎么提取这个特征值呢?

A8: 数据预处理只是对原始数据做一些数学上的变换,变换成后面算法可以处理的格式,和特征提取没有关系吧。KDD一共就41个特征,你只能从这些特征中选择其中一部分,不能自己再创建新的特征了。

Q9: 多少行的记录是一个小时,或是一分钟之内采集上来的?

A9: 不能确定一段时间内的连接数。只有一定时间内传输的数据包的个数是可以通过原始的PCAP数据分析出来的,KDD99并没有包含这方面的信息。

Q10: KDD99是提取的空军网络9周的数据量。  那10%的数据集仍然是9周的时间跨度么?以这么长时间的数据量,来评估网络的安全状态,不合适啊。评估大都是实时的状态。能不能给点建议呢?

A10: KDD99是由DARPA98数据转化来的,当初是为了评估入侵检测能力,在模拟空军局域网环境中设计了各种入侵,并用TCPDUMP采集了9周的网络流量做成了DARPA98数据集。它的建立并不是评估当时空军网络的安全状态,而是建立一个标准的数据源,该数据源同时包含正常和异常流量,用来测试不同入侵检测产品的能力。KDD99是在1999年的KDD CUP 竞赛中采用的数据集,它是对DARPA98处理后产生的。因为原始数据集太大,并有太多冗余和无用信息,所以取了10%的子集来做数据挖掘方法的实验来用。基于KDD99的入侵检测就是离线检测,多用于学术研究,评价分类器效能。

转载自 XiFage’s Blog: http://xifage.com/faq-of-kdd99-dataset/


  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值