基于软件定义网络的反嗅探攻击方法

2018-12-14 05:31张传浩谷学汇孟彩霞
计算机应用 2018年11期
关键词:攻击者数据包路由

张传浩,谷学汇,孟彩霞

(铁道警察学院 图像与网络侦查系,郑州 450053)(*通信作者电子邮箱zhangchuanhao@rpc.edu.cn)

0 引言

网络嗅探是一种捕获网络通信数据并进行分析的攻击手段。攻击者能够在网络拓扑的某些节点或者链路上窃听通信数据、监视网络状态、窃取用户账号密码等敏感数据。传统网络静态的网络配置,如通信端信息配置、路由配置等给网络嗅探攻击提供了便利,稳定的路由配置和静态的端信息便于攻击者获取通信数据以及对数据进行分析。网络嗅探在攻击时的静默特点使得防御方无法获取攻击特征,从而防御难度较大。通信加密是防御网络嗅探的传统方法,将通信数据加密传输,使得嗅探攻击者难以破解通信内容,然而该方法在实际应用中存在一些局限性:首先,通信加密需要通信双方都支持加密协议,否则通信无法正常进行;其次,一些已经被广泛应用的协议本身并没有采用加密手段,如HTTP(HyperText Transfer Protocol)、 FTP(File Transfer Protocol)、Telent和SMTP(Simple Mail Transfer Protocol)等,这给基于这些协议的通信造成严重的安全隐患;再者,一些加密协议存在着安全缺陷,攻击者可通过静态的网络配置获取完整的通信数据,并利用这些缺陷破解通信数据。

另一种防御嗅探攻击的思路是从网络数据获取完整性入手,采用移动目标防御(Moving Target Defense, MTD)[1-2]思想,在通信中引入周期路径跳变机制,利用多个不同的路径传输通信数据,并在网络中将多个用户的数据混杂,使得攻击者“难以收集全,难以分离好”各个用户的数据,增加攻击者准确获取数据的难度,提高网络抵抗嗅探攻击的能力。

1 相关工作

跳变通信是基于移动目标防御(MTD)的动态性、随机性思想的一类主动网络防御方法,旨在打破攻击者对网络静态配置的假设,变被动防御为主动防御。早在软件定义网络(Software Defined Network, SDN)[3]出现之前,就有利用跳变技术进行安全传输的相关研究,主要包括通信地址跳变与路径跳变。

地址跳变又可以划分为通信端口跳变与网络地址跳变:Atighetchi等[4]提出了一种虚假的端口地址跳变方法,在数据传输中使用伪地址和端口迷惑攻击者;Sifalakis等[5]提出了一种基于地址跳变的信息隐藏技术,通过网络地址跳变将数据流分散到多个端到端的连接进行传播,提高点到点数据传输的安全性;Dunlop等[6]提出MT6D(Moving Target IPv6 Defense),利用地址空间巨大的IPv6实现了鲁棒的IP跳变策略,该方法采用隧道技术将数据包封装,反复变换隧道源和目的IP地址,使攻击者难以嗅探到完整的通信流量。受限于分布式网络的控制方式,端口跳变一直存在协同难、规模受限的问题,上述方法实现跳变通信均需要在终端部署软件或在网络中增加硬件设备,这使得跳变通信难以部署; 并且这些方法仅对端信息进行跳变,而网络中的路由/路径不变,攻击者容易在关键节点上获得完整的通信数据。

路径跳变技术则是随着SDN技术的发展而逐渐被关注,在传统网络中,分布式管理的路由协议使得通信路径难以快速协同跳变,而SDN技术的集中化网络管理方式为路径跳变的系统协同提供了支撑。路径跳变研究主要包含路径随机跳变[7]和多路径随机选择[8]两类:路径随机跳变是预先获取所有符合要求的节点,构建跳变节点集合,从中随机选取下一跳节点进行数据转发的跳变技术。多路径随机选择是预先获得尽可能多的中间节点不重复的路径,构建跳变路径集合,从而在每次跳变时随机选取不同转发路径的跳变技术;在SDN架构下,Jafarian等[9]提出了灵活的、对终端透明的IP跳变方法OF-RHM(OpenFlow Random Host Mutation),该方法实现了终端透明的节点IP地址跳变,降低了扫描攻击的有效性,但该方法需要在一次连续通信中保持虚拟IP不变,攻击者容易在一台交换机上获取某次通信的全部数据; Duan等[8]基于SDN框架,提出一种动态随机路径突变方法(Random Route Mutation, RRM),多条数据流的路径能够同时进行随机变化,但这种方法需要在源/目的地址间预先保留多条冗余的路径,在实际条件下满足该需求造成的网络拓扑代价较大。

