SDN安全相关研究分类

0.写在前面的话

本文是针对自己半年来阅读的近50篇较高质量的SDN安全研究论文的简要总结,更新时间是2016年7月。

在初涉SDN领域时,贵站给予了自己莫大的帮助。最近突然察觉sdnlab中关于SDN安全的文章数目较少,于是自己把这篇总结拿出来分享。参考的论文(及链接)在文末中已给出。

内容若有错误或有需要修改的地方,还请直接指出,谢谢!

1.概述

软件定义网络(software defined networking,简称 SDN),将传统封闭的网络体系解耦为数据平面、控制平面和应用平面,在逻辑上实现了网络的集中控制与管理.SDN的突出特点是开放性和可编程性,目前已在网络虚拟化、数据中心网络、无线局域网和云计算等领域得到应用。[1]

随着对SDN架构开发和部署的不断深入,各类安全性问题也逐渐成为制约SDN发展的关键因素。业界针对SDN安全的研究方向主要分为两大类:一类是SDN提升安全,这主要是指SDN给传统的网络安全研究所带来的新思路和新解决方式,即通过SDN来加强网络安全;另一类是SDN自身安全,即对SDN体系架构本身所存在的安全问题进行研究,其又包括SDN特有的(如拓扑中毒)和非特有的(如传统的网络攻击)。

2.SDN提升安全

针对SDN架构在传统网络安全研究中的应用,下表列出了较典型的6个方面。

类别

说明

相关研究

网络安全配置或监控

依靠SDN集中式的控制平面,完成灵活的安全策略下发和有效的网络状态监控 SANE[30]
Ethane[31]
Resonance[33]
PROCERA[17]

Middlebox

可细分为三个方面:

  1. 软件实现传统的Middlebox
  2. 解决Service Chaining问题,即Middlebox(网络设备)的放置问题
  3. 将传统的Middlebox整合到新型的SDN网络中
CloudWatcher[27]
FlowTags[43]
FLOWGUARD[46]
Slick[4]

攻击检测

借助SDN的特性,有效的检测各类网络攻击 SPHINX[44]

防DDoS/Dos攻击

可细分为三个方面:

  1. 传统的DDoS攻击
  2. Link-flooding attacks
  3. Short-circuiting Traffic Surges
Bohatei[42]
SPIFFY[41] (防御基于traffic pattern的网络攻击)
NetFuse[5](借助OpenFlowcontrol)

匿名服务

借助SDN提供网络访问中的匿名服务 Openflow Random Host Mutation[32]

其他网络场景中的应用

将SDN应用到企业内网、手机移动网等其他网络环境中。典型如SDN在BYOD(Bring Your Own Device)自带设备移动办公智能解决方案中的应用。 PBS(Programmable BYOD Security)[29]
Enterprise-centric
Offloading System(ECOS)[45]

3.SDN自身安全

3.1 按体系架构划分

按照SDN的体系架构进行划分,SDN自身面临的安全问题可以划分为如下5类。

类别

主要形式

应用层安全

恶意应用程序,非法访问,恶意流规则下发、配置缺陷等

北向接口安全

主要是标准化问题,涉及到非法访问,数据泄露等

控制层安全

DDoS/DoS攻击,单点故障,恶意/虚假流规则的注入,非法访问,配置缺陷等

南向接口安全

SSL/TLS协议本身的不安全性,默认配置的不安全性(如OpenFlow 1.3.0后将TLS设置为可选项)

数据层安全

DDoS/DoS攻击,恶意/虚假流规则的注入,非法访问、配置缺陷等

注:各相关层和接口之间的影响是相互的,同一形式的攻击也会涉及到SDN架构中的多个层次。

3.2 按研究点划分

针对SDN自身安全的研究点进行划分,其主要可分为如下10类。其中各类别之间会有一定的重合。而相关的安全研究目标既包括传统的网络安全问题,同时也包含SDN所特有的新型网络攻击形式。

类别

说明

相关研究

安全控制器的设计

对SDN控制器进行完全重新的设计和开发,将安全性作为控制器的核心功能 Rosemary控制器[11]
PANE控制器[12]

