用于ip追踪的内部边采样方法和系统的制作方法

文档序号:7974843阅读:201来源:国知局
专利名称:用于ip追踪的内部边采样方法和系统的制作方法
技术领域
本申请涉及IP追踪技术,尤其涉及基于边采样的概率包标记(PPM)的IP追踪方法和系统。
背景技术
随着互联网的发展,出现了各种针对协议或操作系统设计缺陷的网络攻击。DoS/DDoS攻击(拒绝服务攻击/分布式拒绝服务攻击)的原理是在一定时间段内直接或者通过跳板向目标网络发送大量的特定数据包(如服务请求包,TCP SYN包等),极大地消耗网络带宽或系统资源,引起目标网络的阻塞甚至瘫痪。这些攻击包的源IP地址通常是经过伪造的。被攻击网络如何根据收到的数据包,最大可能地追踪和定位攻击者位置,封堵DoS攻击来源,称为IP地址追踪技术。
虽然IP包头源地址是虚假的,但每个IP包都必须经过从攻击者到目标机之间的路由器转发。借助路由器对数据包进行标记或记录,从而根据收到的数据包重构出攻击路径,是IP追踪研究的基本思路。
近年来的IP追踪研究工作基本上分为“单独生成追踪信息专用数据包”和“IP数据包标记”两大类。前者会增加网络带宽负荷,不易升级,反而充当了一种DoS攻击行为。后者经历了从“节点附加”和“节点采样”到“边采样”标记的发展过程。自2000年Savage等人提出了“边采样”标记方法之后,主流的IP追踪技术进入了“基于日志记录的追踪技术”和“基于边采样的概率包标记(PPM)技术”两大阵营的时代。
在节点附加方法中,每个路由器将自己的IP地址附加在标记数据包的后面。其缺点是标记包长度不可控,容易引起标记包的再分片,攻击者可以添加虚假信息路径信息。在节点采样标记方法中,路由器按照某种概率将32位IP地址记录到IP头某个位置。其缺点是,没有很好地考虑IP头中有没有足够空间存储32位IP地址。
基于日志记录的IP追踪技术要求路由器通过对每个转发包进行Hash运算记录数据包摘要信息。路径重构时,通过获取的攻击包,进行递归得到相邻路由器地址,从而恢复出整个攻击路径。在高速链路情况下,由于数据包到达的速度和记录速度必须相匹配,此方法适合范围受到限制。
基于传统边采样的概率包标记(PPM)技术适合DoS攻击追踪。路由器以一定概率对数据包进行标记,标记内容包括攻击路径上任两个相邻路由器的地址,即攻击路径图上的“边”,以及“边”到攻击目标的距离。被攻击者根据收到的标记信息恢复攻击路径。一般认为IP头域中适合标记的空间有17位16bit的包标识域和1bit的分片标志flag的最高位。受此空间限制,标记信息往往需要先分片再进行标记。为了重构时将标记片段正确地组合在一起,有些算法基于范德蒙行列式生成标记信息分片;有的将IP地址的Hash结果作为标记信息中的认证码或者将Hash结果和IP地址隔位插入作为标记信息。
PPM已成为IP地址追踪研究的一个主要方向。许多研究人员在PPM标记概率、标记信息分片、防止伪造包的加密和认证技术等领域开展研究工作。
图1是目前PPM所依赖的IP地址追踪技术中的传统“边采样”示意图。Attacker表示攻击发起者,Victim表示攻击目标,R表示路由器。从左侧网络拓扑示意图可以看出传统边采样中,路由器是图的顶点,相邻顶点构成了图的边。右侧图中黑实线表示两个攻击者发起的攻击路径(R5,2R4,2R3,1R2,1R1,1)和(R3,3R2,1R1,1),每条攻击路径由若干个相邻接路由器组成的“边”连接而成。
PPM方法基于这些传统边采样技术,存在如下三个问题。
1)传统“边”由相邻路由器构成,下游路由器打标记时必须知道相邻上游标记路由器地址。否则,无法生成“边”信息。当两个非相邻标记路由器之间有其他非标记路由器时,问题更为突出,因为标记路由器必须知道跨越这几个非标记路由器之前的那个“相邻”标记路由器的地址,才能完成这条边的标记。图1中,路由器R2,1必须知道自己上游相邻路由器R3,1,R3,2,R3,3的地址,并且将其地址分别和自己的地址进行运算作为对应的标记信息。如果R3,1不具备标记功能,则R2,1必须知道R3,1不是标记路由器,不能和其进行运算,而且还要知道该方向上最相近的标记路由器R4,1和R4,2的地址,并和其进行运算,显然这是非常困难的。
2)在重构时要将收集到的标记片断信息和特定运算结果对照数据库中的片断信息进行对比,以此确定攻击路径上参与标记的路由器。因此在攻击路径重构之前必须有一个重构对照数据库,保存各路由器IP地址,或者这些地址的Hash结果,或者相邻路由器地址异或结果。3)传统方法中将一台路由器定义为图上的一个顶点,两个顶点构成一条边。因此只能用一个IP地址代表该路由器作为顶点的信息。路由器的IP地址与其自身各个网络接口是对应的,无论用哪个网络接口上的IP地址来代表该路由器,都容易引起攻击重构时假边的产生,从而将重构引入歧途。