本文工作是在项目组之前提出一种基于SDN的节点/路径双重跳变通信(Double Hopping Communication, DHC)机制[10]基础上进行的改进,DHC方法实现了终端和路径在有限网络规模下终端IP地址与通信路径的跳变。本文将主要关注路径跳变,在DHC方法基础上提出一种改进的路径跳变机制。

2 问题定义

2.1 基本准则

计算机网络通信就是在源节点和目的节点之间建立一条满足所有约束的通信链路。由于网络拓扑的物理条件限制,这条链路(或者称为路径)一般将通过一个或者多个特定的节点,这些特定节点拥有较高的节点度,能够满足网络嗅探攻击利益最大化需求,所以,网络嗅探攻击就是要找到并攻陷网络通信路径上节点度较高的节点,实现嗅探攻击的部署。

在现有的静态配置网络通信中,通信双方在建立连接后,所有数据包在通信过程中均不改变通信链路信息,这一特点容易被攻击者利用,在传输路径上捕获目标节点从而获取全部或者大量通信数据。本文从网络通信的实际应用情况出发,在SDN框架下提出一种动态路径跳变(Dynamic Path Hopping, DPH)机制用以应对攻击者完全静默状态下的网络嗅探攻击。在该DPH中,通信双方建立的路径能够周期性迁移,增强了通信的不可预测性,同时考虑数据传输可靠性。DPH在宏观上将一次通信过程建立在多条通信信道上,即便不同于无线通信的多径传输协议,也能够倍增在单点进行窃听攻击的难度。DPH机制在通信初始态的路径由运行在SDN控制器上的传统的IP路由协议建立和维持,控制器上DPH模块对路径通过的节点进行识别,并按照计算实施动态路径迁移。路径迁移空间和迁移通信协议是DPH的两个关键子模块。

2.2 路径迁移机制相关定义

1)路径最大距离约束。主机H1与H2间的所有非环路路径长度均小于该依据该网络拓扑构建的路径集合PathSetH1→H2中的最大路径长度L。

网络可以使用无向图模型G=〈V,E〉来描述,其中V表示节点,而E表示节点间的连接或边。节点度N是指和该节点相关联的边的条数,又称关联度。可以将路径选择条件形式化定义为路径权重,作为选择该路径的概率。定义路径权重表达式为:

Weight(Pathk) =

(1)

考虑到Pathi权重分布得不均衡,如果仅考虑空间扰动,导致部分具有较大权重的路径被选中的可能性比较大,而攻击者可能在探测到某些关键路径后,在该路径上通过串并接、攻击路径节点等方式部署了嗅探探针,而这些路径Pathi在连续的跳变周期中如果被重复选中就增加了被窃听探针捕获的数据量,造成防御机制失效。本文为Pathi设定一个随机计数器β,规定Pathi最近两次被选中为传输路径的间隔周期;用tPathi表示当前Pathi被选中的迭代周期,则(t+1)-tPathi>β成为Pathi被再次选择为传输路径的必要条件(t为递增变量,表示跳变周期)。设bi是一个布尔变量,则时间绕动表达式为(2)所示,如果bi为真,则表示Pathi当前满足时间扰动约束,可以作为待选路径。从全局角度看,这使得各个路径被选中为跳变路径的概率均匀,增加了攻击者对跳变路径的预测难度。

(2)

通过定义上述1)~3)约束条件,两个特定网络节点的大部分通信流量都经过某个单独节点(除了源/目的节点)的概率大大降低。

3 DPH的体系结构与实现流程

3.1 跳变路径选择算法

算法1 WRPIS算法。

1)

WeightRamdomPathInterleavedSelect((Path1,Path2,…,Pathn),(b1,b2,…,bn),(w1,w2,…,wn),(tPath1,tPath2,…,tPathn),t,RP,β)

2)

sum = 0

3)

foriin (1,2,…,n)

4)

if (bi==true) and ((t+1)-tPathi>β)

5)

//时间扰动约束

6)

