APP下载

物联网中节点捕获攻击早期检测方法研究

2022-09-28曾凡锋田雨丝王景中

计算机仿真 2022年8期
关键词:问候服务器节点

曾凡锋,田雨丝,王景中

(北方工业大学信息学院,北京 100144)

1 引言

作为第三次信息时代发展浪潮,物联网[1]将互联网的客户端延伸到了任何物品和物品之间,满足信息交换和通信。由于物联网感知层存在节点设备基数庞大、微处理器计算受限、感知环境不确定和网络拓扑结构动态变化等特点,实现物联网网络安全存在巨大挑战[2]。攻击者通常采用控制节点设备的方法来入侵物联网网络,经过物理捕获感染节点、将节点重新部署回到网络和通过被感染节点发起攻击这三个阶段来完成入侵[3]。针对防御的研究重点大多数放在了第二和第三阶段,例如基于节点位置的检测[4]等。但由于攻击进行到第二、三阶段时,已经对节点设备或者整个网络造成了一定的损失,因此,尽早检测出被捕获节点对维护物联网网络安全具有重要意义。

目前,物联网安全技术研究方面,许多安全技术已经被提议,但是由于物联网网络协议设计阶段,没有考虑安全问题,因此也没有形成完善的安全体系。针对通信协议的安全问题,大多数研究都是基于修改协议源码展开,面向的问题也常为数据安全问题[5],并且针对特定问题修改协议内容在一定程度上影响了安全策略的实施难度和适用性。

本文不更改协议源码,从MQTT协议应用角度出发,借助其心跳机制设计了包括心跳消息、问候消息在内的检测流程,并充分考虑到其发布订阅模式[6]下的服务器客户端网络结构,设计了包括服务器、邻居节点在内的多方协同决策方案。由仿真结果表明,该方法在检测率和误报率方面均优于传统方法,特别是在降低误报率方面具有较好的效果。

2 相关研究

2.1 典型的传统方法

节点捕获攻击主要是利用传感器的编程和测试接口对传感器进行妥协从而达到控制的目的[7]。研究表明,节点捕获攻击需要将节点从正常网络通信中“移除”一段不可忽略的时间,从几分钟到几小时不等[8]。对节点捕获攻击检测的现有方法正是利用这一特征,通过节点间广播信标消息、问候消息或心跳消息相互监控对方的存活性,以尽早发现被捕获节点。

Lin Xiaodong等人的CAT方法[3]采用H-W两两配对的方式,通过发送接受BEACON信标消息相互监控对方的存活性,如果未收到的信标消息超过一定阈值则将判断对方被入侵。如果区域节点为奇数时,将有一组H-W-C节点进行相互监控,用以消除网络中的孤立节点。由于CAT方法中节点的检测效果由其配对的一方所决定,节点被同时捕获时,检测方法无效,且对可疑状态的节点没有进行审查判断,会增加误报率。Ding Wei等人的FSD方法[9]是通过节点定期广播hello消息来证明自己的存在,监控节点未收到来自被监控节点的连续hello消息超过一定数量,将多次发送长间隔的询问ask消息确认被监控节点状态,若节点没有回复则认为其被捕获。在FSD方法中,节点还具有自检功能,如果节点没有收到所有邻居的hello消息,则考虑自己被捕获,节点开启自毁模式并向邻居广播消息。相较于CAT方法,FSD方法对被监控节点增加了一个监控方,一定程度上降低了误报率。Al-Riyami等人针对耗能问题,对不同簇下的hello消息采用不同的广播频率[10]。Zhang Zhihua等人针对节点休眠问题,提出了节点声明消息统一调度广播机制[11]。

但以上方法在节点状态的检测判断中,只运用了传感器网络下角色相同的节点进行相互监控,没有考虑运用物联网中服务器客户端网络结构下的服务器节点。而引入不同角色的节点,增加不同消息类型的监控,使节点的检测更全面、更可靠。笔者所提方法在传统方法邻居监控的基础上,借助了MQTT协议中服务器与客户端的心跳监控,增加了服务器节点的决策环节,在不额外增加网络负担的情况下,优化了传统方法的检测结果。

