软件定义网络的安全性与openflow流表

SDN将传统封闭的网络体系解耦为数据平面、控制平面 和应用平面

为用户提供了良好的网络可编程性,但同时也引入了众多(单点失效、南/北向接口协议的)安全性难以控制等问题.

[新的一页]
本文的目的和原因:此外,SDN 动态、开放的可编程架构也间接地为攻击 者提供了便捷、有效的攻击手段和方式,使得他们只要通过软件编程的方式便能够轻易地对网络发起攻击
在这里插入图片描述

(1) 基础设施层由网络底层的转发设备组成,主要负责数据的处理、转发和状态收集.
(2) 控制层集中维护网络状态,一方面,它通过自身与基础设施 层之间的接口获取底层基础设施信息,对数据平面的资源进行编排;另一方面,它对全网的信息进行实时维护,并为应用层提供可扩展的编程接口(API).
(3) 应用层位于 SDN 架构的顶层,主要包括不同类型的业务和应用.此外,按照位置关系,定义了 SDN 架构中的南向接口和北向接口.
(4) 在南向接口方面定义了开放的OpenFlow协议标准.然而,由于应用层中各类业务和应用的复杂和多样性,北向接口目前尚无统一的标准.

注:
OpenFlow,一种网络通信协议,属于数据链路层,能够控制网上交换器或路由器的转发平面(forwarding plane),借此改变网络数据包所走的网络路径。
在这里插入图片描述

基于 OpenFlow 协议的 SDN 架构初步实现了 SDN 的原型设计思想,是 SDN 技术的典型实例.如图所示, 在基于 OpenFlow 协议的 SDN 网络中,当终端 A 初次和终端 B 进行通信时,其基本通信流程大致包括 7 步.
Step 1. 终端 A 加入网络,并向交换机 1 发送数据包.

Step 2. 交换机 1 查询自身的流表,若流表中没有与该数据包匹配的表项,则交换机 1将 该数据包转发给控制器.在向控制器发送消息时,交换机 1 可以通过TCP协议直接将数据包发送给控制器,也可 以采用安全传输层协议(transport layer security,简称 TLS)对数据包进行加密传送.

Step 3. 控制器收到交换机 1 的请求信息后,生成相应的应答策略,并通过 Packet-Out 事件下发至交换机 1 的指定端口.

Step 4. 交换机 1 执行控制器下发的应答策略,将数据包转发至交换机 2.

Step 5. 若交换机 2 的流表中无该数据包匹配项,与 Step 2 处理方式相似,交换机 2把 收到的数据包信息转发给控制器;若交换机 2 的流表中含有匹配项,则跳转至 Step 7,即交换机 2 按流表中相应的转发规则将数据包转发至终端 B.

Step 6. 与 Step 3 相似,控制器根据交换机 2 的请求信息,下发相应的应答策略至交换机 2 的指定端口.

Step 7. 交换机 2 执行控制器下发的应答策略,数据包被转发至终端 B.

【新的一页】

在这里插入图片描述

一)流的概念
我们把同一时间经过同一网络中,具有某种共同特征或属性的数据,抽象为一个流
比如:我们将访问同一个地址的数据视为一个流
流一般是由网络管理员定义的,可以根据不同的流执行不同的策略,
在OpenFlow中,数据都是作为流进行处理的。
所以流表就是针对特定流的策略表项的集合,负责数据包的查找和转发
一张流表包含了一系列的流表项条目

计数器:例如:针对每张流表,统计当前活动的表项数、数据包查询次数、数据包匹配次数等;
针对每个数据流,统计接收到的数据包数、字节数、数据流持续时间等;针对每个设备端口,除统计接收到的数据包数、发送数据包数、接收字节数、发送字节数等指标之外,还可以对各种错误发生的次数进行统计;
针对每个队列,统计发送的数据包数和字节数,还有发送时的溢出错误次数等。

动作:OpenFlow流表的动作用于指示交换机在收到匹配的数据包后应该如何对其进行处理。与传统交换机转发表只需要指明数据包的转发出端口不同,OpenFlow交换机因为缺少控制平面的能力,所以对匹配数据包的处理不仅仅是简单的转发操作,而需要用动作来详细说明交换机将要对数据包所做的处理。

1)数据包的处理流程
其中匹配表按照优先级进行排序,从高到低
如果匹配成功,对应计数器进行更新并去执行相应动作
如果表项没有对应的动作执行,则数据包将会被丢弃
如果没有找到匹配的表项,则封装数据包转发给控制器

2)包头解析是为了得到数据分组的12元组(包头域)

【新的一页】
在这里插入图片描述

当交换机启动时,首先尝试连接至用户指定的TCP端口或控制器的6653 TCP端口,双方通过交换数字证书 相互进行认证.同时,每个 OpenFlow 交换机至少需要配置两个证书,一个用于认证控制器的合法性,一个用来向 服务器证实自身的合法身份.交换机和控制器证书的生成和分发过程如下

(1) 由证书管理机构生成站点范围内的证书;
(2) 生成控制器证书;
(3) 生成交换机证书;
(4) 使用站点范围内的私钥对证书进行签名;
(5) 将密钥和证书分别发放到各个设备中.

【新的一页】
DoS/DDoS 攻击主要是指攻击者通过傀儡主机消耗攻击目标的计算资源,阻止目标为合法用户提供服务.

当攻击者通过不同的交换机持续地向控制器发送大规模的虚假请求信息时,会使得控制器一直忙于应答攻 击者的非法请求,而无暇响应合法用户的正常请求.当控制器在短时间内接收到的虚假请求信息超过一定规模 时,它便可能因计算资源和内存资源消耗过度而无法正常工作,致使整个 SDN 网络处于瘫痪状态.

SDN 控制器遭受 DoS/DDoS 攻击时候因此,若在控 制器和交换机的通信过程中增加一个流信息过滤模块,在控制器收到流请求之前,由该过滤模块 对无效的信息进行过滤,转移非法信息,仅将合法的信息传送至控制器。

【新的一页】
引发安全性的缘由:这主要是指由 OpenFlow 协议的脆弱性而引发的安全性威胁.OpenFlow 安全通道采用 SSL/TLS 对数据进 行加密,但由于 SSL/TLS 协议本身并不安全,再加上 OpenFlow 1.3.0 版本之后的规范均将 TLS 设为可选 的选项,允许控制通道不采取任何安全措施,因而南向接口面临着窃听、控制器假冒等安全威胁

在这里插入图片描述
(1) 基于 STRIDE 威胁分析模型对 OpenFlow 系统进行建模,列举系统潜在的脆弱性,如 DoS/DDoS 攻击、可扩展性和自 适应性等方面的安全威胁;
(2) 基于 STRIDE 模型建立 OpenFlow 各系统的数据流图,包括基本的处理过程、数 据存储、有条件的数据流和信任边界等;
(3) 分析系统的详细数据流图,从拒绝服务、欺骗、篡改、不可否认、 信息泄露和特权提升等方面,对系统各组成部分的脆弱性进行检查;
(4) 通过向控制器发送大量的数据来模拟 DoS/DDoS攻击,对方案的性能进行验证.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章