您好,欢迎来到欧得旅游网。
搜索
您的当前位置:首页无线Adhoc分层攻击仿真模型

无线Adhoc分层攻击仿真模型

来源:欧得旅游网
ComputerEngineeringandApplications计算机工程与应用2010,46(24)81

无线Adhoc分层攻击仿真模型

233

赵传信1,,王汝传2,,黄海平2,,季一木3

233

ZHAOChuan-xin1,,WANGRu-chuan2,,HUANGHai-ping2,,JIYi-mu3

1.安徽师范大学数学计算机学院,安徽芜湖2410002.苏州大学计算机学院,江苏苏州2150063.南京邮电大学计算机学院,南京210003

1.SchoolofMathematicsandComputerScience,AnhuiNormalUniversity,Wuhu,Anhui241000,China2.SchoolofComputerScienceandTechnology,SoochowUniversity,Suzhou,Jiangsu215006,China3.CollegeofComputer,NanjingUniversityofPostsandTelecommunications,Nanjing210003,China

ZHAOChuan-xin,WANGRu-chuan,HUANGHai-ping,etal.WirelessAdhoclayeredattacksimulationmode.ComputerEngineeringandApplications,2010,46(24):81-84.

Abstract:ThesecurityofwirelessAdhocNetworkshasarousedattention.Buttheredoesn’texistspecialsimulationsoft-wareforAdhocattack.NS2mobilitynodeisanalyzedfirstly,thentheabilityofmobilitynodeisexpandedbasedonstresslystudyingonsplittingobjectmode,anattacksimulationsoftwaremodeisintroduced,meanwhileparticulardesignisnarrated,across-layerjoinattackissimulatedthroughthesoftwareatlast.

Keywords:Adhoc;NetworkSimulatorVersion2(NS2);security;attacksimulation摘

要:无线Adhoc网络的安全性已经引起广泛关注,但目前还没有专门针对Adhoc网络攻击的仿真平台。通过对网络仿真

软件NS2移动节点进行分析,着重研究分裂对象模型的实现,在此基础上扩展移动节点功能,提出一种攻击仿真软件模型,并给出详细设计,最后提出一个跨层联合攻击场景通过攻击仿真软件进行了模拟。关键词:Adhoc;NS2;安全;攻击仿真DOI:10.3778/j.issn.1002-8331.2010.24.024

文章编号:1002-8331(2010)24-0081-04

文献标识码:A

中图分类号:TP393

1Adhoc安全及攻击概述

移动自组织网络(一般称为移动Adhoc网络,MobileAdhocNetworks,MANET)是由移动节点以无线通信方式组成的网络。与普通的移动网络和固定网络相比,移动自组网具有无中心、自组织、多跳路由、动态拓扑结构、资源受限等特点。无中心自组织的特点使得移动自组网能够快速组网,不需要基础设施,但也带来了安全上的问题,安全问题成为限制Adhoc应用的关键问题。

由于无线信道的开放性,无线网络面临着一些共同的安全威胁,Adhoc网络也难于幸免[1]。移动Adhoc网络路由协议能够很好地支持拓扑结构动态变化,但是移动Adhoc网络的结构特点使得它容易遭受各种攻击,这些安全威胁可以根

据攻击方式和目的分布在各个层次。对物理层的攻击主要对数据包进行干扰,对MAC层攻击利用协议控制信息可以进行干扰,路由层是Adhoc的核心,同时也是安全的核心,攻击者可以利用路由协议的安全漏洞发起多种攻击,传输层是协议的核心,攻击者可以通过分析控制报文伪造攻击。目前文献对Adhoc路由层和MAC层安全问题论述较多,路由层攻击根据不同的分类有多种方式,如把针对移动自组网路由的攻击方式分为两类,一类是破坏路由机制,一类是路由资源消耗[2]。或者根据参与合作主观能动性的角度分为单一型和协作型。

当MAC层采用竞争机制的802.11协议时,可能存在DoS

攻击方式[3],通过占用信道对附近的节点进行拒绝服务攻击,

基金项目:国家自然科学基金(theNationalNaturalScienceFoundationofChinaunderGrantNo.60573141,No.60773041);国家高技术研究发

