时间:2024-05-23
杨治秋 陈丽敏 张丹
摘要:由于故障或恶意节点,收集或报告的传感器数据可能是错误的,基于此,提出了一种基于邻域的无线传感器网络恶意节点检测方案。计算机模拟结果表明,除非恶意节点的行为与正常节点相似,否则大多数恶意节点根据其自身读数报告都会被正确检测到。
关键词:无线传感器网络;恶意节点;故障;基于邻域的检测
中图分类号:TN83 文献标识码:A
文章编号:0439-8114(2020)05-0142-03
Abstract: Due to faults or malicious nodes,the sensor data collected or reported might be wrong. In this paper, we present a neighbor-based malicious node detection scheme for wireless sensor networks. Computer simulation shows that most of the malicious nodes reporting against their own readings are correctly detected unless they behave similar to the normal nodes.
Key words: wireless sensor networks; malicious nodes; faults; neighbor-based detection
在无线传感器网络中,传感器节点在恶劣和无人值守的环境运行时,可能会产生错误的传感器读数和错误的报告,从而导致错误的决策或能量消耗。错误读数和报告的潜在来源包括噪声、故障和网络中的恶意节点。与噪声和故障不同,恶意节点可以任意修改检测数据,故意生成错误报告[1]。为确保存在此类错误数据和报告的情况下进行可靠的事件检测,有必要对恶意节点进行检测和隔离,从而大大降低其对决策的影响[2]。
基于此提出了一种邻域的无线传感器网络恶意节点检测方案。恶意节点被建模为有故障的节点,这些节点可能故意报告一些不容易检测到的智能错误数据。在不牺牲正常节点和降低事件检测精度的前提下,应利用置信度和加权来检测和隔离恶意节点。
1 网络模型和操作模式
在介绍基于邻域的恶意节点检测方案时,使用了一个平面网络,其中传感器节点随机部署在传感器字段中[3]。假设所有传感器节点具有相同的传输范围R。因此,如果两个节点的距离小于或等于R,则它们是彼此的邻域。每个传感器节点,根据其自身的传感器读数和相邻节点的读数来检测恶意节点以及故障节点。
在检测恶意节点时,可以使用两种不同的操作模式:事件驱动和周期性,其中Tc表示周期,ts是两个连续传感器之间的间隔读数,且Tc≥ts。在事件驱动模式下,具有异常读数的传感器节点会向其邻域发送警报。在周期模式下,每个传感器节点定期向其邻域发送报告,而不管事件是否发生。
2 恶意节点建模
为了处理恶意节点,将它们视为可以任意修改其读数的错误节点。简单地根据其读数报告可能会很快中断,除非采取了一些容错措施,否则会导致网络功能中断[4]。然而,即使使用简单的检测方案,也可以检测到这样一个微不足道的恶意行为。
在对恶意节点建模之前,首先定义故障和事件的模型。假设网络中的任何节点都可能发生故障,并且所有传感器节点的故障概率相同。假设每个传感器节点都知道正常读数的范围,从而可以确定传感器读数是否属于正常范围。在这里,将“正常”范围定义为无事件情况下的正确传感器读数范围。为了方便起见,所有超出正常范围的其他读数都被称为“异常”[5]。因此,在一个事件区域中,一个好的传感器节点上的正确读数也被称为“异常”。此外,假设每个传感器读数都是二进制的,因此它是0(正常)或1(异常)。本研究考虑了两种类型的故障:瞬时故障和永久故障。假设瞬态和永久性故障分别发生在具有相同Pt和Pp概率的所有节点上,且是随机和独立的。具有瞬时故障的节点应被视为正常节点,即使它们有时显示错误的读数。具有永久性故障的传感器节点可能会重复报告0或1。为方便起见,将这种故障命名为卡在0和卡在1故障。假设它们发生的概率相同(即Pp0=Pp1=PP/2)。
假设恶意节点以相同的概率Pm随机独立地发生。无论传感器的实际读数如何,它们都可以报告任何值,0或1。在对恶意节点建模时,假设它们根据读数报告概率Pma建模。例如,如果Pma=0.7,恶意节点根据其读数报告,概率为0.7。
在简化假设Pt是对称的情况下,即P(1|无事件)=P(0|事件),恶意节点报告不同于基本事实的概率Pinv,Pinv可以写成Pinv=Pt(1-Pma)+(1-Pt)Pma。對于给定的Pt(<0.5),Pinv值随着Pma值的增加而增加。如果Pt=0.20,Pma=0.20,Pinv=0.32,略高于Pt。如果Pma增加到0.80,Pinv=0.68,显著高于Pt。如果Pma减小到0.10,Pinv=0.26,非常接近Pt。在这种情况下,很难区分恶意节点和普通节点。尽管恶意节点的行为类似于普通节点,但它们可能仍然未被检测到,不会显著影响系统性能。
方案主要是检测恶意节点的行为与正常节点不同,同时即使面对恶意节点也能保持较高的事件检测性能。由于恶意节点而添加的错误读数可能会导致不良事件检测准确性和增加错误警报,会使恶意节点的事件检测变得更加复杂。
3 基于邻域的恶意节点检测
在检测存在故障和事件的恶意节点时,采用平滑滤波和置信度评估来提高恶意节点的检测率。滤波器用于纠正由于瞬时故障导致的一些错误读数。因此,它有效地降低了瞬时故障概率Pt,从而可以在更大范围的Pma中检测恶意节点。置信水平用于估计传感器节点的可信度,反映决策过程中的可信度。从逻辑上隔离恶意节点和存在永久性故障的节点。
3.1 数据平滑和变化测试
在周期性和事件驱动的检测中,受瞬时故障影响的读数可能导致错误决策,导致计算和通信资源的浪费。此外,瞬时故障影响的诊断结果可能会导致一些正常的传感器节点与网络隔离,从而导致传感器覆盖率损失。
为了避免不必要的事件驱动检测周期和由瞬时故障引起的错误决策,试验采用了一个滤波器,为了平滑传感器读数,可以消除大多数瞬时过冲,而不会引起不必要的警报。将t=k时节点Vi的传感器读
数X给范围测试块,生成一个二进制值y(例如,0或者1),然后应用于平滑滤波器,生成输出b。范围测试块检查输入是否属于正常范围。同样的输入X也被提供给变化测试块,以查看传感器读数{X|1≤k≤Nc}在Tc期间的变化,maxX(X)-minX(X),检查循环中k的所有值是否小于δ。如果条件满足,传感器节点Vi处的标志Si设置为1。当正常传感器的读数在任何情况下都不发生变化时,变化试验可应用于在给定周期Tc內变化大于或等于δ的应用。例如,温度传感器的读数(其中Tc是1 d)可能会发生变化,使得变化可能大于或等于δ(即δ=3)。这种变异测试可能会检测到一些节点存在卡在0(正常)故障,这些故障在事件区域中会产生负面影响。
滤波器执行以下平滑功能使用w最新读数和阈值q,如下所示:
b=1for∑ y≥q (1)
在不修改方案其余部分的情况下,可以使用其他过滤器。平滑功能在传感器节点内执行,不需要节点间通信。在Tc的每个测试周期(即周期性)或b =1(即事件驱动)时,需要进行一次代码间通信。在事件驱动模式下,只有从相邻节点接收到警报的节点执行事件检测过程,以决定警报的正确性。
3.2 置信水平评价
为了解决恶意节点问题,试验将传感器网络建模为加权有向图,其中每个传感器节点Vi都有Wij,范围从0到1,从Vi的角度初始化为1,作为相邻节点Vj的置信水平。根据Vj的报告和Vj对事件做出的决定,在节点Vi上更新Wij级别。如果Wij=1,节点Vi完全信任节点Vj。然而,如果Wij=0,Vi根本不信任Vj。同样,每个节点Vi有自己的置信水平Wij,也在0到1之间。Wij达到0时,Vi、Fi的故障状态设置为1,表示Vi有故障。
上面定义的置信水平代表了相应传感器读数的可信度,并反映在即将解决的基于邻域的恶意节点检测方案中。在每个事件驱动和周期性检测结束时,每个传感器节点更新自己的置信水平和相邻节点的置信水平,以反映后续决策过程中的水平。
3.3 恶意节点检测
在基于邻域的检测方案中,每个传感器节点仅使用其相邻节点的传感器读数在本地检测恶意节点以及故障节点。使用置信水平作为权重的加权多数用于检测恶意节点。提出的恶意节点检测方案如下。
1)给定传感器读数X,获取y并确定b,并对卡在0故障检测进行变化测试。
2)从邻域处接收b和Fj(定期)。向相邻节点发送警报(事件驱动)。
3)计算并做出决定Di
4)更新相应的置信水平Wij。由于瞬时故障而导致的大多数错误数据都会在本地纠正,因此可以大大减少错误警报,不会引起任何代码间通信。此外,还对循环Tc期间的传感器读数进行了变化测试。在步骤2)中,使用邻域通信执行定期检查(在定期模式下)。但是,在事件驱动模式下,只有bi=1的节点向相邻节点报告警报,以启动事件驱动检测。步骤3)执行加权权重来决定事件,其中M1(M0)是bij= 1(0)的节点权重之和,di是Vi的节点度。置信水平反映在决策过程中。在步骤4)中,所有权重Wij都会更新。更新权重以有效地从网络中删除恶意节点是很重要的。
更新政策因事件的决定而有所不同。在没有事件的情况下,权重Wij更新如表1所示,其中Fj表示Vj的故障状态。只有当Vj为无故障(即Fj=0)且属于多数组时,Vj节点Wij的置信水平才会增加β。否则,它会减少α。在这里,α和β必须正确选择以优化性能。
在有事件的情况下,权重Wij更新如表2所示。惟一的区别是第三行的置信水平保持不变,因为事件区域的确切边界未知。
在无事件的情况下,每个传感器节点Vi更新自己的置信水平Wij,如下所示。
Wij=max(0,Wij-?琢),bi=1或Si=1max(1,Wij+?茁),bi=Si=1 (4)
在上述表达式中,Si=1表示节点Vi处的读数不满足最小变化要求,表明存在潜在的卡在0故障。当Wij达到0时,节点Vi、Fi[最初为0(无故障)]的故障状态设置为1(故障)。一旦设置为1,如果不采取任何恢复措施,它将保持在那里。
4 模拟结果
通过计算机仿真,评价了恶意节点检测方案的有效性和检测结果的准确性。模拟在一个正方形区域随机部署了1 024个传感器节点。选择传输范围R将平均节点度数d设置为12。此外,假设事件区域是半径为R的圆(即与传输范围相同)。
永久性故障、瞬时故障和恶意节点是随机独立生成的。在永久性故障的情况下,它们在前10个运行周期内均匀生成。在没有事件的情况下,假设恶意节点根据实际读数报告概率Pma。另一方面,假设它们在事件区域中时报告0,以估计最坏情况下的事件检测性能。
定义了恶意节点检测率(MDR)和误判率(MR)两个指标来评价所提出的恶意节点检测方案。MDR定义为检测到的恶意节点数与恶意节点总数之间的比率。MR定义为故障的正常节点与正常节点总数之比。不针对恶意节点定义MR的原因是恶意节点的行为类似于普通节点(即大多数情况下正确报告),在它们改变行为之前,不会造成任何伤害。
另外两个指标,事件检测准确度(EDA)和误报率(FAR)用于评估结果事件检测性能。EDA定义为正确识别的事件数与生成的事件总数之间的比率。FAR是在没有事件的情况下,报告1的节点数与节点总数的比率。
當Pp=0.1,Pt=0.1,Pma=0.4时,首先对4个不同的Pm(0.05、0.10、0.15和0.20)值进行模拟估算MDR和MR。50个操作循环后的结果如表3所示,其中选择α=0.2和β=0.05。为了进行比较,还对α=β=0.1(表4)进行了模拟。表3中的MDR很高,而MR很小。另一方面,表4中的MDR非常低,因为失去的置信水平很快恢复。α/β值必须适当分配,以实现高MDR,同时保持低MR。如果α/β=4,在没有事件的情况下,每5个周期发送1次警报的恶意节点将恢复其置信水平,因此不太可能被检测到。由于模拟中Pma设置为0.4,因此获得了高MDR。对于相同的α和β值,得出的EDA显示为不同的Pm值。对于这两种不同的情况,FAR几乎相同,非常接近0。随着Pm的增加,(0.2,0.05)保持了比(0.1,0.1)更持久、稳定的性能。
5 结论
研究提出了一种基于邻域的无线传感器网络恶意节点检测方案。在不牺牲正常节点的情况下,在存在故障和事件的情况下检测恶意节点。它们被建模为故障节点,可以任意修改传感器读数,并且行为智能不容易被检测到。置信水平用于评估传感器节点在正常运行期间的可靠性。更新置信度的两个参数用于区分恶意节点和正常模式,需要正确选择它们之间的比率,以最终隔离恶意节点,即使它们的行为与普通节点略有不同。在面对故障和事件时,可以保持高检测率和低错误检测率的水平。
参考文献:
[1] 刘 伟,胡安林.无线传感器网络覆盖率与节能性研究[J].电子技术应用,2016,42(6):98-100.
[2] 廖先莉.无线传感器网络多重覆盖调度算法的研究[D].重庆:重庆大学,2013.
[3] SINGH M,KHILAR P M.A range free geometric technique for localization of wireless sensor network(WSN) based on controlled communication range[J].Wireless personal communications,2017,94(3):1359-1385.
[4] 刘洲洲,王福豹,张克旺.基于改进萤火虫优化算法的WSN覆盖优化分析[J].传感技术学报,2013,26(5):675-681.
[5] 杨治秋,原福永.基于簇状结构的时间同步算法[J].仪表技术与传感器,2017(4):100-104.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!