参考论文:软件定义网络:安全模型、机制及研究进展
面临的问题
主要挑战
- 集中式的控制器可以实时获取网络全局结构,设计之初并未将安全问题作为重点内容,目前针对NOX和Floodlight等开源控制器提出了部分安全扩展方案,但只针对SDN中某个具体的安全威胁进行设计,尚无完善的控制器安全防护策略
- 可编程性提供了便捷的攻击渠道
- 交换机对控制器的请求增加了遭受DDoS和Dos攻击的可能性,同时整个网络状态和配置的动态变化,使得攻击者可以伪装来自控制器的流规则,从而改变流量路径绕开SDN中部署的安全设备
与传统网络对比
主要的安全问题体现在两个方面:
- 对数据流的控制方式不同:传统网络中,数据被强制通过安全设备;而SDN是流规则驱动的,数据流是否通过安全设备并不能具有自主决定权
- 对网络安全态势信息获取方式不同:传统网络中,管理员要讲请求信息发送到多个设备后,在对收到的状态信息进行综合评估后,才能得到当前网络的安全态势信息。而SDN中,控制器已经包括网络的全局视图,能够实时获取全网的状态信息,但这种方式也很容易遭受攻击,攻击者通过控制器可以得到全网的安全状态信息从而进行有效的网络攻击
SDN的典型安全威胁类型
名称 | 是否是SDN独有 | 描述及主要表现 |
---|---|---|
流规则的合法性和一致性问题 | 是 | (1)控制器上运行着多个自定义或第三方提供的应用程序,这些应用程序产生的流规则之间出现相互竞争、冲突或覆盖的情况 (2)流规则下发过程中,由于时延或被恶意篡改导致控制器与交换机流规则不一致 (3)不同交换机之间缺乏有效、安全的流规则同步方案 |
控制器的脆弱性 | 是 | (1)SDN中最严重的威胁,会波及到整个网络中 (2)常规的IDS技术难以发现SDN中某个具体攻击的发起者,尚不足以保护SDN的安全 |
控制器与应用程序之间缺乏信任机制 | 是 | (1)控制器与应用程序之间缺乏有效的信任评估和信任管理机制 (2)验证网络设备是否安全的技术和验证应用程序是否安全并不相同 (3)恶意应用程序可以轻易被开发,已授权的合法应用程序也可能被篡改,并应用于控制器上 |
控制层-基础设施层之间的威胁(如OpenFlow协议的安全性) | 是 | (1)主要指南向接口协议的安全威胁,如Dos/DDoS攻击或数据窃取等 (2)TLS/SSL加密的基础是PKI,不注意保证交换机与控制器之间的安全通信 |
管理站的脆弱性 | 否 | (1)攻击者可以利用管理站的脆弱性接入到SDN控制器 (2)传统网络中也存在同样的安全威胁,但由于SDN的集中式管理,导致这种威胁可以迅速蔓延到整个网络 |
交换机的脆弱性 | 否 | 某个交换机受到攻击后,使得网络中的数据包出现异常,若攻击者通过受攻击的交换机向控制器或其他交换机发送虚假请求,可将威胁扩展到全网 |
取证和修复等缺乏有效的可信任资源 | 否 | SDN故障修复需要安全和可靠的取证机制和可信任的资源,以确保网络的快速恢复 |
伪造/虚假的网络数据 | 否 | 由非法用户或设备产生 |
典型安全问题分析
OpenFlow协议安全性
- 依据OpenFlow协议,控制器与交换机之间通过安全通道进行连接,安全通道采用安全传输层协议TLS对消息进行加密和认证
 OpenFlow交换机-控制器 SSL/TLS通信控制 * 每个OpenFlow交换机至少需要配置两个证书,一个用于认证控制器的合法性,一个用来向服务器证实自身合法性 * 交换机和控制器证书的生成和分发过程如下: * 由证书管理机构生成站点范围内的证书 * 生成控制器证书 * 生成交换机证书 * 使用站点范围内的私钥对证书签名 * 将密钥和证书分别发放到各个设备中 * 由于TLS协议操作的繁琐,因此在OpenFlow 1.3.0版本之后,将TLS协议作为可选项,使得现阶段OpenFlow协议的安全问题主要存在以下威胁: * 安全通道可选,使得未使用TLS协议保护的SDN网络更容易遭到窃听、控制器假冒等攻击 * TLS协议本身的脆弱性,OpenFlow 1.5.1版本之前未指定TLS所使用的规范和版本号,可能导致一些交互操作的失败,同时TLS本身的脆弱性使得OpenFlow协议面临着中间人攻击的安全隐患。此外TLS协议虽然能增加交换机和控制器通信通道的安全,但却无法阻止流规则的修改 * 缺乏多控制器之间通信的安全规范,多控制器之间的通信仍面临着认证、数据同步和安全等问题
