软件定义网络中流量安全问题的仿真研究
2021-09-15郭晓丹段雨梅
郭晓丹,段雨梅
(四川大学锦城学院 计算机与软件学院,四川 成都 611731)
自斯坦福大学提出了软件定义网络(Software Defined Network,SDN)的概念之后[1],引起了学术界广泛关注,其中我国的863 项目“未来网络体系架构和创新环境”中也对SDN 技术进行了研究。近年来,在网络通信领域的顶级会议SIGCOMM 上发表了大量关于SDN 的研究论文。SDN 是一种控制与转发分离且可直接编程的新型网络架构,其出现源于当前网络环境的变化。随着网络应用越来越广泛,网速也从2G 快速发展到4G、5G,网民人数也是暴增,网络应用和网络需求呈现快速变化和种类多样化趋势,传统网络比较固定的需求设计已经不能够满足这种动态的网络需求,所以当对网络虚拟化(NFV)进行了一定程度研究后,SDN 也就更快地被大家所接受。
1.SDN 的体系架构
SDN 当前被广泛应用,研究者也从学术界传递到业界,针对SDN 的标准化研究也一直没有停止,因为标准化是促进一种技术快速发展和普及的重要工作,当前就有多个国际组织参与了SDN 的标准化研究。其中包括了开放网络基金会(ONF)、因特网工程任务组(IETF)、国际电信联盟电信标准分局(ITU-T),以及网络功能虚拟化标准工作组(NFVISG)。这些组织都有自己的主攻方向,也有各自的研究成果,而当前比较成熟的,被大家广泛接受并常常作为SDN 基本知识普及的体系架构则是由ONF 提出的三层架构,分别是应用层、控制层和基础设施层。以SDN 控制器为中心,分别向北对接应用层,向南对接基础设施层,这样的结构与传统的七层架构和TCP/IP的五层架构对比明显,同时也将SDN 的核心思想展示出来。然而,这类架构仍然否存在网络安全问题。只是这种新架构引发的网络问题与传统网络有所不同,所以需要根据现有情况进行新的分析与探索研究。
2.SDN 网络中的网络安全分析
SDN 作为新型的网络架构,应用初期面临了比较大的安全挑战。其中SDN 的控制器作为整个网络的核心,关系到整个网络的转发效率和转发策略,也极易受到攻击。在SDN 网络中,数据面收到的第一条流会被上传给控制器,由控制器识别并且下发流表给交换机,交换机就会根据流表进行网络数据转发。后续流都会依照流表进行转发[2]。SDN 网络具有可编程特性,这既是它的优势,也是它的弱点。可编程意味着用户可以在交换机上运行代码,其中有一种方法就是通过报文中携带可以运行的代码,实现应用的动态变化,满足用户的动态需求,同时,这也预示着风险的存在,如果攻击者利用这个规则,修改了交换机上的流表,那么SDN 网络中的数据流量就会被全部被攻击者所引导[3]。
在SDN 中的流表一般都在包头域中选择一定的选项来做匹配,而包头域一般包含12 种类型的数据,比如源目的IP 地址、源端口号目的端口号、源MAC 目的MAC 等等。在实际的流量转发过程中,不需要所有域全匹配,在数据中最长匹配即可,因此,数据流量的转发在一定程度上也存在安全风险。如何进行有效防控,便成为SDN 网络安全的重要研究问题。
SDN 当前的网络安全问题研究聚焦于两个方面:一方面,SDN 本身的问题,比如它的新架构和新思想带来的问题,包括IP 地址欺骗、DDos 攻击[4]、网络监听等等,这些问题的存在也导致了商用化SDN 的进程有一定的影响。另一方面,传统网络的安全问题如何通过SDN 的优势来解决和规避,这主要是依赖于SDN 网络的集中控制特点,可以快速下发策略,并且可以统筹管理整个网络的安全策略,同时SDN 控制器具有全网视图便于流量的监测和访问控制的设置。这些优势也为当前研究者提供了新的思路去解决传统网络的安全问题,并且推动SDN 的商业化发展。
3.问题仿真验证
本文就针对传统网络中常见的流量攻击问题进行了模拟仿真,并验证了一种SDN 中的方法可以有效解决这类问题的发生。首先,从当前仿真软件的使用情况来看,Mininet 成为此次仿真的首选平台。Mininet 是由斯坦福大学基于Linux Container 架构开发的一个进程虚拟化网络仿真工具,可以创建一个包含主机、交换机、控制器和链路的虚拟网络,其交换机支持OpenFlow,具备高度灵活的自定义软件定义网络。其次,仿真网络的搭建离不开控制器的选择,本次选择的控制器是开源控制器Ryu。它使用Python 语言进行编码,支持Openflow 协议,能够与Mininet 互通。对于仿真而言,这款外部的控制器比Mininet 自带的控制器性能要高很多。再者,创建拓扑。使用Mininet 可视化界面创建一个具有两个交换机,一台控制器,四台主机的网络环境(见图3),其中控制器连接的是外部控制器。
图1 仿真拓扑图
4.问题模拟
在完成了拓扑图中的地址配置之后,保证h1、h2、h3 和h4 之间能够正常通信,然后再在h1 上通过ping 命令模拟攻击流量,攻击h3。在s2 上通过wireshark 软件转包,对攻击流量进行分析。流量分析此步骤也可以使用人工确定,也可以使用机器自动鉴别。当研究者确定了攻击流量的源IP 或者攻击流量入端口后,就可以根据实际情况进行流量拦截。具体拦截方法就是通过控制器在s2 上安装防御流量的流表,比如将转发匹配域的入端口为攻击流量进入端口的流量所对应的流表项找到,然后通过流表命令将其动作修改为“丢弃”。其次,如果知晓攻击流量的IP 地址,那么可以选择更详细的包头域匹配规则,找到对应的流表,或者创建新的流表,将对应IP 地址发送的攻击报文的操作改为“丢弃”。同时这种行为也可以反馈给控制器,由控制器通告全网,这样既可以防御此交换机或者h3 不被攻击,同时也可以预防h2 和h4 被攻击。
最终,攻击流量完全被拦截,最终实验仿真成功。
图2 验证阻截结果
5.网络安全解决方法拓展
大数据技术在软件定义网络的安全问题中有极大的优势。从大数据的生命周期来看,大数据采集、大数据预处理、大数据存储和大数据分析共同组成了大数据生命周期里最核心的技术,而这四种技术恰恰也为网络安全问题的解决提供了新思路。
网络中的问题本质是网络流量的问题,那么通过对SDN网络流量的数据采集,然后利用大数据预处理技术进行分类,并且将一些重要数据流量进行存储,同时结合大数据分析技术进行甄别,那么我们就可以追溯网络流量中的非法数据,可以预测、也可以防控,这样可以大大降低SDN 网络中的安全风险。在SDN 网络中,由于所有流量都可以通过SDN 控制器进行流量管控,这也为大数据技术在SDN 中的应用提供了便利,因为数据收集不再依赖于广泛的接入层,可以直接在控制层进行,不再需要将大数据技术应用到各个交换机路由器上,而是直接在SDN 控制器上应用,极大地提升了大数据应用的效率。
人工智能作为当前的新技术之一,也给SDN 的网络安全问题提供了新方法。在传统网络中,经常存在网络流量的识别难、预测难等问题,有了人工智能的各种算法后,有很多安全问题可以使用人工智能的方法进行解决。比如人工智能可以用于漏洞挖掘,也可以使用人工智能的机器学习方法检测网络中的非法流量,并且自动添加防御策略,进行流量管控[6]。
无论是大数据还是人工智能,都为SDN 网络的安全问题提供了新的解决策略,在未来的网络安全方案中会出现得更广泛。