展计划(863)(theNationalHigh-TechResearchandDevelopmentPlanofChinaunderGrantNo.2007AA01Z404,No.2007AA01Z478);江苏省自然科学基金(theNaturalScienceFoundationofJiangsuProvinceofChinaunderGrantNo.BK2008451);江苏省高技术研究计划(No.BG2006001);现代通信国家重点实验室基金(No.9140C1105040805);江苏省高校科技创新计划项目(No.CX08B-085Z,No.CX08B-086Z)。

作者简介:赵传信(1977-),男,博士研究生,主要研究方向为智能优化算法、自组织移动网络;王汝传(1943-),男,教授,博士生导师,主要研究方

向为计算机软件、计算机通信、信息安全、无线传感器网络、移动Agent技术等;黄海平(1981-),男,在读博士,讲师,主要研究方向为计算机网络、无线传感器网络和信息安全等;季一木(1978-),男,博士,讲师,研究方向为软件工程、中间件和网格计算等。

收稿日期:2009-02-02

修回日期:2009-06-08

822010,46(24)ComputerEngineeringandApplications计算机工程与应用

或者通过持续的伪造控制报文进行耗尽攻击。当然这种攻击性多数情况下仅仅对网络性能产生影响,在上层安全措施严格的情况下难以获得实际信息。但如果两个节点合谋,一个是发送端,一个是接收端,则MAC层的攻击非常容易。

对Adhoc的安全和攻击讨论已经有许多文献报道,但目前文献中仿真都比较简单,没有一个较完整的攻击软件平台,也很少在不同攻击环境下进行比较。为此通过对网络仿真模拟器NS2中移动网络部分进行详细分析,给出利用NS2设计攻击仿真平台的设计模型,详细介绍实现机制,实现了多种攻击以及联合攻击,为自组织网络攻击提供一个仿真平台。最后提出一个跨层联合攻击场景并利用攻击仿真软件进行测试。

uptarget_

downtarget_

MAC

downtarget_

Propagation

NetIF

channel

uptarget_

downtarget_

IFq

uptarget_uptarget_

LL

addrdemuxentry_

defaulttarget_

Rtagent

target_

ARP

portdemux

255

Src/Sink

2NS2对移动网络仿真的支持

目前的网络仿真平台典型的网络仿真器主要有GloMoSim、

NS2和Opnet,它们都属于离散事件仿真器,能够支持Adhoc的协议仿真,但是目前还没有一个仿真工具支持Adhoc网络攻击仿真。NS2(NetworkSimulatorVersion2)仿真软件是美国加州的LawrenceBerkeley国家实验室开发的软件,是一种可扩展、易配置和编程的事件驱动网络仿真工具[4]。NS2采用离散事件驱动的模拟机理,其中事件状态不发生变化时不执行任何模拟计算。其实质是采用一个中央调度的时钟调度器,各种事件如收发数据均按时钟加入时钟调度。因此,与时间驱动相比,离散事件驱动的模拟机计算效率得到很大提高。NS2使用C++语言编写完成,OTCL(Tcl脚本的面向对象扩展)脚本语言作为网络模拟任务提交的解释器语言。NS2由编译和解释两个层次组成。编译层包括C++类库,而解释层包括对应的OTCL类,用户以OTCL解释器作为前台使用NS2。NS2非常复杂,尤其分裂对象模型带来编程的困难,但NS2可扩展性却方便二次开发,所以选择NS2来扩展。

无线网络模型本质上是移动节点作为核心附加各种支持特性而构成,以实现对多跳Adhoc网络和无线局域网等的模拟,该工作源于CMU/Monnarch工作组。NS对移动网络的实现通过MobileNode,移动网络不需要链路。MobileNode是分裂对象,其节点的移动、周期性位置更新、拓扑边界控制在C++中实现。内部网络组件在OTCL中实现,包括分类器、de-mux、LL、MAC、Channel,利用OTCL将网络组件构建在一起。

[5]

Radio

Propagationmodel

uptarget_

图1CMU/Monnarch的无线扩展定义的移动节点示意图

一种模拟多种攻击的软件。通过对Adhoc攻击技术的研究和NS2分析,提出了攻击仿真软件的设计,并对部分细节进行叙述。

为了提供较为完善的攻击仿真功能,对目前采用较多的三种路由层协议AODV、OLSR以及SEAD进行分析,SEAD协议需要在DSDV基础上进行修改,MAC层的攻击对802.11进行分析,802.11原来并不是为了Adhoc设计,存在攻击隐患。攻击模型图如图2的模型,通过Tcl设置攻击场景,利用扩展的NS2读取攻击场景文件并解析执行,执行后的结果通过Nam图显示,或者通过Trace文件进一步分析。