发明内容
基于现有技术中的上述问题,本发明提出了一种新颖的用于标记路由器的“内部边采样”的方法来替代传统的边采样方法。
依据本发明的一个方面,提供了一种对经过标记路由器的网络接口的数据包进行处理的方法,其中所述标记路由器包括至少两个网络接口。该方法包括针对进入所述标记路由器的一个网络接口的数据包,在数据包的IP包头中写入标记信息,其中所述标记信息包括所述网络接口的网络接口信息;针对离开所述标记路由器的所述网络接口的数据包,判断所述数据包是否是已标记数据包;如果所述数据包是已标记数据包,则取出所述标记信息中包括的网络接口信息,并将所述标记信息中包括的网络接口信息与当前的网络接口的网络接口信息组合在一起,构成一个IP地址边;以及,将所述IP地址边写入所述数据包的标记空间。针对进入所述标记路由器的一个网络接口的数据包,在数据包的IP包头中写入标记信息,其中所述标记信息包括所述网络接口的网络接口号;针对离开所述标记路由器的所述网络接口的数据包,判断所述数据包是否是已标记数据包;如果所述数据包是已标记数据包,则取出所述标记信息中包括的网络接口号,并将所述标记信息中包括的网络接口号与当前的网络接口的网络接口号组合在一起,构成一个IP地址边;以及,将所述IP地址边写入所述数据包的标记空间。
优选地,该方法进一步包括将所述IP地址边分成k个分片,将一个1/k分片的边地址信息写入所述数据包的标记空间。其中,将所述IP地址边写入所述数据包的标记空间的步骤包括将所述IP地址写入用于标识数据包的ID域和用于分片的Flags字段的最高位。
依据本发明的另一个方面,提供了一种对数据包所经过的路径进行重构的方法,包括取出所述数据包中包含的标记信息,其中,该标记信息包括由所经过的路由器的入口网络接口信息和出口网络接口信息组合在一起的地址信息;根据所述标记信息得到所述数据包所经过的路由器的地址信息。
优选地,该方法进一步包括将标记信息存储在数据库中。并且,该标记信息进一步包括所述数据包的距离和分片偏移号。优选地,该方法进一步包括通过将标记信息与数据库中存储的标记信息记录进行比较,得到所述路由器的地址信息。
依据本发明的另一个方面,提供了一种对数据包经过的路由器进行标识的方法,包括记录所述数据包进入路由器所经过的入口网络接口的信息以及数据包离开路由器所经过的出口网络接口的信息;以及,以所述入口网络接口的信息和所述出口网络接口的信息对所述路由器进行标识。
依据本发明的另一个方面,提供了一种对经过标记路由器的网络接口的数据包进行处理的设备,其中所述标记路由器包括至少两个网络接口,所述设备包括用于实现所述的方法中的各个步骤的装置。
依据本发明的另一个方面,提供了一种对数据包所经过的路径进行重构的设备,包括用于实现如权利要求4-7所述的方法中的各个步骤的装置。


