一种基于流量特征和随机森林的端口扫描检测方法与流程

文档序号:17158599发布日期:2019-03-20 00:19阅读:395来源:国知局
一种基于流量特征和随机森林的端口扫描检测方法与流程

本发明涉及一种互联网通信技术领域,特别涉及一种基于流量特征和随机森林的端口扫描检测方法。



背景技术:

端口扫描(portscan)是黑客发送一些正常的扫描消息,例如连接请求,通过回应类型获知服务器端口开放情况的黑客攻击手段。而许多网络服务,例如ssh服务,www服务等与端口号直接相关,通过服务器的端口开放情况可以获知服务器开启的服务类型,甚至可以获取漏洞信息,从而找到攻击弱点。

如今已经发展出多种多样的端口扫描工具,比如最常见的nmap。通过这些自动化的扫描工具,可以很隐蔽的发现远程服务器的各种端口信息,再利用配套的分析软件,甚至能获取服务器提供的服务以及软件版本。因此,端口扫描虽然不会直接对主机产生负面影响,却会为攻击者的下一步攻击提供重要信息,而快速精准的检测到端口扫描行为,能够及时地预警攻击者的后续攻击,为阻止攻击扩散争取了宝贵时间。

端口扫描又分为慢扫描和快扫描,一般水平的黑客常常会采用快扫描的方式,这样可以在被攻击者的防御措施响应之前,快速扫描大量端口,但是这种方式由于短时间内的请求数过高,很容易被检测出来。于此不同的是,慢扫描有意控制了扫描的速度,使单位时间内的请求数量远低于快扫描,仅略高于正常的访问,从而可以绕过大量基于规则匹配的端口扫描检测软件。

本发明针对的是在端口扫描的多种形式中,最常见的tcp全连接端口扫描,并对慢扫描提出了一种有效的检测方式。



技术实现要素:

为克服现有技术的不足,本发明采用了使用随机森林算法全面分析多维度流量特征的方案,从而实现通过流量数据多角度识别端口扫描的目的。

通过在网络节点中部署专门的安全设备日志收集设备,日志进行捕捉分析、解析日志,关联netflow等协议解析工具,提取日志中的ip地址信息、端口信息、协议类型、流量的方向、单位时间内的传输次数、一次传输的耗时、一次传输数据流中包含的数据包数量以及总字节数等特征,获取端口扫描相应的流量数据,定期训练随机森林分类器模型,获得对端口扫描的识别能力;然后在获取日常的流量数据后,通过数据采样得到样本,输入随机森林分类器进行检测,当分类器的输出结果为非正常时,进行告警。

根据数据的定向分析,我们发现:端口扫描在流量特征中相比于正常访问有较大区别,比如单位时间内访问次数多,传输时长短,一次数据传输中数据包数量少,一般低于3个,且协议为tcp,流量方向多为外网到内网,且数据总字节数小于正常访问,在本发明之前,已经有不少发明针对个别特征,人工选定阈值,通过是否超过阈值来判断是否是端口扫描,但是都不可避免地陷入阈值的选定问题,以及特征选取不全面的问题。本发明针对这些问题,提出了使用机器学习中的随机森林分类算法,通过模拟端口扫描行为、收集客户环境中的正常访问数据,自适应的归纳、训练出最合适的判断标准,从而全面、智能的识别端口扫描行为。

本发明针对通过多维流量特征识别端口扫描的目的,选择了随机森林分类算法,这是因为随机性的引入,使得随机森林不容易陷入过拟合,并具有很好的抗噪声能力,而且随机森林由于是多个决策树的融合算法,天然就支持并行化,对于本发明需要处理的海量数据具有很好的适应性。

本发明本发明技术方案带来的有益效果:

本发明使用深度流量分析dfi技术,相比于现有技术方案,不仅使用了单位时间内的传输次数特征,还深入解析了数据传输中的传输时长、传输的数据包数量和总字节数、流量方向、协议类型、端口特征,更加全面的识别端口扫描;采用netflow流量解析工具,在处理复杂的网络拓扑结构,大量终端构成的网络时,只需要在总交换机布置采集器,能够迅速采集到海量数据,实时性强;使用机器学习中的随机森林算法,可以根据训练样本库中的端口扫描样本和正常访问样本,自适应地得出判断标准,而不是根据经验人为的选定某一个阈值,以某一特征是否超过这一阈值来判断是否是端口扫描行为,不但综合性更强,使用了多维的流量特征,而且避免了人为决定阈值的主观性,提高了整体的准确率和实施效率;在实施方案中加入了增强模块,可以使随机森林分类器不断适应实际环境,增强识别能力。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明的整体流程示意图;

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

具体实施方案:

训练模块:

步骤1、在攻击机上使用nmap对靶机模拟tcp全连接端口扫描,并分别模拟快扫描、慢扫描,即在-t参数上分别设置为-t3,-t2,扫完0~65535端口。

步骤2、在端口扫描的同时,利用netflow捕获靶机的流量信息,并做预处理,提取关键信息,包含流量方向、端口、单位时间内的传输次数、传输时长、一次数据传输中的数据包数量和总字节数、协议类型。其中,流量方向指的是外网到内网、内网到外网、内网到内网这三种方式之一,端口处理为三个字段:该端口是否开放(开放为1,不开放为0)、开放的端口数量、单位时间内访问的不同端口数量,传输时长是传输结束时间endtime与传输开始时间starttime的差值,协议类型分解为三个字段:是否tcp、是否udp、其他,比如一条协议为tcp的流量信息,字段“是否tcp”获得值1,其余均为0。

步骤3、与之对照,确认不存在端口扫描后,在客户实际环境的交换机上用netflow收集正常的访问流量数据,提取与步骤2对应的关键信息。

步骤4、分别将步骤2和步骤3处理后的数据保存成文件,作为训练数据,训练随机森林分类器。

步骤5、使用0.7/0.3比例的留出法交叉验证调校随机森林分类器,调整相应参数,如决策树的数量与深度、每颗决策树所用的训练数据比例和特征数、信息增益准则、连续特征离散化时的分裂数量。

步骤6、将步骤5获得的相对最优分类器保存下来,为下一步做准备。

检测模块:

步骤7、在待检测环境的总交换机上使用netflow抓取流量数据,提取与步骤2对应的关键信息,并将数据保存成文件。

步骤8、对步骤7得出的数据文件使用步骤6得出的随机森林分类器,判断是否为端口扫描行为并将结果保存下来。

步骤9、将步骤8的结果中判断为端口扫描的数据提取出来,作出相应告警。

增强模块:

步骤10、专业运维人员定期查看告警,对告警进行确认后,进入步骤4,丰富训练数据,加入确认的端口扫描样本和正常样本,不断增强分类器的分类能力。

以上对本发明实施例所提供的一种基于流量特征和随机森林的端口扫描检测方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1