(三明学院 现代教育技术中心,福建 三明,365004)
在网络发展过程中,计算和存储的发展非常快,但是网络安全建设相对而言还是比较初级。SDN和NFV这些新的网络技术的出现为网络运维自动化带来了新的方向,通过控制平面的集中管控和虚拟网络资源的灵活管理,可以最终实现SDN(软件定义网络)[1],不过在虚拟化和云计算中,作为用户最关心的安全问题却在影响整体应用的成熟度。目前安全设备的交付、配置和运营等很多方面都需要人工参与,在现有的系统中还勉强能够支撑,但在大规模的云计算数据中心就力不从心了[2-6]。反过来说,SDN的先进特性确实也给安全防护带来了想象空间,利用SDN的弹性、快捷可以快速部署大量的虚拟化安全设备,满足突发流量的防护;利用SDN的全局视野、快速流量调度就能实现防护及时生效[7]。
在对异常流量的研究工作中,Marina Thottan[8]用GLR算法来检测管理信息库变量异常。而吕军等[9]提出基于MGLR的网络流量异常检测算法,对GLR算法进行了改进,该算法将线性模型与小波变换相合,解决了阈值监控无法告警和监测的问题。但以上的研究,更多的是基于传统的网络,对已有安全事件、安全威胁,比对安全基线、安全规则等,对当前网络空间的安全状态未做判断。张世轩等[10]利用 SDN架构的集中控制等特点,在攻击的源头实现流量实时监控,使用源 IP防伪、接入层异常检测、链路流量异常检测形成多重防御体系,尽可能早地发现攻击,逐渐过滤异常流量,实现网络层DDoS攻击在源端的检测和防御,但这种检测方法对SDN控制器来说负载较大,扩展性不强。
本文就SDN构架下端口恶意扫描时通过的异常流量攻击检测,运用网络流量中异常流量检测的思路,提出一种基于SDN中网络最大流的异常流量检测方法。
SDN网络安全架构工作流里,当用户需要部署安全时,可以在安全应用的管理层侧将网络安全设备接入到相应的被防护虚拟机上,并部署相关安全策略。此时,安全控制平台的流程为:通过守护进程准备好并启动相应的虚拟机,通过SDN将流量牵引到下一层安全设备的入口,并向下发防护站点的策略。这种部署方式用户仅仅需了解少量信息即可,不像以往需要了解大量安全设备的部署模式、规则配置、拓扑规划等,这些工作均由安全控制平台、SDN控制器和虚拟化系统完成[11-14]。
图1所示,当确定要监控VM1到VM2的流量时,安全中心会从计算节点或安全节点找到一个IPS设备,然后向VM1所在交换机到IPS所在交换机的路径P上所有的交换机下发重定向的流指令,如果选择计算节点的IPS,路径为P1;如果选择安全节点上的IPS,则路径为P2。这样所有源为VM1且目的为VM2的流量沿着路径P到达IPS设备,经过检查后数据包从IPS输入端口输出,此时SDN控制器根据拓扑计算从IPS到VM2的路径,并下发流指令,沿途交换机将流量传输到VM2。
图1 SDN网络安全架构
利用网络层、应用层和数据层等分层数据、应用协议通讯特征、通讯内容、通讯行为、通讯流量、通讯连接情况、目标IP地址和服务端口等历史数据作为诊断指标,在探索源地址IP验证方面,通过SDN控制器与 OpenFlow交换机的信息交互实现了源地址验证,SND技术除了可以统计流量信息外,还可以控制网络的流量,包括对流量的放行、阻断、重定向和镜像等[15],通过网络最大流检测算法与SDN技术相结合应用于网络接入层,增加了添加流表项功能,可实时地对异常端口进行转发限制,简当而言,在OpenFlow SDN中,SDN控制制可以向网络设备下发FLOW_MOD指令,通过动作actions对匹配的流量进行控制,如图2。网络流量控制中最大流是分析异常流量的一种重要方法,本文提出其针对端口扫描流量异常的检测判断,算法优越性较强,对未来研究网络安全态势评估模型能起很好的支撑作用。
图2 SDN中VSwich上的流量控制
设f:E→R*,其中R是非负数集,满足下述条件:
(1) 容量限制坌<i,j>∈E,f(i,j)≤c(i,j)。
称f是N上的一个可行流,称下发点s的净流量为可行流的流量,记作v(f),即
流量最大的可行流称作最大流。
步骤2 网络容量N=
由上可以得到:
步骤3 给定网络中通过的最大流
假设N中每一个顶点之间至多有一条边,如果i和j之间有两条边和
L.R.Ford和D.R.Fullerson把原始-对偶算法应用于最大流问题,提出最大流问题的标号算法,简称FF算法。在前面的定义的容量网络N中,我们把流量等于容量的边称作饱和边,流量小于容量的边称作非饱和边。流量等0的边称作零流边,流量大于0的边称作非零流边。设P是一条关于可行流f的s-t增广链,令δ等于P上所有前向边的容量与流量之差以及所有后向边的流量的最小值,根据增广链的定义,δ>0。如下修改f的值,令
从下发点s开始搜索,逐个给顶点作标号,直到终点t得到标号为止。顶点j得到标号表示已找到s到j的增广链,标号为(lj,δj),其中 等于直到j为止链上所有前向边的容量与流量之差以及所有后向边的流量的最小值,lj=+i或=lj+i或lj=-i.lj=+i表示链是从i到j且是前向边,lj=-i表示链是从到j且
使用SDN技术可以从openflow交换机上获取流量信息,并根据特征值判断是否存在安全攻击,并采取相应的措施。目前基于流的安全检测和防护机制有好多种,如DDos、端口扫描等。
在SDN网络中,借助安全控制平台中流的相关组件,从SDN控制器中获得相应的流量,采用端口扫描攻击进行检测。端口扫描目前为黑客攻击中一种常见的恶意攻击,具有流数量剧增,并有很多相同的IP源地址。当黑客扫描失败时,会导致大量的TCP、ICMP不可响应。借助SDN的全局视图和流特征分析,可不依赖局部安全设备而得到高准确率。根据Ford-Fulkerson算法,针对这些特征,当收到可行流v(f),可行流检测模块程序如下:
先计算流的存活目的端口数。之后建立未建立的流的比例U,程序如下:
其中ref为v(f)中的任意一条可行流,obj是v(f)中的其他任意一条流。表1为根据算法得到的某高校2018年近三个月一些IP的TCP端口扫描数据流统计表,从表中可以统计出源IP地址和目的IP地址中对应的端口号、存活的端口数和数据流数量。
表1 TCP端口扫描数据流统计表
利用现有的实时数据,采集了SDN网络架构下福建某高校2018年1~3月总计3个月的校园网中IPS和网络出口流量的数据,其中核心为思科的9508交换机,通过对入侵防御系统(IPS)上的外部IP连接目的IP的记录,一共获取了50000多条的原始数据,按照SDN网络结构的需求,实验网络拓扑如图3。
在实验环境中,我们使用Namp发起TCP扫描和TCP SYN扫描,速率分别为215.35端口/秒和355.69端口/秒,并与正常场景比较,如表2所示。可以看到在TCP扫描和TCP SYN扫描中,很明显可以看到未建立流的比例U相当高且开销也较大,由此可以检测到异常流量。
图4是53413端口在校园网出口设备的数据。图5是网络最大流算法对原始数据检测结果。由图4和图5可以分析出两者流量检测结果基本一致,本检测方法可行性较高。
图3 某高校SDN架构的安全网络系统拓扑图
表2 常规端口检测结果
图4 53413端口数据
图5 网络最大流对原始数据的检测结果
算法的性能也可以用检测概率与误警概率来讨论。和的值由下式计算 :
不同算法的检测结果如表3所示。
表3 三种不同算法的性能对比
图6 三种算法概率与运行时间的关系
图6是三种算法的运行时间的对比图,通过三种常见的网络攻击在较长时间与校园网络出口设备中的流量进行匹配,从而根据不同的时间来验证运行时间变化的关系图。假设运行时间随概率为X,可以看出在概率X在60%的时候,网络最大流检测的概率都略强于其它两种方法。
本文利用了网络最大流算法在SDN安全架构体系中的应用,能够较快检测出网络中的异常流量。同时实验表明,网络最大流算法与GLR算法和DoS/DDoS攻击检测算法的检测性能。对于最大流算法算法,15个已知异常点有13个被检出,检测概率为85%,误警概率为66%;GLR算法中15个已知异常点有11个被检出,检测概率为75%,误警概率25%;DoS/DDoS攻击检测算法中15个已知异常点有12个被检出,检测概率为81%,误警概率30%。由此看来,在SDN网络中,网络最大流检测算法的性能较优,可靠性较强。