MANET网络中一种基于移动Agent的入侵检测系统*

2011-04-10 10:42张秀梅
关键词:计数器数据包路由

张 毅 张秀梅

(武汉数字工程研究所 武汉 430074)

移动自组织网络(mobile Ad Hoc network,MANET)是由一组带有无线收发装置的移动节点组成的一个支持多跳的临时性的网络自治系统[1].MANET网络无线信道、动态拓扑、合作的路由算法、缺乏集中的监控等特点都使得它的安全更加脆弱,特别是移动节点缺乏物理保护,容易被偷窃、捕获,落入敌手后又重新加入网络.而采用密码学理论的网络安全方案无法完全对抗此类攻击,入侵检测系统就成为安全方案之后的第二道防护墙.移动Agent是一个能在异构网络中自主从一台主机迁移到另一台主机,并可与其他Agent或资源进行交互的程序,实际上它是Agent技术与分布式计算技术的结合体,具有移动性和自主性等特点[2-3].将移动Agent应用到 MANET网络入侵检测系统中是一种十分新颖的方法.

1 入侵检测系统的基础算法

1.1 相关概念

1)最坏存活期(aij)

定义1 在节点n传输范围R内的节点为节点n的邻居.

定义2 节点i和j之间的最坏存活期aij的大小为:aij=(R-d)/2 M (R>d);aij=0(R≤d).式中:R为传输范围;d为节点i,j之间的距离;M为节点平均速度.最坏存活期aij用以度量节点i和j之间连接可以有效维持的最短时间.

2)计数器 每个节点上设置一个计数器,网络刚开始运行时,所有计数器为零.Agent从一个节点跳到另一个节点收集分布节点的信息,当一个Agent完成信息交换任务离开节点时,就将该节点的计数器增加1.计数器的大小代表了该节点被Agent访问过的次数.

3)Agent的数据结构 一个Agent由下列几部分组成:Agent标识符id;Agent程序P;Agent数据包.Agent数据包里包含了一些状态参数,如aij、计数器等,Agent能够与其他Agent和节点分享数据包里的内容.

1.2 基于移动Agent节点连接矩阵表构建算法

Agent的首要任务是传送每个节点的信息到另一些节点.为使开销达到最小,采用“最先访问‘访问次数最少的节点’”的Agent移动策略.

任意Agent到达目的节点i后,Agent内的程序将完成以下的工作步骤.

1)Agent到达节点i,将Agent里数据包里存储的节点的计数器值与存在当前节点中的所有其他节点的计数器值进行比较,计数器值大的数据会更新,于是将数据包里更新的节点的行列信息保存到节点的cache上.

2)该Agent排在cache队列的最后,在等待TM时间后选择路由路径,并发送.

3)在该节点的cache上比较所有邻居的计数器值,取最小值,该值的节点就是下一个可能要访问的节点.

4)如果被选择的节点最近3次没有被访问过,该节点就是Agent下一个要访问的节点;如果被选的节点在最近三次被访问过,则选择下一个最少访问的邻居,以此类推.

5)将节点i的计数器值加1,即将访问的节点加入到节点i的历史信息中.

6)Agent离开前,将节点i里cache上的内容存储到Agent的数据包里.

7)Agent继续访问下一个节点.

1.3 数据报文的路径选择算法

数据报文的路径选择算法采用广度优先搜索算法,以目的节点为树的根节点,每一跳形成树的一层,该树的最大层数为网络节点的数量.

设节点i是源节点,节点j是目的节点,则节点j是树的根.数据报文的路径选择算法如下.

1)节点i查看本节点矩阵表中节点i和节点j之间是否有连接,即查看aij是否为零,如果不是零,说明有连接,则信号直接发送,路由结束;如是零,说明不存在一跳操作,则进入2).

2)查看矩阵表中j节点的列式aj,找出aj列中所有的非零项.如果aj列中所有值都为零,则节点i和j不存在有效的路径,路由结束;否则非零项就是节点j的子节点,记录其子节点,进入3).

3)将上述子节点根据其相应的列继续找出其子节点.若这层子节点中存在节点i,则删除不包括节点i的路径,对包括i的剩余的多条路径对其各自路径的权值进行相加,得到各路径的权值和,比较各权值和,和最大者为首选路径,次大者为第一备用路径,依此类推,记录路径走法,路由结束;若这层子节点中不存在节点i,则进入4).

