一种面向软件定义网络的轻量级网络流量异常检测方法与流程

文档序号:11215818阅读:949来源:国知局
一种面向软件定义网络的轻量级网络流量异常检测方法与流程

本发明涉及网络通信技术领域,特别涉及一种面向软件定义网络的轻量级网络流量异常检测方法。



背景技术:

随着计算机网络技术的不断进步,网络安全问题也随之受到用户及网络服务提供商的日益重视。网络流量异常检测技术作为网络安全中的重要技术,在防范网络攻击中起着不可忽视的作用。目前的网络流量异常检测技术通常使用镜像流量或者周期采样的方法抓取网络中的通信报文,随后对抓取的通信报文进行分析,以检测网络流量是否出现了异常。

上述两种方法均需要获取网络中所有的网络报文以供网络流量异常检测算法检测。这种方法一方面需要获取大量的网络报文,容易导致网络出现网络拥塞、时延增高、丢包率加大等问题;另一方面该方法需要耗费大量的计算资源,导致计算资源开销急剧上升。因此上述网络流量异常检测方法存在着不可避免的缺陷。研究如何既能快速地检测出网络中的异常行为,又能以轻量级的形式进行检测的技术,具有实际的意义。

软件定义网络(softwaredefinednetwork,sdn)是一种新型的网络体系结构,其实现了数据转发平面与控制平面解耦合。openflow协议作为sdn中控制层与基础设施层间通信的标准协议(南向接口协议),目前已被工业界及学术界广泛认定为sdn中的事实标准。

作为openflow协议中一种特殊的报文,packet-in消息(packet-in消息为openflow协议中的一种特殊消息,在openflow协议中,底层交换机使用packet-in消息将其上发生的事件上报至控制器)能够反映sdn底层网络的流量情况,一方面由于交换机上一般在无相应报文达到时不存在处理该类型报文的流表,另一方面由于交换机上的流表存在生存时间,因此,交换机发送至控制器的packet-in消息一般呈现出规律性。而在网络中有异常事件发生时,交换机发送至控制器的packet-in消息将出现异常变化,因此,可以利用openflow协议中所特有的packet-in消息特征,设计一种轻量级的面向软件定义网络的网络流量异常检测方法。



技术实现要素:

本发明所要解决的技术问题是提供一种面向软件定义网络的轻量级网络流量异常检测方法,通过分析sdn中所特有的packet-in消息,以达到快速地检测sdn中的流量异常事件,进而对sdn中的流量异常事件进行响应的目的。

为解决上述技术问题,本发明采用的技术方案是:

一种面向软件定义网络的轻量级网络流量异常检测方法,包括以下步骤:

步骤1:网络初始化完成后,在控制器上建立用于统计控制器收到的packet-in消息的计数器、统计packet-in消息中封装的不同协议报文数目的字典、统计packet-in消息源交换机的字典,同时初始化计数器和两个字典的参数值为0,并记录当前时刻t0;

步骤2:所述控制器解析收到的packet-in消息,提取该packet-in消息封装的报文类型及该packet-in消息的来源交换机;

步骤3:更新所述统计packet-in消息中封装的不同协议报文数目的字典及统计packet-in消息源交换机的字典;

步骤4:所述控制器收到底层交换机发送的packet-in消息时,所述packet-in消息计数器数值加1;

步骤5:所述packet-in消息计数器值加1后,该消息计数器值将模以指定阈值,若上述模操作的余数不为0,则不做处理,检测停止,若模操作的余数为0,则记录当前时刻t1;

步骤6:根据packet-in消息计数器值、统计packet-in消息中封装的不同协议报文数目的字典、统计packet-in消息源交换机的字典以及时刻记录值t0、t1计算packet-in消息特征;

步骤7:使用基于聚类的离群点检测技术分析所述packet-in消息特征,判断packet-in消息是否出现了异常,进而得出网络流量是否出现了异常。

进一步的,所述packet-in消息特征包括:packet-in消息到达速率、各交换机发送的packet-in消息比例、packet-in消息封装的报文协议类型比例、packet-in消息封装的不同协议的报文到达速率。

进一步的,当packet-in消息出现异常,即网络流量异常时,进行网络流量异常报警。

与现有技术相比,本发明的有益效果是:

1、与现有的网络流量异常检测方法需要通过镜像流量或周期采样获取网络中的报文不同,本发明方法基于sdn中所特有的packet-in消息能够反映底层网络状况的特性,仅需在控制器收到packet-in消息时对该消息进行进一步的简单分析,因此,本发明能够避免增加对网络进行采集的报文,大量减少网络的流量负载,是一种轻量级的网络异常检测方法。

2、本发明方法无需分析大量网络报文,能够极大地减轻网络流量异常检测过程中的计算资源开销,进而降低检测出网络流量异常的响应时间。

3、本发明方法仅需部署在控制器上,无需对底层网络设备进行修改,是一种操作简便、成本优化的网络流量异常检测方法。

附图说明

图1为本发明实施例中一种面向软件定义网络的轻量级网络流量异常检测方法流程图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细的说明。图1示出了本发明实施例中一种面向软件定义网络的轻量级网络流量异常检测方法流程图,其具体步骤为:

步骤1:网络初始化完成后,在控制器上建立用于统计网络中所有交换机发送的packet-in消息数目的计数器c1、统计packet-in消息中封装的不同协议(tcp、udp、icmp、arp)报文数目的字典d1、统计packet-in消息来自哪个交换机的字典d2,同时初始化c1、d1和d2的参数值为0,并记录当前时刻t0;

步骤2:控制器解析该packet-in消息,提取该packet-in消息封装的报文类型msg_type及该packet-in消息的来源交换机src_sw;

步骤3:字典d1的d1(msg_type)值加1;

步骤4:字典d2的d2(src_sw)值加1;

步骤5:当控制器接收到交换机发送的packet-in消息后,c1计数值加1;

步骤6:计数器c1当前值模以阈值n并计算余数b;

步骤7:若b≠0,则程序结束;若b=0,则转入步骤8;

步骤8:记录当前时刻t1;

步骤9:计算packet-in消息到达速率v:v=n/(t1-t0);

步骤10:对于packet-in消息中封装的tcp、udp、icmp、arp协议,分别计算packet-in消息封装的上述报文类型到达速率:vt=d1(tcp)/(t1-t0)、vu=d1(udp)/(t1-t0)、vi=d1(icmp)/(t1-t0)以及va=d1(arp)/(t1-t0);

步骤11:计算packet-in消息封装的tcp、udp、icmp、arp协议报文各自占比:rtt=d1(tcp)/t_d1、rtu=d1(udp)/t_d1、rti=d1(icmp)/t_d1、rta=d1(arp)/t_d1;

步骤12:计算各交换机发送的packet-in消息占比:rsi=d2(sw_id)/t_d2;

步骤13:将计算得到的packet-in消息到达速率v、packet-in消息封装的不同类型报文到达速率:vt、vu、vi及va、packet-in消息封装的不同类型报文比例:rtt、rtu、rti及rta、各交换机发送的packet-in消息比例:rsi送入到经训练的iforest模型中进行检测,判断packet-in消息是否出现异常;

步骤14:若iforest判断packet-in消息无异常,程序结束;

步骤15:若iforest判断packet-in消息有异常,则程序发出网络流量异常告警,程序结束。

本实施例中采用孤立森林算法(isolationforest,iforest)进行packet-in消息异常检测,但此算法仅用来对本发明中的检测算法进行说明,本发明中的检测算法不限于此算法。

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