周迪
一种基于SDN的视频监控安全系统的设计与实现
周迪
浙江宇视科技有限公司,浙江 杭州 310053
将软件定义网络融入视频监控管理系统,利用业务管理平台对流信息的精确理解和预测能力,以及OpenFlow网络对流的深度管控能力,实现对流量的精准清洗和流日志的丰富统计,不仅实现了对非法入侵的拒止,而且实现了对系统内外流行为的监控。
SDN;视频监控;安全
视频监控系统在为其他系统提供视频智能防护的同时,其自身的安全性需求显得日益重要,事实上也获得了越来越多的重视。在监控IP化的近十年里,监控系统的安全事故频发,业界的安全意识获得了极大的提升。为了保障监控系统的安全,人们投入了各种安全防护手段,防火墙、入侵检测、接入控制、审计回溯等等,在监控系统成本日益下降的同时,安全的成本投入反而日益上升,管理也日益复杂,增加了整系统的稳定性风险[1]。因此,简化安全管理,提升监控系统的安全管理效率,成为刻不容缓的研究课题。
流量清洗和安全流审计是广泛使用的两种网络安全机制。流量清洗是事前的控制措施,通过对接入终端的认证和授权,确保其身份的真实性和权限的合法性,通过对业务流量的分析和建模,过滤非法流量和阻断非法连接,避免或降低其攻击危害。安全流审计是事后的控制措施,通过对接入流量和日志内容的解析,分析其行为特征和活动轨迹[2]。但是,这两种安全机制存在如下不足:(1)流量清洗需要对网络分组转化为流,视频流量较大且业务繁多,这种情况下的流量清洗对硬件计算能力有较高的要求;(2)网络层面独立的流量清洗并不能精确屏蔽非法流量;(3)安全流审计的流量侦听需要在网络的多个出入口放置“探针”,部署存在较多困难,实现复杂;(4)海量日志的查询和分析同样对数据库的性能提出了较高的要求。值得研究的问题是:(1)针对视频监控系统,能否设计一种独特的流量清洗和安全流审计方案,降低对软硬件的开销;(2)能否找到一种集中流量管控和海量日志存储的平台,降低部署难度,提高流审计性能。
软件定义网络(Software Defined Networking,SDN)是一种新型的集中控制的网络体系架构,实现了控制平面和数据平面的彻底分离,转发节点只负责业务流量的转发,由控制器实现集中的计算和调度。OpenFlow协议作为SDN的一种南向接口标准,规范了控制平面与数据平面之间的通信机制,实现基于流表的全局逻辑控制。Hadoop是一种开源的云计算平台,实现海量数据存储和快速查找机制,为安全日志流审计功能提供了一种可用平台。大型的视频监控系统也是一种集中管控的体系架构,视频编、解码终端由管理平台集中管理,统一调度。显然,视频监控系统的管理平台和SDN控制器均处于关键位置,并具有可编程特性。将SDN融入视频监控系统,为视频监控系统的安全防护提供了新的选项,能够充分实现业务和网络的信息融合和联动调度,有效协调业务操作流程、网络转发节点、监控编解码终端和Hadoop平台之间的协调,形成所需的视频监控网络安全功能。
本文拟提出一种基于SDN的视频监控安全系统(SDN based Video Surveillance Security System,SDN VSSS),阐述业务与网络融合的流量清晰和安全流审计的工作原理;利用OpenFlow技术,实现SDN VSSS的原型系统,并验证SDN VSSS的可行性和可用性。
网络安全作为一个热点课题,学术界多有研究。作为视频监控业务的承载层,传统网络将数据转发与控制逻辑紧密耦合,限制了控制层面的灵活性和扩展性,网络转发很少感知业务状况,业务流程对网络转发的调度也极其有限[3]。流量清洗技术,虽然架构完整,但技术复杂,开放性不够。SDN作为快速发展的新技术,通过分离网络的数据层面和控制层面,开放了网络逻辑控制功能,能够更加灵活地控制数据转发,为网络安全设计提供了创新途径。
近几年,有研究者利用SDN解决网络安全问题。通过融合用户角色和认证注册,提出利用OpenFlow实现基于角色的接入控制,在内部网络的全局监控方面有一定成效;但角色这种粗粒度的用户定义,无法满足多维度流量清洗的需求。在OpenFlow网络中利用VLAN标签和防火墙实现无线接入用户的访问控制,充分体现了SDN控制器的集中管控的特点,但策略定义复杂,对管理员的网络全局知识要求较高。通过改进802.1x协议,根据目标采用适当粒度动态识别数据流,利用SDN实现了数据流的全局管控,但却增加了每条接入流的认证过程。
SDN VSSS系统包含视频监控管理服务器、SDN控制器、Hadoop平台、SDN交换机,通常部署于机房[4]。作为视频源的摄像机通常安装于公共场合,作为业务请求端的用户主机通常位于办公网络,由于物理环境的开放性,摄像机和用户主机存在极大的安全风险,给视频监控的管理系统带来入侵隐患。我们期望利用SDN VSSS系统为视频监控的管理系统打造安全的接入环境。
SDN VSSS系统各部件的角色和作用如图1所示。
图1 SDN VSSS系统各部件
(1)管理平台:负责维护摄像机和用户主机的注册、认证、请求、建链等功能,并与SDN控制器建立实时的信息同步和交互。
(2)SDN控制器:OpenFlow网络的集中控制中心,负责对SDN交换机的管理和流表维护,实现全网流量的管控。
(3)Hadoop平台:应用Hadoop架构体系中的HBase数据库,实现流日志的海量存储和查询功能。
(4)OpenFlow交换机:接收来自SDN控制器的信令和流表维护,处理数据流。
(5)摄像机:采集场景画面,实现视频编码和传输,向管理平台注册,并接受管理平台的调度。
(6)用户主机:与管理平台和摄像机交互,实现视频资源的请求,解码视频画面。
SDN VSSS利用管理平台对视频监控业务的精确理解,实现对OpenFlow交换机流表的实时调度,达到基于状态迁移的精准流量清洗效果。
1.2.1 流量清洗的工作原理与特点
SDN VSSS系统的流量清洗工作包括:预先开通注册消息通道并拒绝其他内容的报文、基于摄像机或用户主机的登录状态建立后续的信令通道、基于业务状态建立数据通道。
以用户主机点播摄像机的实况视频为例,描述流量清洗的工作过程。
(1)管理平台通知SDN控制器开通指向管理平台的注册消息通道并拒绝其他内容的报文,但其他未知报文可以上送SDN控制器。此步骤通过下发具有深度内容识别的流表实现,流表中不限定具体的IP和MAC信息,仅限定内容。
(2)摄像机和用户主机向管理平台进行注册。
(3)针对注册成功的摄像机或用户主机,管理平台通知SDN控制器为该摄像机或用户主机开通后续业务信令或数据的传输通道。
(4)后续根据业务开展的需要,管理平台与SDN控制器协调,建立进一步的信令或数据传输通道。
从上述流程可见,业务管理平台与SDN控制器的信息同步和协调带来诸多优势。
(1)管理平台精确理解整个系统的信令和数据传输需求,可精确控制OpenFlow网络的白名单内容,实现对数据准入的严格控制。
(2)管理平台精确预测后续的信令和数据传输需求,避免了数据驱动机制给SDN控制器带来的性能消耗和计算延时。
(3)管理平台严密监管所有业务的请求和处理过程,可实现基于状态驱动的白名单更新机制,精细化控制白名单内容的建立时机。
1.2.2 安全流审计的工作原理与特点
SDN VSSS将业务管理与网络调度融为一体,给安全流审计的开展带来了不少便利,同时也需要对系统的设计进行适当的改进。SDN VSSS的流信息来自两个渠道:一是来自管理平台的信息同步;二是来自OpenFlow交换机的信息上送。因为管理平台了解所有业务的进展情况,所以它可以将正常业务的流信息同步给流审计业务,这样就免除了在网络内部部署探针的需求。对于非业务相关的流量,即管理平台未知的流量,OpenFlow交换机可以上报一份给流审计业务[5]。流审计业务包含流日志提取、流日志管理和流日志分析三块内容。
流日志提取的基本工作过程如下。
(1)管理平台收到来自摄像机或用户主机的注册消息以及后续的业务请求和数据建/拆链消息,将信息通过SDN控制器同步给Hadoop平台,形成流日志。
(2)SDN交换机OVS收到业务之外的报文,发现无匹配项,则将该流的首分组封装为Packet-in消息,上报给SDN控制器;SDN控制器做相应处理和下发Flow mod消息,提取其中的流表项建立信息,形成标准的流日志,并记录该flow-id和RowKey。
(3)SDN控制器连接Hadoop平台的HBase,将流日志发送至HBase,完成该条流日志。
流回溯分析的基本工作过程如下。
(1)SDN控制器收到审计请求,根据审计策略向Hadoop平台发送查询。
(2)Hadoop平台反馈查询结果,SDN控制器审计服务根据审计策略对反馈的结果进行回溯分析。
SDN控制器在流审计工作中起到主导的角色,而Hadoop平台负责日志数据的汇总和存储。
从上述流程可见,SDN VSSS融合业务和网络的流审计模型具有如下特点。
(1)流日志的信息以来自于管理平台的批量同步为主,以来自于OpenFlow交换机的数据流触发为辅,这种模式降低了数据采集的性能消耗。
(2)管理平台的流日志具备更丰富、更完善的业务信息,有助于SDN控制器进行多维度的流日志分析。
1.2.3 SDN VSSS的系统功能模块
SDN VSSS的功能模块分解图如2所示,主要包括5个模块。
图2 SDN VSSS的功能模块分解图
(1)表项处理模块:接收来自管理平台的指令,实施表项的下发。
(2)流接入处理模块:解析Packet-in消息,为流审计提供业务之外的流接收信息。
(3)流日志提取模块:收集流日志,从流处理模块以及流建立和删除的消息中提取流信息。
(4)流日志管理模块:与Hadoop平台对接,提供流日志的存储和查询服务。
(5)流日志分析模块:提供对外的流审计需求,对来自流日志管理模块的查询结果进行审计分析,输出审计结果。
流接入控制由SDN控制器统一负责,通过黑白名单过滤报文,实现对数据流的精准清洗。
针对白名单,SDN控制器一方面接收来自管理平台的白名单需求,另一方面独立执行基本的网络管理策略,例如拓扑发现与路由计算,相关的少数报文默认进入白名单。
白名单控制是一种较为严格的安全策略,SDN控制器只对白名单中的实体下发流表,即不允许除白名单外所有实体的接入[6]。大小为R的白名单列表WhiteList定义如下。
WhiteList ={Host [ ip&port&content&swport ]i,i=1,2,…,R},
其中,Host [ ip&port&content&swport ]i为白名单中的某一实体,由实体的IP地址、传输层端口号、报文深度内容及接入的首跳交换机ID、接入设备端口号swport构成。
针对黑名单,分为两类。一是缺省黑名单,白名单之外的流量只允许通过Packet- in消息实现首包的上报,不给予转发,主要用于流日志的收集和安全态势的分析;二是按需黑名单,若发现个别流存在攻击行为或潜在的攻击嫌疑,则直接设置对应的黑名单,给予丢弃处理[7]。
黑名单控制是一种较为宽松的安全策略,即允许除了“黑名单”外的所有实体接入。大小为R 的黑名单列表BlackList定义如下。
BlackList ={Host [ ip|swport ]i,i=1,2,…,R},
其中,Host [ ip|swport ]i为黑名单中的某一实体,由实体的IP地址或实体的首跳交换机ID及接入设备端口swport构成。对于缺省黑名单,IP地址是一个通配掩码,覆盖所有IP地址,其位于匹配列表的最后一列。
显然,SDN VSSS属于融合黑白名单的多维控制策略。长度为R的多维控制列表MCList定义如下。
MCList={MCHost [ info ]i|MCHost [ info ]i∈ WhiteList ∪BlackList,i=1,2,…,R}。
其中,MCHost [info]i为多维控制列表成员;MCHost [ info ]i为 WhiteList 或 BlackList 中的某一实体。
2.2.1 流日志格式
流日志的条目是一个40元组的信息,包括流表项包头域的12元组信息、深度内容域20元组信息、首跳交换机ID或管理平台ID、下发流表的系统时间及流表6元组统计信息,限于篇幅这里从略[8]。
2.2.2 流日志的提取算法
SDN VSSS的流日志有两个来源:一是来自管理平台的信息同步;二是来自SDN控制器实际收到的Packet-in消息。
管理平台对系统的所有交互和流量行为精准理解,是流审计业务的重要信息来源。根据业务的开展情况,管理平台通过Mgr_Send()函数向流日志提取模块实时同步流信息Mgr_Packet-in Message。
OpenFlow交换机收到业务之外的未知报文时,会向SDN控制器发送封装了首包的packet in消息。SDN控制器通过handle_PacketIn()解析出其中相关信息如src_ip,dst_ip,src_port,dst_port,content及match。
流日志提取模块汇总上述两个途径的信息,由make_log( )封装成流日志Flowlog,最后由get_row-key( )、get_flowid( )分别得到主键RowKey与流ID Flowid[9]。
流日志的提取算法如下。
输入Packet-in Message或Mgr_Packet-in Message
输出FlowLog∥流日志
{src_ip,dst_ip,src_port,dst_port,content,match}← handle_PacketIn( PACKET-IN Message)
或{src_ip,dst_ip,src_port,dst_port,content,match}← handle_PacketIn( Mgr_PACKET-IN Message)
Flowlog ← make_log(flowi)
RowKey ← get_row-key(flowi)
Flowid ← get_flowid(match)
return Flowlog
在SDN VSSS中,SDN控制器通过上述算法提取流日志,并通过Thrift接口与Hadoop中的HBase数据库连接,将流日志发送至HBase。
为验证SDN VSSS的可行性,搭建了如图3所示的试验组网环境,包含3台OpenFlow交换机,1台管理平台,1台Hadoop平台,1台SDN控制器,两台IP摄像机,1台用户主机以及1台直连摄像机的测试PC。其中SDN控制器采用ODL开源项目,通过带外方式与OpenFlow交换机互联;测试PC机直连摄像机,用于控制安装于摄像机之上的发包工具。
图3 试验组网环境
SDN控制器提供审计服务。Hadoop的HBase由基于Linux PC的1台Master和2台Region构成,硬件配置为Core i5 3470 的CPU,32 GHz的主频,4 GB的内存。
为验证SDN VSSS具有的基本功能,共设计了2组试验:一组测试流量清洗特性,对用户主机的攻击防护试验;一组测试安全流审计特性,对用户主机的流日志回溯分析试验。
试验设置如图4所示。
图4 试验设置图
(1)在0~800 s时间段,用户主机点播摄像机10.0.0.1的画面,视频码流速率为50 Mb·s﹣1。由于管理平台协调SDN控制器下发了对应流表,用户主机正常接收到视频流,接收速率保持在50 Mb·s﹣1。
(2)在200~400 s时间段,测试PC控制摄像机10.0.0.2上的发包工具向用户主机发送非视频的IP包,速率为50 Mb·s﹣1。由于用户主机并未向摄像机10.0.0.2点播视频流,管理平台也就未协调SDN控制器下发对应流表,用户主机未能接收到对应报文,接收速率依旧保持在50 Mb·s﹣1。
(3)在400~600 s时间段,用户主机点播摄像机10.0.0.2的画面,视频码流速率为50 Mb·s﹣1。因为管理平台协调SDN控制器下发了对应流表,用户主机收到了摄像机10.0.0.2的视频流;而测试工具发送的非视频IP包因为其端口号等信息与视频流不同,所以无法匹配流表,用户主机依然无法收到该测试包。所以用户主机的接收速率为100 Mb·s﹣1。
(4)在600~800 s时间段,测试PC控制发包工具模拟视频流发送IP包,速率为50 Mb·s﹣1。此时用户主机的接收速率上升至150 Mb·s﹣1。
(5)在800~1000 s时间段,用户主机停止点播摄像机10.0.0.2的画面。由于管理平台协调SDN控制器清除了相关流表,摄像机10.0.0.2发送的正常视频和模拟视频流均被拦截,用户主机的接收速率下降至50 Mb·s﹣1。
由上可见,SDN VSSS系统精确地实现了流量清洗,将业务之外的非法流量屏蔽在接入点之外。
试验设置如下。在上述流量清洗试验之后,在SDN控制器上查询关于用户主机的流日志,对用户主机的各个时间段进行回溯分析,以得到不用时间段的连接IP个数。
表1
序号时间段(s)连接IP个数 10~2002 2200~4002 3400~6003 4600~8003 5800~10002
(a)
表1的统计结果可见:在0~200 s时间段,用户主机的连接IP个数为2,一个为管理平台,一个为摄像机10.0.0.1;在200~400 s时间段,用户主机的连接IP个数也为2,因为发包工具的测试报文被拦截了;在400~600 s时间段,用户主机的连接IP个数为3,除了管理平台和摄像机10.0.0.1,又增加了一个摄像机10.0.0.2;在600~800 s时间段,用户主机的连接IP个数依然为3,虽然发包工具发送了测试流,但该测试流是与视频流一样的仿真流,所以连接IP个数不变;在800~1 000 s时间段,用户主机的连接IP个数为2,因为测试用户主机停止了对摄像机10.0.0.2的点播。
试验结果表明,SDN VSSS的安全流日志审计系统可以准确地统计对应设备的流日志信息。
(1)通过融合业务管理系统和SDN对网络的集中控制,可以实现精准的流量清洗,利用管理平台对业务交互过程的精确理解,实现对数据准入的严格控制。
(2)业务管理平台对后续业务的精准预测能力可以避免数据驱动机制给SDN控制器带来的性能消耗和计算延时,也使得系统更为安全可控。
(3)通过同步业务管理平台的流信息,可以降低因为数据侦听带来的消耗,同时也带来更为丰富的审计信息。
[1]SEKAR V,EGI N,RATNASAMY S,etal. Design and implementation of a consolidated middlebox architecture[C]//Proceedings of the 9th USENIX Symposium on Networked Systems Design and Implementation. California:[s.n.],2012.
[2]SERRAO G J. Network access control (NAC):an open source analysis of architectures and requirements [C]//Proceedings of the 44thAnnual 2010 IEEE International Carnahan Conference on Security Technology. San Jose:IEEE,2010:94-102.
[3]SATHYA G,VASANTHRAJ K. Network activity classification schema in IDS and log audit for cloud computing[C]//Proceedings of 2013 International Conference on Information Communication and Embedded Systems. Chennai:IEEE Computer Society,2013:502-506.
[4]左青云,陈鸣,赵广松,等. 基于OpenFlow的SDN技术研究[J]. 软件学报,2013,24(5):1078-1097.
[5]SHVACHKO K,KUANG H,RADIA S,et al. The Hadoop distributed file system [C]// Proceedings of 2010 IEEE the 26th Symposium on Mass Storage Systems and Technologies. Lake Tahoe:IEEE Computer Society,2010.
[6]张朝昆,崔勇,唐鄖伟,等.软件定义网络(SDN)研究进展[J].软件学报,2015,26(1):62-81.
[7]SASAKI T,HATANO Y,SONODA K,et al. Load distribution of an openflow controller for role based network access control[C]// Procedings of the 15th Asia Pacific Network Operations and Management Sysposium:“Integrated Management of Network Virtualization”. Hiroshima,Japan:IEEE Computer Society,2013,Article number:6665289.
[8]KINOSHITA S,WATANABE T,YAMATO J,et al. Implimentation and evaluation of an OpenFlow based access control system for wireless LAN roaming [C]// Proceedings of the 36th Annual IEEE International Computer Software and Application Conference Workshops.Izmir:IEEE Computer Society,2012:82-87.
[9]MATIAS J,GARAY J,MENDIOLA A,et al. FlowN AC:flow based network access control [C]// Proceedings of the 3rd European Workshop on Software Defined Networks. Budapest:IEEE,2014:79-84.
Design and Implementation of a Video Surveillance Security System Based on SDN
Zhou Di
Zhejiang Uniview Technology Co., Ltd., Zhejiang Hangzhou 310053
Integrating the software-defined network into the video surveillance management system, using the accurate understanding and prediction capabilities of the traffic management platform for convection, and the deep control of the convection of the OpenFlow network, to achieve accurate cleaning of traffic and rich statistics of flow logs, not only realizes rejection of illegal intrusions, but also achieves monitoring of the popularity of the system inside and outside the system.
SDN; video surveillance; security
TP393.0
A