包含在说明书中并构成说明书的一部分的附图用于图解说明本发明的实施例,并和上面给出的概述及下面给出的实施例的详细说明一起用于解释本发明的原理,其中图1是显示传统的IP地址追踪方法中的边采样的示意图。
图2是显示依据本发明的标记路由器及其内部边的示意图。
图3是显示依据本发明的IP地址追踪方法的路由器内部边采样的示意图。
图4是显示IPv4格式的数据包头的示意图。
图5是显示依据本发明的RIES方法中的路由器标记方法的示意图。
图6是显示依据本发明的RIES方法中的重构方法的示意图。
图7是显示在受攻击目标处的标记包存储格式的示意图。
图8是显示在传统的边采样方法中重构出的假边的示意图。
图9是显示基于本发明的RIES方法的PPM测试实验网络的拓扑图。
具体实施例方式
以下参照附图对依据本发明的方法和系统的实施例进行详细描述,但应指出的是,下文中描述仅用于示例和说明的目的,而不构成对本发明的限制。在下文中描述中了大量技术细节以便更清楚地解释本发明,并使本领域中的技术人员能够据此实现本发明,但这并不意味着本发明的实现必须依赖于这些细节;相反,可实现本发明而没有所述的一些特征,或具有附加的或不同的特征。
根据现在的互联网或者大型局域网上的部署,标记路由器的部署是循序渐进、分步实施的,即攻击路径上的路由器并非都具有标记功能,导致标记路由器之间可能夹杂非标记路由器。若非借助于ISP(网络服务商)或者其他人工告知方式,下游路由器很难自动获知上游最近的标记路由器地址。尤其是每条“边”的信息必须分片标记,下游路由器无法从上游来的数据包中发现上游标记路由器完整的IP地址信息,从而无法将其与本机IP地址进行运算生成标记信息。
并且,互联网协作的无组织特点,很难让所有的ISP或某个组织来登记和管理标记路由器IP地址库。尽管获取网络拓扑图是容易的,然而很难维护一个仅将所有标记路由器按照邻接关系进行地址运算的重构参照数据库。
由于上述问题,目前绝大多数基于“传统采样边”的PPM方案都有标记和重构两方面实施上的问题。
针对上述问题,本发明提出了一种新颖的用于标记路由器的“内部边采样”的方法来替代传统的边采样方法。其中,本发明将“边”的位置定义在标记路由器内部,顶点恰好是同一台路由器的一对网络接口。数据包流经路由器上的一对网络接口构成路由器内部的一条“内部边”。图2显示了依据本发明的标记路由器及其内部边的示意图。
定义1标记路由器R=(IFlocal,ER,IFwan),每台标记路由器都可以从路由器网络接口的角度将路由器定义为三元组。
IFlocal={L0,L1,L2,...,Lm}表示该路由器本地网络接口集。
IFwan={S0,S1,S2,...,Sn}表示该路由器广域网络接口集。
ER={(SinSout)|Sin,Sout∈R.IFwan,Sin≠Sout},是路由器的“内部边”集合。数据包经过路由器是有入/出方向的,Sin和Sout分别表示某个数据包流经标记路由器时经过的入口和出口。这两个网络接口相连便在路由器体内形成一条内部边,指向该包流经的方向。ER是路由器R内部所有可能的内部边的集合,一个数据包只能经过其中的一条。入口和出口仅仅是相对于一个包而言的。在路由器任意一个网络接口上,针对入/出数据包的处理策略不同(见算法部分)。图2下方示意了不同方向的数据包流经某标记路由器时,网络接口对不同方向的数据包分别起到了入口和出口的标记作用,并由此产生的内部边。
按照一定的标记算法,路由器将内部边信息写入数据包,根据对这些包的统计分析,即可恢复出攻击路径。
定义2攻击路径P=(A,EPATH,Victim),A∈{Attacker1,Attacker2,...Attackern},Attacker表示攻击发起者,Victim表示攻击目标。EPATH=(edge1,edge2,...edged),表示从距离d处发起的攻击所经过的标记路由器“体内采样边”连接而成的一条路径,其中edgei=Ri.(SinSout)。
定义3攻击路径图G=(EG,VG)VG={Ri.IFwan|i=1,2,...}表示图G的“顶点”集合是所有路由器的广域网络接口集。
EG={edgei|i=1,2,...}表示图G的“边”集合是所有路由器体内网络接口连接而成的“内部边”集合。
图3显示了IP追踪技术中的路由器内部边采样的示意图,其中,左图示意了“内部边”标记路由器部署后的网络拓扑图。圆框表示非标记路由器,矩形框表示标记路由器。图3右图演示了从R7,1和R7,4处发起攻击后,攻击包所经过的路径上标记路由器“内部边”连接而成的攻击路径图。尽管来自Attacker1的攻击路径(R7,1R6,1R5,1R4,1R3,1R2,1R1,1)中夹杂了非标记路由器R6,1,R4,1和R2,1,参照网络拓扑图能够实现该路径的重构恢复。
标记域的选择数据包标记技术将标记信息存储于IP头内。图4显示了IPv4包头格式。本发明结合图4对IPv4格式的包头中可能被利用的字段进行了分析。本领域技术人员能够了解,本发明不仅仅适用IPv4格式的数据包,对于其他格式的数据包也同样适用。
实际网络中只有不到0.25%的数据包可能被分片,因此研究人员大多将注意力放在标识数据包的ID域和Flags字段上。结合实验,我们认为IP头域中17位空间存储标记信息是比较可靠的,即用于标识数据包的ID域(16bit)和用于分片的Flags字段的最高位(1bit)(图4中ID字段和Offset字段之间的3位是Flags字段)。因此,本发明使用IP头中的17位空间存储标记信息(见图4中的阴影部分)。然而,本发明并不仅限于使用IP头域中的这17位空间,也不限于17位的位数,只要能在IP头中找到适当的存储空间来存储本发明的内部边信息,都能够实现本发明。并且,如果能找到更多存储空间来存储边信息,则基于边采样的PPM功能会更为强大。
标记信息受标记空间限制,基于边采样的PPM技术一般将一条64bit的“边”划分为若干标记片段。本发明采用常用的8片段方式,每个标记信息片段格式如下