4)这层子节点继续根据其相应的列找出其子节点,同样判断这些子节点是否存在节点i,存在则如步骤3)记录路径,路由结束;若不存在节点i则继续查找其子节点,这样就形成一个循环,若在n次循环中找到了i节点,则记录路径,路由结束;若循环次数超过了n依旧未找到i节点,则路由路径不存在,i和j不通,路由结束.

2 基于移动Agent的入侵检测系统

2.1 入侵检测系统的组成

1)监视器子系统(邻居监视) 当节点中有数据包要传输时,通过数据报文路由算法,可以迅速得到数据包的路由路径.在数据包传输的同时,在节点的cache中留一个路径备份,如果在某个固定时间内,该其邻居节点按正常路径转发数据包,则说明一切正常,删除节点cache中的备份;如果数据包到达邻居节点后,在某个固定时间内未能转发,则说明该节点有可能有故障,按cache中的备份重新发送,若连续三次重新发送依然不正确,记录结论传输给“本地判断子系统”做出判断,并下命令给“路径处理子系统”,采用选用备用路径或其他措施.

2)本地判断子系统 管理一个表格,包括各节点的信誉值.信誉值只有在由明显证据表明某节点有可能存在问题,而且有大量重复的数据表明该问题重复发生时,才会有变化.荣誉值变化的权重也不同,本节点观察到的权重最大,其次是邻居节点发送过来的消息,权重最小的是远处汇报来的消息.

该子系统采用贝叶斯方法.当某邻居节点的荣誉值超出一定“怀疑”范围时,向“路径处理子系统”给出本地意见,“路径处理子系统”可采用绕路的策略;当某节点“本地判断子系统”的荣誉值超出了可以容忍的范围时,信息会传送给“综合判断子系统”.“本地判断子系统”单元内部保存有各种异常行为的模型,将邻居节点的异常和模型进行比较,得出故障类型.

3)综合判断子系统 首先收集“本地判断子系统”给出的本地意见,同时也收集从其他节点收集来的告警信号,利用收集的综合信息,利用拜占庭将军算法来进行综合识别得出最后的结论给“路径处理子系统”.“综合判断子系统”由以下部分组成:告警信息表(包含收到的警告及发出的警告);信任表(每个节点的信任等级);节点列表;发送和接收告警.

4)通信子系统 该子系统处理输入和输出告警信号.当“综合判断子系统”利用拜占庭将军算法,得出结论确认某节点故障时,向“通信子系统”发出告警,“通信子系统”由 Mobile Agent携带该信息向邻居节点发出故障告警信号;当“通信子系统”从邻居节点收到告警信号时,将其传递给“综合判断子系统”,用拜占庭将军算法进行处理.

5)路径处理子系统 当“本地判断单元”给出本地告警意见时,采用“绕路”的方式,即绕开问题节点;当“综合判断单元”给出确认故障时,采用“隔离”的策略.

2.2 工作原理

如图1所示,每个节点根据系统基础算法监视它的下一跳邻居.如果一个可疑的节点监测到,首先给到“本地判断子系统”,结合邻居的观察,根据贝叶斯方法,如果超出一定的域值,则向“综合判断子系统”给出本地意见,并通知“路径处理子系统”,采用绕开该节点的路径的方法;若节点监视重新恢复正常,发出故障恢复信号给“综合判断子系统”,并同时取消绕路命令.

图1 入侵检测系统体系结构

“综合判断子系统”同时还通过“通信子系统”接受来自其他节点的告警信息,收到告警信号后,结合本节点的“本地判断子系统”信息,采用拜占庭将军算法,采用签名后继续发送,最后得到某节点是否是故障节点,确认后触发“路径处理子系统”采用隔离的方法,将该故障节点从cache中的矩阵表中,将包含该节点的行和列都删除掉,彻底从网络中剔除该节点.

3 仿真实验

3.1 仿真环境