TCL脚本攻击场景设计节点读取分析设置攻击方式MAC层分析802.11MAC协议路由层分析按需路由AODV表路由OLSR安全路由SEAD网络攻击仿真演示图2攻击模型结构图

移动网络的路由协议以Agent加入节点。NS2移动节点示意图如图1所示。为了便于分析仿真结果,在路由层、MAC层可以增加Trace部分记录。

目前移动自组织网的AODV、OLSR、DSDV等路由协议已经在NS2中实现,其中对AODV的攻击研究最为广泛,NS2中MAC层实现的协议有两种,分别是802.11和TDMA,802.11采用竞争时隙工作方式,是MAC层攻击研究的主要对象。

许多的文献从不同角度不同层次讨论了大量的攻击方

[2,7]

,根据常用的攻击模型采用如下5种攻击方式。

(1)伪造攻击,这类攻击又称为欺骗攻击,移动Adhoc网络路由协议不验证源地址,恶意节点可以通过假冒手段发起多种攻击。例如,攻击者可以冒充网络中关键节点向其他节点发布虚假路由,从而达到隔断网络的目的。在采用AODV的协议中,恶意攻击者节点收到RREQ,可以伪造RREP冒充目的节点,从而截获发起请求节点的数据包。

(2)篡改报文攻击,这类攻击基于修改路由的度量值或者篡改路由控制信息的某些域。如在AODV协议中修改经过自身转发RREP中的hop_count字段来宣称经过自己的路径最短。

(3)中断攻击和自私性攻击,中断攻击指恶意节点丢弃所有经过他的路由报文。这样所有需要转发的报文都不会到达3Adhoc攻击仿真模型构建

在NS2中集成了无线移动网络功能,可以模拟Adhoc网络,但在NS2中并没有集成攻击。目前在Adhoc的安全攻击和防御的文章中,都偏重于理论模型的探讨,对仿真实现环节探讨很少,仿真简单,攻击类型比较单一,对不同层的跨层联合攻击的讨论也很少。为了方便对Adhoc安全的研究,要求能够提供赵传信,王汝传,黄海平,等:无线Adhoc分层攻击仿真模型

目的节点。如果网络中有多个这样的节点的话,将严重降低网络的性能。有些不良节点仅仅是为了保存自身能量和计算能力的问题丢弃部分其他节点转发信息,这种方式可以称之为自私性攻击。

(4)联合攻击,联合攻击由两个或者两个以上节点联合进行攻击,典型的代表就是虫洞攻击。两个以上节点进行合作伪造一个虚假的路径,可以进一步进行流量分析或者灰洞攻击等,联合攻击行为复杂是目前研究的一个热点。当恶意节点进行多种攻击行为协作攻击时检测变得极为困难。

(5)MAC层拒绝服务攻击,MAC层的802.11竞争机制带来攻击漏洞[8],在RTS/CTS中携带的NAV值存在DoS攻击的可能,攻击者利用该值可以了解到将要发生的传输,通过发送很少的数据来干扰大量的MAC层的正常帧,这种干扰可能造成大量的合法数据损害,这样攻击者只使用了很少的能量来消耗受害端的大量能量。也可以持续发伪造的数据包进行耗尽攻击。

路由协议实现AODV、OLSR、SEAD等攻击,它们分别代表了按需路由、表驱动路由、安全路由。路由攻击分别从前述4个方面进行,SEAD协议作为安全协议可以防止篡改等攻击,但无法防止某些恶意节点在链路建立时混入。为了提供一致的攻击仿真环境,对NS2中MobileNode扩展为恶意节点。NS2中移动节点通过解释层OTCL对象和编译层C++对象联合实现。图1已经较为详细地给出了移动节点模型,为了扩展为恶意节点需要在OTCL对象和C++对象上同时进行。如图3所示的移动节点分裂对象模型,攻击由路由和MAC对象实现,它们是C++中的独立对象,需要对它们进行扩展实现恶意攻击功能。由于它们的独立性攻击类型方式等变量需要作为C++对象MobileNode的成员变量,通过对C++对象的Mo-bileNode、Route、MAC三个方面进行扩充(图3中阴影部分),在OTCL层整合为恶意节点实现攻击。

