CN105791275A - 基于模运算的拒绝服务攻击返回追踪方法 - Google Patents
基于模运算的拒绝服务攻击返回追踪方法 Download PDFInfo
- Publication number
- CN105791275A CN105791275A CN201610105009.8A CN201610105009A CN105791275A CN 105791275 A CN105791275 A CN 105791275A CN 201610105009 A CN201610105009 A CN 201610105009A CN 105791275 A CN105791275 A CN 105791275A
- Authority
- CN
- China
- Prior art keywords
- packet
- router
- path
- attack
- territory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于模运算的拒绝服务攻击返回追踪方法,包括步骤1:利用IP包头的标识域,即ID域建立模运算包标记方法;步骤2:利用节点采样方法转发路由器的节点信息,并将路由位置和路由地址写入数据包的标记空间;步骤3:通过IP包头中ID域的值进行模运算,实现路由标记,即确定某一特定的数据包由攻击路径上的哪个路由器执行标记运算;步骤4:受害端通过检测数据包中的标记信息,进行路径重构。本发明通过引入模运算,来计算当前数据包应由攻击路径上哪个路由器来执行标记算法,减轻了转发路径上各路由器的负担,大大减少了路径重构所需的数据包数目,有效识别拒绝服务攻击的发起源头。
Description
技术领域
本发明涉及网络攻击防范技术领域,具体地,涉及一种基于模运算的拒绝服务攻击返回追踪方法。
背景技术
黑客利用网络协议缺陷发起的拒绝服务(DenialofService,DoS)攻击是最常见的一种网络攻击,旨在使目标***无法提供正常的服务或资源访问。DoS攻击每年造成高达上千万美元的商业损失,是造成互联网财产损失第二多的网络攻击类型,而且攻击者可利用网络上已被攻陷的大量主机组建僵尸网络(Botnet),控制其向某一特定目标发动密集式的拒绝服务攻击,即分布式拒绝服务攻击(DistributedDoS,DDoS)。DoS攻击由于其实现简单、追踪困难、后果严重等特点,严重威胁着Internet及其基础设施的安全。
在抵制DoS网络攻击的各种方法中,IP返回追踪(IPTraceback)技术是一种非常有威慑力的防御方法。但是,由于IP协议设计之初,没有考虑验证网络数据包源IP地址的真实性,致使攻击者常常采取伪造自身IP地址的方法来隐藏自身、逃避罪责,这给及时定位、应对DoS攻击及攻击发生后的司法取证都带来一定的困难。为了有效识别DoS攻击的源头,国内外学者提出包记录、包标记及结合以上两者的混合追踪算法。其中,由于包标记方法不会带来额外的网络负载,具有一定的抗伪造能力和可扩展性,已成为返回追踪的主流方法。典型的包标记算法有:静态概率标记(PPM)、动态概率标记(DPPM)和基于互联网控制报文协议(ICMP)的标记(iTrace)。其中,PPM方法中路由器以固定概率将IP地址写入数据包头部中不用或保留的字段,受害者端根据接收到的标记信息重构流转发路径。该方法存在的问题是标记空间受限,可能出现标记信息完全损失而无法重构攻击路径的情况,如何选择标记概率是一个难点。DPPM有效实现了标记概率随路由跳数的动态变化,达到了路由器最终标记概率的均匀分布,但是仍然受标记空间的限制。iTrace的基本思想是路由器以一定的概率取样被转发分组,并把分组及邻接路由器的信息复制到一个特定的ICMP分组中,然后发送该ICMP分组到相同的目的地址,受害者分析相关ICMP包即可重构路径。该方法可用于追踪各种协议类型的数据包,但iTrace是一种带外消息传递(out-of-bandsignaling)的方法,给网络传输造成额外负担。
为了确保互联网的安全可靠运行,需要寻求一种快速定位攻击源的有效方法,达到及时切断攻击源头、阻止恶意攻击进一步扩散的目的。经文献检索发现,现有拒绝服务攻击源头返回追踪的方法有以下几种:
(1)确定包标记(DeterministicPacketMarking,DPM)
该方法需要一个入口边界路由器来对数据包进行标记。所谓入口边界路由器,是指攻击者发出的数据包经过的第一个路由器,即数据包进入网络的入口点。这些部署追踪机制的入口边界路由器对经过它们的数据包进行确定标记(标记概率为1)。同时,也只有入口边界路由器进行标记工作,在包的整个传递过程中,攻击路径上的其它路由器均不做标记。因此,DPM只标记攻击包入口点的信息,而非整条路径的信息。受害者根据攻击包中携带的入口边界路由器的地址信息,可获知数据包是从哪里进入网络的,从而追溯到攻击源。DPM具有实现简单、计算开销小等优点,但也有误报率高、漏报率高、边界路由器负担过重等缺点。
(2)概率包标记(ProbabilisticPacketMarking,PPM)
路由器以一定的概率将其地址信息标记到经过的数据包中。PPM中攻击路径上的所有路由器参与标记工作,而非只有入口边界路由器。PPM不仅可以定位攻击源,还可以重构整条攻击路径。但是这种基本包标记存在标记空间受限、IPSpoofing、最弱链等问题,由此提出了高级概率包标记(AdvancedPPM)和认证概率包标记(AuthenticatedPPM)。高级包标记方法写入数据包的标记信息不再是IP地址,而是IP地址的hash值,从而缓解了标记空间受限的问题。认证包标记在标记数据包时,还要对标记内容进行加密以达到认证的目的,从而解决了IPSpoofing问题。不管是基本包标记、高级包标记,还是认证包标记,其路由在决定是否标记一个数据包时,所用概率p是固定的。固定概率的优点是实现简单,缺点是会引发最弱链问题,而最弱链问题会导致受害者在重构时收敛性能的严重下降。
(3)动态概率包标记(DynamicProbabilisticPacketMarking,DPPM)
路由器根据其在攻击路径中所处的位置来决定其标记数据包的概率,其采用的动态概率算法为pi=1/i,其中i是路由器ri在攻击路径上的序号。DPPM中每个路由的最终标记概率是相等的,从而很好地解决了最弱链问题。但是,DPPM没能解决标记空间受限的问题且存在路由器负担重等缺点。
以上研究表明,包标记技术已取得了一系列成果,但仍存在特定的缺陷或弱点。本发明主要针对动态概率标记方法DPPM中存在的路由负担过重的问题进行研究,提出模运算包标记方法(Modulo-arithmeticPacketMarking,MPM),改善了DPPM中路由负担过重的问题,同时降低了DPPM方法所需的重构包数。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于模运算的拒绝服务攻击返回追踪方法。
根据本发明提供的基于模运算的拒绝服务攻击返回追踪方法,包括如下步骤:
步骤1:利用IP包头的标识域,即ID域,执行模运算包标记方法Modulo-arithmeticPacketMarking,简称MPM;
步骤2:利用节点采样方法转发路由器的节点信息,并将路由位置和路由地址写入数据包的标记空间;
具体地,利用IP包头的ID域和Option域用作标记空间;选取标识flag字段记录数据包是否被标记的信息,使用生命周期TimeToLive,简称TTL,记录数据包的当前TTL值;使用IP地址字段记录当前路由器的IP地址;
步骤3:通过IP包头中ID域的值进行模运算,实现路由标记,即确定待转发数据包由攻击路径上的哪个路由器执行标记运算;
步骤4:受害端通过检测数据包中的标记信息,进行路径重构。
优选地,所述步骤2中的路由位置是指当前路由在攻击者至受害者方向的攻击路径上的第几个路由器;
路由地址是指当前路由在因特网中的IP地址,通过路由的IP地址信息能够在因特网中精确定位当前路由器,其中路由IP地址的标记需4字节,即32比特。
优选地,所述步骤1中的模运算包标记方法是指通过待转发数据包的IP包头中的ID域的值进行模运算,来确定被攻击路径上由哪个路由器来标记;
具体地,MPM只将5比特的路由位置信息填入ID域中,而将32比特的路由地址信息填入IP包头的可选域,即option域,中;MPM还需在ID域中选取1比特空间作为flag标志位,用来标识数据包是否已被标记。
优选地,所述步骤3中假设攻击路径上共有D个路由,其中D≤32,若当前数据包的标识字段的值为ID*,则计算出当前数据包应由攻击路径上第i个路由器来标记,其中1≤i≤D,模运算计算公式如下:
i=ID*%32+1
式中,ID*%32表示求余,且ID*%32∈{0,1,2,…,31},所以i∈{1,2,3,…,32};
具体地,包括:
步骤3.1:当路由器收到一个数据包后,通过检测flag标志位的值来判断数据包是否已被标记;若数据包尚未被标记,则计算出该数据包应由攻击路径上第i个路由器标记;
步骤3.2:当前路由器根据该数据包IP包头中的TTL值计算出自己是攻击路径上第i’个路由器,其中i’=32-TTL;
步骤3.3:判断i’是否等于i,若i’=i则路由器对该数据包进行标记,若i’≠i则不对该数据包进行标记。
优选地,所述步骤4包括:
步骤4.1:受害端收到一个数据包后,检测flag标志位来判断数据包是否被标记过;若该数据包被标记过,则受害者需利用该数据包携带的路由标记信息进行路径重构工作;若该数据包未被标记过,则舍弃;
步骤4.2:判断数据包携带的路由标记信息是否为新的信息,若为重复信息则舍弃,若为新信息则在攻击路径中加入对应的路由节点;
步骤4.3:判断整条攻击路径是否重构完成,若已全部重构完成,则终止重构程序,若尚未重构完成,则继续处理下一个数据包。
优选地,在模运算包标记方法MPM中,具体地:
Flag用于标识数据包是否被标记,占ID域中的1比特空间,取值为0或1;若flag为0表示数据包尚未被标记,若flag为1表示数据包已被标记;
TTL用于记录数据包的当前TTL值,占ID域中的5比特空间,取值范围为0~31;
IP地址用于记录当前路由器的IP地址,占Option域的32比特空间。
与现有技术相比,本发明具有如下的有益效果:
1、本发明通过引入模运算,来计算当前数据包应由攻击路径上哪个路由器来执行标记算法,减轻了转发路径上各路由器的负担,大大减少了路径重构所需的数据包数目,有效识别拒绝服务攻击的发起源头。
2、本发明提供的基于模运算的拒绝服务攻击返回追踪方法降低了受害者重构攻击路径所需的攻击包数,只需要较少的攻击包数即可完成重构工作。
3、本发明提供的基于模运算的拒绝服务攻击返回追踪方法缩短了收敛时间,即缩短了受害者重构攻击路径所需的平均时间。
4、本发明提供的基于模运算的拒绝服务攻击返回追踪方法解决了最弱链问题,即攻击路径上距离攻击者最近的链路难以被重构的问题;这是因为最弱链的最终标记概率最小,最难将其标记信息携带到受害者处。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明提供的基于模运算的拒绝服务攻击返回追踪方法的整体框架示意图;
图2为本发明具体实施例中的MPM标记字段示意图;
图3为本发明具体实施例中的网络拓扑结构示意图;
图4为本发明具体实施例中的packet类的结构示意图;
图5为本发明具体实施例中的嵌有trace的link对象示意图;
图6为本发明具体实施例中的三种标记方案的重构包数实验结果示意图;
图7为本发明具体实施例中的三种标记方案的处理开销实验结果示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的基于模运算的拒绝服务攻击源头返回追踪的方法,包括如下步骤:
步骤A:本发明利用IP包头的标识域(ID域)设计了模运算包标记方法(Modulo-arithmeticPacketMarking,MPM)。
步骤B:利用节点采样方法,转发路由器将其节点信息:路由位置和路由地址写入数据包的标记空间。设计标记空间,利用IP包头ID域和Option域用作标记空间,选取标识flag字段记录数据包是否被标记的信息,使用TTL(TimeToLive,生命周期)记录数据包的当前TTL值,使用IPAddress记录当前路由器的IP地址。
步骤C:通过对该IP包包头中的标识域(Identification,ID)的值进行模运算,实现路由标记,即确定特定的数据包由攻击路径上的哪个路由器执行标记运算。
步骤D:受害端通过检测数据包中的标记信息,进行路径重构。
包标记方法又称为模运算包标记方法(Modulo-arithmeticPacketMarking,MPM),其中模运算即为通过某一特定的数据包的IP包包头中的标识域(Identification,ID)的值进行模运算,来确定其被攻击路径上的哪个路由器来标记。
MPM采用节点采样方法,写入数据包中的标记信息为一个路由节点的信息,包括路由位置和路由地址。
路由位置是指当前路由在攻击者至受害者方向的攻击路径上的第几个路由器。根据IP包包头中的生命周期域(TimeToLive,TTL),若数据包在经由当前路由器转发时TTL值为ttl,则表示该路由器是攻击路径上第(32-ttl)个路由器。因此,路由位置可通过标记数据包的当前TTL值来携带。由于数据包在实际因特网中的最大跳数不超过32跳,则对TTL值的标记只需5比特即可满足要求。路由地址是指当前路由在因特网中的IP地址,通过路由的IP地址信息可以在因特网中精确定位当前路由器。路由IP地址的标记需4字节,即32比特。
MPM中只将5比特的路由位置信息填入ID域中,而将32比特的路由地址信息填入IP包包头的可选域中。由于一个IP包的包头最多可开辟40字节的Option域空间,所以这里只需在IP包包头中新开辟4字节的Option域即可携带完整的路由IP地址信息。另外,MPM还需在ID域中选取1比特空间作为flag标志位,来标识数据包是否已被标记。通过flag标志位可以使得路由器对已标记过的数据包不再做标记判断,即直接省去标记判断这一步骤,同时也节省时间。MPM的标记空间设计如图2所示。
MPM需要利用IP包头ID域和Option域用作标记空间,图2中的标识说明如下:
flag:标识数据包是否被标记,占ID域中的1比特空间,取值为0或1。若flag为0表示数据包尚未被标记,若flag为1表示数据包已被标记。
TTL:记录数据包的当前TTL值,占ID域中的5比特空间,取值范围为0~31。
IPAddress:记录当前路由器的IP地址,占Option域的32比特空间。
MPM中一个数据包由攻击路径上的哪个路由器来标记,是通过对该IP包包头中标识域(Identification,ID)的值进行模运算的结果来决定。
设攻击路径上共有D个路由(因为实际因特网中数据包经过的路由跳数一般不超过32跳,因此有D≤32),若当前数据包的标识字段的值为ID*,则可计算出当前数据包应由攻击路径上第i个路由器来标记(1≤i≤D),计算方法如下:
i=ID*%32+1
其中,因为ID*%32∈{0,1,2,…,31},所以i∈{1,2,3,…,32}。
MPM标记算法中,路由器收到一个数据包后,首先检测flag标志位的值来判断数据包是否已被标记;若数据包尚未被标记,则计算出该数据包应由攻击路径上第i个路由器标记;当前路由器再根据该包头中的TTL值计算出自己是攻击路径上第i’(i’=32-TTL)个路由器;判断i’是否等于i,若i’=i则路由器对该包进行标记,若i’≠i则不标记。
模运算包标记MPM中,受害者收到一个数据包后,首先检测flag标志位来判断数据包是否被标记过;若该数据包被标记过,则受害者需利用该包中的标记信息进行路径重构工作;判断该路由信息是否为新的信息,若为重复信息则舍弃,若为新信息则在攻击路径中加入该路由;再判断整条攻击路径是否重构完成,若已全部重构完成,则终止重构程序,若尚未重构完成,则接着处理下一个包,重复上述过程,直至整条攻击路径的重构工作全部完成。
本发明较现有技术存在如下四个方面的优点:
1、重构包数减少
本发明降低了受害者重构攻击路径所需的攻击包数。重构包数越少,则说明只需要较少的攻击包数即可完成重构工作,表明标记方法的性能越好。
MPM中,若已知攻击路径上的路由总数为D(D≤32),则MPM重构一条包含D个路由的攻击路径所需的平均攻击包数E(N)的计算公式为:
E(N)=D+(33+D)(32-D)/32-(33×32-(D+1)D)/64
公式的具体推导过程如下:
对于某个特定数据包,其ID值是恒定的(由发送端分配),则i值(i=ID*%32+1)也是[1,32]之间的一个固定值。i的取值意味着该数据包应由攻击路径上的第i个路由器来标记。因此,若攻击路径上一共有D(D≤32)个路由器,如果i介于[1,D]之间,则该数据包在经过攻击路径上第i个路由时,便一定会被该路由器标记;如果i介于[D+1,32]之间,则该数据包无法被攻击路径上的任何路由器所标记。设定发送端发送的第一个数据包的i值为is(is∈[1,32]),则MPM的标记和重构情况有以下两种:
1)is∈[1,D]
若is∈[1,D],则前面(D-is+1)个数据包的i值分别为is、is+1、...、D,这些连续的数据包分别被攻击路径上第is个、第(is+1)个、...、第D个路由器标记;之后(32-D)个数据包的i值分别为D+1、D+2、...、32,均不能被任何路由器标记;再之后(is-1)个数据包的i值为1、2、...、is-1,这些连续的数据包分别被攻击路径上第1个、第2个、...、第(is-1)个路由器标记。此时,受害者已收齐所有D个路由器的信息,路径重构工作便可完成。因此,该种情况下重构攻击路径所需的数据包数N=(D-is+1)+(32-D)+(is-1)=32。
2)is∈[D+1,32]
若is∈[D+1,32],则前面(32-is+1)个数据包的i值分别为is、is+1、...、32,均不能被任何路由标记;从第(32-is+2)个包开始的D个数据包的i值依次为1、2、3、...、D,则这D个连续的数据包将分别被攻击路径上第1个、第2个、...、第D个路由器标记。当受害者收集到这D个数据包后,便获得了攻击路径上所有D个路由器的信息,即可完成路径重构工作。因此,该种情况下重构攻击路径所需的数据包数N=(32-is+1)+D=33+D-is。
综上所述,若设MPM重构一条含D个路由器的攻击路径所需的平均攻击包数为E(N),可以推导出E(N)关于D的表达式:
E(N)=32×P{is∈[1,D]}+(33+D-is)×P{is∈[D+1,32]}
=D+(33+D)(32-D)/32-(33×32-(D+1)D)/64
由上述推导可知,E(N)是关于D的二次方函数,并经过求导分析,发现E(N)是D的单调递增函数。当D=1时,E(N)有最小值17;当D=32时,E(N)有最大值32。由此可见,MPM在任何路由总数情况下重构所需的平均攻击包数均不超过32。
2、路由负担减轻
本发明减轻了路由负担,即路由器标记数据包所需的开销,包括处理开销和存储开销。
处理开销是指路由器进行标记工作所需的工作量,通过路由器标记次数的多少来衡量。标记次数越多,说明处理开销越大;反之,说明处理开销越小。由于MPM中当一串或若干串被标记的IP包流到达受害者后,受害者则可获得攻击路径上D个路由器的所有信息,从而完成路径重构工作。具体情况有两种:一是受害者获得一串携带1~D路由信息的IP包流,共获得D个被标记数据包,路由标记次数为D;二是一串携带1~k路由信息的IP包流和一串携带k+1~D路由信息的IP包流(1<k<D),这两串IP包流中间被另一串未被标记的IP包流隔开,这种情况下也是一共获得D个被标记数据包,路由标记次数为D。由此可见,MPM完成重构工作所需路由器的平均标记次数恰好等于攻击路径上的路由总数D。
存储开销是指路由器进行标记工作所需的存储空间。因为MPM的标记原理是将ID值进行模运算后的值(ID%32+1)与当前路由在攻击路径上的位置序号(32-TTL)进行比较,来决定是否标记数据包,所以MPM标记工作的完成不需要事先存储任何信息,只需路由器做出即时运算便可,因此不占用路由器任何存储空间,MPM在路由器的存储开销方面要优于PPM和DPPM。
3、收敛时间缩短
本发明缩短了收敛时间,即受害者重构攻击路径所需的平均时间。收敛时间越短,则说明只需要较短的时间即可完成重构工作,表明标记方法的性能越好。
由收敛时间的计算公式:
其中,ai(p)表示数据包被攻击路径上第i个路由器标记且不再被后续的路由器覆盖标记的概率,称为最终标记概率。
记ai(p)的平均值为即其中d为路由总数。分析函数E(T)=f(ai(p))的单调性可得:若越大,则E(T)越小;若越小,则E(T)越大。因此,通过计算MPM、DPPM、PPM这3种标记方案ai(p)(i∈{1,2,…,32})的平均值来比较三者的收敛时间E(TMPM)、E(TDPPM)、E(TPPM)。
设ai(p)表示MPM下数据包被攻击路径上第i个路由器标记且不再被后续的路由器覆盖标记的概率,假设攻击路径上共有32个路由,则有a1(p)=a2(p)=…a32(p)=1/32。在MPM中数据包是否会被攻击路径上第i个路由器标记,取决于该数据包的ID值进行模运算后的结果(ID%32+1)是否等于i,而(ID%32+1)的结果是{1,2,…,32}之间的随机值,则数据包被第i个路由器标记的概率等于1/32。而且对于某一特定数据包,MPM不存在覆盖标记问题。由此可知,数据包被第i个路由器最终标记的概率也等于1/32。
DPPM和PPM的平均最终标记概率的计算如下:
其中,p取0.04,即固定概率中的最佳参数;d取32,即数据包在实际因特网中的最大跳数。
可见,MPM、DPPM、PPM三种方案的平均最终标记概率分别为0.03125、0.03125、0.022787,三者的收敛时间为E(TMPM)=E(TDPPM)<E(TPPM),即说明MPM方案的收敛时间要明显优于PPM方案,和DPPM方案一样优越。
4、解决了最弱链问题
本发明解决了最弱链问题,即攻击路径上距离攻击者最近的链路难以被重构的问题。最弱链的最终标记概率最小,最难将其标记信息携带到受害者处。
最弱链问题可通过计算重构最弱链所需的平均攻击包数E(N)来定量研究,若E(N)越大,则表示重构最弱链所需的攻击包数越多,说明最弱链问题越严重;反之,若E(N)越小,则说明最弱链问题越不严重。
重构最弱链所需的平均攻击包数E(N)的计算公式为:
其中,a1(p)表示数据包被攻击路径上第1个路由器(即“最弱节点”)标记且不再被后续的路由器覆盖标记的概率,称为首路由最终标记概率。
分析函数E(N)=f(a1(p))的单调性可知:若a1(p)越大,则E(N)越小;若a1(p)越小,则E(N)越大。因此,通过计算MPM、DPPM、PPM这3种标记方案的a1(p),来比较三者的E(NMPM)、E(NDPPM)、E(NPPM)。
设a1(p)表示MPM下数据包被攻击路径上第1个路由器标记且不再被后续的路由器覆盖标记的概率,假设攻击路径上共有32个路由,则有a1(p)=1/32。在MPM中,数据包是否会被攻击路径上第1个路由器(即“最弱节点”)标记,取决于该数据包的ID值进行模运算后的结果(ID%32+1)是否等于1,而(ID%32+1)的结果是{1,2,…,32}之间的随机值,则数据包被最弱路由节点标记的概率等于1/32。而且MPM方案不存在覆盖标记问题,故数据包被“最弱节点”最终标记的概率也等于1/32。
DPPM和PPM的首路由最终标记概率a1′(p)、a1″(p)的计算如下:
a1′(p)=1/d=1/32≈0.03125
a″1(p)=p(1-p)d-1≈0.01128
其中,p取0.04,即固定概率中的最佳参数;d取32,即数据包在实际因特网中的最大跳数。
综上可知,MPM、DPPM、PPM三种方案的首路由最终标记概率分别为0.03125、0.03125、0.01128,因此三者最弱链重构包数为E(NMPM)=E(NDPPM)<E(NPPM),MPM方案在最弱链问题方面比PPM要好,和DPPM情况一样。
更进一步地,在具体实施中,整个机制的工作流程包含以下4个阶段:
1)、标记过程实现阶段。基于NS2仿真平台的数据包是由packet类来进行模拟的,因此在packet类的cmnheader中开辟标记空间。标记工作的实现主要在DeqT类中完成,具体为在该类的recv()函数中添加路由标记的功能。
2)、重构过程实现阶段。重构过程的实现牵涉到NS2中的代理(agent)和应用(application),选定具体的代理(agent)并修改完毕之后,需再选择合适的应用(application)与之绑定。
3)、重构包数测试阶段。对3种包标记方案MPM、PPM、DPPM进行重构包数的实验测试,将MPM与PPM、DPPM进行对比,检测MPM方案相比后两者在重构包数方面的变化。
4)、路由负担测试阶段。对MPM、PPM、DPPM进行路由负担的实验测试,将MPM与PPM、DPPM进行对比,检测MPM方案相比后两者在路由负担方面的变化。
本发明基于NS2(NetworkSimulatorVersion2)对MPM算法的若干性能进行实验测试,如重构包数、路由负担等。将模运算包标记MPM与静态概率包标记PPM、动态概率包标记DPPM这两种目前较为经典的包标记方案进行对比,来检测MPM方案相比后两者在追踪性能上的改进之处。
具体地,实验环境为:操作***Ubuntu10.04;软件版本ns-allinone-2.35;编程语言C++、Otcl。实验模拟的网络拓扑如图3所示,攻击者(attacker)通过发送大量数据包发起DoS攻击,所有攻击包依次经过攻击路径上的D个路由器(router1,router2,...,routerD),最终到达并淹没受害者(victim)。所有路由器上均部署包标记机制,可以是3种包标记方案:MPM、PPM和DPPM中的一种。受害者处则设置路径重构功能,即通过收集攻击包来重构整条攻击路径并且定位攻击源。
下面从标记过程实现、重构过程实现、脚本编写与调用这三步来详细阐述实验过程:
1.标记过程实现
考虑到NS2的数据包是由packet类进行模拟,因此标记信息的写入空间即标记空间在packet类中开辟。packet类由一个各种包头(header)组成的栈和一个可选的数据空间(data)构成,如图4所示。
具体地,当一个packet被创建后,header栈中的所有已注册包头都会被定义,且已知各个header在栈内的偏移(offset)。NS2中任何一个网络对象都可通过该偏移量来访问各种包头。选择在cmn头中开辟标记空间,因为NS2中支持cmn头的应用和代理是最多的,使用cmn包头来承载标记信息是最为方便的。在/usr/ns-allinone-2.35/ns-2.35/common目录下打开packet.h文件,找到hdr_cmn类的定义,在其中添加相关代码来开辟标记空间。
开辟标记空间之后,需要实现标记过程的记录工作。NS2的记录工作是由trace类来完成的。NS2通过trace文件来保存整个模拟过程,用户可以对trace文件进行分析研究,获知自己所需的实验信息。
trace对象是嵌入在链路(link)对象中来实现其功能的,这是因为一个节点(node)的packet输出队列是输送给link对象的。NS2将trace对象嵌入在link对象中来完成对一些网络动作的记录,如packet的标记工作等。嵌有trace的link对象如图5所示。
trace是一个复合对象,由EnqT、DeqT、DrpT、RecvT四个简单对象组成,分别记录分组到达并进队、分组出队、队列溢出导致分组被丢弃、分组抵达链路的相关信息。trace嵌入到link后,交付给link对象的packet也会传送给trace对象。本实验采用在trace的DeqT中进行标记工作,因为正确出队的packet是送给DeqT,丢弃的packet则是送给DrpT,而标记工作只需针对链路队列上成功出队的packet,而无需考虑被丢弃的packet,因此在DeqT中做相关工作最为合适。在/usr/ns-allinone-2.35/ns-2.35/trace目录下找到trace.h,trace.cc文件,标记工作的实现主要在DequeTrace类中完成,具体为在该类的recv()函数中添加路由标记的功能。
2.重构过程实现
重构过程的实现牵涉到NS2中的代理(agent)和应用(application)。NS2中代理(agent)是绑定在节点(node)之上的,作用是负责发送和接收packet,并按照网络协议的相关规则处理packet,相当于一个发包收包器;应用(application)是绑定在代理(agent)之上的,作用是通知下面的agent何时开始发送packet、以多少的速率进行发送、何时结束发送等,相当于一个数据流产生器。
NS2中的Agent类针对不同的网络协议分别有不同的派生类与之对应,本实验中的agent采用TcpAgent类,该类是目前NS2中应用最多的agent之一,可以支持FTP、Telnet等多种application。在/usr/ns-allinone-2.35/ns-2.35/tcp目录下找到tcp.h、tcp.cc文件,重构过程的实现主要在TcpAgent类中完成,在该类的recv()函数中添加路径重构的功能。
选定具体的代理(agent)并修改完毕之后,需再选择合适的应用(application)与之绑定。因为agent仅负责发包和收包的具体工作,而不能控制发包收包的宏观过程。因此agent之上需要绑定一个application,application充当一个流量产生器,对agent包处理器进行宏观上的操控。因为CBR是最常用的流量产生器,NS2中支持CBR的agent种类也最多,因此本发明采用CBR(ConstantBitRate)作为应用。由于路径重构工作已在agent中完成,application只需负责发包收包的具体命令,在之后的Otcl脚本编写中直接使用CBR即可。
3、重构包数的测试
对3种包标记方案MPM、PPM、DPPM进行重构包数的实验测试,一方面检验关于MPM重构包数的理论推导公式是否成立,另一方面将MPM与PPM、DPPM进行对比,来检测MPM方案相比后两者在重构包数方面的变化。
下面给出关于重构包数的实验测试结果与分析。
针对每一种标记方法,共研究路由总数为1,2,3,…,32的32种情况;
针对每一种标记方法,在每一种路由总数D(1≤D≤32)的情况下,统计其重构一条包含D个路由的攻击路径所需的攻击包数。共做1000次实验,求得1000次实验下的平均重构包数。实验结果如图6所示。
分析图6中3种标记方案PPM、DPPM、MPM的实验数据,可以得出:
在任何路由总数(1~32)的情况下,PPM的重构包数都是最多的。即重构一条相同路由总数的攻击路径,MPM与DPPM所需的攻击包数要大大小于PPM所需包数。且当路由总数越大时,MPM与DPPM之于PPM的优越性越为明显,其所节省的攻击包数越多。
再单独比较MPM与DPPM的重构包数,则发现:
当路由总数在1~8之间时,MPM重构包数>DPPM重构包数;
当路由总数在8~32之间时,MPM重构包数<DPPM重构包数。
可见,当路由总数较小(1~8)时,MPM重构包数比DPPM略多,性能较DPPM略差,但其差距很小,最大不过相差16个包;当路由总数较大(8~32)时,MPM重构包数较DPPM要少,性能较MPM要好;当路由总数很大(20~32)时,MPM之于DPPM的优越性非常明显。当路由总数为25时,MPM重构包数较DPPM减少65个包;当路由总数为32时,MPM重构包数较之DPPM减少102个包,差距比较明显。
由此可见,模运算包标记MPM是一种重构包数较小(不超过32)的包标记方案,其重构包数要大大小于静态概率包标记PPM;在路由总数较大(大于8)的情况下,其重构包数也要小于动态概率包标记DPPM;尤其在路由总数很大(大于20)的情况下,其重构包数要大大小于DPPM,优越性非常明显。
4、路由负担的测试
本发明对MPM、PPM、DPPM进行路由负担的实验测试。路由负担包括路由器的处理开销和存储开销两个方面,路由处理开销通过统计路由器的平均标记次数来衡量,标记次数越多,则说明处理开销越大。实验将MPM与PPM、DPPM进行对比,来检测MPM方案相比后两者在路由负担方面的变化。
下面给出关于路由负担的实验测试结果与分析。
针对每一种标记方法,共研究路由总数为1,2,3,…,32的32种情况;
针对每一种标记方法,在每一种路由总数D(1≤D≤32)的情况下,统计其重构一条包含D个路由的攻击路径所需的路由标记次数(指攻击路径上所有路由器的标记次数之和)。共做1000次实验,求得1000次实验下的平均标记次数。
实验结果如图7所示。
分析图7中3种标记方案PPM、DPPM、MPM的实验数据,可以得出:
路由的标记次数(按次数多少排序):MPM<PPM<DPPM
路由的处理开销(按开销大小排序):MPM<PPM<DPPM
3种标记方法中,重构一条相同路由总数的攻击路径,DPPM所需路由器的标记次数是最多的,PPM其次,而MPM所需标记次数则相对很少。也就是说,在路由器的处理开销方面,DPPM开销最大,PPM其次,而MPM的开销则很小。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的***及其各个装置以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的***及其各个装置以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的***及其各项装置可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (6)
1.一种基于模运算的拒绝服务攻击返回追踪方法,其特征在于,包括如下步骤:
步骤1:利用IP包头的标识域,即ID域,执行模运算包标记方法Modulo-arithmeticPacketMarking,简称MPM;
步骤2:利用节点采样方法转发路由器的节点信息,并将路由位置和路由地址写入数据包的标记空间;
具体地,利用IP包头的ID域和Option域用作标记空间;选取标识flag字段记录数据包是否被标记的信息,使用生命周期TimeToLive,简称TTL,记录数据包的当前TTL值;使用IP地址字段记录当前路由器的IP地址;
步骤3:通过IP包头中ID域的值进行模运算,实现路由标记,即确定待转发数据包由攻击路径上的哪个路由器执行标记运算;
步骤4:受害端通过检测数据包中的标记信息,进行路径重构。
2.根据权利要求1所述的基于模运算的拒绝服务攻击返回追踪方法,其特征在于,所述步骤2中的路由位置是指当前路由在攻击者至受害者方向的攻击路径上的第几个路由器;
路由地址是指当前路由在因特网中的IP地址,通过路由的IP地址信息能够在因特网中精确定位当前路由器,其中路由IP地址的标记需4字节,即32比特。
3.根据权利要求2所述的基于模运算的拒绝服务攻击返回追踪方法,其特征在于,所述步骤1中的模运算包标记方法是指通过待转发数据包的IP包头中的ID域的值进行模运算,来确定被攻击路径上由哪个路由器来标记;
具体地,MPM只将5比特的路由位置信息填入ID域中,而将32比特的路由地址信息填入IP包头的可选域,即option域,中;MPM还需在ID域中选取1比特空间作为flag标志位,用来标识数据包是否已被标记。
4.根据权利要求3所述的基于模运算的拒绝服务攻击返回追踪方法,其特征在于,所述步骤3中假设攻击路径上共有D个路由,其中D≤32,若当前数据包的标识字段的值为ID*,则计算出当前数据包应由攻击路径上第i个路由器来标记,其中1≤i≤D,模运算计算公式如下:
i=ID*%32+1
式中,ID*%32表示求余,且ID*%32∈{0,1,2,…,31},所以i∈{1,2,3,…,32};
具体地,包括:
步骤3.1:当路由器收到一个数据包后,通过检测flag标志位的值来判断数据包是否已被标记;若数据包尚未被标记,则计算出该数据包应由攻击路径上第i个路由器标记;
步骤3.2:当前路由器根据该数据包IP包头中的TTL值计算出自己是攻击路径上第i’个路由器,其中i’=32-TTL;
步骤3.3:判断i’是否等于i,若i’=i则路由器对该数据包进行标记,若i’≠i则不对该数据包进行标记。
5.根据权利要求3所述的基于模运算的拒绝服务攻击返回追踪方法,其特征在于,所述步骤4包括:
步骤4.1:受害端收到一个数据包后,检测flag标志位来判断数据包是否被标记过;若该数据包被标记过,则受害者需利用该数据包携带的路由标记信息进行路径重构工作;若该数据包未被标记过,则舍弃;
步骤4.2:判断数据包携带的路由标记信息是否为新的信息,若为重复信息则舍弃,若为新信息则在攻击路径中加入对应的路由节点;
步骤4.3:判断整条攻击路径是否重构完成,若已全部重构完成,则终止重构程序,若尚未重构完成,则继续处理下一个数据包。
6.根据权利要求1所述的基于模运算的拒绝服务攻击返回追踪方法,其特征在于,在模运算包标记方法MPM中,具体地:
Flag用于标识数据包是否被标记,占ID域中的1比特空间,取值为0或1;若flag为0表示数据包尚未被标记,若flag为1表示数据包已被标记;
TTL用于记录数据包的当前TTL值,占ID域中的5比特空间,取值范围为0~31;
IP地址用于记录当前路由器的IP地址,占Option域的32比特空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610105009.8A CN105791275A (zh) | 2016-02-25 | 2016-02-25 | 基于模运算的拒绝服务攻击返回追踪方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610105009.8A CN105791275A (zh) | 2016-02-25 | 2016-02-25 | 基于模运算的拒绝服务攻击返回追踪方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105791275A true CN105791275A (zh) | 2016-07-20 |
Family
ID=56403731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610105009.8A Pending CN105791275A (zh) | 2016-02-25 | 2016-02-25 | 基于模运算的拒绝服务攻击返回追踪方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105791275A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109302427A (zh) * | 2018-11-30 | 2019-02-01 | 西安交通大学 | 一种定位考虑攻击精度的骨干链路DDoS攻击目标链路的方法 |
CN112272178A (zh) * | 2020-10-23 | 2021-01-26 | 西安电子科技大学 | 基于动态概率双域包标记的攻击数据包溯源方法及*** |
CN117235200A (zh) * | 2023-09-12 | 2023-12-15 | 杭州湘云信息技术有限公司 | 基于ai技术的数据集成方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1997023A (zh) * | 2006-12-19 | 2007-07-11 | 中国科学院研究生院 | 用于ip追踪的内部边采样方法和*** |
CN103249177A (zh) * | 2012-08-13 | 2013-08-14 | 常州大学 | 一种无线传感器网络中DDoS攻击的追踪方法 |
-
2016
- 2016-02-25 CN CN201610105009.8A patent/CN105791275A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1997023A (zh) * | 2006-12-19 | 2007-07-11 | 中国科学院研究生院 | 用于ip追踪的内部边采样方法和*** |
CN103249177A (zh) * | 2012-08-13 | 2013-08-14 | 常州大学 | 一种无线传感器网络中DDoS攻击的追踪方法 |
Non-Patent Citations (1)
Title |
---|
刘红: "基于DPPM的IP追踪方法研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109302427A (zh) * | 2018-11-30 | 2019-02-01 | 西安交通大学 | 一种定位考虑攻击精度的骨干链路DDoS攻击目标链路的方法 |
CN109302427B (zh) * | 2018-11-30 | 2020-06-19 | 西安交通大学 | 一种定位考虑攻击精度的骨干链路DDoS攻击目标链路的方法 |
CN112272178A (zh) * | 2020-10-23 | 2021-01-26 | 西安电子科技大学 | 基于动态概率双域包标记的攻击数据包溯源方法及*** |
CN112272178B (zh) * | 2020-10-23 | 2021-11-30 | 西安电子科技大学 | 基于动态概率双域包标记的攻击数据包溯源方法及*** |
CN117235200A (zh) * | 2023-09-12 | 2023-12-15 | 杭州湘云信息技术有限公司 | 基于ai技术的数据集成方法、装置、计算机设备及存储介质 |
CN117235200B (zh) * | 2023-09-12 | 2024-05-10 | 杭州湘云信息技术有限公司 | 基于ai技术的数据集成方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bertin | XDP in practice: integrating XDP into our DDoS mitigation pipeline | |
CN108701187A (zh) | 混合硬件软件分布式威胁分析 | |
EP3343864A1 (en) | Reputation-based application caching and white-listing | |
CN1997023B (zh) | 用于ip追踪的内部边采样方法和*** | |
CN101518017A (zh) | 用于因特网协议(ip)追踪的基于自治***的边缘标记(asem) | |
CN105791275A (zh) | 基于模运算的拒绝服务攻击返回追踪方法 | |
CN109120602B (zh) | 一种IPv6攻击溯源方法 | |
CN102045344B (zh) | 一种基于路径信息弹性分片的跨域溯源方法及*** | |
CN103973801B (zh) | 一种无线传感器网络溯源追踪方法 | |
Cui et al. | TDDAD: Time-based detection and defense scheme against DDoS attack on SDN controller | |
CN101316232B (zh) | 基于网络协议版本6的分片重组方法 | |
CN106302450A (zh) | 一种基于ddos攻击中恶意地址的检测方法及装置 | |
CN105959328A (zh) | 证据图与漏洞推理相结合的网络取证方法及*** | |
Wang et al. | Honeynet construction based on intrusion detection | |
Lai et al. | Ant-based IP traceback | |
Aghaei-Foroushani et al. | On evaluating ip traceback schemes: a practical perspective | |
Wang et al. | Towards the automatic generation of mobile agents for distributed intrusion detection system | |
Mershad et al. | Blockchain model for environment/infrastructure monitoring in cloud-enabled high-altitude platform systems | |
Singh et al. | SecureFlow: Knowledge and data-driven ensemble for intrusion detection and dynamic rule configuration in software-defined IoT environment | |
Arya et al. | Detection of malicious node in vanets using digital twin | |
Praveena et al. | Hybrid approach for IP traceback analysis in wireless networks | |
CN115051851B (zh) | 物联网场景下的用户访问行为管控***和方法 | |
CN102523208A (zh) | 多核架构下的应用层协议并行处理方法 | |
CN106878019B (zh) | 基于STiP模型的安全路由方法及*** | |
Tahmassebpour | Immediate detection of DDoS attacks with using NetFlow on cisco devices IOS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160720 |