APP下载

CMAD-XCP:一种防御XCP协议公平性攻击的协同机制

2011-02-07王建新贾文娟黄家玮

关键词:数据流队列瓶颈

王建新,贾文娟,黄家玮

(中南大学 信息科学与工程学院,湖南 长沙,410083)

CMAD-XCP:一种防御XCP协议公平性攻击的协同机制

王建新,贾文娟,黄家玮

(中南大学 信息科学与工程学院,湖南 长沙,410083)

针对XCP(eXplicit Congestion Protocol)协议分析公平性攻击的方法和特性,提出一种协同式路由器监控机制CMAD-XCP(XCP with Cooperative Malicious Attacker Detection)。CMAD-XCP由核心路由器感知恶意攻击,由边缘路由器实施对恶意流的区分和惩罚。仿真结果表明,CMAD-XCP可以及时、有效地惩罚恶意流,保护XCP协议的公平带宽分配,同时有效避免不公平竞争导致的网络拥塞。

XCP;恶意攻击;公平性;主动队列管理

随着网络应用的飞速增长和性能的不断提高,采用TCP(Transmission Control Protocol) Reno[1]算法的传统拥塞控制协议开始显现出其不适应性[2],研究高带宽时延乘积网络环境下的拥塞控制机制成为热点研究课题并出现很多改进协议[3],其中一个重要趋势是采用显式反馈方法,XCP(eXplicit Congestion Protocol)[4]协议正是基于这种思想被提出的。XCP协议中源端根据路由器的显式反馈值来调节拥塞窗口以达到最优的发送速率要求。实际上,在真实网络中存在大量恶意节点[5−7],它们不采用拥塞控制机制而向网络高速发送数据包以抢占更多的网络资源,不但会造成带宽分配的不公平,而且将加剧网络拥塞,使得网络中正常业务被拒绝服务;因此,网络的安全性、稳定性等问题成为人们关注的焦点。由于在 XCP协议中源端只依据路由器的拥塞反馈来调整发送速率,正常的 XCP源端收到拥塞反馈后会降低发送速率,而恶意攻击者不但不响应拥塞反馈,反而进一步提高发送速率以抢占带宽,破坏网络公平性。本文作者在分析了恶意攻击存在下的网络特征以及 XCP协议本身特性的基础上,提出一种新型的路由器协同监控机制,即:通过核心路由器与边缘路由器协同配合来发现和控制 XCP协议应用过程中存在的安全隐患,提高网络自身对恶意数据流的遏制能力,以保证流与流之间的公平性。

1 XCP协议恶意行为分析

XCP协议自提出以来,已有很多学者针对其安全性进行了大量研究。在XCP协议提出之时,设计者们就意识到XCP协议存在脆弱性[4],指出可以使用边缘路由器监控来维护网络安全,但是,这种监控技术会扰乱所有通过该路由器的正常XCP流的窗口调节,且具有很大的盲目性。Zhang等[8]在Linux内核上实现了XCP协议,通过测试证实了网络极易遭到来自恶意XCP主机的破坏。

针对传统 TCP协议的恶意攻击研究已经广泛展开[9−10]。此类恶意攻击者只能依赖链路丢包作为判断因子,并不清楚网络状况,具有更多的盲目性,也更容易被控制和发现。而针对XCP等显式传输控制协议(XCP,RCP[11],MLCP[12],VCP[13]和 Arrow-TCP[14]等),攻击者不但可以是接收端,而且可以是源端。恶意源端利用其他用户的“友好性”来快速非法获得大量带宽资源。如果网络中存在恶意用户,那么 XCP快速收敛的特性会使得其他正常用户数据流很快降低其发送速率释放带宽,从而造成极大的不公平,并且不易被察觉[15−16]。XCP协议的恶意攻击主要包括欺骗攻击和滥用攻击2类。

1.1 欺骗攻击

