可抵御膨胀攻击的可用网络带宽测量方法

xiaoxiao2021-2-23  147

可抵御膨胀攻击的可用网络带宽测量方法
【技术领域】
[0001] 本发明设及一种可抵御膨胀攻击的可用网络带宽测量方法,尤其是设及一种可W 有效防止被测量端恶意膨胀其与测量端之间可用网络带宽的测量方法。
【背景技术】
[0002] 网络带宽作为一种重要的网络资源,长期W来被互联网的各参与方所争夺。虽然 近年来互联网所能提供的平均物理带宽在网络软硬件技术飞速发展的背景下得到了极大 的提升(由最初仅能提供给终端用户的千比特级化bps)到如今的吉比特网络(Gbps)),其可 用带宽在互联网用户群体急速膨胀的前提下依然十分稀缺。为了实现互联网资源的平衡和 优化配置,许多应用在互联网中的分布式系统都设计了基于网络可用带宽的负载均衡和服 务优化机制。比如,迅雷下载等点对点文件分享系统将根据用户贡献的可用带宽分配其能 得到的资源。另外,很多开放式匿名系统也是根据匿名路由器所能提供的带宽决定其被选 中的概率。因此,某些互联网参与者为了在基于带宽的竞争中处于优势,往往会针对网络带 宽测量方法的缺陷恶意膨胀自身的可用带宽,从而误导网络资源的调度与分配。
[0003] 现有的非合作式可用网络带宽测量方法一般是基于包对或包链设计的。测量端发 送一对或一批网络数据包给被测量端,被测量端收到运些包后自动回送响应包,测量端用 发送的数据包的大小除W收到响应包的时间间隔来计算其到被测量端的可用网络带宽。恶 意的被测量端可W通过调整回应响应包的时间将带宽的测量结果膨胀到其期望的数值。如 针对测量包对,膨胀带宽的方法可W是延迟第一个响应包的会送时间或者提前第二个响应 包的回送时间。由于测量端很难区分接收响应包的时间间隔是由正常的网络时延而导致的 还是由被测量端恶意修改,可用带宽的膨胀攻击具有极大的隐蔽性。
[0004] 已有的可检测可用网络带宽膨胀攻击的测量方法可大致可W分为两类。一类属于 机会主义带宽测量算法,即利用多个测量端对同一个被测量端同时进行带宽测量,如果不 同的测量端得到的测量结果不同,则有很大的可能性被测量端在发动带宽攻击。运类方法 有一个根本假设,即被测量端不能很好的将测量网络流从业务网络流中识别出来,同时不 能使膨胀后的可用网络带宽超过物理带宽。然而,运一假设在实际攻击中并不能得到很好 的满足。用于测量的包对或包链往往含有某些填充数据或不能很好的兼容某些协议标准, 将很容易被识别出来。另外,只要被测量端能精确控制时间,其可用带宽可W被膨胀到任何 数值。另一类抗攻击测量方法通过判别多次带宽测量结果的积累概率分布函数(CDF)的对 称性来推测被测量端是否发动带宽攻击。虽然运类方法规避了前一种方法中不切实际的假 设要求,但其用来做攻击检测的线索很容易被伪造。具体而言,多次结果CDF之所W异常对 称,是由于攻击中被测量端在控制回应时间时将测量包在来路中受到旁路带宽影响而产生 的随机时间扰动抹去了。恶意测量端可W很容易的在发动攻击时通过模拟运个扰动来规避 检测。
[000引综上所述,当前尚无方法可W在实际应用中很好的防止可用网络带宽膨胀攻击, 从而导致互联网中大量基于可用带宽的服务优化和负载均衡系统面临潜在的安全风险。

【发明内容】

[0006] 本发明所要解决的技术问题是提供一种可抵御膨胀攻击的可用网络带宽测量方 法,其主要目的是为了在进行非合作式可用网络带宽测量时防止被测量端恶意膨胀其带 宽,提高安全性。
[0007] 本发明是通过下述技术方案来解决上述技术问题的:一种可抵御膨胀攻击的可用 网络带宽测量方法,其特征在于,其包括W下步骤:
[0008] 步骤一,测量端预先设定需要生产的测量包链的个数M;
[0009] 步骤二,测量端依次生产Μ个长度随机的测量包链;
[0010] 步骤Ξ,测量端根据每个测量包链的长度生成相应数量的测量数据包;
[0011] 步骤四,当一个测量包链发送完成后,测量端开始等待接收从被测量端发送回来 的响应包,直到所有的响应包都被接收到或者等待超时;
[0012] 步骤五,测量端将接收到的响应包与测量数据包通过关联方法进行关联,从而确 定哪些测量数据包得到了响应,哪些没有得到响应;重复步骤Ξ、步骤四W及步骤五直到Μ 个测量包链的测量都完成;
[0013] 步骤六,依据每个包链计算一个可用带宽值,共可得到Μ可用带宽值;如果运Μ个值 的标准差大于运Μ个值的平均值的Ημ倍,则认为测量端受到可用带宽膨胀攻击并结束;否则 执行步骤屯;
[0014] 步骤屯,测量端先通过与被测量端相近的网络节点估计出测量端与被测量端真实 往返时延,然后检测每个测量包链中发送第一个测量数据包到接收第一个响应包的时间间 隔;如果运个间隔大于Ht,则认为测量端受到可用带宽膨胀攻击并结束;否则执行步骤八;
[0015] 步骤八,检测所有接收到的响应包,判断是否存在不能关联到测量端发送的测量 数据包的响应包,如果存在,则认为测量端受到可用带宽膨胀攻击并结束;否则执行步骤 九;
[0016] 步骤九,将测量数据包和接收到的响应包进行对比,看是否有连续Hd个测量数据 包未得到响应,如果是,则认为测量端受到可用带宽膨胀攻击并结束;否则执行步骤十;
[0017] 步骤十,如果测量能顺利通过步骤六到步骤九的检测,则认为测量端未受到可用 带宽膨胀攻击。
[0018] 优选地,所述测量包链的长度是属于区间[L,(l+a) -L]内的随机整数,从第二个 包链开始,随机区间的下限L将根据前面包链测量的平均带宽结果B按照W下条件式进行调 整:
[0019]
[0020] 其中,出为多测量包链第一响应包时延异常偏差检测法指定的检测阔值,I P I是测 量数据包的大小。
[0021] 优选地,所述测量数据包的种类是TCP流外数据包、TCP流外SYN包或者TCP流内时 间包Ξ种中的一种。
[0022] 优选地,所述步骤十将Μ个测量结果的平均值作为最终的可用带宽测量值。
[0023] 本发明的积极进步效果在于:本发明可W在攻击者能正确识别测量网络流并能将 可用带宽膨胀到任意数值的情况下抵御膨胀攻击,同时保证攻击者很难伪造检测线索w躲 避检测。
【附图说明】
[0024] 图1(a)为本发明中多测量包链带宽测量值异常标准差检测法当被测量端在澳大 利亚时的实验结果图。
[0025] 图1(b)为本发明中多测量包链带宽测量值异常标准差检测法当被测量端在中国 时的实验结果图。
[0026] 图1(c)为本发明中多测量包链带宽测量值异常标准差检测法当被测量端在日本 时的实验结果图。
[0027] 图1(d)为本发明中多测量包链带宽测量值异常标准差检测法当被测量端在韩国 时的实验结果图。
[0028] 图2(a)为本发明中多测量包链第一响应包时延异常偏差检测法当被测量端在澳 大利亚时的实验结果图。
[0029] 图2(b)为本发明中多测量包链第一响应包时延异常偏差检测法当被测量端在中 国时的实验结果图。
[0030] 图2(c)为本发明中多测量包链第一响应包时延异常偏差检测法当被测量端在日 本时的实验结果图。
[0031] 图2(d)为本发明中多测量包链第一响应包时延异常偏差检测法当被测量端在韩 国时的实验结果图。
[0032] 图3(a)为本发明中异常丢包检测法当被测量端在澳大利亚时的实验结果图。
[0033] 图3(b)为本发明中异常丢包检测法当被测量端在中国时的实验结果图。
[0034] 图3(c)为本发明中异常丢包检测法当被测量端在日本时的实验结果图。
[0035] 图3(d)为本发明中异常丢包检测法当被测量端在韩国时的实验结果图。
[0036] 图4为本发明可抵御膨胀攻击的可用网络带宽测量方法的流程图。
【具体实施方式】
[0037] 下面结合附图给出本发明较佳实施例,W详细说明本发明 的技术方案。
[0038] 本发明的目的可W通过在测量端构造多个足够长并且长度和包信息不可预测的 测量包链来完成;同时还需要保证在实际网络环境中(即网络包在传送过程中可能会丢失 或被打乱顺序)用于测量的网络包及其响应包可W被正确的关联。
[0039] 整个测量过程由测量端独立完成,被测量端所产生的响应包是由安装在被测量端 上的TCP/IP协议找自动回应,不需要在被测量端上实施任何额外的步骤,因此,本发明的测 量方法属于非合作式网络测量。
[0040] 如图4所示,本发明可抵御膨胀攻击的可用网络带宽测量方法包括W下步骤:
[0041 ]步骤101,测量端预先设定需要生产的测量包链的个数Μ,M为自然数,一般取Μ = 5。 [0042]步骤102,测量端依次生产Μ个测量包链。每个测量包链的长度是一个属于区间[L, (1+a) · LKL为设定的随机区间下限,(1+a化为设定的随机区间的上限)内的随机整数,其 中生成第一个包链时考虑L=10,从第二个包链开始,L的值将根据前面包链测量的平均带 宽结果B按照条件式(1)进行调整:
[0043]
[0044] 其中,出为多测量包链第一响应包时延异常偏差检测法指定的检测阔值,I P I是测 量数据包的大小。另外,本发明的实验表明,取a = 5可W达到不错的检测效果。
[0045] 为了完全控制测量包链的长短W及包链中网络包的大小与协议信息,本发明将直 接调用原始套接字(RAW socket)完成测量包链的生成。生成测量包链的内容具体如下:
[0046] -,为保证测量包链足够长,本发明设定测量包链长度的下限为L(即测量包链中 包含的最少网络包数目为L) dL需要满足:
其中IP I为测量包链中网络包的大小,B 为网络带宽量级的估计值,Ht为后续膨胀攻击检测算法所指定的一个用于检测攻击的时延 阔值。本发明的实验表明,在100Mbps W下的网络带宽环境中,取L = 10可W得到不错的攻击 检测效果。
[0047] 二,为保证测量包链的长度不能为被测量端所知,本发明在每次生成测量包链时 将包链的长度指定为一个随机数R,并且R满足L含R含(1+a) · L。在本发明中,建议λ的取值 为曰二5。
[0048] Ξ,为保证测量包链中网络包的信息不可预测,包链中所有数据包的身份信息(如 IPID和TCP sequence number等)均随机生成。
[0049] 四,通过测量包链P计算可用网络带宽的公式是
其中|P|是测量包 链的长度,IPI是测量包链中每一个测量数据包的大小,A t是测量端接收到第一个响应包 和最后一个响应包的时间差。
[0050] 步骤103,测量端根据每个测量包链的长度生成相应数量的测量数据包。测量数据 包的种类可W是TCPI^TYansmission Control Protocol,传输控制协议)流外数据包、TCP流 外SYN(SYN是TCP/IP建立连接时使用的握手信号)包或者TCP流内时间包Ξ种中的一种。同 时需要保证每个测量数据包的身份信息(如IPID和TCP sequence number等)都是随机生成 的。每个测量数据包生成后立即发送到被测量端。
[0051] 步骤104,当一个测量包链发送完成后,测量端开始等待接收从被测量端发送回来 的响应包,直到所有的响应包都被接收到或者等待超时。一般情况下,等待超时时间可W设 置为1秒钟。
[0052] 步骤105,测量端将接收到的响应包与测量数据包通过关联方法进行关联,从而确 定哪些测量数据包得到了响应,哪些没有得到响应;重复步骤103、步骤104W及步骤105直 到Μ个测量包链的测量都完成。
[0053] 为了适应实际网络环境中网络包在传送过程中丢失和乱序的问题,本发明设计了 Ξ种将测量网络包和其对应的响应包进行关联的方法,关联方法的具体内容如下:
[0054] -,TCP流外数据包关联法:测量端将不属于任何已经建立的TCP链接的数据包(即 TCP流外数据包)作为测量网络包发送到被测量端,被测量端将回应TCP ACK包作为响应。由 于发送的TCP数据包不属于任何TCP链接,响应的TCP ACK包中的响应码(TCP acknowledgement number)将会直接回应测量包的序列码(TCP sequence number),运一响 应过程不会受到TCP积累响应机制的影响。设Pi为一个测量包,qi为Pi的响应包,则可根据 SEQ(pi)+|pi I = ACK(qi)将Pi和qi进行关联,其中SEQ(pi)表示Pi的序列码,|pi I表示Pi的大 小,ACK(qi)表示qi的响应码。
[005引二,TCP流外SYN包关联法:测量端将填充有数据并且发送端口号各不相同的TCP SYN包(即TCP流外SYN包)作为测量网络包发送到被测量端,被测量端将回应TCP SYN+ACK包 作为响应。该方法中测量包和响应包将通过端口号进行关联。设Pi为一个测量包,q功Pi的 响应包,则可根据51^?01'1:(90=03巧01'1:(90将9滿9进行关联,其中51^?01'1:(90表示口骗 源端口,Dstfod(qi)表示qi的目的端口。
[0056] S,TCP流内时间包关联法:测量端首先和被测量端建立一个时间戳选项开启的 TCP链接,然后将TCP数据包作为测量包通过运个TCP链接发送给被测量端,被测量端将回应 TCP ACK包作为响应。该方法中测量包和响应包将通过TCP时间戳进行关联。设Pi为一个测 量包,qi为Pi的响应包,则可根据了5¥曰1(9〇=了56沈(9〇将91和91进行关联,其中了5¥曰1(口〇 表示Pi的时间戳数值,TSecr(qi)表示qi的时间戳响应数值。
[0057] 步骤106,依据每个包链计算一个可用带宽值,共可得到Μ可用带宽值;如果运Μ个 值的标准差大于运Μ个值的平均值的Ημ倍,则认为测量端受到可用带宽膨胀攻击并结束;否 则执行步骤107 dHm可W根据具体的网络环境选取,本发明建议取Ημ=0.08。
[0058] 步骤107,测量端先通过与被测量端相近的网络节点估计出测量端与被测量端真 实往返时延(RTT),然后检测每个测量包链中发送第一个测量数据包到接收第一个响应包 的时间间隔;如果运个间隔大于出化t多测量包链第一响应包时延异常偏差检测法指定的检 测阔值),Ht=目+RTT,则认为测量端受到可用带宽膨胀攻击并结束;否则执行步骤108。本发 明建议取θ = 0.007秒。
[0059] 步骤108,检测所有接收到的响应包,判断是否存在不能关联到测量端发送的测量 数据包的响应包,如果存在,则认为测量端受到可用带宽膨胀攻击并结束;否则执行步骤 109。
[0060] 步骤109,将测量数据包和接收到的响应包进行对比,看是否有连续Hd个测量数据 包未得到响应,如果是,则认为测量端受到可用带宽膨胀攻击并结束;否则执行步骤110。本 发明建议取曲=3。
[0061] 步骤110,如果测量能顺利通过步骤106到步骤109的检测,则认为测量端未受到可 用带宽膨胀攻击。此时可W将Μ个测量结果的平均值作为最终的可用带宽测量值。
[0062] 由于可用带宽膨胀攻击主要存在四种不同的攻击手法,本发明针对不同的攻击手 法分别提出相应的检测方法。
[0063] -,多测量包链带宽测量值异常标准差检测法:该方法针对的攻击手法是攻击者 通过有意延迟每两个相邻测量包中前一测量包的响应时间来膨胀可用带宽。具体检测算法 是构造 Μ个长度随机的测量包链Pi,P2,L,Pm进行带宽测量,如果测量结果满足std(b[Pi],b [P2],L,b[PM])>HM-mean(b[Pi],b[P2],L,b[PM]),则认为被测量端在进行膨胀攻击。其中 stdO表示求标准差,b巧i]表示第i个测量包链Pi的带宽测量结果,meanO表示求平均值,Ημ 是检测阔值。本发明建议取Ημ=0 .08,具体应用时,用户可根据实际网络情况选取Ημ。本发明 已经在互联网上验证了该方法有效性,结果见图1(a)至图1(d)。
[0064] 二,多测量包链第一响应包时延异常偏差检测法:该方法针对的攻击手法是攻击 者在完整接收整个测量包链后按预先设定的小间隔发送回应包从而膨胀可用带宽。具体的 检测算法是构造一个足够长的测量包链进行带宽测量,如果测量结果满足ti>Ht,则认为被 测量端在进行膨胀攻击。其中,ti表示测量端收到第一个测量包对应的响应包的往返时延。 Ht是检测阔值,一般取Ht =目+RTT,运里RTT是测量端到被测量端的真实往返时延,可W通过 与被测量端临近的网络节点进行估计;Θ是容忍偏差,本发明的实验表明,取θ = 〇.007秒可 W得到不错的攻击检测效果。本发明已经在互联网上验证了该方法有效性,结果见图2(a) 至图2(d)。
[0065] Ξ,异常响应包检测法:该方法针对的攻击手法是攻击者通过提前回应尚未收到 的测量包来膨胀可用带宽。具体的检测算法是保证测量包链长度和测量数据包身份信息都 随机并且测量数据包和响应包可关联,如果测量端接收到的响应包不能关联到已经发送的 测量数据包,则认为被测量端在进行膨胀攻击。本发明已经在互联网上验证了该方法有效 性,其结果可W达到100%的检测率和0%的误报率。
[0066] 四,异常丢包检测法:该方法针对的攻击手法是攻击者通过故意不回应测量包链 末尾的一系列测量数据包来膨胀可用带宽。具体的检测算法是保证测量包链中每一个测量 数据包都能和其响应包关联,如果发现连续Hd个测量包没有得到响应,则认为被测量端在 进行膨胀攻击。本发明的实验表明,取Hd = 3可W得到不错的攻击检测效果。本发明已经在 互联网上验证了该方法有效性,结果见图3(a)至图3(d)。
[0067] 本发明在测量端生成多个测量包链并发送给被测量端,每个测量包链中包含的测 量数据包的数目都是随机确定的每一个测量数据包都将使被测量端自动的回应一个响应 包,即被测量端在收到一个测量包链后将回应一个响应包链给测量端;测量端根据每个测 量包链所传送的数据量大小和接收响应包链的时长计算出可用网络带宽;如果通过多个包 链所计算出的可用网络带宽标准差过大、或收到包链的第一个响应包的时延与真实时延偏 差过大、或有大量连续的测量包未得到响应,则认为被测量端正在发动可用网络带宽膨胀 攻击。其中,所提到的测量包链中的测量数据包可W是TCP流外数据包、或是TCP流外SYN包、 或是TCP流内时间包。该方法的主要功能在于测量端可W在不需要控制额外网络设备的前 提下防止被测量端恶意膨胀其与测量端之间的可用网络带宽。
[0068] 本发明具有W下特点:构造的测量包链长度是一个随机整数。构造的测量包链必 须足够长,即是一个足够大的随机整数。测量包链中的测量数据包和其响应包关联的Ξ种 方法。测量数据包为在不属于任何已经建立的TCP链接的TCP数据包(TCP流外数据包),通过 TCP数据包的序列码(TCP sequence number)和响应包的响应码(TCP acknowledge number)进行关联。测量数据包是含有数据的TCP SYN包(TCP流外SYN包),通过TCP SYN包的 发送端口(source port)和响应包的目的端口(destination port)进行关联。测量数据包 是打开时间戳选项的正常TCP数据包(TCP流内时间包),通过TCP数据包的TCP时间戳 (TSval)和响应包的响应时间戳(TSecr)进行关联。
[0069] 四类可用带宽膨胀攻击的检测方法的特点如下:利用多个包链测量结果的标准差 是否超过运些结果平均值的Hm倍来判断是否存在膨胀攻击。Hm需要根据实际网络情况决定, 一般取值为Hm=0.08。利用包链中发送第一个测量包和接收第一个响应包的时间差是否超 过真实往返时延加上Θ秒来判断是否存在膨胀攻击。Θ需要根据实际网络情况决定,一般取 值为0 = 0.007秒。通过判断是否接收到不能关联到相应测量数据包的响应包来判断是否存 在膨胀攻击。通过判断是否有连续出个测量数据包未得到响应来判断是否存在膨胀攻击。出 需要根据实际网络情况决定,一般取值为曲=3。
[0070] W上所述的具体实施例,对本发明的解决的技术问题、技术方案和有益效果进行 了进一步详细说明,所应理解的是,W上所述仅为本发明的具体实施例而已,并不用于限制 本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本 发明的保护范围之内。
【主权项】
1. 一种可抵御膨胀攻击的可用网络带宽测量方法,其特征在于,其包括以下步骤: 步骤一,测量端预先设定需要生产的测量包M ; 步骤二,测量端依次生产Af个测量包链; 步骤三,测量端根据每个测量包链的长度生成相应数量的测量数据包; 步骤四,当一个测量包链发送完成后,测量端开始等待接收从被测量端发送回来的响 应包,直到所有的响应包都被接收到或者等待超时; 步骤五,测量端将接收到的响应包与测量数据包通过关联方法进行关联,从而确定哪 些测量数据包得到了响应,哪些没有得到响应;重复步骤三、步骤四以及步骤五直到Af个 测量包链的测量都完成; 步骤六,依据每个包链计算一个可用带宽值,共可得到M可用带宽值;如果这M个值 的标准差大于这Af个值的平均值的丑&倍,则认为测量端受到可用带宽膨胀攻击并结束; 否则执行步骤七; 步骤七,测量端先通过与被测量端相近的网络节点估计出测量端与被测量端真实往返 时延,然后检测每个测量包链中发送第一个测量数据包到接收第一个响应包的时间间隔; 如果这个间隔大于JT...,则认为测量端受到可用带宽膨胀攻击并结束;否则执行步骤八; );.. 步骤八,检测所有接收到的响应包,判断是否存在不能关联到测量端发送的测量数据 包的响应包,如果存在,则认为测量端受到可用带宽膨胀攻击并结束;否则执行步骤九; 步骤九,将测量数据包和接收到的响应包进行对比,看是否有连续个测量数据包 未得到响应,如果是,则认为测量端受到可用带宽膨胀攻击并结束;否则执行步骤十; 步骤十,如果测量能顺利通过步骤六到步骤九的检测,则认为测量端未受到可用带宽 膨胀攻击。2. 根据权利要求1所述的可抵御膨胀攻击的可用网络带宽测量方法,其特征在于,所述 测量包链的长度为一个在区间内的随机整数,和&的初始值根据网 络环境确定,从第二个包链开始,的值将根据前面包链测量的平均带宽结果及按照以下 条件式进行调整:其中,_为多测量包链第一响应包时延异常偏差检测法指定的检测阈值,I戶I是测量 数据包的大小。3. 根据权利要求1所述的可抵御膨胀攻击的可用网络带宽测量方法,其特征在于,所述 测量数据包的种类是TCP流外数据包、TCP流外SYN包或者TCP流内时间包三种中的一种。4. 根据权利要求1所述的可抵御膨胀攻击的可用网络带宽测量方法,其特征在于,所述 步骤十将Af个测量结果的平均值作为最终的可用带宽测量值。
【专利摘要】本发明提供一种可抵御膨胀攻击的可用网络带宽测量方法,其是可以抵御膨胀攻击的非合作式可用网络带宽测量方法,实现的主要步骤包括:1)在测量端生成多个长度随机的测量包链并发送给被测量端;2)测量端根据每个测量包链所传送的数据量大小和接收到被测量端自动会送的响应包链的时长计算出可用网络带宽;3)如果通过多个包链所计算出的可用网络带宽标准差过大、或收到包链的第一个响应包的时延与真实时延偏差过大、或有大量连续的测量包未得到响应,则认为被测量端正在发动可用网络带宽膨胀攻击。该方法的主要功能在于测量端可以在不需要控制额外网络设备的前提下防止被测量端恶意膨胀其与测量端之间的可用网络带宽。
【IPC分类】H04L12/26
【公开号】CN105490873
【申请号】CN201510829927
【发明人】周鹏, 费敏锐
【申请人】上海大学
【公开日】2016年4月13日
【申请日】2015年11月25日

最新回复(0)