2.2 网络结构模型与入侵假设

传统方法的实验环境通常为包含了一个sink和多个终端节点的传感器网络,而应用了MQTT协议的物联网网络通常由一个云端服务器、M个服务器节点和N个终端节点组成。网络结构模型如图1所示。假设服务器节点在网络中是安全的,终端节点随机均匀分布在服务器节点下。所有节点都在同一时间启动,每一个节点部署好之后都是静止的,且具备一个全网唯一的ID标识。每一个服务器节点和其终端节点都维护一个存有ID号的邻居表,用来确认节点邻居。服务器节点周期性汇总终端节点的采集数据发送给云端服务器,终端节点周期性向服务器节点发布采集数据。服务器节点与终端节点间双向发包,终端节点之间也可以互通消息。

图1 网络结构模型

由于节点被捕获的第一阶段状态表现为无法通信,可以假设在网络初始化后,将每个终端节点在一定概率下随机定义为被捕获节点,被捕获节点在一段时间内不再发送任何消息。若被捕获的节点过多,检测是没有意义的,本文假设被捕获节点总数K的上限是节点总数N的25%。如果已被捕获的节点未被检测出来,该节点的通信将时断时续来模拟入侵者通过该节点分析网络的行为;如果已被捕获节点被成功检测,则将主动使其脱离网络。

3 节点捕获攻击早期检测方法

3.1 节点消息结构

服务器客户端网络结构中设备角色有:

1)云端服务器Cloud:云端服务器连接服务器节点来接收工作数据。

2)服务器节点Server:服务器节点连接云端服务器和终端节点,与终端节点双向发包。

3)终端节点Node:终端节点连接服务器节点,同一个服务器节点下的终端节点也可以相互发包。

主要消息类型有:

1)Conn负责Node和Server之间的连接。

2)SUBSCRIBLE负责推送Node的左右邻居id给Server。

3)HEART负责Node和Server之间的心跳。

4)HELLO负责Node之间的问候。

5)CLOUD负责云数据推送。

6)DECISION负责发送检测信号。

7)UPDATE负责通知Node更新邻居列表。消息类型还包括交互过程的应答消息。

3.2 检测方法

节点捕获早期检测在全网执行检测任务,根据监控、询问和决策判断结果来对被监控节点的状态进行判断。终端节点入网后将分别向服务器节点、邻居节点发送周期性的心跳消息和问候消息;当服务器未收到某节点超过一定数量的心跳消息时,该节点进入被审查状态;经过对该节点问候消息以及后续心跳消息发送情况的综合决策,得出该节点状态;当决策结果为异常时,通过更新邻居列表来将该节点排除在外,不再使其接入网络。

网络初始化后,云端服务器Cloud将与服务器节点Server[0,1,…M]、终端节点Node[0,1,…N]形成一个树形结构。每个服务器节点Server[i]下有n=N/M个终端节点,分别是Node[i*n]、Node[i*n+1]…Node[i*n+n-1]。每个终端节点Node[myId]的左右邻居的ID分别是left.id=myId-1、right.id=myId+1,其中首节点的左邻居left.id=myId+n-1,尾节点的右邻居right.id=myId-n-1。网络运行过程中,节点之间状态转换如图2所示。

图2 节点状态转换

正常状态下:Server周期性向Cloud推送工作数据。Node周期性向Server发送heart消息和工作数据。Server每次接收heart消息都会对节点心跳信息进行维护,内容包括heart数量、loss遗失数量、heartTime。Node也向自己的左右邻居left、right发送周期性的hello消息,每个节点也将维护自己左右邻居节点的hello消息信息,使用hasHello来表示是否收到问候消息,helloTime来监控问候消息的发送间隔。

被审查状态:当Server维护的某Node.loss超过所设定阈值时,该节点进入检测判断环节。Server将生成一个新的结构体ExceptionNode,读取该可疑节点的id和收集其邻居的hello情况放入hellos中。Server向可疑节点的左右邻居发送DECISION消息,收到DECISION消息的节点,将检查被审查节点是否发送了问候消息,并通过DECACK消息发送给Server,内容包含ok(表示hasHello),服务器将warnId节点的左右邻居ok情况存入hellos。之后服务器将根据hellos和loss的情况对该id的节点状态进行分情况判定。