new_sum=sum+wi

7)

ifsum

8)

//空间扰动约束

9)

tPathi=t

10)

returntPathi,Pathi

11)

elsesum=new_sum

12)

endif

13)

else

14)

continue

15)

endif

16)

endfor

3.2 通信路径配置流程

在软件定义网络体系机构下,所有交换节点(OF switch)的转发表(Route table)都统一由控制器(Controller)配置。依据DPH的运行机制,每次跳变迭代周期在源目的通信节点间都会产生新的路径,网络控制器则根据系统选择的路径信息动态更新交换节点的流表项(Flow Entry)。

图1 通信配置流程实例

链路上节点转发配置步骤如下所示:

1)由H1初始化通信链路的端节点信息为EI=(IP1,P1,IP2,P2),其中P1和P2分别对应Port1和Port2,这时通信链路的端节点信息在整个网络中就被确定了。第一个含有端节点信息EI的包由H1送到数据链路中,链路交换节点(OF swtich)S1收到使用OpenFlow协议[11]将该包封装为PACKET-IN消息,送到控制器中,如图1中虚线①所示。

3)满足路径跳转间隔时间后,控制器根据WRPIS算法及时间扰动约束的约定,计算并选择一条新的路径Path2(S1↔S4↔S5↔S3),下发对应的流表表项到交换机(S1,S4,S5,S3),配置路径为图1中虚线③所示。这时新老路径配置信息更新过程完成。

3.3 通信数据迁移流程

完成通信路径配置后,还要对通信数据流进行迁移,数据流迁移不应影响当前源/目的节点的通信,即新路径上交换节点中的数据转发流表项应能保证当前的通信过程不中断,两个端节点间的并发数据流可能不止一条,这需要控制器能够感知当前处于空闲状态的流表项(还未老化)并将其迁移到新路径对应的交换节点上,同时保持正处于数据包命中(Hit标志)状态的流表项不变,待其完成数据传输后再进行迁移,从而确保不发生丢包现象。该机制在其他软件定义网络的可靠性相关研究中有进展[12-13],这里只对空闲表项的迁移进行描述。

图2展示了一次路径跳变中数据表项迁移的过程。端节点H1与端节点H2之间在路径(H1,S1,S2,S3,H2)上进行通信。假设路径跳变由(H1,S1,S2,S3,H2)向(H1,S1,S4,S5,S3,H2),数据流迁移步骤如下:

1)在通信初始化阶段,控制器在(S1,S2,S3)安装对应的转发表项,同时,根据通信路径配置流程,在新的路径(S1,S4,S5,S3)上也安装了对应转发表项。此时S1和S3有两条对应含有EI包头信息的流表项,可以通过设置表项优先级实现对实际生效转发路径的控制。

2)修改S1和S3中的表项优先级,将数据包转发到节点交换机新端口,即在S1上修改为把含EI信息的数据包路径从①改到②,同理,反向在S3上修改为把含EI信息的数据包路径从③改到④。注意这里S1和S3的角色在跳变中与路径上其他节点不一样,类似于交换网络中的网关(Gateway)或路径切换的边缘节点(Edge node),根据流表项的变化修改发往新路径的数据包二层封装信息。需要说明的是,对S1和S3中流表项的修改,对同一通信过程的后续包传输过程会引入一定的包乱序现象,但在一定程度上都能够被网络上层协议进行纠正。

3)在最大延迟时间(可以在路径跳变机制中定义)后删除在原路径(S1,S2,S3)中对应的表项信息,或待其自动老化。

图2 通信数据迁移示意图

由上述通信数据迁移方法描述可知,该机制能够避免路径更新期间的数据包丢失。

4 实验仿真

4.1 实验环境

实验环境是在Mininet[14]中创建了一个由16个支持OpenFlow1.0协议交换机(内核是Open vSwitch)组成的网络,网络的路由信息由控制器POX[15](图中C0)进行管理,网络拓扑采用文献[16]中的拓扑结构,其中通信主机节点为H1和H2,设定最长转发路径L为32,即最多通过32个交换机,如图3所示。

图3 实验环境配置截图

4.2 路径跳变有效性评估