欺骗攻击[15]主要是通过伪造数据包头的拥塞窗口和往返延时RTT(Round trip time)来实施吞吐量欺骗和RTT欺骗。在吞吐量欺骗中,恶意流可以伪造一个较小的拥塞窗口值使路由器为其分配更多带宽。这种吞吐量欺骗不会影响总体带宽利用率,但是,由于恶意流隐瞒真实速率,从而造成流之间的不公平性;在RTT欺骗中,恶意流伪造一个虚假的返往延迟,通过扰乱路由器对控制时隙的正常计算来破坏网络的正常运行,而恶意流本身并没有获得收益,攻击动机较小。

1.2 滥用攻击

在滥用攻击[16]中,恶意流在网络拥塞需要降速时不响应反馈,反而快速占有大量网络带宽。按照攻击的发起者,滥用攻击分为源端和接收端攻击,其具体的攻击策略如下。

(1) 源端滥用攻击。源端恶意主机又被称为滥用主机,主要通过忽略XCP反馈值,恶意增长窗口来发送更多的数据包。典型的攻击模式有:

① 在连接建立后,路由器需要给新的数据流分配带宽,源端响应XCP路由器发出的正反馈值,这样允许滥用主机有效的跳过TCP慢启动阶段,提高发送速率。

② 一旦拥塞反馈值降为零或者负值时,源端不响应反馈,并利用传统 TCP加性增加算法继续增大窗口。

③ 当有包重传时,表明链路中发生拥塞丢包,此时源端窗口重置为1并保持一个往返延迟时间,从而排空路由器队列。

④ 在网络恢复后,拥塞窗口设置为回退前的50%,与传统TCP的乘性减小相一致。之后锁定窗口值保持不变同时忽略反馈,当网络中部分带宽被释放后再重新加性增加窗口以探测可用带宽。

(2) 接收端滥用攻击。接收端滥用攻击主要通过篡改反馈值间接发动攻击。它与源端攻击原理相似,只是攻击的发动者不同。攻击者并没有直接控制拥塞窗口,而是通常更改逆向反馈值欺骗源端。为了更好地控制源端,攻击者通过使用与源端相同的函数。

接收端在接收数据包后查看反馈值,若窗口增加,则不做修改返回给源端;若不能增长拥塞窗口,则将反馈替换为使得窗口线性增长的新值。在发生重传后,接收方对窗口值计算减半与源端保持一致,之后不再增加窗口。

在上述XCP攻击方式中,对于吞吐量欺骗攻击,路由器可以通过比较包头拥塞窗口信息和实际流量来检测,若两者相差较大则说明为恶意流,从而实施区分和惩罚。对于接收端滥用攻击,路由器通过比较正向数据包和反向 ACK包的反馈信息来检测恶意流是否存在。而RTT欺骗攻击由于不能得到攻击收益,并没有引起人们的关注。相对而言,源端滥用攻击具有隐蔽性强和攻击收益大的特点,如何防止此类攻击是本文的研究重点。

2 CMAD-XCP机制

针对源端滥用攻击,本文提出一种核心路由器和边缘路由器协同的监控机制 CMAD-XCP。如图 1所示,核心路由器上采用队列管理机制来感知恶意行为是否存在,边缘路由器收到核心路由器的通告后区分并惩罚恶意流。在这种协同机制中,由于核心路由器的负载较大,而且是恶意流的必经之路,核心路由器只负责探测恶意行为是否发生。当核心路由器怀疑网络中存在恶意用户时,会在经过的数据包头打标记,并可以由接收方写入 ACK中返回;当边缘路由器收到带标记的ACK后,即对相应流实施区分和惩罚。

2.1 核心路由器监控机制

由于 XCP协议本身就利用了中间结点的反馈信息进行控制,目标是公平的将链路资源分配给每个用户并实现零排队延时。在一般情况下,XCP可以保证数据流在常数时间内收敛,瓶颈队列中排队的数据包很少甚至为 0。而由于恶意用户探测带宽过程中并不响应路由器的负反馈,在带宽饱和后必定会导致瓶颈队列的不断增长。因此,通过分析瓶颈路由器队列变化的特征,来设计恶意数据流的感知机制。

