面向多跳物联网的恶意节点检测技术研究

  面向多跳物联网的恶意节点检测技术研究

  作者:诸子牧梵尘

  多跳物联网拓扑灵活,接入设备数量、类型繁多,设备的硬件、软件安全性低,使整个网络安全性不足,易遭受来自内部的恶意攻击。攻击者可入侵物联网设备节点,并使用这些节点窃取敏感的网络数据,篡改网络中的数据,恶意丢包,甚至发动拒绝服务(DoS)攻击等。

  攻击者从网络内部发起攻击,使面向外部攻击的防护措施失效

。内部攻击通常具有隐蔽性,且物联网设备资源有限,使得如何在多跳物联网中高效地定位恶意节点成为难题。因此研究面向多跳物联网的恶意节点检测技术具有重要的理论意义和实际应用价值。

  多跳物联网

  多跳物联网由物联网节点与物联网基站(Sink,网关)组成;其中物联网节点与基站在网络拓扑上存在多跳(大于一跳)的通信距离,

  即物联网节点发送数据到达物联网基站时需要通过由多个节点组成的通信路径

  其中物联网节点需要定期地发送数据(传感数据等)到达物联网基站以完成其任务,而物联网节点之间在一定距离内存在通信能力。

  典型的多跳物联网有无线传感器网络、机器人网络等

。下图展示了一个典型的多跳物联网例子。

  基于感知器的集中式恶意节点检测技术

  集中式的恶意节点检测技术优势在于检测核心部署于计算能力、存储能力较强的中心节点,因此可使用较为强力的检测模型。

  然而由于检测核心部署于中心节点,通常无法感知网络内部节点之间的通信,导致较难检测发生在节点之间的攻击,且对定位恶意节点的具体位置造成了较大困难。

  除此以外,

  中心化部署的检测技术需要物联网节点对中心节点进行频繁的通信以提供检测证据,易造成较高的带宽、能耗开销

  基于K-Means的信任值聚类

  在求解出每一个节点的信任值后,PD即可基于节点的信任值识别恶意节点。一个直观的方法是设置一个固定的阈值;当节点的信任值高于阈值时,则节点被判定为可信。

  反之,节点被判定为恶意。因此,如何选择一个合适的阈值成为一个问题

。考虑到设定静态阈值需要考虑不同的网络拓扑情况、节点的真实攻击概率等因素,在实际场景下实用性较差,本研究采用KMeans聚类对节点的信任值进行聚类,实际上构建了一个“动态”的阈值。

  被聚类到信任值较低的类别中的节点被判定为恶意节点,被聚类到信任值较高的节点则被判定为可信节点。

  

  K-Means是一种经典的聚类方法,被广泛使用于多种聚类场景

。K-Means的主要参数为期望聚类的类数。在本研究中,K-Means聚类的输入为节点的信任值,输出为多个信任值不同的组。

  直观上,PD可将所有节点根据其信任值直接聚为两类:可信组(BenignGroup,BG)和恶意组(MaliciousGroup,MG),如图所示。

  强化检测

  强化检测用于进一步提高PD的检测准确率,主要包括如下的过程:首先使用检测方程集DES训练感知器,进而求得所有节点的信任值。基于节点的信任值,对节点进行聚类,根据聚类结果进行检测路由优化,获得强化路径集EPS。

  PD向EPS中的路径注入新的数据包,基站Sink接收到新的数据包后则可获得新的检测方程

;这些新的检测方程可组成强化检测方程集EDES,可被输入到感知器中再次进行训练,使得感知器的模型得到进一步的优化,提升对全局节点的信任值拟合度。

  当基于EDES的训练结束后,再次从感知器模型中提取所有节点的信任值,

  并使用K-Means聚类将所有节点按信任值高、低聚为两类,信任值高的类别被称为最终信任组(FinalBenignGroup,FBG),信任值低的类别被称为最终恶意组(FinalMaliciousGroup,FMG)

;其中,FMG组中的节点即为PD检测的最终恶意节点。强化检测的过程如图所示。

  环境设置

  实验采取仿真的方式进行试验。在实验环境下,所有的物联网节点被离散地部署到一个100x100平方米的矩形区域,每个节点的通信距离是10米到15米。

  物联网在满足下述条件的前提下随机生成:对于每一个节点,至少有一条路径的起点为此节点,终点为基站Sink,确保每一个物联网节点都能够被连通。

  注入数据包的节点应从矩形区域的最左边进行选择,Sink基站则被部署到矩形区域的最右边;确保注入数据包的节点与Sink基站均为可信。

  为尽量减少实验的偏差,每一轮仿真实验会使用10个不同的网络拓扑收集数据,然后选择检测结果的平均值作为最终的实验结果。本实验仿真程序使用python进行编写,使用scikitlearn[76]作为提供机器学习功能的工具库(如使用K-Means聚类)。

  其中,

  绿色节点为可信节点,蓝色节点为正常节点,红色节点为恶意节点

  节点数量对检测性能的影响

  为研究节点数量对HD、PD、PDE以及SDBG检测性能的影响,实验分别设置节点数量为5,10,15,20与25。在此实验中,注入数据包的数量为10000,攻击类型为多重混合攻击,攻击概率为0.3,恶意节点比例为0.3,网络路径多样性为使用网络中所有的路径。

  实验中HD的检测结果的置信区间为[0.54,0.88],PDE的置信区间为[0.89,0.97],SDBG的置信区间为[0.73,0.75],置信度为0.95。

  为简单,路径的数目较少,检测方程的未知数数量较少,可以较为容易地识别恶意节点

