专利名称:一种无线传感器网络中DDoS攻击的追踪方法
技术领域:
本发明属于网络安全技术领域,尤其是一种针对无线传感器网络中分布式拒绝服务攻击(DDoS)攻击的攻击源追踪方法。
背景技术:
无线传感器网络作为计算机、通信和传感器三项技术结合的产物,在国防军事、环境检测、交通管理等众多领域极具应用前景。近来倍受世人关注且成为未来五大网络趋势之一的物联网,其关键的实现技术之一就是无线传感器网络,这也使得无线传感器网络成为计算机科学领域一个活跃的研究分支。无线传感器网络是由大量部署在监测区域内的微型传感器节点组成,通过无线通信方式形成的一个多跳的自组织网络系统。无线传感器网络中的网络模型主要有分布式和层次式两大类。当无线传感器网络规模较大时一般采用层次式网络模型。在层次式网络模型中,整个网络被分为很多簇,其结构如图2(a)所示。该网络以簇为基本单位,一个簇相当于一个子网络,它由簇头节点和普通传感器节点组成。簇头节点需要协调簇内节点的工作,负责数据的融合和转发。每一个簇头节点可以定义一个标记,记为ID,这些簇头ID不能相同,每个簇内的普通传感器节点也可标识其ID,在一个簇内这些ID也是唯一的。由于无线传感器网络往往被部署在无人职守的开放式环境中,同时单个传感器节点的能量和存储空间有限,因此它很容易受到攻击者的恶意攻击,而分布式拒绝服务攻击(DDoS)则是一种无线传感器网络中常见并危害极大的攻击手段。通常,攻击者通过干扰无线信道,大量插入或丢弃报文等手段发起攻击,消耗传感器节点有限的资源,使得网络部分或者全部瘫痪。因此,当传感器网络被用于具有重要使命的场景中时,如军事上的战场监视、商业上的小区无线防护等等,如何对DDoS攻击采取有效措施就非常重要。
目前国内外已对DDoS攻击检测和溯源进行了大量的研究,提出了很多方法,基本上分成“单独生成追踪信息专用数据包”和“数据包标记”两大类。前者会增加传感器节点的带宽负担,消耗传感器节点资源,实际使用效果不佳。后者都是在2000年Savage等人提出的“边采样”标记方法的基础上发展起来的。Savage等人提出的“边采样”概率包标记方法,适用于传统的IP网络中,路由器以一定的概率对数据包进行标记,标记内容包括攻击路径上任两个路由器的地址,即攻击路径上的“边”以及“边”到攻击目标的距离。被攻击者根据受到的标记过的数据包中的相应信息进行攻击路径的恢复。这种传统的“边采样”标记方法要想移植到无线传感器网络中,存在以下两个问题:
I)传统的“边”由路由器地址构成,无线传感器网络中是不存在路由器的,取而代之的是传感器节点。传统的“边采样”标记方法无法直接在无线传感器网络中使用。2)传统的“边采样”标记方法效率不高,特别是存在多条攻击路径时。事实上,DDoS攻击必定会当存在多条攻击路径,每条路径发起的DDoS攻击的强度是不等的。如何在众多的攻击路径中找出威胁最大的攻击源并最先对其处理,降低误报率,是尚未解决的问题。
发明内容
基于现有技术中的上述问题,本发明提出了一种新颖的无线传感器网络中的数据包标记方法,该方法将数据包进行标记,并利用标记过的数据包进行溯源追踪,找出恶意攻击节点。本发明的技术方案是:一种无线传感器网络中DDoS攻击的追踪方法,依次进行标记方法和路径重构方法,其特征在于:
所述标记方法是在数据包中设置六个标记域的标记信息(first, top, tail, start, end,distance),其中first字段表示攻击数据包所经过的第一个簇头节点的ID ;top字段表示攻击数据包被标记后,经过的第一个簇头节点的ID ;tail字段表示top的下一个簇头节点ID ; start字段表示在分簇内存放边的起始点的普通节点ID ; end字段表示在分簇内存放边的终点的普通节点ID !distance字段表示start字段和最近的簇头节点top字段的距离;其标记步骤包括簇头节点数据包标记方法和普通节点数据包标记方法; 所述簇头节点数据包标记方法的步骤为:
步骤1-1收到数据包的簇头节点,首先检查标记信息中的first字段,如果不为0,就将该簇头节点的ID写入first字段,并且first字段不能被后续的节点重新标记:
步骤1-2当决定以簇头节点标记概率标记数据包时,簇头节点将数据包中的first字段外的全部字段清空,并将其ID写入top字段和start字段;
步骤1-3当决定不标记该数据包时,需检查top字段和start字段,如果top字段为0而start字段不为0,那么该簇头节点就将其ID写入top字段同时将distance的值加I ;如果top和start字段都不为0并且tail字段为0,该簇头节点就将其ID写入tail字段;如果start字段不为0且end字段为0,该簇头节点就将其ID写入end字段;
所述普通节点数据包标记方法的步骤为:
步骤2-1当决定以普通节点标记概率示记数据包时,将first字段以外的其它字段都设置为0,并将该节点的ID写入start字段;
步骤2-2如果决定不标记数据包,需检查top字段和start字段,如果top字段为0而start字段不为0,则将distance的值加I ;如果end字段也为0,则将该节点ID写入end字段;
所述路径重构方法的步骤为:
步骤3-1将收集到的攻击数据包根据first字段进行分组,形成first字段不同的攻击数据包集合;
步骤3-2首先先找到tail字段等于0的攻击数据包集合中的数据包,取出其top字段,得到所有距离基站距离为0的簇头节点ID集合Stl ;
步骤3-3在集合Stl中选取簇头节点标记IDtl,查找以其作为tail字段的数据包,得到所有距离基站距离为I的簇头节点标记ID1, ID0和ID1就构成了攻击主干路径上一条以ID1为起点,ID0为终点的边,并以此方法得出所有的边,重构出候选攻击路径;
步骤3-4对上一步骤中得到的候选攻击路径,计算其权重;并和无攻击时的路径权重进行比较,找出攻击主干路径。步骤3-5在涉及攻击路径的分簇内,实施以簇头节点作为根节点进行宽度优先搜索,按distance值分成不同的集合,从距离distance = 0开始,检查数据包的start字段和end字段,构成离簇头节点最近的一条边;重复边的构造直到distance达到可能的最大值为止,从而构造出该分簇内的全部攻击路径信息。进一步,所述簇头节点标记概率/7的取值为/7=7/6 其中/7为该无线传感器网络中的分组数,A是一个常数。进一步,所述普通节点标记概率Z7的取值为其中》分簇内普通节点数。进一步,所述first字段、top字段、tail字段、start字段、end字段、distance字段各占两个字节。本发明主要用于在发生DDoS攻击时,能快速高效地追踪到攻击源,从而在源头抑止攻击的继续以及为追究攻击者的责任提供证据等,其有益效果是:
1.优良的收敛性;以往的一些方案,在重构路径时需要接收大量的数据包,不仅浪费了宝贵的时间,也增加了网络的负担。本发明通过在标记数据包中设置六个标记字段,并选取了合适的标记概率,使得重构路径时数据包量大大减少,得到理想的收敛效果。2.降低了攻击源的不确定性;在分簇节点和普通节点选用不同的标记概率,本发明降低了攻击源的不确定性,使得攻击源易于定位。3.抗干扰能力提高;在攻击路径的重构方法中把权重信息加入到候选攻击路径中,通过和正常情况下的候选攻击路径权重进行比较,可更好地分析真正的攻击源,起到降低误报率的效果。
图1是本发明的追踪方法的流程示意 图2(a)是无线传感器网络中层次`式的网络模型 (b)是攻击路径示意 图3是数据包重载格式示意 图4是普通节点的标记方法流程 图5是簇头节点的标记方法流程 图6是基站上的路径重构方法流程图。
具体实施例方式下面结合具体的实例对本发明作进一步的阐述。如图1所示,追踪方法的步骤包括按一定概率对数据包进行标记,通过基站提取数据包信息,重构攻击路径并确认攻击并采取措施。数据包的标记信息(first, top, tail, start, end, distance)包含六个标记域。这六个标记域分成两层。第一层由(first,top, tail)组成,主要用来重构路径的主干部分。第二层由(start, end, distance)组成,用来重构分簇内普通节点start到簇头节点top的局部路径。这六个标记字段的含义:first字段表示攻击数据包所经过的第一个簇头节点的ID, first字段标记过后不能被后续的簇头节点标记;top字段表示攻击数据包被标记后,经过的第一个簇头节点的ID,它可以被后续的簇头节点重复标记,它的值用来和tail字段构成主干路径上的“边”信息;tail字段表示top的下一个簇头节点ID,也可重复标记;start字段表示在分簇内存放边的起始点的普通节点ID,可重复标记,它和end字段构成簇内局部路径上的“边”信息;end字段表示在分簇内存放边的终点的普通节点ID,这个字段也可重复标记!distance字段表示start字段和最近的簇头节点top字段的距离。如图5所示,簇头节点数据包标记方法的步骤为:
步骤1-1收到数据包的簇头节点,首先检查标记信息中的first字段,如果不为0,就将该簇头节点的ID写入first字段,并且first字段不能被后续的节点重新标记:
步骤1-2当决定以概率p标记数据包时,簇头节点将数据包中的first字段外的全部字段清空,并将其ID写入top字段和start字段;
步骤1-3当决定不标记该数据包时,需检查top字段和start字段,如果top字段为0而start字段不为0,那么该簇头节点就将其ID写入top字段同时将distance的值加I ;如果top和start字段都不为0并且tail字段为0,该簇头节点就将其ID写入tail字段;如果start字段不为0且end字段为0,该簇头节点就将其ID写入end字段;
如图4所示,普通节点数据包标记方法的步骤为:
步骤2-1当决定以概率P标记数据包时,将first字段以外的其它字段都设置为0,并将该节点的ID写入start字段;
步骤2-2如果决定不标记数据包,需检查top字段和start字段,如果top字段为0而start字段不为0,则将distance的值加I ;如果end字段也为0,则将该节点ID写入end字段;
数据包的重载格式
数据包的重载格式如图3所示 。IEEE 802.15.4的数据包格式包括五个数据报域,分别是巾贞控制(frame control)、数据序列号(data sequence number)、地址域(addressingfields)、数据负载(data payload)和巾贞校验序列(frame check sequence)。其中巾贞控制域长度固定为2个字节;数据序列号长度固定为I个字节;地址域长度固定为4 一 20个字节;数据负载域长度可变,帧校验序列长度固定为2个字节,也就是说除了数据负载(datapayload)这个数据报域外,另外的四个数据报域都无法更改,所以标记信息加入datapayload 域。数据包标记信息包括六个字段(first, top, tail, start, end, distance),除了 distance字段外都用来标识节点信息,每个字段用2个字节就足够了,distance字段是一个表示距离的正整数,用2个字节就同样也足够了,这样可表示的长度最大值达到217 —
1标记概率的选取
数据包标记概率的选取与能否迅速找到攻击源有着至关重要的联系,标记概率选取过大可以减弱攻击者隐藏来源的能力,却影响网络的吞吐能力,消耗了节点的能量和带宽;标记概率选取过小可以减少网络的负载,但是基站却可能因为标记数据包太少而不能重构攻击路径。设一条攻击路径中,从攻击者到基站的距离是d+1,即从攻击者处出发,数据包需经过J个节点后到达基站。设中间的节点按顺序为G,C2,…,‘其中G离攻击者最近,G离基站最近。数据包被节点G标记的概率
A = -JOm,那么每个数据包经过^/个节点被标记概率的至少是办由不平
均概率coupon collector问题可知,¢/个等概率项中的每一个都能被选中一次所需的次_ h(i0+O(I)
福^‘_。师翻1女制獅纖勺W舖顏-錄:竭=。
rfp(d)+0 )#P-FJ
也就是说数据包被哪个节点标记的概率都是7/J时,路径重构所需的数据包最少。考虑到无线传感器网络的拓扑结构和标记字段的设置,簇头节点和普通节点设置不同的标记概率。簇头节点:设该无线传感器网络中有/7个分组,则簇头节点的标记概率是/7=7/Cn +V。其中左是一个常数。普通节点:这分簇内有个普通节点,考虑到一般攻击路径不可能遍历全部的内部节点,所以取标记的概率产二//(m/3),即P=3/m。以图2(b)为例,具体的标记过程如下:
1.簇头节点A收到数据包后,首先检查标记信息中的first字段,如果不是为0,就把该簇头节点的ID写入first字段。接着取0 — I之间的随机数u,并将其与簇头节点标记概率P比较,如果大于则不标记,如果小于则标记。这里选择不标记该数据包。此时簇头节点A更新数据包标记信息(A, 0, 0,0,0,O)。2.普通节点a2收到数据包后,先取随机数u (u在0 — I之间),并将其与普通节点标记概率P比较,如果大于则不标记,如果小于则标记。若a2决定标记数据包,除了 first字段以外的其它全部字段都设置为0,并将该节点的信息写入start字段,数据包标记信息CA, 0,0,a2, 0,O)。
3.簇头节点B收到数据包后,不能修改标记信息中的first字段。依然选取随机数与簇头节点标记概率P比较。如果小于则标记数据包,将数据包中的除first字段全部清空,并将自己的ID写入top字段和start字段,此时簇头节点B更新数据包标记信息(A, B,0,B,0,O)。4.普通节点bl收到数据包后,先取随机数U,并将其与普通节点标记概率P比较,如果大于则不标记,此时需检查top字段和start字段,如果此时top字段为0而start字段不为0,那么将distance的值加I,同时如果end字段为0,就将该节点信息写入end字段。此时普通节点bl更新数据包标记信息(A, B,0,B,bl, O)。5.普通节点b2收到数据包后,先取随机数U,并将其与普通节点标记概率P比较,如果大于则不标记,此时需检查top字段和start字段,如果此时top字段为0而start字段不为0,那么将distance的值加I,同时如果end字段为0,就将该节点信息写入end字段。此时数据包标记信息依然是(A, B,0, B,bl, 0)。6.簇头节点C收到数据包后,不能修改标记信息中的first字段。依然选取随机数与簇头节点标记概率P比较。如果大于则不标记,检查top字段和start字段,如果top字段为0而start字段不为0,那么就将自己的ID写入top字段同时将distance的值加
I;如果top和start字段都不为0并且tail字段为0,就将自己的ID写入tail字段;如果start字段不为0且end字段为0,就将自己的ID写入end字段。此时簇头节点C更新数据包标记信息(A,B,C,B,bl,0)。7.普通节点Cl收到数据包后,先取随机数U,并将其与普通节点标记概率p比较,如果大于则不标记,此时需检查top字段和start字段,如果此时top字段为0而start字段不为0,那么将distance的值加I,同时如果end字段为0,就将该节点信息写入end字段。此时数据包标记信息依然是(A, B,C,B,bl, O)。普通节点采用的标记方法流程图如图4所示,伪代码如下:
//Marking procedure at normal sensor node N: // 普通节点的标记方法 for each packet P
let u be a random number from [0, I)
if u<= q,
place 0 into all fields except for P.first write N into P.start else
if (P.top=0) & (P.start !=0)
P.distance+=Iif (P.end=0)write N into P.end分簇节点采用的标记方法流程图如图5所示,伪代码如下:
//Marking procedure at cluster head C: // 分族节点的标记方法 for each packet P if (P.first=。)
write C into P.first
let u be a random number from [0, I)
if u<= 9i
place 0 into all fields except for P.first write C into P.top write C into P.start else
if (P.top=0) &then (P.start !=0)
P.distance+=Iwrite C into P.topif (P.tail=0)write C into P.tailif (P.end=0) &then (P.start !=0)write C into P.end下面将描述在重构中实现的具体步骤。路径重构包括两个部分。第一部分构造出由簇头节点构成的主干路径,第二部分
构造出每个分簇内的局部转发路径。具体的路径重构方法流程图如图6所示。1.将收集到的攻击数据包根据first字段进行分组,形成first字段不同的攻击
数据包集合。2.将在不同的分组中,先找到tail字段等于0的攻击数据包集合中的数据包,取 出其top字段,得到所有距离基站距离为0的簇头节点,即与基站距离最近的簇头节点ID集合S。。3.在集合Stl中选取距离基站距离为0的簇头节点标记IDtl,查找以其作为tail字段的数据包,得到所有距离基站距离为I的簇头节点标记ID115这样,IDci和ID1就构成了攻击主干路径上一条以ID1为起点,ID0为终点的边,以此类推,得出所有的边,就重构出攻击的主干路径。4.计算各个候选攻击路径的权重,并和无攻击时的路径权重进行比较,找出真正的攻击主干路径。设一候选攻击路径
权利要求
1.一种无线传感器网络中DDoS攻击的追踪方法,依次进行标记方法和路径重构方法,其特征在于: 所述标记方法是在数据包中设置六个标记域的标记信息(first, top, tail, start, end,distance),其中first字段表示攻击数据包所经过的第一个簇头节点的ID ;top字段表示攻击数据包被标记后,经过的第一个簇头节点的ID ;tail字段表示top的下一个簇头节点ID ; start字段表示在分簇内存放边的起始点的普通节点ID ; end字段表示在分簇内存放边的终点的普通节点ID !distance字段表示start字段和最近的簇头节点top字段的距离;其标记步骤包括簇头节点数据包标记方法和普通节点数据包标记方法; 所述簇头节点数据包标记方法的步骤为: 步骤1-1收到数据包的簇头节点,首先检查标记信息中的first字段,如果不为0,就将该簇头节点的ID写入first字段,并且first字段不能被后续的节点重新标记: 步骤1-2当决定以簇头节点标记概率标记数据包时,簇头节点将数据包中的first字段外的全部字段清空,并将其ID写入top字段和start字段; 步骤1-3当决定不标记该数据包时,需检查top字段和start字段,如果top字段为0而start字段不为0,那么该簇头节点就将其ID写入top字段同时将distance的值加I ;如果top和start字段都不为0并且tail字段为0,该簇头节点就将其ID写入tail字段;如果start字段不为0且end字段为0,该簇头节点就将其ID写入end字段; 所述普通节点数据包标记方法的步骤为: 步骤2-1当决定以普通节点标记 概率示记数据包时,将first字段以外的其它字段都设置为0,并将该节点的ID写入start字段; 步骤2-2如果决定不标记数据包,需检查top字段和start字段,如果top字段为0而start字段不为0,则将distance的值加I ;如果end字段也为0,则将该节点ID写入end字段; 所述路径重构方法的步骤为: 步骤3-1将收集到的攻击数据包根据first字段进行分组,形成first字段不同的攻击数据包集合; 步骤3-2首先先找到tail字段等于0的攻击数据包集合中的数据包,取出其top字段,得到所有距离基站距离为0的簇头节点ID集合Stl ; 步骤3-3在集合Stl中选取簇头节点标记IDtl,查找以其作为tail字段的数据包,得到所有距离基站距离为I的簇头节点标记ID1, ID0和ID1就构成了攻击主干路径上一条以ID1为起点,ID0为终点的边,并以此方法得出所有的边,重构出候选攻击路径; 步骤3-4对上一步骤中得到的候选攻击路径,计算其权重;并和无攻击时的路径权重进行比较,找出攻击主干路径; 步骤3-5在涉及攻击路径的分簇内,实施以簇头节点作为根节点进行宽度优先搜索,按distance值分成不同的集合,从距离distance = 0开始,检查数据包的start字段和end字段,构成离簇头节点最近的一条边;重复边的构造直到distance达到可能的最大值为止,从而构造出该分簇内的全部攻击路径信息。
2.根据权利要求1所述的一种无线传感器网络中DDoS攻击的追踪方法,其特征在于,所述簇头节点标记概率P的取值为/7=7/ & 人其中/7为该无线传感器网络中的分组数,A是一个常数。
3.根据权利要求1所述的一种无线传感器网络中DDoS攻击的追踪方法,其特征在于,所述普通节点标记概率/7的取值为其中 分簇内普通节点数。
4.根据权利要求1所述的一种无线传感器网络中DDoS攻击的追踪方法,其特征在于,所述first字段、to p字段、tail字段、start字段、end字段、distance字段各占两个字节。
全文摘要
本发明公开一种无线传感器网络中DDoS攻击的追踪方法,该方法将数据包进行标记,并利用标记过的数据包进行溯源追踪,找出恶意攻击节点,所述标记方法是在数据包中设置六个标记域的标记信息(first,top,tail,start,end,distance),并对簇头节点数据包标记和普通节点数据包标记,然后通过路径重构发现攻击路径并进行相应处理。该方法具有优良的收敛性,降低了攻击源的不确定性,并提高了抗干扰能力。
文档编号H04L29/06GK103249177SQ201210285818
公开日2013年8月14日 申请日期2012年8月13日 优先权日2012年8月13日
发明者倪彤光, 顾晓清, 李玉 申请人:常州大学