Add-targettonodeMobileNodeMobileNodeClassifierdemuxLLMACAgent/(AODV)CMUtraceLLIFqMACOTcl对象

C++对象Classifier/addresssendClassifier/portsend2010,46(24)83

攻击类型,以及攻击时间。通过场景或脚本进行设置。最终通过nam图来显示仿真效果或者通过Trace文件进一步分析。

4.2扩展MobileNode为MacilousMoblieNode

为了实现仿真模型首先需要建立恶意节点对象,扩展

MobileNode包括攻击定义:无攻击(0x0000),伪造(0x0001),篡改(0x0002),中断(0x0004),协作(0x0008),DoS(0x0010)。定义恶意节点的合作伙伴intrecv_pal,send_pal为对应移动节点的id值。如果合作者有多个可以定义成链表。并且提供API接口可以在Tcl文件中使用,如node(i)attack(1)表示第i个节点进行伪造攻击。

4.3扩展移动路由协议完成攻击实现

对路由的具体实现是在C++对象完成的,路由功能主要

是完成路由控制、建立路由表、转发路由等。Adhoc中节点应该无条件不修改地转发通往其他节点的数据包,但在存在恶意节点环境下,恶意节点可以通过篡改伪造等来破坏经过自己发往其他节点的数据包来破坏网络。以AODV路由协议为例,recv()用来接收分组,如果是控制报文则调用recvADOV()来处理,该函数根据控制报文的数据类型RREQ、RREP、RRER、HELLO分别调用recvRequest()、recvReply()、recvEr-ror()、recvHello()函数来处理。同样当发送分组时利用send()函数进行相似的处理。在路由层的攻击根据不同的攻击功能通过对这些相关的函数进行扩展,可以完成攻击。如修改经过自身的RREP就可以通过对函数recvReply()实现篡改攻击,实现伪造攻击可以在recvRequest()中伪造RREP返回伪造报文等。进行扩展,其他攻击类似。

4.4扩展MAC层协议完成攻击实现

MAC层802.11采用CSMA/CA机制竞争共享信道。恶意

节点可以采用扰乱信道,或者伪造控制信息进行攻击。协议中RTS/CTS是协商竞争的控制信令。在NS2实现中通过send-RTS()发送RTS,利用sendCTS()发送CTS[9],如通过设置发送RTS中的NAV,或者修改定时器持续发送RTS扰乱信道。

4.5OTCL与C++对象的联合

在NS2中,移动节点的C++对象并不是一个完整的整体,

为了实现对恶意节点的扩充,需要节点能够将各部分组件有机地融合,这需要它们之间能够自由地互相访问,如在NS2中不同对象有时需要访问其节点的变量等,Tcl向OTCL对象传递参数,协议取得Tcl参数等。4.5.1

在协议中建立指向节点的指针

因为具体的攻击由协议来完成,在MobileNode中的攻击模式、协作伙伴等参数需要传递给协议对象,有些路由协议如DSDV等有指向自己的节点的指针,但很多路由协议以及MAC协议并没有指向节点的指针,NS2提供这一接口,以aodv为例,建立指向节点的指针步骤如下:

(1)添加头文件,在aodv{cc,h}中加入#include

(2)定义指向对象的指针变量,在aodv.h中定义变量Mo-bileNode*node_;

(3)提供获得节点指针的接口set_node,利用全局函数lookup()取得Tcl对象的全局指针,在aodv.cc中的command函数中加入如下代码:图3NS2中移动节点的分裂对象结构示意图

4攻击仿真模型需要进行的扩展

在对基本模型进行分析设计后,攻击仿真需要进行的扩

展包括如下五个方面。

4.1建立攻击仿真模型

这是第一步工作,上文已经较为详细叙述。为了建立仿

真攻击环境,设置正常节点和恶意节点,恶意节点还需要设置842010,46(24)ComputerEngineeringandApplications计算机工程与应用

图4(a)未发生攻击时场景