利用NS-2仿真平台进行仿真实验,在仿真中,网络环境范围设置为1 000m×1 000m,节点随机分布.设定该网络内有30个移动节点,每个节点的通信传输范围400m.每个节点的移动速度范围为1m/s到10m/s.每个节点随机选择一个方向作为其目标方向,采用统一的移动速度和行为策略:一旦指定的节点到达了目的地,在那等待特定的时间后,然后再随机地选择另一个方向,开始下一次移动.

3.2 “黑洞”的仿真

“黑洞”是MANET网络中极易出现的入侵方式.恶意节点伪装此路径为最佳路径,使得数据包都流向此节点,就在网络中形成了一个“黑洞”.从而对网络进行攻击[4-6].图2说明了 AODV 协议和基于Agent入侵检测系统关于“黑洞”问题对比的仿真图.

图2 “黑洞”仿真图

从图2可以看出,在网络正常情况下,AODV协议与基于Agent路由算法的传输率相差不大,在90%左右.当仿真一个恶意“黑洞”节点产生时,AODV协议下传输率大幅度下降(在30%左右),而基于移动Agent的入侵检测系统仍保持较高的传输率(在80%左右),可以很好地解决“黑洞”的安全问题.

3.3 “虫洞”的仿真

“虫洞”攻击也称为隧道攻击,是一种针对MANET路由协议的严重攻击,它是在两个串谋恶意结点间建立一条私有通道,攻击者在网络中的一个位置上记录数据包或信息,通过此私有通道将窃取的信息传递到网络的另外一个位置.图3是AODV协议和基于Agent入侵检测系统关于“虫洞”问题对比的仿真图.

图3 虫洞仿真图

从图3可以看出,在网络正常情况下,AODV协议与基于Agent路由算法的传输率相差不大,在90%左右.当仿真两个串通恶意虫洞节点时,AODV协议下传输率大幅度下降(在65%左右),而基于移动Agent的入侵检测系统仍保持较高的传输率(在85%左右),可以很好地解决“虫洞”问题.

4 结束语

本文提出了一种在MANET网络中基于移动Agent的入侵检测系统.该系统的基础算法是基于移动Agent的路由算法.入侵检测系统通过监视器、本地判断、综合判断、通信、路径处理等子系统协同工作,当判断出可疑行为超出了预警范围时,发出告警信号,并采用绕路的措施;当可疑行为超出可容忍的范围时,综合考虑来自各个节点的告警信号,得出最终可靠的结论,并从网络中彻底删除该节点.在NS-2网络仿真系统中对入侵检测系统进行了仿真实验.仿真结果显示,本系统仅使用很少的Agent便获得较多的全局信息,大大地减少维持节点信息而产生的开销,具有很高的效率和鲁棒性.

[1]Ramanathan R,Jason R.A brief overview of mobile Ad Hoc networks:challenges and directions[J].IEEE Communications Magazine 50th anniversary issue,2002(5):20-22.

[2]Lange D B.Mobile objects and mobile Agents:the future of distributed computing?[M].Addison-Wesley,1998.

[3]Kachirski O,Guha R.Intrusion detection using mobile Agents in wireless Ad Hoc networks[C]//IEEE Workshop on Knowledge Media Networking,Kyoto,JAPAN,2005.

[4]Tseng ChinYang,Balasubramanyam P.A specificationbased intrusion detection system for AODV[C]//2003ACM Workshop on Security of Ad Hoc and Sensor Networks(SASN’03),Fairfax,USA,October 2003.

[5]Michiardi P,Molva R.Core:a collaborative reputation mechanism to enforce node cooperation in mobile Ad Hoc networks[C]//Sixth IFIP conference on security communications and multimedia,Slovenia,2004.

[6]Venkatraman L,Agrawal D P.Strategies for enhancing routing security in protocols for mobile Ad Hoc networks[J].Journal of Parallel and Distributed Computing,2003,63(2):214-227.

猜你喜欢
计数器数据包路由
二维隐蔽时间信道构建的研究*
采用虚拟计数器的电子式膜式燃气表
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
关于74LS90计数器的Multisim仿真分析
铁路数据网路由汇聚引发的路由迭代问题研究
一种基于虚拟分扇的簇间多跳路由算法
SmartSniff
探究路由与环路的问题
基于预期延迟值的扩散转发路由算法
算盘是个“小气鬼”