一种检测SDN中流表一致性的方法和系统与流程

文档序号:12068150阅读:469来源:国知局
一种检测SDN中流表一致性的方法和系统与流程

本发明涉及SDN安全领域。更为具体的,本发明涉及一种检测SDN中流表一致性的方法和系统。



背景技术:

软件定义网络(Software-defined Networking,SDN),其核心的思想是将复杂的网络设备一分为二。转发功能由单一的硬件来实现,称之为数据面;而较为复杂的控制、管理、服务功能由软件来实现,称之为控制面。

分离的控制层和数据层使得SDN架构存在转发规则不一致的隐患。由于中央控制器将数据平面转发规则安装到下层交换机,以指导数据包转发或其他操作,一旦交换机端的规则被恶意篡改,而控制器没有察觉,则下层网络的实际运转情况将不受控制器控制。SDN中的转发规则称作流表,以现在主流的SDN南向接口OpenFlow协议v1.3.0为例,一条流表包含以下字段:(1)Match Fields字段,表示需要匹配的数据包的具体包头字段,当流经数据包的包头特定字段的数值等于该流表项指明的数值时,则将对该数据包做出流表项规定的后续操作;(2)Priority,表示该流表项的优先级,优先级越高的流表项最先匹配;(3)Counters,表明该流表项已经匹配的数据包的个数;(4)Instructions,为将要对数据包进行的操作,如丢弃、转发等;(5)Cookie,是被远程控制器用来筛选Flow Statistics、Flow Modification或者Flow Deletion行为的指示值。

由于现在主流的OpenFlow协议各版本都没有对流表一致性问题进行处理,且一些OpenFlow交换机留有监听模式,即网络管理者可以通过未认证的TCP端口来操纵交换机上的流表数据,进而攻击者可以通过预留接口,为交换机的特定数据流添加镜像端口,从而窃听数据流。

国外研究人员Markku等人在《Spook in Your Network:Attacking an SDN with a Compromised OpenFlow Switch》分析了该种威胁的具体实现细节,并指出其可造成网络监听,但未提出有效的防护措施。Kevin等人在《Openflow vulnerability assessment》指出当前可行的检测流表一致性的方案,需要导出并检测交换机所有流表是否被改动,该方法计算量大,且占用较多网络传输带宽,可行性低。关于检测交换机是否被入侵而导致其行为违反了控制器所下发的转发规则,Chi等人在文章《How to detect a compromised SDN switch》提出了一种周期性的抽样检测方法,从全网随机选定一些交换机,并从每个交换机上随机抽取小部分流表项,并向网络中发送与该流表项匹配的数据包,如果相应的交换机未按照流表规则来处理数据包,则认为该交换机遭到了入侵。

然而,上述已有的解决方案在检测效率、检测准确性、检测覆盖范围方面均有一定限制。



技术实现要素:

针对上述问题,本发明提供了一种检测SDN中流表一致性的方法和系统,以较低的网络传输负荷、较高检测率对流表的一致性进行检测,弥补了SDN分层结构缺乏对流表规则一致性检测措施的不足,提高SDN网络控制的可靠性,为SDN网络数据传输提供安全保证。

为实现上述目的,本发明采用如下技术方案:

一种检测SDN中流表一致性的方法,其步骤包括:

1)用户在控制器端配置待检测流表的目标字段以及查询频率;

2)在控制器端备份已下发过的所有流表以及所有流表对应的目标字段的数目;

3)根据步骤1)的配置向交换机发起查询请求;

4)交换机根据接收到查询请求,将待检测流表的目标字段的实时统计信息返回控制器端;

5)将步骤4)返回的实时统计信息中目标字段的数目与步骤2)备份的目标字段的数目进行比对,完成对SDN中流表一致性的检测。

进一步地,步骤1)中用户根据检测需要,基于流表篡改的监听攻击的特征选择目标字段。

进一步地,步骤2)中,在控制器端针对每一个交换机进行备份。

进一步地,所述查询请求包括:消息编号值,当次查询中需查询的目标字段的数目以及需查询的目标字段的编号列表。

进一步地,所述实时统计信息包括:消息编号值,当次查询中需回复的目标字段的数目,以及需回复的目标字段的信息列表。

进一步地,需回复的目标字段的信息列表包括需回复的目标字段的编号以及该编号对应的目标字段的计数值。

进一步地,每次查询中控制器端的实时统计信息中的消息编号值与查询请求中的消息编号值是对应一致的。

进一步地,步骤4)中所述交换机通过对检测前已有的待检测流表的目标字段进行计数,且每当待检测流表有安装、删除、修改动作时,对其目标字段的数目进行更新,得到待检测流表的目标字段的实时统计信息。

一种检测SDN中流表一致性的系统,包括:部署有流表备份模块、管理配置模块和查询模块的控制器,以及部署有字段计数模块和信息回复模块的交换机;