安全模块/框架的设计

可细分为2个方面:

  1. 基于已有的某特定的SDN控制器,改进其现有的安全模块的设计。
  2. 基于已有的SDN控制器,设计一套完整的安全框架,其中各类安全功能模块可进行独立开发,并可作为应用安装在该框架内(安全模块可进行组合)。
FortNOX[22]
SE-Floodlight[25]
FRESCO[24]
OFX[48]

流规则的合法性和一致性检测

按解决方法可以细分为3类:

  1. 基于角色和优先级的检测
  2. 基于形式化方法的检测,即借助数学模型或工具
  3. 其他

按解决目标可以细分为2类:

  1. transient(短暂性的),如SDN网络启动时,由于流规则的下发顺序及网络延时等原因,而出现的短暂的流规则不一致性问题
  2. longterm(长期性的)
按解决方法进行的分类:

  1. ForNOX[22]; SE-Floodlight[25]
  2. FlowChecker[13](基于二元决策图,binary decision diagrams); FLOVER[18](基于可满足性模块理论,Yices SMT)
  3. VeriFlow[16](基于多维前缀树 trie,等价类划分,并同时解决transientlongterm问题)
  4. [14](解决数据包的一致性和数据流的一致性问题,仅限于transient); PGA[47]

攻击检测

网络攻击检测 SPHINX[44]

DDoS/Dos攻击防御

按解决思路主要可以分为4类:

  1. 基于流量特征变化的检测防御
  2. 基于连接迁移机制的防御
  3. 基于威胁建模分析的防御
  4. 基于攻击目标的防御,如主机IP地址的动态变换
相对应的研究有

  1. 轻量级DDoS洪泛攻击检测方法(SOM)[6]; TopoGuard[7](检测模型)
  2. AVANT-GUARD[8]
  3. STRIDE[9]
  4. Openflow Random Host; Mutation[32]

拓扑中毒攻击(Topology Poisoning Attack)

该攻击是SDN所特有的一种新型的有效攻击形式,其会引发并导致主机劫持, Dos攻击, 中间人攻击等 TopoGuard[7]

扫描攻击

TCP连接扫描,UDP扫描功能 AVANT-GUARD[8](但只针对TCP连接)

北向接口安全

包含权限管理、访问控制、可恢复性等安全功能。(本表列出的安全模块/安全控制器的开发也涉及到此块) AVANT-GUARD[8]
RoseMary控制器[11](提供了可恢复性功能)
PermOF
Operation Checkpoint[38]

应用程序检测

检测应用程序本身存在的漏洞 NICE[26]

其他

研究本身并不是为了解决特定的SDN安全问题,但其相关技术却可以应用在安全研究中,如,

  1. 网络虚拟层Flowvisor
  2. 流量监控
相应的研究有

  1. Flowvisor[28]
  2. Compling Path Queries[34]

3.3 按问题/攻击划分

按照安全问题/攻击[19]进行划分,其可分为如下6类:

类别

举例

未经授权的访问

未经授权的控制器访问;
未经身份认证的应用程序

数据泄露

流规则发现(侧信道攻击);
转发策略发现(包处理时序分析)

数据修改

修改数据包的流规则修改机制;

恶意应用程序

虚拟规则注入;
控制器劫持

拒绝服务攻击

控制器交换机之间通信的洪泛攻击;
交换机流表洪泛攻击;

配置问题

缺少TLS协议或其他认证协议;
策略生成问题

4.相关论文

参考论文请见http://codeshold.me/2016/09/sdn_security_papers.html

注:该网址列举了相应的安全研究论文,其主要选自网络安全核心会议(如IEEE S&P、ACM CCS、USENIX Security、NDSS等)。其中部分论文包含简要的介绍,且论文编号和前文的引用编号相对应。

作者简介:onephone,复旦大学网络安全实验室在读研究生,研究方向包括:高速网络传输、网络安全、SDN Security & Benchmark等。

技术背景:
熟悉网络相关知识,Unix/Linux 系统,关注网络安全,黑客技术以及SDN、DevOps、unikernel 等前沿技术,喜欢开源和分享(个人网站 www.codeshold.me)