在Node.loss达到阈值从而进入被审查状态后,节点判断为入侵的三种情况:

1)左右邻居均收到了hello,且Node.loss达到maxThreashold。

2)左右邻居只有一个收到了hello,且Node.loss达到了maxThreashold的一半。

3)左右邻居均未收到hello。

异常状态:若节点判定为被捕获状态,则服务器Server向warnId的邻居节点发送UPDATE消息来提醒节点更新邻居列表,接收到此消息的节点根据消息中的warnId值选择新的邻居nextId。服务器Server还将在结构体Node中删除id为warnId的节点。

4 实验及结果分析

下面对所提方法和传统方法的有效性和通信开销情况进行评价。实验在OMNET++平台上进行,并在相同的网络拓扑、相同的参数下与CAT方法、FSD方法进行比较,其中丢包率和节点入侵概率均为0.01。实验中随机均匀部署10个服务器节点,190个终端节点和一个云节点。网络拓扑如图3所示。

图3 实验网络拓扑

采用三种方法进行实验的结果如下。被捕获节点检测率如图4所示,可以看出在被捕获节点较少时,三种方法的检测率都比较高,基于节点存活性进行检测的方法都具有很高的灵敏性,在发现节点的异常行为方面非常高效。本次实验设置190个终端节点作为可攻击节点,当被捕获节点超过190*25%时,三种方法的检测率都有所下降,其中,由于CAT方法中节点的监控只依靠一个节点对象,在被捕获节点增加的情况下,检测率下降较快。FSD方法和本文所提方法在存活性监控基础上增加多个对象的监控,使检测率下降较慢,且均采用了邻居节点监控方式,检测率差异性不大。

图4 三种方法的检测率

被捕获节点误检率如图5所示。CAT方法和FSD方法的误检率在整体趋势上随着被捕获节点的增加而上升,CAT方法对异常节点未加判断,导致了最高的误报率;FSD方法在对异常节点的判断时,只依靠邻居间的问候消息,当此消息产生较高丢包现象时容易造成误判。本文所提方法不仅有邻居节点的问候消息监控,还增加了服务器节点的心跳消息参与监控和判断,使其在最大程度上避免了误检。

图5 三种方法的误检率

图6 三种方法的负载

被捕获节点通信负载如图6所示。三种方法的实验环境和参数均相同的情况下,由于本文采用的心跳消息是MQTT协议自带的环节,在检测开销上只增加了邻居间的问候消息和发现异常后的询问消息,并未给网络造成额外负担。随着被捕获节点的增加,被踢出网络的节点数量变多,使得整个网络的负载呈下降趋势。CAT方法只包含对一个节点的问候消息,且没有进行询问,所以误报较高使而负载最少;本文所提方法与FSD方法既有对两个邻居的问候也有询问,但是FSD方法包含多次问候和询问环节,而本文方法只进行一次询问来收集hasHello的情况,在检测判断环节上比FSD方法更加便捷,负载更少。

5 结束语

针对具有服务器客户端的物联网网络结构,结合MQTT协议特点,提出了一种心跳消息和问候消息结合的节点捕获早期检测方法,以实现对捕获攻击的早期发现。该方法基于节点存活性监控,通过逐步审查、多方协同的方式对节点状态进行判断。实验结果表明,所提方法有效避免了因为丢包等情况对捕获攻击检测效果的影响,在不影响网络负载和检测率的情况下,显著降低了误报率。

猜你喜欢

问候服务器节点
分区域的树型多链的无线传感器网络路由算法
基于移动汇聚节点和分簇的改进节能路由算法
问候武汉
基于点权的混合K-shell关键节点识别方法
最美三月天
2018年全球服务器市场将保持温和增长
职场中的问候礼仪
问候
用独立服务器的站长注意了
定位中高端 惠普8路服务器重装上阵