所述流表备份模块用于备份控制器已下发过的所有流表以及所有流表对应的目标字段数目,所述管理配置模块用于配置待检测流表的目标字段以及查询频率,所述查询模块用于根据管理配置模块的配置向交换机发送查询消息,并根据信息回复模块的回复检测流表一致性;

所述字段计数模块用于对检测前已有的待检测流表的目标字段进行计数,并实时更新待检测流表的目标字段的计数值,所述信息回复模块用于根据查询消息提取查询时待检测流表的目标字段的当前计数值并回复给查询模块。

进一步地,所述查询模块向交换机发送的查询消息包括:消息编号值,当次查询中需查询的目标字段的数目以及需查询的目标字段的编号列表。

进一步地,所述信息回复模块的回复包括:消息编号值,当次查询中需回复的目标字段的数目,以及需回复的目标字段的信息列表。

进一步地,每次查询中,查询消息的消息编号值与回复的消息编号值是对应一致的。

进一步地,需回复的目标字段的信息列表包括需回复的目标字段的编号以及该编号对应的目标字段的计数值。

进一步地,所述查询模块将信息回复模块回复的待检测流表的目标字段的当前计数值与所述流表备份模块备份的目标字段的数目进行比较以检测流表一致性。

与现有技术相比,本发明的有益效果是:

本发明基于现有的检测SDN流表一致性的方法,提出了一种针对性更强、检测率更高、检测效率更快的方法和系统。该方法和系统可根据基于流表篡改的监听攻击的特征定制需要检测的字段,只要是防护已知流表篡改类型的监听攻击就能实现百分之百的检测率;同时,由于该方法只需要交换机返回指定字段的计数内容,因而占用网络传输带宽小,占用控制器、交换机端处理时间也更少。因而,本发明是对SDN流表一致性检测防护方面的补充和改进。

附图说明

图1是本发明检测SDN中流表一致性的系统模块图。

图2为控制器向交换机进行查询的消息格式示意图。

图3为本发明中交换机回复控制器的消息格式示意图。

图4为图3所示的结构体<ActfieldCount>的结构示意图。

图5是本发明流表字段检测方法测试的攻击场景模拟图。

图6是实施例中控制器向交换机进行查询的消息格式示意图。

图7是实施例中交换机回复控制器的消息中结构体<ActfieldCount>的示意图。

图8是实施例中交换机回复控制器的消息格式示意图。

具体实施方式

以单个交换机为例,本发明检测SDN中流表一致性的系统如图1所示,控制器端主要负责流表备份,管理配置以及发出查询请求,交换机则记录待检测流表目标字段数目变化,并回复控制器的查询请求,控制器与交换机间的转发功能由数据面实现。

控制器向交换机进行查询的消息OFFieldQuery格式如图2所示,包括:bufferId,表示消息缓冲区中消息编号值;fieldNum,表示该次查询中,共查询多少个字段的计数值;CheckActFieldList,表示要查询的字段的编号列表。

交换机回复控制器的消息OFFieldReply格式如图3所示,包括:bufferId,表示消息缓冲区中消息编号值;fieldNum,表示该次查询中,共返回多少个字段的计数值;fieldCount,是一个列表,表示要回复的字段编号,以及该编号对应的计数值是多少。

其中,<ActfieldCount>,是一个结构体,其结构如图4所示,包括:actType,表示某个字段的编号,actCount表示该字段的计数值。

实施例

利用本发明检测流表一致性的方法测试的攻击场景模拟图如图5所示。

主机HUSTC向主机HCSTNET发送数据包,当数据流从交换机USTC,IIE,CSTNET路线经过时,主机HIIE通过篡改交换机IIE上的流表项,使得数据流流经HIIE主机,从而达到窃听的目的。

在攻击者攻击之前,控制器对启动字段检测,首先设定查询间隔,如3s查询一次,控制器向交换机发送查询消息,其中查询消息的CheckActFieldList列表中设置查询字段的编号列表,本例中查询每台交换机上OUTPUT(00),SET_FIELD(01),PACKET_IN(09),DROP(08)四个字段的数量,下发包含查询字段与消息缓存编号的查询消息给交换机,查询消息格式见图6。此时攻击者登录IIE交换机,进行流表篡改,即添加一个动作字段output,其端口指向连接HIIE主机的端口,交换机将攻击后的查询结果见图7,图8,与备份的结果相比较,控制器备份中actType=00字段的数量为actCount=1,而交换机回复该字段的数量为actCount=2,因此,控制器的管理端口显示流表不一致的情况。即在交换机端流表被篡改后的一个查询时间间隔之后,控制器端在收到交换机查询结果,并与控制器端备份的流表进行比较后,发现编号为3(IIE)交换机的流表项中,output的数量多1,说明攻击者在交换机上增添了一个镜像端口,判断此时受到了监听攻击。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1