if(strcmp(argv[1],\"set_node\")==0){

node_=(MobileNode*)TclObject::lookup(argv[2]);return(TCL_OK);}

图4(b)主动攻击后Nam图

节点0通过路径0->11->1->9->4发送CBR,节点7、5为恶意节点,其中7在MAC层发起占用信道的DoS攻击,中断正在工作的路径,从而迫使节点0产生新的路由请求。恶意节点5进入0附近,在收到RREQ后伪造应答数据包,从而使路由经过5。图4(a)为初始场景,图4(b)为攻击后场景。通过联合攻击恶意节点实现了对节点0主动攻击,而不必象传统的AODV路由攻击需要等待节点0发起路由请求。

(4)最后在OTCL中指定联系,在ns-lib.tcl中create-aodv-agent函数在最后添加上一行$ragentset_node$node,这样在aodv中就可以通过node_来引用所绑定的C++对象的内容。4.5.2

通过Tcl向C++对象传递参数

NS2中网络组件分OTCL层和C++层,C++层的访问可以通过指针,但OTCL对象和C++对象之间只能通过函数或者变量绑定,以MobileNode为例。

首先在mobilenode.h中定义变量intattack_mode_。然后在mobilenode.cc的构造函数中绑定该变量bind(“attack_mode_”,&attack_),定义对其他C++对象的接口intinlineattack(){re-turnattack_mode_}。然后在mobilenode.tcl的initarg中初始化OTCL层的对应变量setattack_mode_0。最后在脚本中可以设置该变量。

4.5.3在协议中取得Tcl脚本设置中对mobilenode的设置参数

经过前面的操作很容易在路由模块中取得绑定节点的信息,如取得对应节点的attack_mode_通过节点指针node_->attack()即可。

最后在协议中扩展功能函数,取得脚本中设置的attack_mode_可以设定攻击,通过设定的合作者取得合作节点index。根据不同的攻击模式需要扩充原recv()或send()中调用的函数,在对相关的协议进行详细的分析以后不难做到,这里不再详述。

6结论

结合目前Adhoc安全研究现状分析,提出一种对路由和

MAC协议攻击仿真模型,并在详细讨论NS2基础上扩展形成了自组织移动网络的攻击平台,通过Nam图或Trace文件分析可以得到攻击前后效果,方便对Adhoc攻击的理解和比较。下一步将进一扩展协议为安全协议,并将其应用于多种恶意节点存在环境下的测试,通过不同协议不同攻击行为的分析,为提出统一的安全框架作好基础。

参考文献:

[1]WelchD,LathropS.Wirelesssecuritythreattaxonomy[C]//Pro-ceedingsofthe2003IEEEWorkshoponInformationAssurance,WestPoint,NY,USAJun18-20,2003.LosAlamitos,CA,USA:IEEEComputerSociety,2003:76-83.

[2]HuYih-Chun.Asurveyofsecurewirelessadhocrouting[J].

IEEESecurity&Privacy,2004,2(3):28-39.

[3]GuptaV.DenialofserviceattacksattheMAClayerinwireless

adhocnetworks[C]//ProcoftheIEEEMILCOM2002.LosAlami-tos,CA:IEEEComputersSocietyPress,2002:1118-1123.[4]FallK,VaradhanK.TheNSmanual[Z].2007.

[5]徐雷鸣,庞博,赵耀.NS与网络模拟[M].北京:人民邮电出版社,

2003.

[6]WelchB.PracticalprogramminginTclandTk[M].[S.l.]:Prentice

Hall,1995.

[7]蒋廷耀,杨景华,李庆华.移动Adhoc网络安全技术研究进展[J].

计算机应用研究,2005(2):1-4.

[8]RenWei,YeungDit-Yan,JinHai,etal.PulsingRoQDDoSat-tackanddefenseschemeinmobileAdHocnetworks[J].Interna-tionalJournalofNetworkSecurity,2007,4(2):227-234.[9]石硕,顾学迈,张文彬,等.移动Adhoc网络的NS2仿真机制及代

码分析[J].计算机工程与设计,2008,29(18):4639-4643.

5仿真环境的建立和实验

通过第4章的扩展,对攻击仿真可以利用扩展的API在

Tcl的场景文件中设置网络攻击类型,结合不同的攻击可以完成复杂的联合攻击。

目前Adhoc的各种攻击及实验中,各种攻击独立于同一层,如蠕虫攻击等协同攻击一般发生在路由层。单一层的攻击存在一定的局限性,如伪造AODV中的伪造路由攻击要求恶意节点在路由通路上,或者在其他附近节点发起路由请求时才能攻击。如果将不同层联合进行攻击有可能产生危害性更大的恶意攻击。下面设计一个联合攻击的场景,利用Nam图显示攻击效果。路由协议采用AODV,MAC协议采用802.11。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- ovod.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务