c数值0~7,表示是该边的第几个片段。
distance数值1~31,表示标记路由器到目标机距离。
flag数值0或1。当flag取1时表示此数据包为已标记包。
edgei[c]路由器Ri内部边edgei的第c个1/8片段信息,长度为8bit。
“内部边”edgei是数据包流经路由器Ri时经过的两个网络接口Sin和Sout构成的。要标记的内容是它们的64位IP地址对,记为(IPin,IPout),即“内部边”edgei=(Sin,Sout)=(IPin,IPout)。本发明研究基于“内部边”采样的PPM技术,因此标记路由器知道位于本机的edgei数值,可以直接打入标记包,而不需要像传统“边采样”那样去获取相邻路由器地址来进行各种计算作为标记信息。
每条边是一个64bit的地址对(IPin,IPout),因此每个1/8片段信息edgei[c]∈{Ri.IPin
,Ri.IPin[1],Ri.IPin[2],Ri.IPin[3],Ri.IPout
,Ri.IPout[1],Ri.IPout[2],Ri.IPout[3]}。
下面将结合图5和图6描述依据本发明的IP地址追踪方法中所采用的路由器标记方法和重构方法。其中,图5是显示依据本发明的路由器标记方法的示意图。图6是显示依据本发明的重构方法的示意图。
本发明研究的RIES(路由器内部边采样)方法中“边”的位置与传统边采样中“边”的位置不同传统“边”的顶点是相邻的两台路由器;RIES“边”定义在路由器内部,顶点恰好是数据包经过标记路由器时的两个网络接口(地址)。标记路由器只需要关注数据包在本体所流经的入口和出口,并将对应的地址作为路径片段标记在数据包上。
本发明的标记方法可以在标记路由器的任一网络接口(相当于标记设备的任一网卡)上运行。如图5所示,步骤S510-S530显示了针对进入该网络接口的每个数据包所进行的处理,在步骤S520,该网络接口判断是否发生了小概率[f1]事件。如果是,则流程进行到步骤S530,在数据包的IP头中写入标记信息(数据结构)距离=0;标记标志位=1;边的地址信息=该网络接口信息(网络入口信息,其中,网络接口信息可以是网络接口号,也可以网络接口地址。如果在步骤S520判断未发生小概率事件,则不对数据包进行任何处理,流程返回到步骤S510继续进行。另外,在步骤S540到S590显示了针对离开该网络接口的每个数据包所进行的处理,在步骤S550,判断该离开网络接口的数据包是否是已标记包。如果不是已标记包,则对此数据包不进行处理,流程返回到步骤S540,继续分析下一个数据包。如果是已标记包,则流程进行到步骤S560,进一步判断该数据包是否是刚被本机[f2]标记过的含有入口网络接口信息的数据包,即该数据包在进入同一个路由器时被某个网络接口作为该数据包的入口网络接口进行了标记。具体地,可以通过判断标记距离是否为0来实现,也可以通过[f3]判断标记域中其他约定好的在入口网络接口所标记的特定信息来确定。如果在步骤S560判断该数据包是刚被本机[f4]标记过的数据包,则流程进行到步骤S570,取出标记中的网络入口信息,将该入口与本网络接口构成64位IP地址边。然后流程进行到步骤S580,将构成的64位IP地址边分成k个分片(在这里k=8),每个分片含有64/k位IP地址。将一个1/k分片的边地址信息写入该数据包标记空间,并在步骤S590将距离参数的值递增,并写入该数据包标记空间。如果在步骤S560判断该数据包不是本机的已标记包,则流程进行到步骤S590,将距离递增,并写入该数据包的标记空间。重复上述步骤继续处理下一个进入该网络接口的数据包。[f5]依据本发明的一个具体实施例的标记过程算法如下


通过上述的标记算法,可以将一个数据包所经过的路由器的信息标记在数据包上。
下面将描述在重构机中实现的重构步骤。
重构机位于被攻击目标所在网络内,将听到的包按距离和同一条边的1/8分片号存入库中。图7显示了在攻击目标处的标记包存储格式的示意图。
标记方法中按顺序产生1/8分片,明文标记各片的IP地址。在DDoS攻击时,对于相同距离和分片序号的不同地址分片,参照路由拓扑可以实现定位。
具体的重构方法可以在Victim网络内的重构机上实现。从每个标记包中提取标记信息,按照一定规则存入一个重构数据库中,当发生单路径攻击时,该数据中的记录能够按照距离大小顺序,直接提供攻击路径的恢复。当发生多路径攻击时,数据中的记录对比“参考拓扑图”,同样可以恢复攻击路径。
该重构方法首先读入每个标记包的包头,取出标记信息(数据结构),从该标记信息中可以得到该包的距离d、分片偏移号β、分片标记地址seg等信息。在重构数据库中已经保存的相同距离和相同偏移号的分片记录有η条(库中对应存在η条记录),所以必须将该分片进行正确定位。其中,数据库中每一条分片记录是一个数据结构,包括k个分片(在这里k=8),这k个分片全部收齐后,将组成一条完整的边,即距离为d的标记路由器上的一对网络接口所连接而成的边,每个分片的偏移号为0~k-1。
如果数据库中已经保存的相同距离、相同偏移号的这η条分片记录中有一条记录的偏移号为β的片段地址等于seg,则说明已收集的那些攻击分片记录中已经登记过同一台标记路由器,将数据库中此条分片记录的偏移号为β的位置的统计个数加1,该统计个数即代表目标机所接收到的经过由所述分片记录代表的标记路由器的偏移号为β数据包的个数。
如果不存在这样的记录,则将相同距离的记录逐条比对,将每条记录中前β个IP片段和本片段连接起来,构成一个长度为(βrη+1)*64/k位长度的“非完整边”信息。如果此“非完整边”属于攻击路径参考拓扑图上的某条距离为d的边,并且该条记录中偏移为β的边片段统计个数为0,则在符合上述条件的记录中写入偏移为β的片段地址为seg,并将其统计个数加1。而如果该条记录中偏移为β的边片段统计个数不为0,则创建一条新记录,将此记录前β个片段的信息拷入新记录,并置新记录的第β+1个片段地址为seg,统计个数置为1。
图6显示了依据本发明的一个具体实施例的重构方法的流程图。首先,在步骤S610,取出数据包中包含的标记信息,如上面所述的,该标记信息可以包含该包的距离d、分片偏移号β、分片标记地址seg等信息。根据该标记信息,在步骤S620判断在重构设备中建立的重构路径数据库中是否有与其距离相同的记录。如果在步骤S620判断为否,则流程进行到步骤S630,判断分片偏移号是否为0。如果为0则在步骤S635舍弃该数据包的信息,并结束对该数据包的处理。如果不为0,则在步骤S636,在数据库中生成一条新记录,并将相应的分片计数置1,然后结束对该数据包的处理。
如果在步骤S620判断数据库中存在与其距离相同的记录,则流程进行到步骤S640,判断数据库中是否有与该数据包的偏移号相同的记录。如果没有,则在步骤S670判断是否可以将此分片与数据库中同距离的记录组合成”非完整边”,即是否属于拓扑图上某条相同距离的边。如果是,则进行到步骤S675,在数据库中记录添加此分片项记录并将分片计数置1,然后结束对该数据包的处理。如果否,则可以在步骤S676舍弃该数据包的信息,并结束对该数据包的处理。
如果在步骤S640判断结果为是,则流程进行到步骤S660,判断数据库记录中对应的标记地址是否相同,如果是,则在步骤S665将分片计数递增。如果步骤S660的判断结果为否,流程进行到步骤S650,判断是否可以将此分片与数据库中同距离的记录组合成”非完整边”,即属于拓扑图上某条相同距离的边。如果是则在步骤S655在数据库中记录添加一条同距离新记录,并将分片计数置1,然后结束对该数据包的处理。如果否,则可以在步骤S656舍弃该数据包的信息,并结束对该数据包的处理。
通过对各个数据包重复上述重构过程,可以在数据库中得到关于各个数据包所经过的路由器的信息。
重构结束时会发现有些记录中最后一个片段的统计数小于某个阈值,可以将这样的记录去掉。在单路径攻击时,数据库中每条记录的距离都不相同,可以直接相连恢复出攻击路径。在多路径攻击时,重构数据库中相同距离的记录可能有多条,将数据库中各条记录中片段构成的“完整边”在攻击路径参考拓扑图上(或者拓扑地址数据库)相比对,即可恢复出攻击路径。
依据本发明的一个具体实施例的重构处理中的部分算法如下


基于RIES方法,无需路由拓扑图可以直接实现DoS攻击路径重构,而借助路由拓扑图可实现DDoS攻击路径重构。
本发明虽然在这里以例示方式显示了可以用于实现本发明的重构算法,但本领域技术人员应该知晓,本发明并不局限于上述重构算法,事实上,可以将基于传统的边采用方法的PPM方法中所采用的重构算法移植到本发明的RIES方法上,用来实现本发明,但显然本发明的重构与已有技术相比要简单得多。
标记算法对比传统边采样标记路由器需要从收到的数据包中获取上游标记路由器地址片段信息,推断出其完整IP地址,再与本机地址进行Hash或插值等运算,生成两路由器连成的边信息再分片打入标记。生成标记信息过程复杂,路径上夹杂非标记路由器时获取上游地址困难。
依据本发明的RIES标记路由器拥有自身所有的网络接口地址,能够严格控制1/8分片标记顺序,标记概率可以随端口策略而定,算法简单,独立于其他路由器,易于实现。
数据包期望基于传统边采样的PPM方法中,往往要求所有路由器参与标记,恢复一条长度距离为d的攻击路径所需要的数据包期望值计算公式如下E(X)<k·ln(kd)p(1-p)d-1]]>k表示每条边的分片数,此处为8。p为标记概率,一般选择4%-5%。可见E(X)与d成正比。传统方法中由于必须路径上的路由器都参加标记,因此距离d传统等于攻击者距离攻击目标的全部路由器跳数。
依据本发明的RIES方法仍然是一种边采样技术。因此,基于RIES的PPM重构数据包期望值计算公式与上式相同。RVER容许攻击路径上非标记路由器的存在,距离d表示攻击者到攻击目标经历了多少标记路由器。
增加标记概率p虽然可以减弱攻击者隐藏来源的能力,却影响链路的吞吐性能。本发明的标记方法中,可以针对同一个路由器上的不同网络接口Si采取不同的标记速率qi。这对于一台路由器上制定各种路径服务策略,决定其中哪些“边”参与标记,各端口设置合适的标记速率提供了可能。
对假标记包的抵御分析1)标记路由器邻接时产生的假边分析传统边采样将一台路由器定义为攻击路径图G上的一个顶点,然后通过工具获得路由器上网络接口的IP地址在拓扑图中表示出该路由器。由于路由器只能选择一个出口或者入口地址代表这个顶点,对于多出口/入口的路由器进行标记就会出现问题。比如,选择出口IP代表路由器,路由器连接如图8中左图时,Ri+1,1有2个不同出口,若以左出口IP代表Ri+1,1位置,则在路径重构时,重构对照拓扑图中边(Ri+1,1,Ri,2)信息与标记包中(Ri+1,1,Ri,2)的信息是对应不上的。同理,选择入口IP代表该路由器,当路由器级连如图8中右图时,也会产生对应不上的问题。
依据本发明的RIES方法在图G的定义中,顶点定义在路由器网络接口上,故而不会产生边的二义性。
2)标记路由器夹杂非标记路由器时产生的假边分析传统边采样中的“边”由两台邻接路由器节点构成的。若攻击路径上夹杂非标记路由器,会误将标记路由器和相邻非标记路由器的地址构造为一条假边。依据本发明的RIES中的“边”在标记路由器体内,不会出现这种情况。
3)注入假包分析攻击者除了修改攻击包中的源地址来隐藏自己外,还会采用注入伪造标记包的方法混淆分析人员的视线。标记算法中往往根据P.flag判断是否为标记包。伪造的假标记包也会将此数值置1,在标记信息域填入假的边信息,使得重构分析误入歧途。
依据本发明的RIES标记路由器对P.flag为1的包进行距离加1操作。(1)假标记包到达目标机时,其距离会大于正常的标记数据包被去掉。(2)在大规模部署时,可以通过对比TTL减少值和距离增加值是否吻合来判断假标记包。
重构DoS和DDoS攻击分析基于“传统边采样”的PPM技术对DoS攻击重构有效,但对于DDoS攻击没有很好的办法。一个非常重要的原因是传统边采样技术中“边”跨越两个路由器,要维护一个所有标记路由器按邻接关系进行地址运算的对照数据库,以便重构时正确定位相同距离层面上的多攻击路径标记片段很难。一些已有技术希望借助于Hash函数或着某种校验算法产生特定标记信息,以减少重构误报率。这要求标记路由器和重构计算机共享相同的Hash算法或校验算法,否则无法在重构时进行标记信息碎片定位。
针对DoS攻击,依据本发明的基于RIES的PPM能够按照攻击距离的顺序和分片号可以直接获得标记路由器的地址,从而快速恢复攻击路径。
针对DDoS攻击,例如当攻击者在距离m层有n条攻击路径时,从算法中可以看出,本发明对该层的任一分片定位不需要收集全该层全部分片后再进行对比定位,从而避免了组合指数问题。
实验设计及结果概率包标记(PPM)的研究工作都是基于传统边采样的。RIES方法仍然是一种边采样,PPM的研究工作同样适用。我们设计了一个基于RIES的PPM实验环境。
实验环境如图9所示。基于RIES技术的标记路由器原理样机Ri+1,Rj+1,Rj+2部署在实际的互联网上。pc1,pc2和pc3为发包测试机。Ri,Rj和Rk是3台处于正常运行的商用路由器,不具备标记功能。标记概率取4%。
实验1Victim={pc3},Attacker={pc1}由Attacker向Victim分别发送TCP和UDP包。
在Victim处抓取IP包头中已标记数据包,将标记信息按照图5的格式换算排列如下

