一种用于路径配置的SDN拟态防御架构
2022-02-21陈荔
陈荔
(长安大学,信息与网络管理处,陕西,西安 710064)
0 引言
目前,网络数据流量呈现多元化、规模化发展,其利用服务链依照既定的逻辑顺序,经过防火墙、入侵检测点等服务功能点,才能为人们提供安全、稳定的网络服务,而前提是对服务路径进行配置。有限网络资源下,持续增长的网络流量数据会造成带宽消耗过量、链路拥堵、服务安全等诸多问题;而SDN新型网络架构采用控制、转发分离的结构,集中化的网络控制,可动态、集中地调配数据流量的路径,为路径配置提供极大便利,但是,也存在管控集中、控制器漏洞、恶意应用等安全问题。而传统的安全防御秉承“威胁感知、问题移除”的策略,不能有效发现和防御未知的安全风险,也即需依赖于既有的攻击行为及特征。由此,拟态防御技术得以提出和发展,其通过动态异构冗余架构的引入,利用自身网络架构、机制的优化,变“亡羊补牢”为主动防御。为此,探究一种适用于服务路径配置的SDN(Software Definition Network)拟态防御架构,不仅能够缓解传统网络服务的弊端性,而且,可最大限度地优化服务路径配置及安全性。
1 路径的自适应配置方法
大规模的网络流量流转时,在相同时间可能会占用多个链路带宽,可将其定义为一个二元组〈F(x),L(s)〉,F(x),L(x)分别为转发数据流、所选链路带宽剩余的大小,若前者大于后者,则势必造成链路堵塞[1]。为此,本文将根据网络链路负载状态及流量特征,动态调整流量分流和路由,从而基于负载均衡实现路径的自适应配置。同时,因为网络环境复杂,单一的强化学习方法难以提取人工特征,状态—动作空间狭窄问题[2-3],为此,本文选用融合多层神经网络和强化学习2类模型的深度强化学习,建构路径配置的方法框架,如图1所示。
图1 SDN网络的服务路径配置框架
图1中,路由决策模块是核心,其采用深度强度学习方法,通过深度学习神经网络从数据处理模块中获取网络链路和流特征的状态St,而服务路径配置的网络行为则为动作at,路径优化调配目标则为奖励rt。通常,深度学习网络采用状态—动作值Q函数Q(St,at}来评价对状态S的长期奖励预期的动作,在训练时,根据下式动态更新Q值,如式(1)和式(2),
(1)
(2)
式中,α为学习速率、γ为折扣因子,训练过程中,深度神经网络以ε-greddy来选取拥有最高(St,at}的动作以实现预期长期奖励的最大化,并以ε的概率从全部的action中随机择取一个,使用1-ε的概率抽取at=maxaQ(St,a}以确保学习过程中探索与利用的平衡。
传统强化学习的查表容易产生存储、样本及计算的高维性[4],但动态、大规模的网络环境下,对众多状态、动作对的Q值表进行存储、计算不可能。为此,本文使用以深度神经网络以参数化函数来近似强化学习的Q值表,并针对强化学习训练数据相关性的问题,利用经验回访方式予以解决,即将训练中学习到的路由选择经验中的状态、动作及奖励存入记忆池。而后,将其中的数据作为神经网络训练样本对其进行训练,以此,便可根据网络链路状态及流量特征完成的网络服务路径进行自适应配置。
2 路由配置的防御架构
2.1 SDN拟态防御架构的整体设计
本文将动态异构冗余架构引入SDN控制层,构建一体化的内生拟态防御机制。但是,控制层的拟态防御仅可确保路径配置信息的可靠性,无法确保数据流实际传输路径与配置路径的一致性[5-6],为此,本文结合OpenFlow交换机的特性,建构路径转发的验证机制,即匹配流表出发向控制器发送Packet_in消息的动作,其可记录数据流实际经过哪个交换机,以获取数据流的实际传输路径。如此,便可从路径配置及效验2个层面,来建构SDN拟态防御的整体架构,如图2所示。
图2 用于路径配置的SDN拟态防御架构
2.2 拟态防御架构各模块的实现技术
应用层:该层集成了各类SDN业务应用,可通过控制层的接口实现网络服务资源的调用[7],本文采用B/S结构开展路径配置业务,以该层作为客户端,配设GUI界面进行路径配置业务操作,待生成可靠的路径配置信息后,将其封装为JSON统一数据格式,通过RESTAPI统一标准的北向接口,与相当于服务器的控制层进行交互。同时,为实现应用层与拟态控制器的通信,此处选用HTTP协议,在HTTP的请求报文中封装REST的Web架构配置数据,并使用Put、Post、Get、Delete等作为网络资源操作的基本动作与URL规范格式的网络资源来完成应用层路径配置业务的下发。
拟态控制层:该层通过引入动态冗余架构,以不同的异构执行体进行随机、动态的数据处理,提升内部架构的不可预测,达到拟态防御的目的。具体由输入代理(北向代理)、调度器、执行体池、判决器等组成,其中,输入代理是接受应用层下发的路径配置信息的HTTP请求,并将其存储传输给调度器;调度器采用调度的动态选择算法,来随机选择路径配置的异构执行体,以此提升SDN网的安全防御性,而因执行体对象结构的差异越大,则拟态防御的效果越优,所以,本文采用MOSS量化各异构执行体的结构差异,且异构度并非由单一体确定,此处将其定义为执行体的异构度,如式(3),
(3)
式中,σ(Ei,Ej}为Ei、Ej2个执行体的异构度,m为调度选择的m个执行体,σ∈(0,1]为异构度,调度动态算法选择执行体时,以力求σ最小。调度选择时,应选择防御能力强的执行体,故而,本文引入安全防御系数,将其定义为式(4),
μ(Ep}={μ1,μ2,μ3…,μn}
(4)
式中,n为执行体集中的异构执行体数量,Ep为执行体集。初始时,各异构执行体的安全防御系数相同,但后期会根据判决器反馈执行体的每次输出情况进行更新,如式(5),
(5)
式中,ϑ为更新因子。
据此,可得执行体集的安全防御系数为式(6),
(6)
结合执行体的异构度、安全防御系数,可将执行体的调度对象函数定义为式(7),
(7)
如此,通过调度对象函数最小值的求解,便可选出相应的执行体,如式(8),
θ(Ep}=arg min(σ*+μ*}
(8)
判决器是通过对比各异构执行体的不同,获取最终的输出,因各执行体自身结构、安全防御能力各异,输出结果的可靠性也不完全相同,故而,本文以可靠度系数替代每个输出为1分的做法,将相同类的执行体可靠度系数相加,从中择取相加可靠度系数最大类别的输出结果,作为最终的判决输出结果,并据此将输出结果相同的执行体归为一类,具体过程如下。
调度器选择的执行体集E=[E1,E2,…,Em],m为被选中的执行体数量,执行体可靠度系数ω的初始值ω0可依安全防御系数得出,此时,执行体集可靠度系数初始值定义为式(9),
(9)
式中,β为折扣因子,m为目前活跃的执行体数量。根据可靠度系数可得m个执行体输出结果{φ1,φ2,…,φm},对结果等同的进行分类,如式(10),
φ*={[φ1,a,φ1,b,…,φ1,c][φ2,a,φ2,b,…,φ2c]…
[φk,a,φk,b,…,φkc]}
(10)
式中a、b、c为常数弱化可靠度系数的变化幅度,k为执行体输出结果的分类数量。
据此,执行体集输出对应的可靠度系数为式(11),
ω*=f(φ*}
(11)
对相同分类的可靠度系数相加,如式(12),
(12)
式中,i为第i种分类,l为相同类的执行体数量。
此时,在所处分类的可靠度系数相加最大时,便可得出判决其的最终输出结果,如式(13),
φ′=arg maxF(ωi|φ}
(13)
数据层:该层配设多个OpenFlow交换机、提供各类网络服务功能,重点在于增设路径转发的验证机制。首先,针对数据流传输路径各异,为准确区分功能服务链和交换机,构建多项式路径验证标识集合,并将其配置到Packet-In消息附带的Cookie字段,利用其中的7个字节完成标识配置;然后,控制器利用OpenFlow协议可将生成的验证标识配置不同交换机流表上的Cookie字段,因该Cookie是唯一、异化性,据此可得出交换机标识datapath_id和配置的数据流,进而完成路径验证标识的分发;最后,交换机会将基于OpenFlow协议发送Packet-In信息,以将验证标识发送给控制器,控制器收集到Datapath_id,Cookie,以及经过哈希运算的数据包字符串Hash_data后,将Hash_data相同的数据包发送给控制器的Datapath_id、Cookie并归入相同组,通过比较,分析配置到交换机的路径验证标识集合与控制器收集到的是否一致,若一致则通过路径验证。
3 实验分析
3.1 实验环境
为实测防御架构的效果,本文选用Intel®CoreTMI7-9750H CPU 4.5GHz、16GB RAM,以Mathemtica平台为仿真工具,使用TensorFlowTM系统,以Python作为编程语言进行深度强化学习算法的编程实现,并采用Open vSwich交换机、KVM虚拟化工具、Wireshark软件作为实验工具。且实验选用数据中心级或企业级的SDN网络,控制器需要操控超大规模的网络数据流量,其面临的安全威胁更多、动态随机性较高。但是,安全防御性能的测试无法通过简单的概率事件表征,故而,本文选用广域网攻击数据集样本,其涉及的网络攻击多样包含远程注入、黑客入侵、僵尸网络等。数据内容涵盖地址信息、协议、工具、信息等多种攻击类型,概率分布繁杂,实验仅以其中高级持续攻击的攻击数据为准,测试控制层在接收应用层下发的服务路径配置信息后,可否通过调度的动态选择算法择取最优的执行体集,并基于执行体可靠度系数的相加,输出最终的判决结果配置到OpenFlow交换机上,以此测定该拟态防御框架下有无攻击下是否可成功进行路径配置。
3.2 实验分析
路径配置成功与否的测试指标选用失效概率,分设无攻击、篡改1个和2个执行体等测试条件,在有、无拟态防御架构下来判定随着攻击的增多,拟态防御性能变化的稳定性。而因为拟态防御是动态冗余架构布设于控制层,失效概率与控制器状态密切相关,而控制器状态,也即安全防御性与有效流表的比例相关,故而,其计算式为式(14),
(14)
通过实验分析,可得不同攻击状态下,拟态防御架构的失效概率如图3所示。
图3 用于路径配置的拟态防御架构失效概率
显然,在无拟态防御架构下,控制器在无攻击状态下,失效概率为0,但是随着对执行体篡改数量的增加,失效概率逐渐增加,并在60个时间单位时,失效概率近似100%;而在有拟态防御架构下,控制器在有无篡改状态下,失效概率变化不大,尤其在90个时间单位后,其安全防御性能表现更优。这是因为随着攻击的不断进行,拟态防御累积了更多的攻击信息,且动态异构冗余的拟态防御架构,本就让不同执行体的结构、后门、漏洞各异,且其动态调动算法可择优选取异构执行体,以提升控制层的动态、随机性,如此,便会增加成功攻击的难度,极大的优化了安全防御功能。
4 总结
海量、大规模网络数据流量的交互、共享下,面临的安全问题更为多元,而路径配置中信息生成、下发传输的正确性,是确保网络服务安全、稳定的核心。故而,上述研究着眼于此,针对SDN控制与转发分离下,以及控制层单一控制器,容易遭受数据泄密、篡改、恶意应用等攻击和威胁性,以多结构异化的控制器冗余体来建构内生安全机制;并利用OpenFlow协议生成的验证标识,对转发路径进行“二重”验证,以此给予路径配置“双重保险”,确保网络服务中实际转发路径与路径配置要求一致,以最大限度提升安全防御性能。