基于改进动态源路由协议的 灰洞
M A N ET  攻击检测和缓解研究
徐守萍
*
温聪源 ( 广东金融学院,广州 510520)
摘  要  针对移动自组网络易遭受灰洞攻击的问题,提出一种改进动态源路由协议来检测和缓解灰洞攻击。首先,建立一种 入侵检测系统( I D S ) ,IDS 节点仅当检测到灰洞节点时才设置为混杂模式; 然后,通过检测节点转发数据包数目的异常差来检 测恶意节点,当检测到异常时,附近的 I D S  节点广播阻塞消息,通知网络上的节点共同隔离恶意节点; 最后,利用 G l o m o s i m  工 具进行的仿真实验验证了所提方法的有效性,该方法的平均丢包率仅为 12. 5% ,端到端传输延时仅为 0. 116 s ,比较表明,所提 方法优于其他几种现有灰洞攻击检测方法。 关键词  移动自组网络  改进动态源路由协议
入侵检测系统
灰洞攻击
异常差
中图法分类号    TP 393. 08 文献标志码    A
移 动 自 组 网 络 ( mobi l e  Ad Hoc netw or k ,M A - 由上随机选择部分中间节点作为检查节点,负责对
每个接收到的数据包进行确认,如果检测到可疑行 为,将产生报警数据包并发送到源节点。然而,此算 法对网络流量的消耗很大。文献[3]提出一种检测 并隔离灰洞节点的方法,将数据转发部分涉及的所 有节点创建一个接收数据包证明,当源节点怀疑某 些节点有恶意行为时,启动检查算法验证中间节点。 文献[4]提出一种方案,源节点在发送 任 意 数 据 块 之前,会发送 消 息给目的节点来提醒它,传 输 结 束 后,目的节点将接收到的数据包回发给源节点,如果 数据丢失超出容许范围,则通过聚合网络中源路由 邻居节点的响应检测并移除所有恶意节点。但是, 这种方法使源路由节点周围的所有节点形成混乱模 式,即使没有 攻 击 时,也会造成各个节点的能量损 失。文献[5]提出一种基于信 任 的 方 法,改 进 了 MANETs 的搜索性能和可靠性,其中节点基 于 信 任 关系紧密连接,通过任意两个节点之间的合作来计 算信 任 值。 文 献[6]提出了一种抵抗 黑 洞 机 制 ( ABM ) ,ABM 根据节点传输的路由请求( RRE Q ) 和 路由应答( RRE P ) 之间的异常差值评估节点的可疑 性。这种方法中如果一个节点发送了  RRE P  但是没 有转发对应 的 RRE Q  包,则怀疑它们是恶意节点, 如果可疑值超过阈值,
则隔离它们。但是灰洞节点 能正常参与路由建立过程,能够转发  RRE Q  包到任 意目的节点,所以这种方法不能检测灰洞节点。文 献[
7]提出一种上下文自适应入侵检测系统 ( intru- s i on  detect i on  sys t em ,I DS ) ,能够使给定节点动态适 应环境,如剩余能量、潜在安全威胁和能量负载,协 调并检查接收的数据包,然而,这种入侵检测系统不
NET ) 是以多跳方式实现节点之间的数据传输,每个 移动节点既是主机也是建立路由的路由器。源节点 通过中间节点传送数据包到目的节点,因此,快速寻 并建立源节点到目的节点的路由是  MANETs 的 关键问题
[1]
。反应式 MANET 路由协议中,仅 当 两
个节点需传输数据时才寻并建立路由,由于协议
设定路由中通过中间节点转发数据包,因此,恶意节 点就有机会发起对路由的攻击,扰乱路由正常操作 或拒绝服务( DO S ) ,如黑洞攻击和灰洞攻击。
灰洞攻击或选择性黑洞攻击是特殊类型的黑洞 攻击,容易在反应式路由协议如 D S R 和 AODV 上形 成。黑洞攻击中,恶意节点谎称自己拥有到目的节 点的最短路 由,吸引周边节点通过它转发数据包。 而灰洞攻击中,恶意节点能正常参与寻和建立路 由的过程,然而,恶意节点一旦被选择为路由中的转 发节点,在转 发 过 程 中,它们将会选择性丢弃数据 包。正是因为它们仅丢弃部分数据包,所以灰洞攻 击比黑洞攻击更难检测。
灰洞攻击对反应式路由协议造成严重威胁,为 此,学者提出了多种安全路由协议来缓解单一或协
作式灰洞攻击。文献[2]提 出 一 种 方 案,在 转 发 路 2014 年 5 月 13 日收到
国家自然科学基金( 61075019) ;
广东省科技厅产学研项目(  2012B090700022) 资助
第一作者简介: 温聪源( 1978—) ,男,广东揭西人,硕士,实验师。研 究方向: 网络安全、云计算等。E -ma il : v i nxm@ 126. com 。
*
通信作者简介: 徐守萍( 1964—) ,女,安徽寿县人,硕士,高级实验
师。研究方向: 网络安全、信息工程。
29 期
温聪源,等: 基于改进动态源路由协议的 MA NET 灰洞攻击检测和缓解研究 55
能有效处理灰洞攻击。
现提 出 一 种 非加密的改进动态源路由协议 ( MDS R) ,通过监控和分析无线节点的转 发 行 为 来 检测灰洞攻击。目的节点依据源节点发送的数据包 数目和它实际接收到的数据包数目的显著差异,来 检测路由中灰洞攻击的存在性,然后将可疑节点信
息发送给 I DS  节点,
IDS 节点会在网络中对发起灰 洞攻击的恶意节点进行隔离。动态源路由(  D S R) 协
议是最常用的反应式路由协议[1]
,本文是对  D S R 协 议的 改 进,并 在 MANETs 上 评 估 提 出 方 法 的 有 效性。
解灰洞攻击,当目的节点从源节点接收到数据包时, 将会检测路由中灰洞节点存在可能性。当源节点需 发送数据包到目的节点时,将会把要传输的数据划 分成多个子块,一次发送一个数据块到目的节点,且 在实际传输数据之前使用不同路由( 到达目的节点 的第二最短路由) 发送一个块中数据包的数目信息 到目的节点。
1 动态源路由协议
动态源路由( dynam i c  source r out i ng ,D S R)
[8]
图 1 Fi g . 1 有灰洞节点的路由建立和数据传输 A gray h o l e  nodes r o ut i n g  estab li shm ent
and data transm i ss i o n
两个主 要 功 能: 路由发现和路由维 护[8]
路 由 发 现: 通过广播路由请求( RRE Q ) 来发现和建立路由。
源节点广播 一 个 RRE Q  数 据 包,当 目 的 节 点,或 某 个中间节点且该节点具有到 达目的节点的路由信 息,接收到 RRE Q  数 据 包 后,会发送一个包含完整 路由信息的 路 由 应 答 ( RRE P ) 数据包给源节点,源 节点会根据接收到的完整路由信息建立路由。路由 维护: 当数据包转发过程中的中间节点和邻居节点 的距离超出传输范围时,则会导致链路中断,此时, 它会发回一个路由错误 ( RE RR) 信息给 源 节 点,源 节点将会尝试启用另一条可用路由或者重新寻和 建立路由。
设定源节点 S  发送给目的节点 D 的一个数据块
的数据包数目为 N s  ,令节点 a 0 ,a 1 ,a 2 ,a 3 ,…,a n 表示 源节点 S 到目的节点 D 之间的数据转发路由,路由
上的任意节点 a i 必须将它转发到下一个节点 a i +1 的 数据包数 目 计 数,即 NFPa i ,
a i +1 。当目的节点接收 来自源节点的数据包时,对块中接收到的数据包数 目计数。令 N D 为目的节点接收到的数据包,则目的 节点接收到的数据包概率计算如下。
N D
=
( 1)
,则目的节点检测路由上是否存 P D  N S
2 改进方案提出
I DS  模型建立环境假设如下: ① 所有节点具有 如果 P  >  T D P L
在任意恶意节点,如果不存在,则目的节点发回确认 [11]。这里 T  数据包丢失阈值,其 信息给源节点 PL 是 相同物 理 特 性,如 果 节 点 A 在 节 点 B 的 传 输 范 围
内,则节点 B 也在节点 A 的传输范围内; ② 所有节 点都是被授 权 的 节 点; ③ 源 节 点、目 的 节 点 和 I DS 节点默认为信任节点; ④仅当需要 时 设 置 所 有 I DS 节点 为 混 杂 模 式,
IDS 节点周边总有一个其 他 I DS 节点作为邻居; ⑤由于从源节点到目的节点有多个 路由,所以源节点须缓存其他路由信息,缓解新路由 发现过程中的能量消耗。
值范围在 0 ~ 0. 2。本文方法中,当数据包丢失超过 源节点发送的总数据包的 20% 时,目的节点启动灰 洞检测过程。仅当源节点接收到从目的节点发回的 肯定回复或从邻居 I DS  节点接收到 A L A RM  数据包 之后,源节点才开始转发数据的下一个子块。程序 1 表明了数据包转发和接收过程。
程序 1: 源节点和目的节点在数据转发过程中的操作 if 源节点 发信息提示目的节点数据块中数据包数。
通过路由发现过程建立的路由发送一个数据块。 else i f 目的节点 比较数据包总数和源节点提示次数。
计算目标节点可以接收数据包的概率 P D 。 if P D  <  T PL ( T PL  的值介于 0 和 0. 2) 将确认信息发回源节点。 El se
启动检测过程。 end i f
2. 1 协议描述
根据 D S R 协议,源节点必须广播 RRE Q  包来寻 到达目的节点的路由,所请求目的节点或任何拥 有路由的中 间 节 点 接 收 到 RRE Q  包后将发送应答 给源节点
[9]
。如图 1( a ) 所示,具有灰洞攻击能力的
恶意节点能正常参与路由的建立过程,它们像其它
正常 D S R 节点一样转发 RRE Q  包,当源节点选择了 经过这个恶意节点到达目的节点的路由时,它
将会
选择性的丢弃数据包[10]
,如图 1 ( b ) 所示。为了 缓
56 科学技术与工程14 卷
灰洞攻击检测过程
当目的节点发现它从前一个节点接收到的实际
数据包数目显著低于源节点发送的数据包数目时,
将会启动灰洞节点检测过程[12]。首先目的节点发送
查询请求( QRE Q)数据包到源路由( 数据转发路由)hue trunc函数
上距它两跳距离的节点,如果S,a0 ,a1,a2,a3,
…,a
n-3,a
n-2
,a
n-1
,a
n
,D 代表源路由,则节点  D 发送Q
RE Q包到距节点D 两跳距离的节点a
n-1
。QRE Q用于查询节点转发到其下一跳节点的数据包数目,节点a n-1发回查询应答(QRE P)包到目的节点D,Q RE P包含了节点转发到其源路由上下一跳邻居上的数据包数目信息。根据接收的QRE P,目的节点验证是否它的前一跳邻居( 节点a n)  正确转发了其从前一跳节点( a n-1节点) 接收到的所
有数据包,如果不正确,目的节点将移动节点a n-1和a n 到可疑列表,如果正确,则说明这两个节点正确转发了数据。然后,目的节点再次发送新QRE Q到源路由上距a n-1节点两跳的节点a n-3,根据接收到的QRE P,以同样的方法,目的节点判断这两个节点a n-3和a n-2 是否正确转发了它们接收到的所有数据包。这个过程持续到在源路由上不存在距其两跳距离的那个节点为止。检测过程如程序2 所示。
程序2: 灰洞攻击检测过程
1.X 发送QRE Q数据包到源路由上距其两跳距离的节点。
2.节点X 接收QREP 包。
3.根据QREP 包,验证所有节点到节点X 转发的数据包数量。
4.如果数据包转发数相匹配,
·
对节点Y 重复步骤1 到源路由上距其两跳距离的节点。
·
重复步骤2、3 和4。
如果数据包转发数不匹配
·
移动源路由上发送QREP 的节点及其下一个节点到可疑
列表。
·
停止这一过程。
目的节点根据QRE P包对源路由上中间节点数据转发行为进行第一级检测,如果任意两个中间节点之间转发的数据包数差超过监测阈值,则目的节点同时标记这两个中间节点为可疑节点。任意两个节点之间可疑行为的概率P m b 计算如下。收到的数据包明显低于源节点所发总数,则节点8启动检测过程。
如图2( a) 所示,目的节点发送QRE Q包到距目的节点两跳距离的节点GN,恶意节点G N 可能会谎报它转发到下一个节点的真实数据包数目信息[13]。例如,如果源节点发送100 个数据包到节点GN 用
于转发,节点G N 选择性丢弃了30 个数据包并转发了剩余数据包,它可能在QRE P中谎报它转发到目的节点的真实数据包数目。在这种情况下,源节点将会指定节点G N 的前一跳节点接收的数据包数目100,节点G N 发回包含它转发到下一个节点的数据包数目的QRE P,当目的节点接收到QRE P,验证它从前一跳节点接收到的数据包数目是否为QRE P中指定的数目,如果目的节点从节点7 接收到的实际数据包数目为70,与指定的数目不同,则目的节点会同时怀疑节点7 和G N,将他们移到其可疑列表。图2( b) 中,节点1 和节点6 分别为源和目的节点。例如,如果源节点发送100 个数据包,如果目的节点仅接收到其中的60 个数据包,则目的节点发送QRE Q 包到节点4,节点4 回复包含其转发到下一个节点5 的数据包数目的QRE P包,节点5 接收到QRE P,转发它到目的节点6,节点6 验证它从节点5 接收到的数据包数目是否与QRE P中的数目相同。但是根据QRE P包,目的节点发现节点4 转发了源节点发送的100 个数据包中的60 个数据包,因此它
将节点4 移动到可疑节点列表。然后目的节点再发
送QRE Q包到距节点4 两跳距离的节点2,节点2 发
回包含它转发到下一个节点GN 的数据包数目的Q RE P,节点GN 接收到QRE P并转发它到目的节点。恶意节点G N 不能修改QRE P包,因为消息与一个消息认证码( MAC) 相连,它会产生节点的私钥( 节点2) 和一个临时随机数,防止被篡改。如果目的节点根据接收QRE P包得知节点2 发送到节点GN 的
数目为100,而节点  4 实际转发了60 个数据包,因此可能是节点2 或节点G N 丢弃了数据包,所以目的节点也将节点2 和节点G N 移动到可疑列表。
2. 2
N F P a
n-2,a
n-1
-N F P a
n-1
,a
n( 2)
P
m b 式( 2) 中=
N
S
N F P a
n-2
,a
n-1
指的是节点a n-2转发到节
点a n-1的数据包数目,如果P m b T m,则节点a n-2
或者a n-1为恶意节点,T m是监测阈值,其值范围在0 ~0. 2。
图2( a) 中,节点1 转发一个数据块到目的节点
8 之后,目的节点验证它实际接收的数据包数目,这里节点  1 在开始实际数据包传输过程之前提示它在一个块中转发到目的节点的数据包数,若节点8 接
图2  源路由上灰洞攻击的例子
Fi g. 2  E xamp l es of source r o ut i n g on grey h o l e attac k
29 期
温聪源,等: 基于改进动态源路由协议的 MA NET 灰洞攻击检测和缓解研究
57
入侵检测
目的节点将可疑节点请求 ( MN RE Q ) 包发给其 附近 I DS  节点,IDS 节点转发 MN RE Q  包到所有 I DS 节点,以此公告在源路由中的可疑节点信息。当所 有 I DS  节点 接 收 到 MN RE Q  后,源 节 点 邻 近 的 I DS 节点发送报警( A L A RM ) 包到源节点,提示源节点注 意路由上存在的攻击者并让其发送下一个数据块。 源节点发送下一个数据块时,与可疑节点相邻 的 I DS  节点会转成混杂模式,监听可疑节点是否转 发和丢弃数据包,如果发现可疑节点故意丢弃数据 包,则移动它到恶意节点列表,然后通过 I DS  节点发 送阻塞 消息给所有附近 节 点,接收到阻塞消息的 I DS  节点将广播给其邻近节点。阻塞消息只能通过 I DS  节点转发到网络,任意接收到阻塞消息的正常 节点将获知恶意节点信息。一旦确定了恶意节点, 所有节点将从它们路由中移除涉及恶意节点的任何 路由信息,不再接收恶意节点的 RRE P  包。
将本文方法与文献[
7]提出的现有方法进行了 比较,文献[7]中源节点以数据块方式发送数据,通 过源路由的邻近节点实现检测,而且没有采用加密 方法,与本文方法相似。
利用下列指标来评估方法的性能[15]
( 1) 丢包率: 恶意节点丢弃或由于阻塞损失的
数据包总数与发送数据包总数的比率。
( 2) 流量消耗( bi t  / s ) : 为了检测和处理恶意节 点而消耗的流量。
( 3) 端到端传输延迟( s ) : 指的是源节点发送一 个比特数据与目的节点接收到这个比特数据的时间 间隔。
2. 3
3. 1 丢包率
图 3 显示了各种协议在存在灰洞节点网络中的 丢包率。在有攻击情况下 D S R 的丢包率约为 75% , 而 M D S R 的 丢 包 率 约 为 11% ,减 少 了 64% ,文 献 [7]方法的丢包 率 约 为 15% ,相 比 本 文 方 法 MD S R 增加了 4% 。
3 实验
利用 G l om os i m  仿真工具来评估提出方法对检 测和隔离灰洞节点的有效性,在 1 000 m × 1 000 m  区域内,随机分布 50 个正常节点执行 M D S R 路由协 议,随机定位一组恶意节点选择性执行灰洞攻击,固
定分布多个 I DS  节点
[14]
。随机选择 20 对节点用于 数据通信,每组发送 5 kb UDP -C B R
/ s 。以随机点模 型方式移动所有正常节点,移动速度范围在 0 ~ 20 m  / s 。此外,设定正常节点的四类 暂 停 时 间: 0 s 、5 s 、10 s 和 15 s ,暂停时间指的是可移动节点能在一 个位置上维持不动的时间。例如,在 暂 停 时 间 为 0 的情况下,则 表 示所有节点连续移动,没 有 任 何 停 留,暂停时间表示网络拓扑变化 的 频 率。 G l om s i m 实验的主要参数列于表 1,所有实验数据是 10 个实 验结果的平均值。
图 3 Fi g . 3 几种不同协议下的丢包率比较 Severa l d i fferent  packet l o ss  rate
under the a g reement
3. 2 流量消耗
图 4 显示了存在灰洞节点时各种协议产生的路 表 1  仿真参数
Simulation P a r amet e r s
由消耗。MD S R 的路由流量消耗较高,是 因 为 检 测
攻击 时 需 要 传 输 Q RE Q 、Q RE P 、MN RE Q  和 A L A RM  包。MDS R 的控制包流量消耗率近似 50% ,相比与
D S R 高了 8% 。然而,文献[7]的控制包流量消耗率 约 58% ,相比与本文方法高了 8% 。
T ab l e  1 参数 值
覆盖区域 / m 2
节点数量 仿真时间 / s  传输范围 / m  移动性
1 000 × 1 000
60 600 250 随机点模型
5 Kb UDP 数据包,数据有效载荷为 512 字节,中间离开时间为 1 s
20
5
20 对( 40 个节点)
U D P -C B R 0、5、10 和 15 9  个节点(  固定)
端到端传输延迟
本文方法中源节点发送数据包到目的节点的端
到端延迟优于文献[7]的 方 法,如 图 5 所 示。如 果 源路由中没有任何恶意节点,则转发数据包的端到
端延迟最小,因为检查是否存在攻击者不影响数据
传输时间。当源路由包含灰洞节点,通过源路由中
某些中间节点合作就可以定位它们,能够快速检测
3. 3 负载
移动速度/ ( m ·
s  - 1 ) 灰洞节点数目 连接 流量类型 暂停时间
/ s
I DS  节点
58 科学技术与工程14 卷
图4  各种协议下控制包流量消耗
Fi g. 4  V ar i o us agreem ents under the
c o ntr o l of f l o w rate
图6  M D SR数据包传输率
Fi g. 6  M D SRpacket transm i ss i o n rate
表2各方法的平均丢包率、控制包额外流量消耗、
端到端时延比较
T he a v e r age packet loss r ate of each method,
并隔离攻击者。因此本文方法即使在存在攻击者情
况下,转发数据包的端到端延迟也较少。
T ab l e 2
cont r o l package additional tr affic c ons um ption and
end-to-end de l a y
额外流量
消耗率/%
端到端
时延/ s
方法丢包率/%
文献[2]方法
文献[4]方法
文献[6]方法
文献[7]方法
本文方法
16. 7
17. 1
16. 2
15. 9
12. 5
60. 7
47. 6
48. 9
58. 3
50. 4
0. 143
0. 152
0. 149
0. 128
0. 116
从表2 可以看出,本文方法的丢包率明显低于
其他几种方法,其中,低于文献[4]方法近5% ,这是
因为M D SR协议中,目的节点在源路由上一些中间
节点的帮助下,利用QRE Q和QRE P包来启动灰洞
检测,首先定位可疑的攻击者节点,IDS 节点仅对可
疑节点进行监控,因此能够快速的隔离攻击者,显著
减少了丢包率。
在端到端时延方面,本文方法也明显低于其他
几种方法,这是因为该方法仅当源路由中存在恶意
节点时才启动灰洞处理过程,因此,相比其它几种方
法,可以节省更多的时间,效率更高。
在额外流量消耗方面,本文方法高于文献[4]
和文献[6]方法,主要由于检测攻击时需要传输Q
RE Q、QRE P、MNRE Q和A L ARM包,耗费了一定的
网络流量,然而,该方法的流量消耗低于文献[2]和
文献[7]方法,其中,比文献[2]方法低出
了10. 3% 。
综上可知,虽然本文方法在额外流量消耗方面
略高于文献[4]和文献[6]提出的方法,但是在丢包
率及端到端时延方面均未最低,由此可见该方法的
优越性。
图5  几种不同协议下端到端延迟比较
Fi g. 5  B o tt o m end to end de l ay c o mpared
severa l d i fferent a g reement
3. 4 不同I DS 节点下数据包传输率
图6 显示了存在  5 个灰洞节点时本文方法的数
据包传输率,首先获得覆盖整个网络区域的9 个
I DS节点的数据包传输率,然后将I DS节点数减少
到4,使它不足以覆盖整个网络区域,随着I DS节点
数的减少,一些灰洞节点不能被有效的检测出来,这
导致了较低的数据包传输率。
3. 5 比较及分析
为了更好地评估本文方法,将其与其他几种灰
洞攻击方法进行三方面的比较,包括丢包率、控制包
额外流量消耗率及端到端时延,比较方法包括文献
[2,4,6,7]提出的方法,针对各个方法,自己进行了
实验,利用G l om os i m仿真工具,G l omosi m 参数设置
参照表1,节点移动速度取0、5m/s、10 m/s、15
m/s、20 m/s,结果取平均值,IDS 节点数设置为9,各
方法的参数设置分别参照各自所在文献,实验结果
见表2。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。