无线传感器网络中安全事件的响应与预防系统
达尼埃莱·米迪、萨尔明·苏尔塔纳和艾丽莎·贝尔蒂诺,普渡大学
资源限制、无人值守运行环境以及通信现象使得无线传感器网络(WSNs)容易发生操作故障和安全攻击。然而, 由于传感器网络在各种关键基础设施中的部署,应用通常对数据可靠性和服务可用性有严格要求。鉴于传感器网 络易于发生故障和遭受攻击,使其能够持续提供服务并有效从攻击中恢复成为一项关键需求。我们提出了 Kinesis,这是一种安全事件响应系统,旨在使无线传感器网络在出现异常或攻击时仍保持功能正常,并能在不造 成严重中断的情况下从攻击中恢复。Kinesis在响应事件方面快速且有效,具有分布式特性,能根据上下文动态选 择响应动作,在响应策略规范、通信和能量开销方面具有轻量级优势。基于每节点单定时器的分布式策略可在邻 域中选择最有效的响应执行器,使系统简单且可扩展,同时实现负载均衡和冗余动作优化。我们在TinyOS中实现 了Kinesis,并针对多种应用层和网络层事件测量其性能。大量TOSSIM仿真和测试平台实验表明,Kinesis能够 成功应对异常/攻击,并在各种攻击场景和攻击频率下保持稳定表现。
类别和主题描述符:C.2.0[计算机‐通信网络]:通用—安全 ity 和保护 on
通用术语:安全,设计,实验 无线传感器网络,安全,入侵响应
美国计算机协会参考文献格式:
达尼埃莱·米迪、萨尔明·苏尔塔纳和艾丽莎·贝尔蒂诺。2016年。无线传感器网络中安全事件响应与预防系统。
ACM传感器网络汇刊13,1,文章1(2016年12月),38页。DOI:http://dx.doi.org/10.1145/2996195
1. 引言
无线传感器网络(WSNs)为众多应用领域提供了经济可行的解决方案,例如信息物理基 础设施、电网、无线医疗、环境监测以及物联网(IoT)。WSNs为多种应用提供持续且无 干扰的服务,如应急响应[高等人2008;Lorincz等人 2004],实时病人监护[Chipara等 人2010],医院内通信、老年人护理[Virone等人 2006],等。随着物联网的发展,当前 趋势是为物理设备增强感知、计算和通信能力,并将其集成到数字‐物理生态系统;并利用网络化智能设备的集体效应来创建智能环境。
大多数当前和设想中的无线传感器网络应用对端到端系统可靠性、可信数据传输和服 务可用性有严格的要求。然而,无线传感器网络资源受限,通过不可靠的无线介质进行通 信,在无人值守的环境中运行,并且通常缺乏任何防篡改封装。这些条件使得无线传感器 网络节点容易发生操作故障。此外,传感器环境本身不安全且脆弱,容易受到伪造上下文、 修改访问权限以及总体上破坏系统操作的攻击[Ko等 2010],,这使得满足上述要求更加困 难。恶意攻击可能导致广泛后果,从智慧城市传感器和控制器失灵,到医院患者接受错误 治疗。通过利用其不安全的无线通信成功实施对关键生命设备(如胰岛素泵和起搏器)的 远程入侵[Alexander 2013],,引发了互联传感器和执行器使用中的关键安全问题。因此, 即使在出现异常或遭受攻击的情况下,也必须持续提供无线传感器网络服务,并能够在不 造成严重中断的前提下有效从攻击中恢复。
近年来,已经提出了多个入侵检测系统(IDS)[克朗蒂里斯等人,2008;波诺马丘克 和徐,2010;马蒂等人 2000],这些系统能够协同检测入侵,并将可能的攻击报告给中央 机构。然而,仅靠检测是不够的,因为关键在于通过采取动作快速应对攻击,使系统能够 继续运行,同时阻止攻击。因此,我们需要能够实现自动响应和恢复操作的响应工具。由 于在操作方式、资源和通信方面存在显著差异,为其他领域(如数据库系统或分布式系统) 开发的入侵响应系统无法直接用于无线传感器网络(WSN)。一个针对无线传感器网络特 点设计的有效入侵响应系统需要满足以下要求:
— 轻量级 :无线传感器网络节点的受限资源要求系统在计算开销和资源使用方面都具备轻 量级特性。特别是,响应策略应以灵活但简单的方式进行定义,以避免在选择适当的响应 动作时产生过高的开销。
— 实时 :虽然响应系统必须有效确保无线传感器网络操作不会因不利事件而中断,但同时 应以安全方式对每种异常或攻击执行最有效的动作。
— 协同 :为了满足前述两个要求,并确保入侵响应系统本身具有抗攻击的韧性,该入侵响 应系统应采用完全分布式设计。它应依赖于本地操作和协同策略,而不是与中央机构进行 大量交互。
本文中,我们提出Kinesis——面向无线传感器网络的首个系统的安全事件响应与预防系统( IRPS)方法。该系统具有轻量级、协同性和分布式特点。根据我们的设计,无线传感器网络中的每 个传感器都是一个看门狗监控器[马蒂等人 2000],并同时运行一个入侵检测系统(IDS)和 Kinesis系统。Kinesis在静态无线传感器网络中表现最佳,而静态无线传感器网络是无线传感器网络 应用中的常见场景(例如用于农业领域的露天部署以及用于医疗场景的室内部署)。Kinesis的操作 基于三阶段工作流程:
— Detect .通过入侵检测系统(IDS),监控器观察邻域行为,检测邻域中的可疑事件(异常/攻击),并 向Kinesis发出通知。
— Diagnose .尽管入侵检测系统通常能够检测异常和攻击,但它们可能不了解这些不利事件的根本原因。因此,在
某些情况下,需要进一步诊断。此任务由Kinesis执行,以便更好地了解网络中的事件。
— 响应 。在收到事件通知后,经过获取有关已发生事件及邻居节点当前安全状态的足够信 息,Kinesis会从基站(BS)指定的响应策略集合中匹配适当的响应策略。系统因此执行 最合适的响应动作以实现其安全目标。
为了在Kinesis中支持灵活的响应策略定义,我们提出了一种基于事件‐条件‐动作范式[ Dayal 1994]的面向无线传感器网络的轻量级策略语言。在响应策略中,一组规则根据对 可疑节点的安全评估,将事件和异常映射到需执行的不同响应动作。监控器基于以下三个 方面估计可疑节点的安全级别:(i)事件检测置信度,(ii)嫌疑对象的行为历史,以及(iii) 事件对无线传感器网络的影响。该策略有助于选择最有效的响应动作。我们调研了无线传 感器网络中的各类攻击,建立了攻击分类法(图1)和全面的响应动作集合(表III)。然而, Kinesis能够根据攻击所表现出的异常行为,生成针对未知攻击的响应。
为了触发与事件相关的响应执行,Kinesis通过邻居节点之间的自组织竞争,在邻域内 选择一个daemon节点。该竞争由每个节点的action timer以分布式方式控制。计时器最先 触发的节点赢得竞争并执行动作。大多数动作都涉及一次传输,该传输会被邻居节点监听 到,随后邻居节点便停止其操作计时器,避免执行冗余动作。因此,Kinesis无需任何消息 交换即可实现响应动作的同步,且不产生通信开销。节点的动作定时器值基于以下因素进 行本地估算:(i)邻域规模,(ii)邻居链路质量,以及(iii)自上次动作以来的时间。该值反 映了节点执行动作的有效性,并确保了邻居节点间的负载分配。
Kinesis的分布式特性还增强了安全性。当某个节点被攻破时,邻域内的其他合法节点仍可继续 执行Kinesis功能。在策略分发与存储方面,Kinesis是安全的,因为基站会指定策略,将其转换为 二进制代码,并通过安全分发协议[Hyun等人 2008]将该二进制代码在整个网络中进行分发。
我们在先前的文章[Sultana等人2014b]中介绍了Kinesis。本文在我们先前的工作基础上进行了以 下扩展:(i)引入了诊断与过滤
管道,支持Kinesis更好地诊断事件并采取更有效的动作;(ii)它分析了潜在冲突的响应 动作,并提出了一种替代守护进程选择技术,以在内存和通信开销之间进行权衡,从而减 少冗余动作;(iii)它分析了其他安全场景,例如高级攻击者试图通过串通或伪造安全通 知来规避Kinesis。
本文其余部分的组织结构如下:第2节介绍了一个Kinesis在实际应用中的案例研究, 然后讨论了无线传感器网络的网络与威胁模型、入侵检测系统,以及文章中使用到的状态 信息和符号表示。第3节介绍了Kinesis的设计概览。我们在第4节中介绍了负责事件诊断的 管道。第5节介绍了我们为Kinesis开发的轻量级策略语言,以及响应动作的选择与执行。 第6节讨论了冗余和冲突操作,并提出了一种替代守护进程选择技术。第7节详细说明了 Kinesis系统的实现与配置。第8节和第9节分别报告了Kinesis在仿真和测试平台中的性能 结果。第10节和第11节分别对Kinesis的安全性及其他方面进行了分析。我们在第12节讨论 相关工作,并在第13节进行总结。
2. 背景与系统模式 L
2.1. 案例研究
无线传感器网络的一个重要应用是智慧城市的智能监控。许多传统监控系统通过闭路电视 摄像机进行连续视频录制,在带宽、存储空间和持续人工监控方面存在严重不足。相反, 公共和私人区域对安全日益增长的需求正推动物理与网络世界融合到智能监控系统中[ Saha和Neogy2014;Felemban2013;He等2004;Onur等 2007]。此类系统的实际 部署使用无线传感器——能够检测移动、温度或光的变化、振动等——来启动视频录制,并 独立自动地向基站发出入侵告警。
作为一个具体的案例研究,Libelium[2016]——一家专注于物联网、机器对机器通信 和智慧城市解决方案的公司——已部署了多个无线传感器网络,用于智能监控和周界访问控 制。他们的传感器通过自组织拓扑结构中的低带宽介质报告入侵事件,并触发视频录制, 通过3G网络进行传输。另一个案例研究是SmartSantander[Sanchez等 2014],,这是欧 洲首个全面尝试建设智慧城市的项目之一,部署于西班牙的桑坦德市。在该项目的众多目 标和解决方案中,附加的欧洲项目EAR‐IT[Pham和Cousin 2013]旨在利用配备声音检 测功能的无线传感器网络,通过“智能声学”来检测入侵和危险情况,并通知当局。
在这些智能监控部署中,攻击者可能会破坏传感器节点和/或篡改通信,以丢弃有关其 入侵的告警数据包并掩盖其踪迹。这可以被明确识别为使用智能监控系统的多种设施所面 临的具体威胁,从企业设施到政府建筑再到家庭住宅均不例外。在所有这些场景中采用 Kinesis将确保对无线传感器网络中的数据丢失做出快速响应。此外,正如我们在评估中所 展示的,无线传感器网络中使用Kinesis仅带来非常小的性能开销,从而确保部署在节点上 的原始应用在此关键的实时任务中保持功能正常且响应迅速。
我们注意到,我们在讨论中提到的物联网系统正越来越多地部署于许多应用中。然而,重要的是要注 意到,物联网是一个通用的
术语,表示“嵌入了电子设备、软件、传感器、执行器和网络连接功能的物理设备、车辆、 建筑物及其他物品所构成的网络,使这些对象能够收集和交换数据”[ITU 2015]。因此, 根据此定义,基于无线传感器网络的系统可被视为物联网系统的一个子类别;此外,在许 多情况下,基于无线传感器网络的系统是更大规模物联网系统的组成部分。例如,在利贝 利姆和智慧桑坦德系统中,无线传感器网络是更大规模物联网系统的一部分;然而,本案 例研究中所指的具体实例仅由小型、资源受限的无线节点组成,用于单一目的,并通过自 组织的多跳拓扑结构与基站节点通信。这些特性使得本研究案例中所呈现的具体系统属于 无线传感器网络这一特定子类别。然而,我们认为本文提出的技术可以扩展应用于更广泛 的物联网系统场景。
2.2. 网络模型
我们考虑一个由多个传感器节点和一个从网络收集数据的基站(BS)组成的多跳无线传感 器网络(WSN)。假设每个节点都有多个可以监控其行为的邻居节点。基站是安全的,并 具有安全机制,用于在网络中广播真实消息和分发代码更新。传感器节点在部署后是静止 的,但路由路径可能会随时间变化,例如由于节点故障。部署完成后,基站会为每个节点 u分配一个唯一的节点ID和一个加密密钥Ku。每个节点还与每个邻居k共享一个成对密 钥Ku,k,并与所有邻居共享一个组密钥Kg。
2.3. 威胁模型
我们将基站(BS)视为可信的,但其他任何节点都可能是恶意的。我们假设在一个邻域内大多 数节点是诚实的。无线传感器网络(WSN)维持协议栈的标准分层架构,这使得典型攻击以及 针对这些层的WSN特定攻击均可发生。这些攻击旨在破坏以下资源:(i)网络;(ii)控制和 数据消息;以及(iii)传感器设备资源,例如内存、电源等。下文将根据目标资源讨论这些攻 击。
通信网络 :干扰会破坏一个子网络甚至整个网络。链路层的攻击包括故意引入的冲突、 资源耗尽以及介质访问中的不公平性。
消息 :在无线传感器网络中,所有节点均充当路由器。因此,攻击者可能通过伪造、 篡改或重放路由消息,以制造路由环路、更改路由、吸引或排斥流向特定节点的流量、增 加延迟等方式破坏网络流量。示例包括汇点攻击、选择性转发、黑洞攻击、蠕虫洞攻击。 此外,还可通过虚假数据注入和延迟转发等其他攻击方式降低数据质量和效用。
传感器设备 :为了保持传感器网络的经济可行性,传感器设备通常不配备防篡改封装, 这增加了发生物理攻击的风险,例如物理捕获、篡改等。攻击者可以提取被俘获传感器芯 片上存储的密钥信息,并利用软件漏洞。攻击者还可以克隆被俘获的传感器,并将其放置 在网络中的任意位置(复制攻击)。一旦这些克隆节点获得其他节点的信任,它们便可发 动多种内部攻击。身份伪造,例如Sybil攻击,使恶意节点能够在网络中呈现多个虚假身份, 从而构成威胁。
2.4. 入侵检测系统
许多入侵检测系统[克朗蒂里斯等人,2008;波诺马丘克和徐,2010;马蒂等人2000]已被提出用 于无线传感器网络,以协同检测入侵。由于
无线信道的广播特性使得侦听在无线传感器网络中成为一种自然现象。邻近节点会侦听彼 此的传输,即使它们并非预期的接收者[Daabaj等人 2010]。利用这一事实,马蒂等人 [2000]提出了看护机制,通过该机制,一个节点可通过观察邻居节点的行为来识别行为异 常的邻居节点。此类节点被称为看门狗监控器(也称为监控节点)。每个监控节点观察其 邻居节点,收集审计数据,然后对每个邻居节点进行行为分析以检测可疑活动。入侵检测 系统通过监控节点基于其分析结果以及一组预定义的推理规则协同检测入侵行为。图1展示 了入侵检测系统所使用的症状与各类攻击之间的关系。
2.5. 状态信息与符号表示
我们现在介绍Kinesis在执行过程中所使用的信息,以及本文其余部分将采用的一些符号 表示。每个节点维护一组状态信息,用以表示其对网络及其安全级别的当前认知。每个节 点u维护一个其直接邻居neigh(u)的列表,以及与每个邻居 w ∈ neigh(u)之间的链路质 量信息L(u w)。此外,u为每个邻居保留一个大小为W的滑动窗口sliding window wk, 用于记录邻居行为观测的历史,供u更新邻居的安全估计和状态。
3. 架构概述
在Kinesis中,每个监控器都托管一个分布式入侵检测系统和Kinesis系统。通过该入侵检测系统, 监控器可观察邻域节点的行为,检测邻域内的可疑事件,并通知Kinesis执行自动响应动作。然而, 正如我们在第5.2节中所看到的,Kinesis仅依赖于入侵检测系统提供的关于良性/恶意行为的通知, 而这是入侵检测系统的基本功能。因此,入侵检测系统的具体设计属于out of the scope我们的工 作范围之外。
图2展示了Kinesis的架构。后台进程NeighborObserver在入侵检测系统观测的帮助下, 记录每个被监控邻居节点的近期行为,并基于该历史记录定期更新邻居的安全状态。当检 测到事件时,入侵检测系统会向Kinesis报告可能的异常/攻击、嫌疑节点以及每项报告的异 常/攻击的警报置信度。诊断与过滤代理作为此类报告的首个入口点。该组件设计为可扩展 管道,负责确保适当的
对入侵检测系统(IDS)报告的置信度,以及进一步区分那些可能具有相似症状但根本原因 截然不同的异常/攻击报告具有重要意义,第4节将对此进行更详细讨论。动作选择器随后基 于警报置信度、可疑行为历史和事件影响对可疑节点执行安全评估。根据安全评估结果, 从与该事件匹配的响应策略中动态选择要执行的动作。由于我们采用基于事件的方法, Kinesis能够针对表现出异常行为的未知攻击进行处理。
给定一组响应动作,执行器将触发并执行这些动作。监控节点通过设置与其动作有效 性成反比的动作定时器来竞争成为下一个守护进程(即执行响应动作的节点),并在定时 器触发时执行相应动作。请注意,诸如日志记录和分析之类的动作由每个节点独立执行, 而对于重传_数据这类动作,则应尽量减少邻居节点产生的冗余动作。在后一种情况下,当 邻域内的其他监控节点听到某个监控节点已执行动作后,会停止其动作定时器,以避免对 该事件进一步采取动作。所有与响应动作相关或与基站的通信均由通信器模块处理。
4. 有害事件的诊断与过滤
入侵检测系统通常会为报告的每个事件关联一个置信值,以表明该事件发生的可能性。然 而,有时入侵检测系统可能未提供内置置信值,或者由于入侵检测系统对某一事件的判断 犹豫不决,导致该值非常低。此外,传统上,入侵检测系统能够检测诸如丢包或数据篡改 等事件,但无法识别这些事件的根本原因。以高准确性向Kinesis报告事件,并清晰理解其 根本原因,对于选择有效的响应动作至关重要。
诊断与过滤代理组件是Kinesis的一部分,它实现了一个可扩展的过滤管道(参见图 3),支持Kinesis更好地诊断报告的事件,提高已通知不利事件的置信度,并减少此类事 件可能的根本原因数量。这样,当通知到达IRPS时,系统能够基于更充分的信息和数据做 出决策,从而采取更有效的动作。
第一级管道过滤器旨在填补事件报告中可能缺失的置信度数据。置信值在选择响应动 作时非常有用,因为它提供了入侵检测系统检测有效性的估计,以及对响应动作预期严重 性的建议。然而,如果入侵检测系统未提供内置的置信值,则管道中的第一级过滤器将按 如下方式计算事件报告的置信值RC:
(1)对于异常,我们考虑RC= 1。这是合理的,因为看门狗监控器能够正确识别故障或异常行为事件[马蒂 等人 2000]。
(2)对于攻击,RC根据过去的性能计算为误报率 f 该入侵检测系统关于成功检测攻击的情况。因此,RC的计算公式为: RC= #of true attacks #of attacks reported . 细节在第5节中讨论了Kinesis如何获取关于误报的反馈。 5.
第二个管道过滤器是我们之前工作[Midi和Bertino 2016]中开发的细粒度分析( FGA)工具。该过滤器对于理解导致入侵检测系统(IDS)报告事件的根本原因至关重要。 例如,某个节点的IDS可能检测到一个丢包事件,但无法确定该丢包是由被攻陷的节点实 施的选择性转发攻击引起的,还是由干扰(自然或恶意)引入并破坏无线传输所导致的。 显然,尽管这两种情况都会导致丢包,但针对前者的有效响应动作是撤销被攻陷的节点, 而针对后者的有效响应动作则是将流量重新路由到受干扰区域之外。因此,以高准确性向 Kinesis报告事件对于选择有效的响应动作至关重要。当多种攻击具有相同症状时(如图 1所示),这种策略尤其有用。FGA工具能够区分与节点相关的事件和与链路相关的事件, 并且未来可扩展以区分更多类型的事件。该工具通过测量每个邻居链路的接收信号强度指 示(RSSI)、链路质量指示(LQI)以及数据包接收率(PRR),来建立各链路的正常状 态配置文件。RSSI表示两个节点之间的信号强度,以负dBm为单位(通常在[−100 dBm −45dBm]范围内),数值越高表示信号越强;LQI衡量信号质量;PRR是数据包接 收率。在理想情况下,较高的RSSI值表示强信号链路,并伴随着较高的LQI和PRR值, 表明链路质量更好。然而,干扰的存在会导致这些值发生明显变化。我们的细粒度分析旨 在理解每个链路配置文件的组成部分以及每个节点的邻域情况。在网络部署初期,每条链 路的稳定配置参数(RSSInorm,LQInorm,PRRnorm)会在两个终端节点上保存。当发生某 一事件且其症状可能同时归因于节点或链路相关问题时,FGA工具会将当前链路配置文件 与稳定参数进行比较,从而确定所报告事件的确切根本原因。
5. 响应策略语言与引擎
在本节中,我们介绍Kinesis策略语言以及Kinesis如何选择并执行适当的响应动作以应对事件和 异常。
5.1. 策略语言
响应策略定义在事件上,并根据该事件及安全估计的各种条件,为不同的动作进行规定。 响应策略被指定为一组规则,使用表I中的语法表示。引号内的术语’’是静态标记, 斜体表示函数。该语言的主要结构是 ,它定义了针对攻击或异常的响应策略。
通过对无线传感器网络中各种攻击及其相应恢复动作的详细分析,我们确定了一个全 面的响应动作集合,列于表III中。这些动作分为三类: —保守型:低严重性动作,可帮助监控器更精确地检测攻击或避免执行错误响应,但无法 预防或从攻击中恢复。—中等型:旨在在故障或攻击下保持无线传感器网络服务的动作。 —激进型:高严重性响应,用于从攻击中恢复并防止进一步的恶意尝试。这些动作可由本 地传感器执行,也可能需要基站协助才能执行。
| 表I. 响应策略语言 |
|---|
<规则>::='开始'<rule‐list>'结束'
|
<rule‐list>::=<rule><rule‐list> \| <rule>
|
<规则>::=当<事件>(<条件><动作列表>)+
|
<事件>::=<异常> \| <攻击>
|
<异常>::=数据 丢失\|数据 篡改 \|数据 重放 \| ...
|
<攻击>::=未知 \|选择性 转发 \|干扰 \| ...
|
<条件>::=<条件>\*\|"如果"<事件>"那么" \|"如果" 严重性(<嫌疑对象>,<事件>) <操作符>(<值 范围>) "那么"
|
<操作符>::='<'\|'>'\|'<='\|'>='\|'=='\|'!='\|'在...之内'
|
<动作列表>::=<动作>,<动作列表> \| <动作>
|
<动作>::=<保守型动作>(<嫌疑对象>)\* \|<中等型动作>(<嫌疑对象>)\* \|<激进型动作>(<嫌疑对象>)\*
|
<aggressive-action>::=撤销\|重新认证\|重新密钥\| ...
|
<moderate-action>::=重传数据\|触发数据认证\| ...
|
<保守型动作>::= nop \|分析\|告警\|...
|
<嫌疑对象>::=<digit>+ \| <literal>(<literal>\*<digit>\*)\*
|
<范围>::=('['\|'(')<值>–<值>(')'\|']')
|
<值>::=<digit> \| <digit>+.<digit>+
|
<digit>::=['0'‐'9']
|
<字面量>::=['A'‐'Z''a'‐'z']
|
| 表II. 响应策略示例 |
|---|
| 当 ‘数据 篡改’ |
| 如果 严重性(数据 篡改,节点ID) <= 0.3 then重传数据 |
| 如果严重性(数据 篡改,节点ID)在(0.3,0.6] 那么重传数据, 触发路由变更 |
| 如果严重性(数据 篡改,节点ID) > 0.6 那么撤销节点ID |
Kinesis的策略语言允许使用通用症状作为触发条件,例如“_数据丢失”,以及由入 侵检测系统检测到但未被识别为特定攻击的异常行为,即“未知”。这使得Kinesis即使在 面对尚未完全诊断或识别但仍需采取动作以维持网络功能的攻击时,也能执行响应动作。 此外,我们策略的链式结构确保规则将按顺序检查,在可能的情况下对更具体的攻击做出 反应,并在必要时回退到通用动作规则,作为无线传感器网络的“安全网”。尽管这可能 导致对未知攻击的响应动作不够精确,但它确保了在所有情况下都会采取某种纠正措施。
表II中显示了一个针对data_篡改事件的示例策略。其中,nodeID指可疑节点标识符。
5.2. 策略匹配与响应选择
由于响应策略是 finedspeci fi c到事件,匹配Kinesis中事件的策略是直接的。然而,要执行的动作会根据对嫌疑对 象的安全评估,从匹配策略指定的动作集中动态选择。该策略确保Kinesis在任何事件中采 取最有效的动作。
节点的安全评估通过安全指数(SI)进行量化。在Kine‐sis中,监控器根据其每个邻居的安全状态记 录持续更新
| 表III. 响应动作分类 |
|---|
| 动作 |
| 保守型:低严重性 |
| nop |
| 日志记录, 分析 |
| 告警 |
| 中等型:中等严重性 discard数据 |
| 重传数据 |
| 触发重新认证 |
| 触发路由变更 triggermultipath路由 |
| 暂停 |
| 激进型:高严重性 |
| 撤销 |
| 重新编程 |
| 重新密钥化 |
| f lood告警 |
| 表IV. 无线传感器网络异常和攻击的可能影响 数据影响 数据延迟 |
| — |
| 节点影响 |
| 节点影响 |
邻居行为的观察。每次观察时,邻居的SI也会更新。如果邻居表现出合法行为,那么其 SI仅根据行为观测进行更新。否则,如果报告了事件(即观察到异常行为),SI将基于 三个因素进行更新: (1)事件置信度:检测到该事件的置信程度,用置信度指数(CI)表示。(2)事件影响: 该事件对无线传感器网络(WSN)造成影响的数值,用影响指数(II)表示。(3)邻居行 为历史:邻居节点的连续行为观测和安全状态,反映监控器对可疑节点的信任程度。 接下来,我们将讨论Kinesis如何计算这些指数,然后根据安全指数选择响应动作。
5.2.1. 置信指数(CI)
在诊断和过滤管道执行结束时,事件报告将始终附带一个置信值。 我们利用该值来选择响应动作,因为它衡量了入侵检测系统检测事件的有效性以及响应应 采取的严重程度。因此,所报告事件的置信值被用作CI的值。
5.2.2. 影响指数(II)
影响指数(II)用于评估异常/攻击的整体影响,并反映响应动作的紧 迫性和严重性。尽管在企业网络的漏洞评分方面已有大量研究[Mell等人 2007],,但针对 无线传感器网络的研究却较少。虽然已有一些针对无线传感器网络的数学风险模型被提出[ Falcon等人 2011],,但它们并未提供一个充分考虑无线传感器网络实际问题的完整框架。 在本研究中,我们提出了一种简单的机制来估计事件的影响。
表IV列出了事件对无线传感器网络服务的后果。根据无线传感器网络的优先级,基站 为影响分配静态评分,并配置节点的事件‐影响映射和影响评分。当接收到事件x的报告时 Kinesis将事件影响计算为: Ik(x)= ∑ n j=0impactxk[j] × rk[j] ∑n j=0 rk[j] , (1) 其中k为影响类型,n为k型影响的总数,impactxk是事件x的k型影响的n长度数组,其中 impactxk[j]= 1表示该事件具有第j个影响,而rk是与k型影响相关联的影响评分数组。使 用公式(1),Kinesis计算事件的数据影响(Id)、网络影响(In)、节点影响(Is),然后按如下方 式计算II: II(x)= βd × Id(x)+ βn × In(x)+ βs × Is(x), (2) 其中系数βd, βn, βs ≥ 0为实数,且满足 βd+ βn+ βs= 1。注意,如果网络管理员未更改 无线传感器网络优先级,则影响指数是静态的,仅需在部署后计算一次。
5.2.3. 邻居行为观察
邻居行为有助于监控器评估邻居的脆弱程度以及其发起攻击的可 能性。因此,在确定响应动作的严重性时,我们考虑可疑节点的行为观测。通常,入侵检 测系统会维护行为历史和信任评分[Hasswa等人 2005]。然而,为了兼容不具备此类功能 的入侵检测系统,Kinesis包含了一种记录邻居行为信息的机制,并将此信息用于计算安全 评分和状态。
为了证明响应动作的准确性,我们利用邻居行为历史而非最新单一行为。Kinesis为每个邻 居维护一个大小为W 的滑动窗口wk,用于记录该邻居最近的W 次行为。当入侵检测系统通 知有关邻居k的一次行为时,Kinesis会将最久远的行为推出wk,并存储最新一次行为。我们 考虑两种类型的行为: —服务行为:邻居节点在提供无线传感器网络服务时的可信程度,例如及时的数据包转发。— IPRS行为:邻居节点在执行必要和期望的动作时的高效性和诚实性。
5.2.4. 安全指数与状态更新
监控器u在每次对邻居节点k ∈neigh(u)进行行为观测时,计 算其SI,并相应地更新安全状态。一个节点被估计处于五种可能的状态之一:(i)初始, (ii)可疑,(iii)安全,(iv)恶意节点,以及(v)撤销。图4显示了安全状态转换图。在网络部 署后,监控器将其所有邻居节点的安全状态初始化为初始状态,并赋予SI= 0。在预设的 一段时间tf内,邻居节点被视为处于初始状态,其SI则根据行为观测结果持续更新。
公式(3)。初始状态的意义在于,当邻居节点处于此状态时,会给予其信任上的宽限。尽管 可疑节点在初始状态下的安全指数会影响响应选择,但不会对该节点采取激进型措施,即 不会撤销、重新编程等。经过时间tf后,该邻居节点会根据其安全指数进入可疑或安全状 态。如果处于可疑状态的节点由于合法行为导致其安全指数下降,则该节点将转入安全状 态。相反,如果处于可疑状态的节点继续表现出异常行为,其安全指数将超过预定义阈值 σ2,节点将转入恶意状态。当邻居节点转入恶意状态时,监控器将对该节点发起主动措施。 此外,监控器也可基于自身判断或相邻监控节点发起的动作,在任何时候撤销邻居节点。 在此情况下,监控器会将该嫌疑对象标记为已撤销,并丢弃来自该节点的后续所有请求/数 据。
我们使用两个辅助函数SI 和k 来计算邻居的f(x)与g(SI),其中f(x)计算事件x 的 严重性,而g(SI)根据当前SI 和k的安全状态返回一个系数。 g(SI)={1 ; SI ≤ σ1 that is, k is Fresh/Secure 1.5; σ1 ≤ SI ≤ σ2 that is, k is Suspicious 2 ; SI> σ2 that is k is Malicious f(x)={0 ; x is good behavior min(CI × II(x)× g(SI), 1); otherwise 当每个i th邻居k的行为观察,其SI 由监控器计算得出 SI= ⎧⎨⎩ ∑ i j= 1 f(wk[j]) i , ifi ≤ W W j= 1 f(wk[j])−f(wk[0])) W , ifi> W. (3)
5.3. 响应计算与优化
如果入侵检测系统报告一个与事件相对应的单一事件,那么Kinesis会计算SI,匹配响应策 略,并从匹配的策略中选择基于SI的动作。当报告多个事件时,我们遵循相同的流程为每 个报告的事件选择动作,并将这些动作的并集作为最终动作集。然而,各个动作集可能是 包含性的、相互重叠的,并且彼此之间存在不一致性。此外,在考虑新的动作执行之前, 还应检查其与在线动作之间的不一致性。为了解决有限资源系统中的这一问题,我们引入 了动作优先图。
动作优先图(APG)是一种有向图,用于描述动作之间在有效性方面的优先关系。在 这种图中,(i)每个节点ai表示一个动作,(ii)边ai → aj表示父动作ai使子动作aj失效, (iii)黑边ai ⇒ aj表示ai和aj是互斥动作,发生冲突时执行ai。因此,动作ai的执行会使 其所有后继动作失效,而若aj无法通过ai到达,则表示它们是独立动作。两个动作ai、aj 若只能通过一条黑边路径相互到达,则它们发生冲突。图5展示了一个APG示例,其中:重 编程动作优先于其所有后继动作;{记录、分析}彼此独立;{重传_数据、重新认证_数据、 丢弃_数据}相互冲突。我们假设基站为节点预配置了所有可能的响应动作及其之间的优先关 系。
通过利用动作优先图,算法1计算两个动作集之间的等价关系、独立性、交集和覆盖关系。 为了从n个不同的动作集{A1,A2,…,An}(每个动作集分别对应于单个事件)中计算出优化动作 集,Kinesis运行一个递归算法,该算法以O1= A1初始化,然后当i= 2, 3,…,n时,计算Oi= cors(Oi−1,Ai)。
算法1:cors()‐优化响应集计算
输入:响应集A={ai},B={bi}
输出:优化响应集O
如果A= B那么 O← A; //A是 equivalent到B
否则如果 ∀ai, ∃bj, bj → ai那么 O← B; //B covers A 否则如果 ∀ai, ∀bi,ai ⇒ bj或者反之亦然那么 O ← A(或B); //A contradicts B
否则如果 ∃ai, ∃bj,ai → bj那么 O ← A ∪(A\B) //一个 intersects B
else O ← A ∪ B; //A是 independent到B
end
5.4. 响应动作的执行
响应动作执行是完全分布式的。低/中等严重性动作由监控节点仅基于自身的决策来执行。高严重性 对被定罪节点采取的动作需要邻域监控节点之间达成共识。在后一种情况下,选定的监控 节点(daemon)广播消息以征求其他监控节点的决策,对收集到的回复进行多数投票,然 后执行所达成一致的动作。某些激进行动,例如reprogram或rekey,无法在传感器上完成。 在这种情况下,daemon节点会向基站发送一份认证报告,由基站随后执行该动作。此外, 尽管某些动作(如retransmit_data, alert_others)可由监控节点自行决定执行,但仍需要 与其他节点进行交互。在所有这些情况下,监控节点必须发起动作并承担所有相关责任。 Kinesis动态选择最有能力的节点作为daemon,以确保动作有效性,并避免同一节点始终 承担全部工作。
5.4.1. 守护进程的选择
通过相邻监控节点之间的自组织竞争来选择一个节点作为守护 进程。我们方案的创新之处在于,无需在邻居节点之间进行任何消息交换或特殊的时间同 步即可管理动作执行。邻域中的每个节点都通过一个本地管理的退避定时器(称为动作定 时器)独立参与竞争。节点u的定时器值取决于该节点的动作有效性,即AE(u),其基于以 下因素在本地进行估计:(i)邻域规模,(ii)单跳链路质量,以及(iii)距上次行动的时间。 直观上,如果一个节点拥有更多具有优良链路质量的邻居,则它可以与更多的监控节点交 互并有助于最小化冗余动作。此外,如果一个节点长时间处于空闲状态,则应由其执行动 作以确保邻域内的负载分配。因此,AE(u)的计算方式如下: AE(u) ∝ c1 · tl+ c2 · ∑ k∈neigh(u) k∈neigh(s) L(u, k). (4) 这里,c1, c2为实数,neigh(u)和neigh(s)分别表示节点u和可疑节点的邻居节点, L(u,k)表示节点u与监控器k之间的链路质量,而tl表示节点u距上次行动的时间。动作有 效性AE(u)越高,说明节点u所执行的动作越有效。为了竞争成为下一个守护进程,节点u 将其动作定时器的值设置为与其动作有效性AE(u)成反比。我们为此值添加一个较小的随机 时间r,以确保即使两个监控节点的动作有效性值接近——即它们的负载均衡因子(也就是 距上次行动的时间)相同,且与邻居节点之间的链路质量差异不大时——它们的操作计时器 仍具有不同的值。这一额外的小随机因子有助于确保两个监控节点的操作计时器不会同时 触发,从而仅有一个监控节点被选为守护进程。 ActionTimer(u) ∝ 1 AE(u) + r. (5) 因此,具有更优AE的节点拥有更短的退避周期,并在daemon选择竞争中胜出。当动 作涉及传输且邻居k侦听到了该传输时,该节点会停止其正在运行的定时器,以避免对同一 事件执行冗余动作,并更新其tl和AE值。Kinesis可能允许冗余动作,以提高系统的可靠性。 例如,假设节点u丢弃了数据包,其某个监控节点重传了这些被丢弃的数据包。如果数据流 路径中的另一个攻击者v又丢弃了这些重传的数据包,那么u的多个邻居进行冗余传输可能 有助于减轻数据丢失。然而,当 v发生数据丢失时,其相邻监控节点会重传数据,这使得 u的邻居执行冗余动作变得不再必要。我们的实验结果也支持最小化冗余动作的设计,因为 在存在多个攻击者的情况下,我们观察到极低的数据丢失率。我们在第6节中进一步研究了 冗余动作。
5.4.2. 监控节点之间的共识
为了执行高严重性操作,监控节点之间相互协商,并基于 多数投票决定一个动作。在选定响应动作后,守护进程节点在邻域内广播一条经过认证的 状态_请求_消息。该消息包含以下内容:(i)检测到的攻击,(ii)可疑节点,(iii)响应决策, 以及(iv)使用组密钥Kg对数据计算出的消息认证码(MAC)。 当收到消息后,每个相邻监控节点会回复一条包含本地响应决策的认证状态_回复_消 息。守护进程节点计算多数投票结果并再次进行广播。根据投票决策,守护进程可执行约 定的动作,或向基站发送认证报告以触发该动作。相邻监控节点还会相互监控,检查对方 是否遵守投票决策,否则将为异常节点记录一次不良行为。
5.5. 响应反馈
多数投票决策会向监控节点反馈其在检测事件和选择动作方面的准确性。如果所达成一致 的动作的严重性低于某节点本地确定的动作,那么这意味着发生了误报,并会降低该监控 器的置信度。每个监控节点都会记录自身的误报情况,并更新其CI。注意,本文不考虑漏 报的情况。响应反馈也有助于评估针对某一事件所采取动作的有效性。然而,本工作未对 此方向进行深入研究。
6. 冗余与冲突操作
Kinesis每起事件一次操作的能力,如理想情况那样,主要取决于网络拓扑结构以及其他因 素。正如第8.3节中的实验评估所示,偶尔多个监控节点会同时对同一事件采取动作。对同 一不利事件并发执行多个动作可能影响监控节点的电池寿命,并且在极端情况下,如果所 执行的冗余动作既具有高严重性又存在冲突,则可能导致网络中的不一致性。
在网络管理员能够控制无线传感器网络拓扑结构的场景中,他或她可以调整节点的部 署位置以解决冗余和冲突操作的问题。在此类场景下,Kinesis到目前为止所采用的守护进 程选择技术在安全目标以及节点资源限制方面均是最优的。然而,为了应对网络管理员对 网络拓扑结构控制有限的情况,我们引入了一种守护进程选择技术,该技术允许以增加额 外内存和通信开销为代价,换取节能和面对冗余和冲突操作时的一致性保障。值得注意的 是,Kinesis的安全目标保持不变。各种资源(内存、能量、通信信道)效率之间的特定权 衡,以及特定无线传感器网络应用的具体需求,将使网络管理员能够逐案确定哪种守护进 程选择技术更为合适。
6.1. 冲突操作分析
首先,我们对Kinesis支持的所有动作进行两两分析,以确定哪些动作对彼此冲突。形式 上,如果两个动作在实现Kinesis的安全目标(即最小化数据丢失)时相互阻碍,则将其 定义为冲突的动作。
| 表五. 潜在冲突响应动作分析 |
|---|
| nop |
| log |
| alert |
| discard data |
| retransmit data |
| trigger reauthentication |
| trigger route change |
| trigger multipath routing |
| suspend |
| revoke |
| re-program |
| re-key |
| flood alerts |
例如,动作discard_data和retransmit_ data的目标是相反的最终结果。如果
数据包包含虚假数据,那么重传将导致虚假信息在整个网络中传播;相反,如果数据是真 实的,丢弃数据包将导致有价值的信息无法到达基站。因此,如果这两个动作由不同的监 控节点同时执行,则该冲突可能使Kinesis更难实现其安全目标。然而,如表格所示,仅有 五次冲突操作实例。在本节其余部分,我们将讨论替代守护进程选择技术如何帮助 Kinesis缓解冗余和冲突操作的潜在问题。
6.2. 冗余动机场景
为了理解冗余动作现象背后的原因,考虑图6中的网络部分,其中边表示两个节点之间的直 接通信。节点18是攻击者节点,而节点7、8、9、13、14和29是
监控节点。当节点18丢弃一个数据包时,所有监控节点启动其动作定时器。在此拓扑结构中,两种 不同的情形可能导致冗余动作: (1)“隐藏节点”:例如,当节点7赢得动作定时器竞争时,它会重传丢弃的数据,而节点8和节 点9在侦听到该动作后会停止其定时器。然而,节点29与节点7之间没有链路,因此相对于节点 7所采取的动作而言,它是一个“隐藏节点”,并在其定时器超时时也会执行动作。1 (2)断开连接的邻域部分:节点13和节点14与节点7、8、9、29中的任何一个都没有直接连 接。因此,它们在节点18邻域中的部分与其他部分是断开的。在这种情况下,无论节点18 邻域中哪一部分的节点采取动作,另一部分都无法监听到该动作。因此,唯一的解决方案 是在这些部分之间引入一种动作报告机制。节点3尽管对动作不直接感兴趣(因为未直接连 接到恶意节点18),但仍可将已采取动作的通知从邻域的一个部分转发到另一个部分。对 于高严重性操作,将已执行动作的信息传播给其他相关邻居节点非常重要。
本节提出的替代守护进程选择技术以额外内存和通信开销为代价,为两种场景提供了 解决方案。从高层次来看,该解决方案由两个部分组成:第一部分通过分析特定事件中监 控节点之间的连接性来解决“隐藏节点”问题;第二部分通过自动报告机制来解决断连区 域问题,同时仍然最小化通信开销。
6.3. 两跳知识
任何应对冗余动作的解决方案的基础在于,每个节点都需要更清楚地了解其邻域的拓扑结 构及其其他邻居节点的连通性,以便做出更加合理的决策。每个节点在网络启动时与其直 接邻居节点相遇的同时,也会获取该邻居节点的邻居列表。也就是说,节点u会为每一个 一跳邻居 w ∈ neigh(u)存储列表neigh(w)。这被称为两跳知识。因此,每个节点都了解 其周围最多两跳范围内的网络拓扑结构。给定一个表示整个无线传感器网络图的关联矩阵 M,节点u知晓所有且仅知晓满足M[u v]= 1的列 v。
6.4. 连接优势
假设一个节点u在其直接邻居b引发不利事件(例如丢弃一个数据包)后,想要启动动作 定时器。我们将节点u的直接邻居中同时也是b 的直接邻居的那些节点定义为u关于b 的本地动作集合,记作LAS(u,b)。该集合中的节点是u的直接邻域中唯一会因b引发的不 利事件而设置动作定时器的节点。 LAS(u, b)= neigh(u) ∩ neigh(b)\ b. 每个节点在知晓其两跳邻居的情况下,可以确定其每个直接邻居与恶意节点b的邻居节点之间的连接 程度。我们将节点 v与其直接连接的恶意节点b的邻居节点数量之比定义为连接比率CR(v,b)。 1 T这种冗余不仅存在于Kinesis中,也是任何基于窃听的解决方案共有的问题 . 计算为: CR(v, b)= |neigh(b) ∩ neigh(v)|/(|neigh(b)| −1). 为了最大化听到某个动作的节点数量,从而最小化冗余动作的数量,我们的方案确保在动 作定时器竞争中胜出的节点是与尽可能多的相关节点相连接的节点。为此,我们引入节点 u,b)的连接优势Adv,该参数用于衡量节点u相对于节点u和b的本地动作集合中的其他节 点的优势。在给出正式定义之前,我们先对该概念进行非正式介绍。直观上讲,连接优势 参数用于衡量一个节点u与恶意节点b的其他邻居节点(即监控由后者引发的每个事件的监 控节点)之间的连接程度。由于节点u参与对节点b的监控,这意味着u是b的直接邻居,因 此通过网络启动时节点b向节点u提供的两跳知识,u能够获知节点b的所有直接邻居节点集 合——无论这些节点是否直接与u相连。我们形式化地将节点u在本地动作集合LAS(u,b)中 相对于各节点的连接优势定义为一个介于α和 1/α之间的可调因子,该因子将增加(或减 少)u2的动作有效性。 当一个节点u需要为由节点b引起的不利事件设置其动作定时器时,它需要计算自身的连 接优势。因此,它会计算本地动作集合LAS(u,b)中每个节点(包括自身)的连接比率CR。在 计算完所有连接比率后,节点可以在[0, 1]范围内将它们归一化为归一化连接比率NCR(u,b): NCR(u, b)= CR(u, b)− min w∈LAS(u,b) CR(w, b) max wLAS(u,b) CR(w, b)− min wLAS(u,b) CR(w, b) . 节点u最终将使用其自身的NCR(u, b)值来确定其在上述范围[α, 1/α] 内的连接优势,如下所示: Adv(u, b)=(1/α − α)(NCR(u, b))+ α. 容易看出,归一化后的连接比率等于1时,将导致连接优势为 1/α;反之,归一化后的连接 比率等于0时,将导致连接优势为 α。因此,该函数满足了根据节点与恶意节点的直接邻居 之间连接性的好坏,相应增加或减少动作定时器延迟的要求,以便在竞争获胜后通过动作 覆盖尽可能多的邻居节点,从而限制冗余动作。 基于Adv(u,b),该替代技术中节点u在由其邻居b引起的不利事件下的动作有效性与动 作定时器的方程分别为: AE(u) ∝ c1 · tl+ c2 · 1 Adv(u, b) (6) ActionTimer(u, b) ∝ 1 AE(u) . 这里,c1,c2 是实数,且tl 是距上次动作u的时间。 显然,一个节点可能不会直接连接到本地动作集合中的所有其他节点。这意味着每个节点仅拥有部分 信息 请记住,动作定时器的值越小,赢得竞争的机会就越多,因此最佳优势将产生一个 1/α的因子,而最差的情况则为 α的因子。
6.5. 行动证明
根据恶意节点邻域的具体拓扑结构,存在这样一种情况:即使通过考虑节点的连接优势来 优先选择与恶意节点所有其他邻居连接最紧密的节点,也无法完全解决冗余动作的问题。 当所关注邻域中没有任何单个节点直接连接到所有其他节点时,或者在更普遍的情况下, 当该邻域被划分为多个不连通的子部分时,就会出现这种情况。此时,某些节点相对于特 定执行的动作被称为“隐藏”节点。为应对这类场景,Kinesis提供的解决方案包含一种通 过动作证明向相关方自动通知的机制。
虽然确保高严重性操作立即报告给所有相关节点非常重要——以防止邻域其他部分的未 知节点执行更多冗余且可能产生冲突的高严重性操作——但对于非冲突冗余操作而言,主要 关注的是不必要的能量消耗。由于增加额外的通信轮次实际上会适得其反,Kinesis能够智 能地区分这两种安全目标,仅在发生高严重性操作时才启动通知机制。对于非冲突(即低严 重性)的冗余动作,允许多个动作共存更为节能。
我们现在描述该机制如何帮助减少冗余动作的数量。让我们再次分析节点b引发不利事 件的场景。多个监控节点将见证该事件,并启动其动作定时器(同时考虑它们的连接优势)。 假设节点 v的定时器首先触发,那么节点v将执行动作A。只有 v的所有直接邻居会监听到 该动作,并停止它们的动作定时器。为了解决隐藏节点问题,这些直接邻居中的每一个都 将利用两跳知识来检查其任意直接邻居是否相对于节点 v发起的动作A处于隐藏状态,并按 如下方式进行。不失一般性,设u为这样一个节点。从u的角度来看,相对于节点 v针对恶 意节点b发起的动作A而言,隐藏的节点是所有满足以下条件的节点 w:即b是它们的直接 邻居之一,但v不是。更正式地,这些隐藏节点构成如下定义的集合: hidden(v, b)={w: b ∈ neigh(w) ∧ v∈/ neigh(w)}. 如果集合hidden(v)非空,并且动作A与任何其他动作存在潜在冲突(如表V所示),那么节 点u将生成并广播一个经过认证的行动证明,以使隐藏节点知晓该动作,并防止它们执行冗 余且可能冲突的操作。
由于该算法是完全分布式的,信息将逐跳传播到所有相关节点,即那些目睹了不利事 件但未能监听到所采取动作、并可能试图自行发起动作的节点。需要指出的是,这些节点 的数量始终受限于恶意节点的直接邻居数量减1,并且根据拓扑结构的不同,可能远低于此 上限。
算法2展示了Kinesis提供的用于管理冗余动作的解决方案的伪代码 ,该方案包括连 接优势的计算、在检测到攻击时利用其设置动作定时器,以及使用动作证明向隐藏节点传 播信息。该算法已进行优化,仅保留计算所必需的最少变量,从而降低了内存需求。例如, 无需在内存中保存所有连接比率的值,而是就地计算其范围内的最小值和最大值,以便后 续仅对执行计算的节点自身的值进行归一化。
算法2:针对冗余动作的解决方案伪代码(在节点u上)
当发生不利事件(b){
我的ae ←计算AE();//省略
我的adv ←计算Adv(b);
设置动作定时器(我的ae,我的adv);
}
函数计算CR(v,b){
公共邻居数 ←(b的邻居 ∩ v的邻居).大小 ();
返回公共邻居数/(b的邻居.大小()‐1);
}
函数计算Adv(b){
对于v ∈ b的邻居执行
如果v ∈我的邻居那么
conn ←计算CR(v,b);
如果conn<最小cr那么
最小cr ← conn;
如果conn>最大cr那么
最大cr ← conn;
结束
结束
我的ncr ←(计算CR(自身,b)‐最小cr)/(最大cr‐最小cr);
我的adv ←(1/阿尔法‐阿尔法)\*我的ncr+阿尔法;
返回我的adv
}
当侦听动作证明(p){
侦听动作(p.时间戳,p.A,p.发起者,p.恶意节点);
}
当侦听动作(时间戳,A,发起者,恶意节点){
取消动作定时器();
如果已见过(时间戳, A,发起者,恶意节点) ∨那么不是是否高严重性(A)则返回;
结束
隐藏节点集合 ← ∅;
对于w ∈我的邻居执行
如果恶意节点 ∈ w的邻居 ∧发起者∈/ w的邻居那么
隐藏节点集合 ←隐藏节点集合 ∪ w;
结束
结束
如果隐藏节点集合 = ∅那么
p ←生成动作证明(A,发起者,恶意节点);
广播(p);
结束
}
| 表VI. 考虑的响应策略 |
|---|
| 当 ‘数据 篡改’ |
| 如果严重性(数据 篡改, 节点ID)在 (0,0.2]那么重传数据 如果严重性(数据 篡改, 节点ID)在 (0.2,0.4]那么 触发路由变更,重传数据 如果 严重性(数据 篡改, 节点ID) > 0.4那么 重传数据, 撤销节点ID |
| 当 ‘数据 丢失’ 如果 严重性(数据 丢失, 节点ID) 在…之内 (0,0.2]那么重传数据 如果 严重性(数据 丢失,节点ID)在(0.2,0.4]那么 触发路由变更,重传数据 如果 严重性(数据 丢失,节点ID) > 0.4那么 重传数据, 撤销节点ID |
| 当“选择性转发” 重传数据 ,撤销nodeID |
| 当 ‘不一致的 etx’ 如果 严重性(不一致的 etx,节点ID)在(0,0.4]那么 NOP 如果 严重性(不一致的 etx,节点ID)> 0.4那么撤销节点ID |
| on汇点攻击 撤销nodeID |
7. 实现与配置
我们在TinyOS2.x中实现了Kinesis。我们采用了TinySec[Karlof等 2004]中基于Skipjack加密的CBC‐MAC实现,并将其适配到TinyOS2.x,以在多数投票过程中计算4字节的消息认证码。 该实现在Mica2节点上耗时仅为0.38毫秒[Karlof等 2004],属于轻量级实现;而在处理能力 高于Mica2节点的TelosB平台上,所需时间会更短。
根据第5.1节中定义的策略语言,策略规则以switch-case的形式基于事件实现。该策 略优化了实现方式。安全状态阈值(σ1, σ2)用于指定策略中的严重程度。为了计算 σ1, σ2,我们对所有事件影响取平均值,针对不同攻击速率测量具有该平均影响的SI,并根据 对攻击速率的容忍度选择相应的值。用于指定策略的特定响应动作集合是根据无线传感器 网络应用的安全目标确定的。
在Kinesis配置中,无线传感器网络管理员使用事件‐影响映射、影响评分和实系数来 配置传感器。某一事件对数据、网络或节点的影响在不同的无线传感器网络之间不会变化, 因此事件‐影响映射是静态的。相反,事件对无线传感器网络服务造成的影响程度可能取决 于具体的网络应用。因此,用于计算综合指标的影响评分和 β系数应由管理员根据应用需 求进行设置。然而,我们假设这些配置参数在整个网络生命周期内很少更改。
8. 仿真结果
在本节中,我们展示仿真结果以显示Kinesis在各种网络设置下的性能。
8.1. 仿真设置
在仿真中,我们使用TinyOS模拟器TOSSIM。网络拓扑采用对称链路生成。路由协议使用 标准的CollectionTree Protocol(CTP)。在实验中,我们考虑以下应用层和网络层异常 及攻击:(i)数据丢失,(ii)数据篡改,(iii)选择性转发,以及(iv)汇合点攻击。 针对这些事件所考虑的策略如表VI所示。为检测事件,我们在TinyOS2.x中实现了一个基 于看门狗监控器的入侵检测系统。
为了配置Kinesis,我们对公式(2)中的实系数赋予相等的权重,即βd= 0.34, βn= 0.33, βs= 0.33。每个邻居的滑动窗口大小W设置为100。在第5.4节中,我们已说明如何确定σ1, σ2 的值。一个数据源每隔2秒周期性地发送一次数据。在每次仿真运行中,结果基于3000次数据 传输进行平均。除非另有说明,我们在所有仿真运行中均使用上述默认值。
8.2. 性能指标
用于评估Kinesis的指标如下: (1)effectiveness:由于我们的目标是最小化数据或网络(a 等失等效,我们从两个方面展示Kinesis的有效性: (a)基站处的数据丢失率:基站受到事件影响的频率,即基站接收失败的比率。在此上 下文中,我们将本系统的性能与(i)无攻击的典型传感器环境和(ii)遭受攻击的网络进行 比较,以表明Kinesis即使在存在异常或攻击的情况下,也能使
1143

被折叠的 条评论
为什么被折叠?