图2给出了网络仿真的拓扑结构,其中:S1到Sn为源端;D1到Dn为接收端;端到端的单向延时为20 ms;R1和Rn为边缘路由器,其他路由器为核心路由器;Rk和Rk+1之间的链路为传输瓶颈,瓶颈带宽为20 Mb/s,其他链路带宽为100 Mb/s。在仿真过程中,分别设置了4条正常和3条恶意XCP流,各流数据分组都是1 kb。下面将分析核心路由器Rk的队长变化特征。

图2 仿真网络拓扑Fig.2 Simulation network topology

图3显示了当恶意流和正常流分别加入网络时瓶颈路由器Rk的队长变化。

(1) 0.5 s启动2条正常XCP流与第1条恶意流M1,这时由于M1不响应路由器负反馈并持续增加拥塞窗口,使得瓶颈队列快速增长,直到10 s时路由器发生丢包后M1不再增长窗口,瓶颈队列相对稳定。

(2) 在20 s时第2条恶意流M2加入网络后抢占带宽,瓶颈队列再次迅速增长,直至26 s发生丢包。

(3) 40 s启动第3条正常流,队列长度略有波动后很快达到稳定并且不会持续增长。

(4) 60 s加入第3条恶意流M3后,其行为与M2的相仿,都会在抢占带宽过程中致使瓶颈队列持续增长并丢包。

(5) 在80 s再次加入1条正常流后并不会使队列发生很大变化。

上述实验说明当恶意流加入网络时瓶颈队列会快速增长,而正常流则没有这种现象;因此,可以通过监控瓶颈路由器的队列变化,来判断网络中是否存在恶意流。

图3 恶意攻击时瓶颈队列Fig.3 Queue of bottleneck with malicious senders

用ΔQueue表示1个平均RTT内队列变化,q表示当前队列长度,BufferSize表示缓冲区大小,n表示连续满足当前判断条件的次数。 是判断条件满足的阈值,β是队列长度阈值,这2个参数决定了探测恶意流的敏感度。由于网络中正常突发流会导致队列抖动,为了避免误判,设置 =10,β=0.6。核心路由器可以通过以下条件判断是否存在恶意流:

其中:式(1)用于队列较小时恶意流刚刚开始探测带宽阶段,此时若经过 个RTT队列仍一直增长,则表明路由器不能保证数据流收敛;式(2)表示连续 /2个RTT后队列仍超过β/2×BufferSize并且在不断增长;式(3)表示队列长度长时间大于β×BufferSize,经过连续 个RTT后都没有降低。满足以上条件的任何1个都表示怀疑有恶意数据流存在并启动检测机制。

2.2 边缘路由器检测机制

当正常XCP流加入网络时,瓶颈路由器通过发送正反馈为其分配带宽,同时给已经存在的数据流发送负反馈使其释放部分带宽。这样,XCP协议可以保证数据流在常数时间范围内快速收敛,且收敛后各流的拥塞窗口相对稳定;因此,反馈值虽有正有负,但波动不大,且在一段时间内的统计值趋向于 0。但是,当恶意流加入网络并获得不公平带宽时,瓶颈路由器会通过大量负反馈通知其释放带宽,这时,恶意流的累计反馈量将会是一个很大的负值;因此,可以利用这一特性,在边缘路由器通过统计数据流单位时间内的反馈量来区分恶意流和正常流。

定义1个RTT内单流的反馈量总和F为

其中:feedback为每个 ACK包中携带的路由器反馈量。通过下式可以计算得到1个RTT内,该流拥塞窗口的改变值为ΔCcwnd。

将ΔCcwnd作为检测因子,在图2的拓扑中进行实验分析。设置瓶颈带宽10 Mb/s,端到端单向延迟20 ms,4条XCP流中1条是恶意流。图4分别显示了正常流与恶意流ΔCcwnd的统计结果。从图4可以看出:正常流窗口变化值基本服从正态分布,变化的期望值趋近于 0,验证了之前的分析结果;而恶意流窗口变化值基本都为较大的负值,且偏离正常值很远;因此,可以通过实验统计得出正常流的分布规律并计算正常数据流的接受区间,若ΔCcwnd落在接受区间以外,则

