分享

Spark 高级分析:第五章第3,4节

feilong 2018-3-9 12:55:03 发表于 连载型 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 5061
本帖最后由 feilong 于 2018-3-9 12:57 编辑
问题导读

1.网络攻击的模式有哪些?
2.
K-Means如何检测网络异常
3.本章所用数据集来源是哪儿?格式是什么?






上一篇:Spark 高级分析:第五章第1,2节
http://www.aboutyun.com/forum.php?mod=viewthread&tid=24008&extra=



第3节 网络入侵

所谓的网络攻击在新闻中越来越明显。一些攻击企图将网络流量淹没计算机,以排挤合法的流量。但在其他情况下,攻击企图利用网络软件的缺陷,以获得对计算机的未授权访问。当一个计算机被大量的流量所轰炸时,发现一个漏洞就像在一大堆网络请求中搜索一根针一样。

一些开发行为遵循已知的模式。例如,快速连续地访问机器上的每个端口并不是任何正常的软件程序都需要做的事情。然而,对于攻击者来说,这是典型的第一步,他们正在寻找在计算机上运行的服务,这些服务可能是可利用的。

如果要计算在短时间内远程主机访问的不同端口的数量,可能需要一个特性可以很好地预测端口扫描攻击:少数可能是正常的;数百表明是攻击。这样就可以从网络连接的其他特性中检测到其他类型的攻击——发送和接收的字节数、TCP错误等等。

但是那些未知的未知呢?最大的威胁可能是从未被发现和分类的威胁。探测潜在网络入侵的部分是检测异常。这些连接并不被认为是攻击,但是,它们不像过去观察到的连接。

在这里,像K-means这样的无监督学习技术可以用来检测异常的网络连接。K-means可以基于每个数据的统计信息来聚类连接。结果集群本身并不吸引人,但是,它们共同定义了类似于过去连接的连接类型。任何不接近集群的东西都可能是异常的。也就是说,在定义正常连接区域时,集群非常有趣;外面的一切都是不寻常的,可能是反常的。

第4节 1999年KDD杯数据集

KDD杯是ACM特殊利益集团组织的年度数据挖掘比赛。每年,都会提出一个机器学习问题,以及一个数据集,并邀请研究人员提交一篇论文,详细介绍他们对这个问题的最佳解决方案。就像在Kaggle之前。在1999年,这个话题是网络入侵。数据集仍然可用。本章将介绍如何构建一个系统来检测异常网络流量,使用Spark,通过学习这些数据。

不要使用此数据集构建真正的网络入侵系统!数据并不一定反映当时的真实网络流量,而且在任何情况下,它只反映15年前的交通模式。

幸运的是,组织者已经将原始的网络数据包数据处理成关于单个网络连接的汇总信息。

数据集大约为708MB,包含大约490万个连接。这是一个很大的,如果不是很大,但是足够大,在这里的目的。对于每个连接,数据集包含诸如发送的字节数、登录尝试、TCP错误等信息。每个连接都是csv格式数据的一行,包含38个特性,如下所示:
0,tcp,http,SF,215,45076,
0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,
0.00,0.00,0.00,0.00,1.00,0.00,0.00,0,0,0.00,
0.00,0.00,0.00,0.00,0.00,0.00,0.00,normal.

例如,这个连接是一个到HTTP服务的TCP连接。发送了215个字节,接收了45706个字节。用户已登录,以此类推。许多特性都很重要,比如17列中的num_file_create。

许多特性都以0或1为值,表示存在或没有行为,比如第15列中的su_try。它们看起来像前一章的一个热编码的分类特征,但是没有被分组并以相同的方式进行关联。每一个都像一个yes/no特性,因此可以说是一个绝对特性。将分类特征转化为数字并把它们当作有次序的对待,并不总是有效的。然而,在大多数机器学习算法中,在一个二进制分类特性的特殊情况下,将它们映射到一个值为0和1的数字特征将会很有效。

其余的都是在倒数第二列中dst_host_srv_rerror_rate的比率,并且从0.0到1.0,包含了值。

有趣的是,在最后一个字段中给出了一个标签。大多数连接被标记为正常,但也有一些被认为是各种类型的网络攻击的例子。在学习区分已知的攻击与正常的连接时,这是很有用的,但是这里的问题是异常检测,并发现潜在的新的和未知的攻击。

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条