。当节点的数目达到10及以上,网络拓扑变得逐渐复杂,检测方程的未知数数量增多,此时较难拟合出节点准确的信任值,因此检测准确率下降。

  而在节点数量为20的网络实验当中,PDE的强化检测使得其性能优于PD。而SDBG的准确率与召回率相对较低,因为SDBG无法检测恶意节点实施的篡改攻击以及重放攻击行为。

  基于共识的分布式恶意节点检测技术

  分布式的恶意节点检测技术优势在于检测核心部署于物联网节点,深入网络内部,因此可感知网络内部节点之间的通信信息,有利于监控网络活动与定位恶意节点。

  然而由于物联网节点的计算资源有限,无法部署强力的异常检测模型

。另外,分布式的检测系统通常依赖于设备节点对其邻居节点的监控(监听数据包、监控行为等),根据监控结果给出是否为恶意节点的判定。

  这种判定结果对特定的监控节点存活性与可信性具有较高的要求,当监控节点受到损毁或发生丢失时,其检测信息将会丢失,影响整个检测技术的正常工作;

  若恶意节点发出恶意的判定信息,亦会导致检测结果出现误报

  惩罚与奖励

  为识别恶意节点,需要放大可信节点与恶意节点之间的信任值之差,因此需要对恶意节点的攻击行为进行惩罚,降低对恶意节点的评价:同时需要对可信节点进行奖励,提高对可信节点的评价。

  本质上,奖励是惩罚的逆过程,意在恢复那些被错误评价的节点的信任值

。DCONST规定,一次遭受恶意攻击的通信会为可疑的节点带来一次惩罚,但只有多轮成功(不受恶意攻击)的通信会为参与通信的节点带来一次奖励。

  这是因为恶意攻击并不总是出现,一次成功的通信并不能代表通信路径上不存在恶意节点。

  对于重放攻击行为的惩罚

  为检测重放攻击,一些检测方法要求节点短暂地存储(基于一个时间窗口的缓存)其转发过的数据包,用以发现一个数据包是否为曾经转发过的数据包。

  当节点检测到自身接收到了先前转发过的数据包,则可判断为重放攻击:但是若攻击者发出重放攻击的数据包超出此时间窗口,则这种检测方法将失效

  另一方面,这种方法也要求节点对数据包进行存储,带来了较高的存储代价。为解决这个问题,DCONST根据节点是否接收到余的ack来检测是否出现了重放攻击。下图给出了一个重放攻击的例子,其中数据包遭到恶意节点n复制,因此网络中产生了冗余的(重复的)ack,这些ack由节点d产生,发送至节点no:这些余的ack被n,n,n2所接收。

  这种冗余机制使得节点无需缓存数据包,亦不需要考虑接收ack的时间窗口问题(因除第一个接收到的ack为正常的ack以外,其余的都是余的ck)。

  关于重放攻击行为的惩罚证据为非直接重放惩罚证据(IndirectReplayPunishmentEvidence,IRPE)

  基于K-Means的检测技术

  DCONST使用节点信任值中的诚实度、转发度、几余度分别作为K-Means的输入,设置KMeans的聚类数量为3,则可根据每组输入将节点分为3类:高信任组(聚类中心信任值最高)中信任组(聚类中心信任值其次)以及低信任组(聚类中心信任值最低为降低恶意节点识别的误报率。

  只有低信任组里的节点会被识别为恶意节点。若高信任组与低信任组的聚类中心聚类太近(在DCONST中,聚类中心值被设置为10),意味着高信任组节点与低信任组节点分布极为接近,此时所有节点都被认为可信。

  输入诚实度进行聚类得到的低信任组被称为篡改攻击集(Tamper-maliciousSet,TMS),输入转发度进行聚类得到的低信任组被称为丢包攻击集(Drop-maliciousSet,DMS),输入余度进行聚类得到的低信任组被称为重放攻击集(Replay.maliciousSet,RMS)。基于K-Means的恶意节点检测如图所示。

  性能开销分析

  为研究DCONST算法与相关机制对物联网设备的性能开销,本文将DCONST的算法(包括特殊运算操作,如log函数)在TOSSIM2.1.2791(个著名的Tiny0S模拟器)上进行了实现,见下图,所有的运算操作均可正常运行,因此证明DCONST可部署到物联网入式设备进行正常工作。

  另外,为研究DCONST对实际设备的性能开销,将DCONST的具体模块包括惩罚,奖励,认知聚合与认知提取,在树莓派2ModelB型(具备一个900MHz的ARMCPU)上进行了实现,统计了DCONST对设备产生的额外运行时间代价。

  配置了DCONST-L的树莓派需要110ms来处理DCONST关的计算任务:配置了DCONST-N的树莓派则需要152ms来处理DCONST相关的计算任务:配置了DCONSTP的树派需要210ms来处理DCONST相关的计算任务

  另外,在实际的DCONST实现中,可采用数字签名方法作为签名机制,这种签名方法已被证明可在资源受限的物联网设备上正常运行。

  另外,还考虑了从网络延迟以及能耗两方面对DCONST可能产生的性能开销进行了分析。需要说明的是,当一个中继节点接收到数据包,其可暂时对数据包中的认知标签进行缓存,先将自身要传播的认知标签插入到数据包的最后,完成数据包的转发。

  认知聚合任务(认知标签的验证、更新)在数据包转发完成之后再执行,这样就可避免物联网设备执行聚合任务时造成网络中数据包转发的延迟。

  对于能耗方面,本章仅考虑传输DCONST相关数据会对物联网设备造成的额外能耗,因为相比于认知聚合、签名验证等计算任务,数据传输任务是物联网设备能源消耗的主要原因。

版权声明:本文内容转载自网络,该文观点仅代表作者本人。登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站举报,一经查实,本站将立刻删除。