各层/接口面临的安全问题
- 应用层:OpenFlow应用程序、安全服务类应用程序及一些其他的第三方应用程序会制定一些流规则,而这些参与流规则制定的应用程序一旦遭遇篡改或身份假冒等问题,就会对底层数据转发造成威胁
- 控制层:一旦攻击者接入控制器,将有能力控制整个SDN网络,典型安全问题是集中式管控带来的单点故障问题,主要体现在两个方面:Dos/DDoS攻击,以及控制器在逻辑上或物理上遭到破坏。除此之外还面临非法访问、身份假冒、恶意/虚假流规则注入以及控制器自身的配置缺陷等
- 基础设施层:对控制器下发的流规则绝对信任。主要威胁包括:恶意/虚假流规则注入、DDoS/Dos攻击、数据泄露、非法访问、身份假冒、交换机自身配置缺陷等。除此之外,还可能面临虚假控制器的无序控制指令导致的交换机流表混乱等威胁
- 南向接口:主要是指由OpenFlow的脆弱性而引发的安全威胁
- 北向接口:种类繁多暂无统一规定,且北向接口的开放性与可编程性使得更容易被攻击。主要问题是非法访问、数据泄露、消息篡改、身份假冒、应用程序自身的漏洞以及不同应用程序在合作时引入的新漏洞等
安全机制
SDN安全控制器的开发
- 演进式安全控制器:在现有的开源控制器的基础上,改进或开发部署新的安全模块,如FortNOX、SE-Floodlight等
- FortNox:在NOX控制器上分别增加了基于角色的数据源认证模块、状态表管理模块、流规则冲突分析模块和流规则超时回调模块等功能
- 基于角色的数据源认证模块:主要用于对每个流规则进行签名,并为候选流规则指定相应的特权类别
- 状态表管理模块:主要对NOX控制器总流表中流规则的插入、删除等操作进行管理
- 流规则冲突分析模块:可以根据NOX控制器当前总流表中流规则的状态,对每一个候选流规则进行评估;若流规则冲突分析模块提供的检测结果显示某个候选流规则与总流表中的流规则无冲突,则该候选流规则奖杯转发给SDN交换机,同时被更新到NOX控制器的总流表中,并由状态表管理模块对其进行管理
- 流规则超时回调模块:当SDN交换机流规则过期时,FortNOX将启动流规则超时回调接口模块,对NOX控制器的总流表进行更新
- SE-Floodlight:继承了FortNOX安全内核的基本设计思想,并对这些模块进行扩充,添加了程序证书管理模块、安全审计子系统、权限管理等新安全模块
- 程序证书管理模块:主要对与控制面交互的应用程序及其身份凭证进行审核与认证
- 安全审计子系统:主要负责对与控制其安全相关的事件进行审计和跟踪,如应用程序身份认证与授权、流规则修改、流规则冲突处理、交换机配置信息变更、控制器配置信息变更、审计系统的启动与关闭等
- 权限管理模块:主要对数据面和控制面之间除流规则以外的交互消息进行管理,该模块仅允许由管理员授权的应用程序访问控制面资源
- 存在问题:多数成果针对的是特定控制器,不能实现不同控制器之间的平滑过渡,因此在移植和推广方面存在问题
- FortNox:在NOX控制器上分别增加了基于角色的数据源认证模块、状态表管理模块、流规则冲突分析模块和流规则超时回调模块等功能
- 革命式安全控制器:在SDN控制器的设计和开发之初将安全性作为核心问题之一进行考虑,开发全新的、内嵌安全机制的SDN控制器
- RoseMary:主要由数据抽象层、RoseMary内核、系统库和资源控制器四部分组成
- 数据抽象层:主要用于收集数据层中各种网络设备的请求信息
- 资源监控模块:主要对RoseMary中正在运行的应用程序及其行为进行监控,并及时终止具有异常行为的应用程序
- RoseMary内核:细分为资源管理模块、安全管理模块、系统日志管理模块和内核程序区。为网络的应用层提供基本服务,同时还为应用程序提供各种类型的系统库
- PANE:内嵌安全机制,用于解决SDN中不可信用户访问请求之间的冲突问题。控制器允许管理员根据网络资源制定相应的访问控制策略,通过提供的API接口,终端用户可以动态、自助地请求网络资源
- 存在问题:各个SDN标准化组织尚未发布控制其设计方面的安全标准与规范,同时,一些已有的控制器已经在实际应用中得到部署,而革命性安全控制器的开发和部署还处于实验室测试阶段,并未得到大规模的部署和应用。而分布式控制器面临的安全通信、资源调度等方向都存在诸多挑战,通信的东西向接口也没有明确的安全标准
- RoseMary:主要由数据抽象层、RoseMary内核、系统库和资源控制器四部分组成
控制器可组合安全模块库的开发和部署
- FRESCO:允许开发人员在控制器上创建新的安全模块,且互相之间可以组合并协同合作,从而加快了控制器安全模块库的设计与开发。集合了大量API接口,并与传统安全工具进行通信,而且部署与NOX之上,由应用层和安全执行内核两部分组成。研究人员可以自己编写具有安全监控和威胁监测功能的Module安全模块,不同的Module模块用于提供不同的安全功能,这些模块可以被共享或者组合以提供更加复杂的安全防护功能,但具体安全强度还没有完善的评估机制,同时不同的安全模块组合后是否会存在新的安全漏洞也有待检验
控制器Dos/DDoS攻击防御
- 解决方案思路:
- 基于流量变化特征对控制器Dos/DDoS攻击行为进行检测
- 基于连接迁移机制对Dos/DDoS攻击进行防范
- 基于STRIDE、UML等威胁建模方法,对SDN中潜在的DoS/DDoS攻击行为进行评价和预估
流规则的合法性和一致性检测
- 主要思路:
- 基于应用程序的角色和优先级,对流规则的等级进行划分
- 采用形式化和数学分析方法,对不同流规则之间的一致性和冲突性进行分析
北向接口的安全性
应用程序安全性
未来方向
- 面向安全的新型控制器/网络操作系统的设计与开发
- 控制器跨域协同安全通信问题
- 北向接口安全协议标准化
- 控制器Dos/DDoS攻击检测和防范技术