实验采用总量为100 MB大小含多条数据流的UDP(User Datagram Protocol)数据包,以104包/秒的速率从主机H5发往主机H6,路径跳变周期Thop为5 s。同时,使用SDN交换节点统计功能,统计途径该节点的数据包数量。实验使用仅考虑权重的路径选择方法与依据WRPIS算法的路径选择方法进行对比,同时与依据OSPF(Open Shortest Path First)路由信息的建立的传统网络通信方式进行比较。传输节点转发包分布比较结果如图4所示。

图4 不同路径选择方法的节点转发包比例

在传统依据路由信息建立的静态网络中,在某些节点(如节点S7、S11和S12)上可以嗅探到源到目的主机节点间的所有通信数据,原因就是传统路由协议(例如OSPF)主要考虑传输效率,而且建立好的路径在链路没有中断的情况下一般不发生变化,导致嗅探攻击成功率很高。同时,在动态路径跳变条件下,仅考虑权重的路径选择方法会导致部分权重较大(依据2.2节权重定义,权重较大节点的节点度较低)节点所在链路被选中的概率较大,如图4所示,有超过50%的数据包传输途径节点S4、S8和S12,仍有被攻击者从这些节点获取较大量通信数据的风险。依据WRPIS算法的路径选择则通过跳变时间约束进一步将单个流的数据包在多条路径上相对均匀分布,避免攻击者的字典攻击方式,增加了攻击成本。

4.3 反嗅探攻击有效性评估

实验从节点1向节点16发送单条数据流,大小为100 MB数据,持续500 s,路径跳变周期Thop仍为5 s,模拟攻击者分别在节点集合N1={S6},N2={S4,S6},N3={S4,S6,S11},N4={S4,S6,S11,S12}上进行数据嗅探,节点集合选择的依据在4.2节路径跳变有效性评估中,S4、S6、S11、S12的节点度和收发包总量都比较大的,容易成为攻击者作为嗅探攻击的目标。传统路由协议条件下,节点S5到节点S16的最短路径为S5→S6→S11→S12→S16,图5为N1、N2、N3、N4四个节点集合所监听到的通信数据量。

图5 不同路径选择方法在不同嗅探范围下监测数据比较

如图5所示,在传统网络中,监听节点集合N1、N2、N3、N4都能够获取到全部通信数据,其原因是N1、N2、N3、N4集合都在最短路径上有一个节点S6,在该节点能监听到通信的全部数据。然而在DPH跳变通信中,由于采用了路径跳变,监听节点集合N1、N2、N3都不能获取到全部通信数据。同时,N4节点集合下, 由于WRPIS加入路径选择时间间隔约束,使得单数据流传输在多条路径下更为均衡,在最大程度上防御攻击者在一定攻击成本的条件下嗅探到全部数据。

4.4 性能评估

在对DPH机制的性能的评估实验中,设置实验网络拓扑中的所有连接的链路速率为10 MB/s,跳变间隔为5 s。使用FTP在源/目的主机节点(H1和H2)间传输文件, 在无丢包的情况下测试传输时延。实验结果显示,与传统路由协议网络相比,使用WRPIS算法的路径跳变未引入较大的时延,结果如图6所示。可以看出,随着传输数据量(体现在FTP传输文件的大小)的增加,动态路径跳变网络的时延比传统路由协议网络稍大,原因是路径跳变会引入一定的路径切换及控制开销,而且路径跳变往往不遵循传统的最短路径原则,但在实验环境下,增加的时延都不超过10%。

图6 传统路由选择与动态路径跳变时延对比

5 结语

SDN的集中控制和可编程特点使得在一定范围的网络内部可以实现跳变通信。本文使用一种基于SDN的动态路径跳变方案DPH,DPH使用WRPIS算法周期性地改变通信源/目的主机间的传输路径,增加了嗅探攻击者得到完整通信数据的难度。实验表明该方案能够有效抵御网络嗅探攻击,且不会中断正在进行的通信,引入的开销较小。此外,DPH完全依靠软件实现,开销较低且对终端完全透明。下一步工作将在真实网络中测试DPH通信方案,拟从OSPF协议状态机层面引入跳变机制,从而能更加适配当前的网络协议体系。

猜你喜欢
攻击者数据包路由
基于贝叶斯博弈的防御资源调配模型研究
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
数据通信中路由策略的匹配模式
路由选择技术对比
路由重分发时需要考虑的问题
C#串口高效可靠的接收方案设计
正面迎接批判
正面迎接批判
基于AODV 的物联网路由算法改进研究