张传浩,谷学汇,孟彩霞
(铁道警察学院 图像与网络侦查系,郑州 450053)(*通信作者电子邮箱zhangchuanhao@rpc.edu.cn)
网络嗅探是一种捕获网络通信数据并进行分析的攻击手段。攻击者能够在网络拓扑的某些节点或者链路上窃听通信数据、监视网络状态、窃取用户账号密码等敏感数据。传统网络静态的网络配置,如通信端信息配置、路由配置等给网络嗅探攻击提供了便利,稳定的路由配置和静态的端信息便于攻击者获取通信数据以及对数据进行分析。网络嗅探在攻击时的静默特点使得防御方无法获取攻击特征,从而防御难度较大。通信加密是防御网络嗅探的传统方法,将通信数据加密传输,使得嗅探攻击者难以破解通信内容,然而该方法在实际应用中存在一些局限性:首先,通信加密需要通信双方都支持加密协议,否则通信无法正常进行;其次,一些已经被广泛应用的协议本身并没有采用加密手段,如HTTP(HyperText Transfer Protocol)、 FTP(File Transfer Protocol)、Telent和SMTP(Simple Mail Transfer Protocol)等,这给基于这些协议的通信造成严重的安全隐患;再者,一些加密协议存在着安全缺陷,攻击者可通过静态的网络配置获取完整的通信数据,并利用这些缺陷破解通信数据。
另一种防御嗅探攻击的思路是从网络数据获取完整性入手,采用移动目标防御(Moving Target Defense, MTD)[1-2]思想,在通信中引入周期路径跳变机制,利用多个不同的路径传输通信数据,并在网络中将多个用户的数据混杂,使得攻击者“难以收集全,难以分离好”各个用户的数据,增加攻击者准确获取数据的难度,提高网络抵抗嗅探攻击的能力。
跳变通信是基于移动目标防御(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方法基础上提出一种改进的路径跳变机制。
计算机网络通信就是在源节点和目的节点之间建立一条满足所有约束的通信链路。由于网络拓扑的物理条件限制,这条链路(或者称为路径)一般将通过一个或者多个特定的节点,这些特定节点拥有较高的节点度,能够满足网络嗅探攻击利益最大化需求,所以,网络嗅探攻击就是要找到并攻陷网络通信路径上节点度较高的节点,实现嗅探攻击的部署。
在现有的静态配置网络通信中,通信双方在建立连接后,所有数据包在通信过程中均不改变通信链路信息,这一特点容易被攻击者利用,在传输路径上捕获目标节点从而获取全部或者大量通信数据。本文从网络通信的实际应用情况出发,在SDN框架下提出一种动态路径跳变(Dynamic Path Hopping, DPH)机制用以应对攻击者完全静默状态下的网络嗅探攻击。在该DPH中,通信双方建立的路径能够周期性迁移,增强了通信的不可预测性,同时考虑数据传输可靠性。DPH在宏观上将一次通信过程建立在多条通信信道上,即便不同于无线通信的多径传输协议,也能够倍增在单点进行窃听攻击的难度。DPH机制在通信初始态的路径由运行在SDN控制器上的传统的IP路由协议建立和维持,控制器上DPH模块对路径通过的节点进行识别,并按照计算实施动态路径迁移。路径迁移空间和迁移通信协议是DPH的两个关键子模块。
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)约束条件,两个特定网络节点的大部分通信流量都经过某个单独节点(除了源/目的节点)的概率大大降低。
算法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