表中看出,数据流路径为(192.168.99.254,192.168.100.131)→(192.168.100.132,192.168.0.253)→Victim实验2Victim={pc2},Attacker={pc1}由Attacker向Victim分别发送TCP和UDP包。
在Victim处抓取IP包头中已标记数据包,将标记信息按照图5的格式换算排列如下

表中看出,数据流路径为(192.168.99.254,192.168.100.131)→(192.168.100.132,192.168.0.253)→→(10.0.5.213,10.0.3.252)→Victim实验3Victim={pc3},Attacker={pc1,pc2}由Attacker向Victim分别发送TCP和UDP包。
在Victim处抓取已标记数据包,由于出现同距离的分片,采用上面所述的重构算法,参照路由拓扑图8,将路径信息按照图5的格式换算排列如下


对照路由拓扑图,可以发现攻击来自两条路径,分别是(192.168.99.254,192.168.100.131)→(192.168.100.132,192.168.0.253)→Victim(10.0.3.252,10.0.5.213)→Victim受标记路由器原理样机个数的限制,本实验仅演示了距离为3,最多2条攻击路径。实验中可看出(1)RIES方法中标记路由器距离d是实际跨越的标记路由器距离,虽然攻击路径上夹杂了Ri,Ri和Rk等非标记商用路由器,以及跨越因特网上若干商用路由器,依然可以忠实地记录数据包经历的网段历程,设备可实现,可分步部署。
(2)RIES标记过程不影响网络中其它正常业务流量。
(3)采用17bit标记空间是可行的。同时我们发现TOS域,Flags低2位以及Offset域修改后的数据包无法跨越实际网络中的商用路由器。
概率包标记(PPM)技术是近年来IP追踪技术的一个主流研究分支方向。许多研究人员在PPM的编码、加密、认证或者标记概率策略等领域开展工作,对重构期望进行仿真计算,而没有进行实际网络中的标记和重构实验。一些研究人员为获取更多标记空间,不合理地占用IP头某些域以承载标记算法。这些标记包并不能通过实际网络进行转发。传统边采样方法不能有效应对DDoS攻击路径重构。
RIES比传统方法更具有可部署性,标记概率策略配置灵活性。重构过程不依赖于复杂运算标记信息对照库。我们给出本发明标记和重构算法,(1)无需路由拓扑图直接实现DoS攻击重构(2)借助路由器拓扑图实现DDOS攻击重构。实验表明标记和重构算法简单,快速有效,结果正确,对于中间跨越商用路由器的实际网络业务不产生影响。即使不更换现有商用路由器,按照本发明思路,依然可以研制和部署基于RIES的PPM标记网关设备。
以上是对本发明的方法的详细描述。如熟悉该技术领域的人员可以看到的那样,本发明可以体现为方法、系统和/或计算机程序产品。因此,本发明可以呈现为完全硬件实施形式、完全软件实施形式或者软件和硬件组合实施形式。
依据本发明的一个具体实施例,提供了一种对经过标记路由器的网络接口的数据包进行处理的设备,其中所述标记路由器包括至少两个网络接口,所述设备包括针对进入所述标记路由器的一个网络接口的数据包、在数据包的IP包头中写入标记信息的装置,其中所述标记信息包括所述网络接口的网络接口号;针对离开所述标记路由器的所述网络接口的数据包、判断所述数据包是否是已标记数据包的装置;如果所述数据包是已标记数据包、则取出所述标记信息中包括的网络接口号、并将所述标记信息中包括的网络接口号与当前的网络接口的网络接口号组合在一起以构成一个IP地址边的装置;以及,将所述IP地址边写入所述数据包的标记空间的装置。
优选地,所述设备进一步包括将所述IP地址边分成k个分片、将一个1/k分片的边地址信息写入所述数据包的标记空间的装置。并且,其中,将所述IP地址边写入所述数据包的标记空间的装置包括将所述IP地址写入用于标识数据包的ID域和用于分片的Flags字段的最高位的装置。
依据本发明的另一个实施例,提供了一种对数据包所经过的路径进行重构的设备,包括取出所述数据包中包含的标记信息的装置,其中,该标记信息包括所述数据包的距离、分片偏移号和分片标记地址;根据所述标记信息得到所述数据包所经过的标记路由器信息的装置;根据所述标记路由器信息对数据包所经过的路径进行重构的装置。优选地,所述设备进一步包括判断在数据库中是否有具有相同标记信息的分片记录的装置,以及,递增该分片记录的统计个数的装置。
此外,本发明的目的也可以通过下述方式实现将存储有上述可执行程序代码的存储介质直接或者间接地提供给系统或设备,并且该系统或设备中的计算机或者中央处理单元(CPU)读出并执行上述程序代码。
此时,只要该系统或者设备具有执行程序的功能,则实施的方式不局限于程序,并且该程序也可以是任意的形式,例如,目标程序、解释器执行的程序或者提供给操作系统的脚本程序等上述这些机器可读存储介质包括但不限于各种存储器和存储单元,半导体设备,磁盘单元例如光、磁和磁光盘,以及其它适于存储信息的介质等。
另外,客户计算机通过连接到因特网上的相应网站,并且将依据本发明的计算机程序代码下载和安装到计算机中然后执行该程序,也可以实现本发明。
以上虽然结合附图详细描述了本发明的实施例,但是应当明白,上面所描述的实施方式只是用于说明本发明,而并不构成对本发明的限制。对于本领域的技术人员来说,可以对上述实施方式做出各种修改和变更而不背离本发明的实质和范围。因此,本发明的范围仅由所附权利要求及其等效含义来限定。
权利要求
1.一种对经过标记路由器的网络接口的数据包进行处理的方法,其中所述标记路由器包括至少两个网络接口,包括针对进入所述标记路由器的一个网络接口的数据包,在数据包的IP包头中写入标记信息,其中所述标记信息包括所述网络接口的网络接口信息;针对离开所述标记路由器的所述网络接口的数据包,判断所述数据包是否是已标记数据包;如果所述数据包是已标记数据包,则取出所述标记信息中包括的网络接口信息,并将所述标记信息中包括的网络接口信息与当前的网络接口的网络接口信息组合在一起,构成一个IP地址边;以及将所述IP地址边写入所述数据包的标记空间。
2.如权利要求1所述的方法,进一步包括将所述IP地址边分成k个分片,将一个1/k分片的边地址信息写入所述数据包的标记空间。
3.如权利要求1或2所述的方法,其中,将所述IP地址边写入所述数据包的标记空间的步骤包括将所述IP地址写入用于标识数据包的ID域和用于分片的Flags字段的最高位。
4.一种对数据包所经过的路径进行重构的方法,包括取出所述数据包中包含的标记信息,其中,该标记信息包括由所经过的路由器的入口网络接口信息和出口网络接口信息组合在一起的地址信息;根据所述标记信息得到所述数据包所经过的路由器的地址信息。
5.如权利要求4所述的方法,进一步包括将标记信息存储在数据库中。
6.如权利要求4所述的方法,其中,所述标记信息进一步包括所述数据包的距离和分片偏移号,
7.如权利要求4到6中的任何一个所述的方法,进一步包括通过将标记信息与数据库中存储的标记信息记录进行比较,得到所述路由器的地址信息。
8.一种对数据包经过的路由器进行标识的方法,包括记录所述数据包进入路由器所经过的入口网络接口的信息以及数据包离开路由器所经过的出口网络接口的信息;以及以所述入口网络接口的信息和所述出口网络接口的信息对所述路由器进行标识。
9.一种对经过标记路由器的网络接口的数据包进行处理的设备,其中所述标记路由器包括至少两个网络接口,所述设备包括用于实现如权利要求1-3所述的方法中的各个步骤的装置。
10.一种对数据包所经过的路径进行重构的设备,包括用于实现如权利要求4-7所述的方法中的各个步骤的装置。
全文摘要
基于边采样的概率包标记(PPM)是IP追踪技术中的一个主流方向。本发明提出一种新型的边采样方法“路由器内部边采样”(RIES),使得PPM标记设备容易实现和部署。在图论模型上,RIES以网络接口替代路由器作为顶点,以路由器“内部边”替代传统采样边。标记路由器对于进入和离开本机任一个网络接口的数据包分别实施入口标记策略和出口标记策略。标记过程不依赖于上下游路由器信息,从而有效地解决了标记路由器的逐步部署问题。该方法实施简单,标记概率的策略配置灵活,可以有效解决分布式拒绝服务(DDoS)攻击的重构问题。
文档编号H04L12/56GK1997023SQ20061016770
公开日2007年7月11日 申请日期2006年12月19日 优先权日2006年12月19日
发明者魏军, 戴英侠, 连一峰 申请人:中国科学院研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1