图4 XCP数据流反馈量分布Fig.4 Distribution of XCP flow’s feedback

判断为恶意流并丢弃其所传输的数据包,作为惩罚。

需要指出的是:通过修改核心路由器的拥塞检测因子和边缘路由器对反馈的处理方式,这种协同检测机制就可以应用于其他显式拥塞控制协议。

2.3 参数调节

为了能在不同的网络环境下有效区分恶意流,使机制具有很好的适应性,需要对边缘路由器检测因子ΔCcwnd设置相应的阈值。正常 XCP数据流的 ΔCcwnd服从正态分布,即

由 ΔCcwnd的定义可知其与反馈量和RTT成正比例,并且由于反馈量与瓶颈路由器分配给该流的可用带宽成正比,因此ΔCcwnd与可用带宽也成正比,则μ和σ可以表示为:

其中:B为路由器返回的该流在瓶颈链路的公平带宽,其值可以用瓶颈总带宽除以当前流数目计算;γ为修正参数,用于弥补计算值与实际样本的偏差,设置为0.2;μ0和σ0为最小阈值,防止公平带宽很小时计算中出现较多的偏差,使正常流的ΔCcwnd落在接受区间外产生误判;k1和k2为常量系数。采用图2的拓扑仿真,RTT为40 ms,带宽变化时得到μ和σ的变化关系如表1所示;公平带宽为2.5 Mb/s,链路延时变化时得到μ和σ的结果如表2所示。根据实验结果,设置μ0=1,σ0=100,并计算得到:k1=1.8×10−3,k2=0.5×10−4。

由正态分布中的“3σ”法则,ΔCcwnd落在(μ−3σ,μ+3σ)之间的概率为 99.74%,即正常流的 ΔCcwnd几乎都落在该区间内,因此,将该区间作为正常数据流的接受区间;反之,若ΔCcwnd落在该区间之外,则说明该XCP流是恶意的。

表1 不同带宽下的正态分布参数Table 1 Normal distribution parameters with different bandwidth

表2 不同链路往返延时下的正态分布参数Table 2 Normal distribution parameters with different RTT

3 模拟场景和结果分析

为了验证CMAD-XCP机制的有效性,在网络仿真软件 NS-2上实现了该机制,并通过大量实验分析比较CMAD-XCP启动前后的网络性能,实验拓扑如图2所示。

3.1 单个恶意攻击者监控实验

首先对网络中只存在单条恶意流的情况进行测试。设置瓶颈链路带宽为 20 Mb/s,端到端单向延迟为20 ms。在2 s开始启动2条正常XCP流和1条恶意流。如图5(a)所示:3 s时由于路由器出现负反馈,恶意流开始不响应反馈并逐渐增大窗口侵占可用带宽,正常流响应负反馈并释放带宽;12 s时链路丢包后,恶意流不再增长窗口,最终侵占将近80%的瓶颈带宽,极大地破坏了 XCP协议的公平性。而当启用CMAD-XCP之后(如图5(b)所示),4.68 s时核心路由器怀疑恶意流并打标记,4.76 s时边缘路由器区分并丢弃恶意流的包,使正常XCP流快速恢复公平发送速率,有效地保护了公平性。

3.2 突发流存在时攻击监控实验

为了进一步加入突发流来测试CMAD-XCP的有效性,共设置12条正常XCP流,其中2条正常流在2 s启动。10 s时,1条恶意流启动。另外10条短流25 s时突发并持续20 s。图6(a)显示:即使存在多条突发流,恶意流仍占据大量带宽。而从图6(b)看出:CMAD-XCP在13.8 s及时遏制恶意流。同时在25 s突发流加入时,核心路由器并不会启动 CMAD-XCP机制。这说明CMAD-XCP可以依据队列变化情况很好地区分恶意流和突发流造成的拥塞,有效避免边缘路由器做无效检测。

图5 单一恶意流攻击时数据流吞吐量Fig.5 Throughput of flows with single malicious sender

