范晓诗,李成海,王 昊
(空军工程大学 防空反导学院,陕西 西安710051)
由于一般网络攻击行为必须通过端口发动,而端口通常暴露在通信链路中,端口的信息很容易获得,所以保护端口不被攻击是网络防御的基本思想。近些年来,一种主动防御技术端口跳变 (port hopping)被提出。该技术的思想源泉来自通信中常用的跳频通信技术,将通信频段隐藏在所有可用频段,减弱攻击者截获,干扰和攻击的能力。一些专家与学者已经提出一般网络通信端口跳变模型,其主要研究内容包括端口跳变算法,同步策略等。目前此类模型通常是建立在固定时隙和固定时钟漂移的基础上,缺乏一定的普遍性与实用性,本文在研究前人成果的基础上提出基于可变时隙与动态同步的算法和模型,进一步提高端口跳变技术的适用范围和有效性。
目前国内外许多组织和个人涉及端口跳变技术的研究。美国陆军研究室根据通信跳频的思想,提出端口跳变的概念,并设想将其制定成协议并封装于OSI模型的网络层或传输层,以形成新的TCP/IP协议栈。但分析其实用性,在无法得到协议栈开源代码的前提下,只能在应用层实现。美国空军研究室在其报告APOD中阐明端到端通信所用的固定IP地址和端口号是敏感信息,即使对其有效载荷加密的情况下,也能通过流量分析 (traffic analysis)对目标端口进行攻击,于是引入地址跳变和端口跳变技术,提出基于隧道和GAT网关的模型。Atighetchi等人根据APOD报告分析了该技术的适用性和Cyber防御的可行性。Sifalakis等人提出利用地址跳变保护端到端通信的数据安全。石乐义等人在文献 [1,2]中提出,由端口号、IP地址、加密算法、时隙、协议组成的端信息进行跳变服务的概念,并提出了基于端信息的主动网络防御模型。
端口跳变的一般模型主要包括 (伪)随机端口序列生成函数,加密、密钥交换算法和通信同步策略。而通信同步策略是其关键技术。Lee等人提出的端口跳变模型,该模型将时间轴划分为相等的时隙,为不同时隙分配不同端口。并为每个时隙结点前后使用的端口进行一定程度的重叠开放,以防止传输延迟造成数据丢失。G.Badishi等人根据传输成功率分析了攻击者由盲目攻击 (blind attack)状态到直接攻击状态 (direct attack)状态所需最短时间ε,提出了随机端口跳变 (RPH)算法[5],证明其缓解DoS攻击具有一定效果。该算法提出为通信双方分配两条通信通道,一条进行数据通信,另一条传递Ack响应消息,通过该消息携带的数据通知下一次跳变端口信息。该算法的缺点是Ack响应消息暴露在通信链路中,易被截获和篡改。Kousaburou Hari通过分析Ack丢失或被截获的情况下,造成当前端口延长开放时间而达到ε,攻击模式由盲目攻击转为直接攻击的几种情况,提出了改进的RPH算法[6]。其主要思想是分别赋予发送方和接受方两套随机端口跳变策略,当其中一套端口跳变过程遭受盲目攻击导致端口开放时间延长后依然可以通过备用端口进行通信,从而保障通信端口跳变时隙小于ε。石乐义等人在文献 [2]中提出一种轻量级UDP公众服务的时间戳同步方式,专门建立多个时间同步服务器发送UDP同步时间戳完成同步策略。赵春蕾等人在文献 [7]中提出端信息跳变系统自适应策略。贾春福等人在该模型的基础上,提出一种插件策略来抵抗服务器端信息被监听[8]。Zhang fu等人提出了HOPERAA算法来解决线性时钟漂移对通信同步的影响[10,11],实现了不需要第三方参与的同步机制。我们称该模型为Z模型。本文通过分析其可能存在的攻击模型对该算法进行了改进,提高其抗攻击的能力。同时实现了端口跳变可变时隙控制,进一步提高个该技术的适用性,并提出动态时钟漂移同步算法,为可变时钟漂移的同步问题提供了解决办法。
文献 [10,11]中提出的Z模型由连接模块,数据传输模块和时间同步调整模块组成。连接模块中,服务器将可用端口空间N平均分成k部分,每一部分随机开放一个守卫端口 (guard port),并以等时隙τ跳变。客户端随机选择第ki间隔,将N/k个连接请求消息发送到对应ki,添加本地时间戳,如图1所示。
图1 Z模型连接模块
服务器接受连接消息后添加本地时间,返回响应消息。客户端接收响应消息后调用HOPERAA算法计算相对时间漂移率,进行时间补偿。最后计算下一次同步时间,在数据发送过程中,根据该时间重复执行连接请求并进行时间同步和端口序列生成。
我们假定攻击者可以窃听通信链路上的数据流并能截获或复制数据。现在考虑如下攻击过程,攻击者窃听通信过程,检测到服务器经过一定时间间隔开放k个守卫端口,攻击者将事先截取的连接请求报文向任意ki间隔发送,将可能造成连接成功,因此攻击者可以发送大量请求报文,从而发动DoS攻击。该算法进行时间同步时必须发送连接请求,在可变时钟漂移的情况下,必然需要进行多次进行同步,频繁同时开放k个端口,留下了遭受DoS攻击的隐患。所以本文认为该算法虽然可以避免提前商定通信初始端口,但对于安全性要求较高的网络并不适合,于是提出将连接模块与同步分离开来,便于进行可变时钟漂移情况下的时间同步。
目前端口跳变技术均基于固定时隙实现其跳变策略,跳变策略的安全性必须依靠跳变序列加密,也没有具体应对攻击的措施。在安全通信条件下跳变策略也增加了一定的系统开销。而时钟同步算法通常也基于固定时钟漂移,在线性增长条件下,通过多次计算钟漂移率以确定精确值,对于可变时钟漂移精度并不理想。基于以上两点问题,本文依据传输状态和人工调节需要提出了可变时隙的端口跳变算法,其主要思想是在正常传输条件下延长端口传输时隙,以减少跳变造成的通信开销。当可疑入侵行为发生时加快跳变频率,即使端口跳变序列被第三方分析得到,也因时隙难以同步到达抵抗攻击的效果。同时提出一种动态时钟漂移处理方法,将可变时钟漂移曲线分隔成段,分段看作直线处理。由实测时钟漂移率和前测时钟漂移率动态的预测下一时段漂移率。通过试验证明了该同步算法的可行性。
该模型由通信初始化阶段,跳端口可变时隙算法,数据传输模块和时间同步模块组成,如图2所示。
图2 改进的端口跳变模型
通信初始化阶段完成客户端和服务器的连接并发送时间戳进行传输延迟计算。客户端发送请求连接消息message<init,timestampc> 到初始端口P0。init参数结合相关加密算法进行身份认证,timestampc记录客户端发送消息时间。服务器接收到请求消息,记录到达时间,计算发送延时u1。发送响应消息 message<α,m,u1,timestamps> ,其中α为伪随机函数fseq生成跳变端口序列种子,m为计算当前端口参数,timestamps记录服务器发送响应消息时间。客户端接收响应消息message<α,m,u1,timestamps> ,记录到达时间,计算响应延时u2。通信双方计算ftime(λ,ρ)和fseq(α,m)进行端口跳变。
传输过程中,服务器定时生成一个时隙影响因子ρ,这里ρ表示通信传输率,通过计算发送数据量和接受数据量的比值得到。服务器将ρ反馈给客户端。fφ(ρ)表示通信因子调节函数,由该函数调节端口跳变时隙。当传输率处于良好状态,增加传输时隙,当传输率下降到一定程度,则认为发生了攻击行为,将跳变时隙更新到最小。λ表示人工调节参数,在没有人工干预的条件下λ=0。
根据式 (1)和式 (2)计算当前端口持续时间,其中ht表示端口跳变最小划分时隙,取N·ht<ε,a为可变时隙增量参数
(1)通过fseq(α,m)计算当前所用端口 Pc,fseq(α,m+1)计算下一跳变端口Pn。
(2)通过ftime(λ,ρ)计算当前所用端口持续时间H。Hi表示第i个端口使用时间。
(3)在时间段 [Hi,Hi-umax]中发送数据到Pc,在[Hi-umax,Hi+1]发送数据到Pn,见图3。umax为数据传输最大延时,Tc为当前客户端时间。
(4)当Tc到达Hi+1时,更新Pc和Pn。
图3 端口跳变时隙重叠
(1)我们将非线性时间漂移划分成间隔L,分别进行线性处理。设定初始线性时间同步间隔Lc=Ls,Lc,Ls分别表示客户端和服务器同步时隙。
(2)客户端在tc0发送初始化连接请求计算得到u1,u2,见图4,客户端在tc2发送同步测试消息,服务器收到消息后发送响应消息并添加发送时间ts3,客户机收到响应消息后记录到达客户端时间tc3。定义计算线性误时钟漂移率于是得到 L1时钟漂移率r1=(tc3-tc0)/(ts3-ts0+u1+u2),设下一段预测时钟漂移率r′2=r1,并进行下一段时间误差预测补偿,L2=r。我们在此考虑客户端与服务器初始时间同步,发送延迟和响应延迟受时钟漂移影响很小,故由u1,u2代替。
图4 动态时钟漂移
(3)L2时间段内,同样进行时间同步请求和响应,计算发送延迟和响应延迟u′1,u′2,计算实测时钟漂移率r2=(tc5- tc2)/(ts5-ts2+u′1+u′2),见图5。由前测漂移率r1和实测漂移率r2计算下一时段预测漂移率r′3=k1r1+k2r2。这里取k1=k2=。对下一时段进行L3=时间补偿。
(4)继续计算ri,根据r′i+1=k1ri-1+k2ri迭代预测时钟漂移率并进行时间补偿。
图5 动态时钟漂移预测
根据本文提出的端口跳变模型,在应用层实现可变时隙算法和可变时钟漂移率算法,并进行了相关实验。在实验1中,我们在局域网中两台主机发送UDP报文进行通信测试,选择可用跳变端口空间M=65536,攻击者可进行盲目攻击端口数Q=2000,5000,10000。初始端口跳变时隙ftime=2000 ms,ht=50 ms,a=4,N =10。定义客户端发送数据为Ec,服务器接受数据Es,则发送数据成功率。在通信200s后进行攻击。
由图6可以看出,当遭受3种盲目攻击条件下,可变时隙算法均较快躲避攻击,保证了数据传输成功率。在实验2中模拟攻击者通过流量分析获得跳变序列后进行直接攻击的情况。
图6 可变时隙跳变算法抗攻击效果
由图7中可以看出,固定时隙策略在跳变序列被分析得到后,遭受到直接攻击,数据传输成功率快速下降,使用可变跳变时隙策略,攻击者无法同步发动攻击,数据发送成功率会逐渐回归,该算法在一定程度上抵抗了攻击。通过实验3,我们测试动态时钟漂移算法的有效性。
图7 已知跳变序列攻击效果
在实验中,我们给客户端附加一个0.001<r<0.002的随机时钟漂移率以增加实验效果。设定端口跳变时隙H=2000 ms恒定不变。分别测量动态预测时钟漂移与线性预测时钟漂移与标准时钟漂移相比较,由图8和图9中可以看出,动态时钟漂移算法测量的漂移率优于线性测量。为进一步说明动态时钟漂移算法的有效性,在实验4中,取消端口跳变重叠开放时间段,分别使用两种算法进行时钟漂移预测并进行时间补偿,测量数据传输成功率。
由图10中可以看出在动态时钟漂移率预测下进行的时间补偿比线性漂移预测造成的丢包率更低,从而证明了动态预测更加准确。
本文对端口跳变技术进行了分析和研究,对Z模型进行了改进,在固定端口跳变时隙的基础上提出了可变跳变时隙算法并加以实现,通过实验证明该算法具有更强的抗DoS能力。改进的时钟同步算法,将时钟漂移率分段处理,提供了一种可变时钟漂移率对通信时间同步产生影响的解决方法,比线性时钟漂移率预测更加准确,适用范围更广。该端口跳变模型为后续建立更加完善的网络防御机制打下了基础。目前端口跳变技术主要构建于实验环境,其抗攻击能力也基本在给定攻击模型下测试,如何将该技术真正应用于实践环境中并与其他网络防御技术更好的结合是今后研究的方向之一。
[1]Shi LY,Jia C F,Lv S W,et al.Port and address hopping for active cyber-defense [G].LNCS 4430:Proc Pacific Asia Workshop on Intelligence and Security Informatics,Springer-Verlag,2007:295-300.
[2]SHI Leyi,JIA Chunfu,LV Shuwang.Research on end hopping for active network confrontation [J].Journal on Communications,2008,29 (2):106-110 (in Chinese).[石乐义,贾春福,吕述望.基于端信息跳变的主动网络防护研究 [J].通信学报,2008,29 (2):106-110.]
[3]Jia C F,Lin K,Lu K.Plug-in policy for DoS attack defense mechanism based on end hopping [J].Journal on Communications,2010,30(10A):114-118.
[4]MA Qi,DAI Hao,ZHAO Xinyu,et al.Using port hopping to realize information hiding [J].Journal on Communications,2007,28 (4):849-851 (in Chinese).[马祺,戴浩,赵新昱,等.运用跳端口技术进行信息隐藏 [J].计算机工程与设计,2007,28 (4):849-851.]
[5]Badishi G,Herzberg A,Keidar I.Keeping denial of service attackers in the dark [C]//IEEE Transctions on Dependable and Secure Computing,2007,4 (3):191-204.
[6]Hari K,Dohi T.Sensitivity analysis of random port hopping[C]//Proc Seventh Int’l Conf Ubiquitous Intelligence Com-puting and Seventh Int’l Conf.Autonomic and Trusted Computing,2010:316-321.
[7]ZHAO Chunlei,JIA Chunfu,WENG Chen.Technique and application of end-hopping in network defense [J].Journal on Communications,2011,32 (11A):51-57 (in Chinese).[赵春蕾,贾春福,翁臣.端信息跳变系统自适应策略研究 [J].通信学报,2011,32 (11A):51-57.]
[8]JIA Chunfu,LIN Kai,LU Kai.Plug-in policy for DoS attack defense mechanism based on end hopping [J].Journal on Communications,2009,30 (10A):114-118 (in Chinese).[贾春福,林楷,鲁凯.基于端信息跳变DoS攻击防护机制中的插件策略 [J].通信学报,2009,30 (10A):114-118.]
[9]XIE Hui,ZHANG Zhigang,LI Jing.Port hopping technique and application in network covert communication [J].Journal of Nanjing University of Information Science and Technology,2012,4 (3):254-257 (in Chinese).[谢慧,张志刚,李静.跳端口技术及其在网络隐蔽通信中的应用 [J].南京信息工程大学学报 (自然科学版),2012,4 (3):254-257.]
[10]Fu Z,Papatriantafilou M,Tsigas P.Mitigating distributed denial of service attacks in multiparty applications in the presence of clock drifts [C]//Proceedings of 27th IEEE International Symposium on Reliable Distributed Systems,2008:63-72.
[11]Fu Z,Papatriantafilou M,Tsigas P.Mitigating distributed denial of service attacks in multiparty applications in the presence of clock drifts [C]//Transactions on Dependable and Secure Computing,2012:401-413.
[12]Huang P,Desai M,Qiu X,et al.On the multihop performance of synchronization mechanisms in high propagation delay networks [C]//IEEE Trans on Computers,2009,58 (5):577-590.