图6 突发流存在下恶意流攻击时数据流吞吐量Fig.6 Throughput of flows with bursts and single malicious

3.3 多攻击者监控实验

该实验测试了多条恶意流存在下监控机制的性能,2条正常XCP流在2 s启动,恶意流1~3分别在10,10和30 s启动,分别于60,60和80 s结束。如图7(a)所示:30 s同时启动3条恶意流时,其他正常流几乎饿死。而从图7(b)看出:10 s时由于2条恶意流同时启动,侵占速度较1条时更快,而CMAD-XCP检测速度也随之加快,在12.12 s核心路由器打标记发出信号,12.21 s边缘路由器很快截断2条恶意流。而随后 30 s启动的恶意流 3在 33.71 s被截断,表明CMAD-XCP对网络中存在多个恶意攻击者同样有效。

3.4 不同瓶颈带宽及网络延时下有效性实验

图7 多恶意流攻击时数据流吞吐量Fig.7 Throughput of flows with malicious senders

为了验证检测机制对各种网络条件的适应性以及参数调节的有效性,在不同网络条件下进行测试。与3.1节中的实验设置相仿,2条正常XCP流和1条恶意流从0 s启动,瓶颈带宽变化时往返延时固定为40 ms,网络延时变化时瓶颈带宽固定为 20 Mb/s。表 3显示了随着瓶颈带宽增加,恶意特征出现延迟使得核心路由器检测机制标记和边缘路由器区分判断时间相应推迟。表4反映了边缘路由器区分时间随延时增大逐渐增加,核心路由器标记时间随延时变化只是略增加;而在延时升高到100 ms时,源端响应路由器的反馈有较大滞后性,导致队列很快达到较高的值,核心路由器检测时间有所缩短。

表3 瓶颈带宽变化时CMAD-XCP机制启动时间Table 3 Start time of CMAD-XCP with different bandwidth

表4 链路延时变化时CMAD-XCP机制启动时间Table 4 Start time of CMAD-XCP with different link RTT

4 结论

(1) 在分析XCP协议脆弱性及恶意攻击手段的基础上,提出一种协同式的路由器监控机制CMAD-XCP。CMAD-XCP由网络中核心路由器负责感知恶意攻击,怀疑存在恶意数据流时就通知边缘路由器具体对恶意数据流予以区分和惩罚。

(2) 防御机制CMAD-XCP具有以下特点:结合了XCP协议控制特点,可以及时、有效、准确地检测出非响应性恶意流,误判率很低;在各种动态网络环境中以及多恶意流存在情况下都具有很强的监控能力,适应性好;防御机制计算量较小,容易应用到其他显式反馈协议中,扩展性好。

[1] Jacobson V. Congestion avoidance and control[J]. ACM Computer Communication Review, 1988, 18(4): 314−329.

[2] IETF RFC3649. Highspeed TCP for large congestion windows[S].

[3] 王建新, 龚皓, 陈建二. 高带宽延时网络中一种协同式拥塞控制协议[J]. 软件学报, 2008, 19(1): 125−135.

WANG Jian-xin, GONG Hao, CHEN Jian-er. A cooperant congestion control protocol in high bandwidth-delay product networks[J]. Chinese Journal of Computers, 2008, 19(1):125−135.

[4] Katabi D, Handley K M, Rohrs C. Congestion control for high bandwidth-delay product networks[C]//Proceedings of the 2002 SIGCOMM conference. New York: ACM Press, 2002: 89−102.

[5] Moore D, Voelker G M, Savage S. Inferring internet denial of service activity[C]//Proceedings of the 10th conference on USENIX Security Symposium. Berkeley: USENIX Association,2001: 9−22.

[6] 康松林, 樊晓平, 费洪晓, 等. 基于管理代理的分布式入侵检测系统设计[J]. 中南大学学报: 自然科学版, 2007, 38(6):1174−1178.

KANG Song-lin, FAN Xiao-ping, FEI Hong-xiao, et al. Design and implementation of distributed intrusion detection system based on management agent[J]. Journal of Central South University: Science and Technology, 2007, 38(6): 1174−1178.

[7] 康松林, 费洪晓, 施荣华. 网络应用软件监控系统监控信息传输的设计与实现[J]. 中南大学学报: 自然科学版, 2006,37(2): 341−346.

KANG Song-lin, FEI Hong-xiao, SHI Rong-hua. Design and implementation of monitor message transmission in net monitor system for application software[J]. Journal of Central South University: Science and Technology, 2006, 37(2): 341−346.

[8] ZHANG Yong-guang, Henderson T R. An implementation and experimental study of the explicit control protocol (xcp)[C]//Proceedings of the 24th IEEE INFOCOM. New York: IEEE Computer Society, 2005: 1037−1048.

[9] Savage S, Cardwell N, Wetherall D, et al. Tcp congestion control with a misbehaving receiver[J]. ACM SIGCOMM Computer Communications Review, 1999, 29(5): 71−78.

[10] Sherwood R, Bhattacharjee B, Braud R. Misbehaving tcp receivers can cause internet-wide congestion collapse[C]//Proceedings of the 12th ACM conference on Computer and Communications Security. New York: ACM Press, 2005:383−392.

[11] Dukkipati N, Kobayashi M, SHEN Rui-zhang, et al. Processor sharing flows in the Internet[C]//Proceedings of the 13th IEEE International Workshop on Quality of Service. Berlin: Springer,2005: 271−285.

[12] Qazi I, Znati T. On the design of load factor based congestion control protocols for next-generation networks[C]//Proceedings of the 27th IEEE INFOCOM. New York: IEEE Computer Society, 2008: 96−100.

[13] Xia Y, Lakshminarayanan S, Ion S, et al. One more bit is enough[J]. IEEE/ACM Transaction on Networking, 2008, 16(6):1281−1294.

[14] WANG Jian-xin, RONG Liang, ZHANG Xi, et al. ARROW-TCP:Accelerating transmission toward efficiency and fairness for high-speed networks[C]//Proceedings of the 23rd IEEE Globecom. New York: IEEE Computer Society, 2009:1521−1526.

[15] Katabi D. Xcp’s performance in the presence of malicious flows[R]. Cambridge: Computer Science and Artificial Intelligence Laboratory, 2004: 1−16.

[16] Wilson C, Coakley C, Zhao B Y. Fairness attacks in the explicit control protocol[C]//Proceedings of the 15th IEEE International Workshop on Quality of Service. Evanston: IEEE Press, 2007:21−28.

(编辑 杨幼平)

CMAD-XCP: A cooperative scheme for defending against fairness attacks in XCP

WANG Jian-xin, JIA Wen-juan, HUANG Jia-wei

(School of Information Science and Engineering, Central South University, Changsha 410083, China)

An XCP-based Cooperative Malicious Attacker Detection scheme (CMAD-XCP) was presented. In CMAD-XCP, the core routers detect the malicious attacker, and the edge routers distinguish and punish the attacker. The simulation results show that CMAD-XCP can drop the malicious packets promptly, guarantee the fair bandwidth allocation and avoid the congestion due to the malicious competition.

eXplicit Control Protocol; malicious attack; fairness; active queue management

TP393

A

1672−7207(2011)01−0087−07

2010−01−26;

2010−05−06

国家自然科学基金资助项目(60873265); 湖南省杰出青年基金资助项目(06JJ10009); 新世纪优秀人才支持计划(NCET-10-0798); 高等学校博士学科点专项科研基金(20060533057)

王建新(1969−),男,湖南邵东人,教授,博士生导师,从事计算机网络、网络优化理论等研究;电话:0731-88830212;E-mail:jxwang@mail.csu.edu.cn

猜你喜欢

数据流队列瓶颈
汽车维修数据流基础(上)
汽车维修数据流基础(下)
队列里的小秘密
基于多队列切换的SDN拥塞控制*
在队列里
基于数据流特性的MPTCP数据流调度算法研究
丰田加速驶入自动驾驶队列
突破雾霾治理的瓶颈
突破瓶颈 实现多赢
民营医院发展瓶颈