无线传感器网络在安全威胁下的性能优化高层设计
帕布罗·佩尼尔、阿尔瓦罗·迪亚兹、赫克托·波萨达斯、胡利奥·梅迪纳和
帕布罗·桑切斯,坎塔布里亚大学
当前无线传感器网络日益增加的复杂性要求采用高效的方法论,以满足通常在功耗和系统性能方面 施加的严格约束。此外,由于安全性问题对系统行为具有重大影响,它们也正成为关键特性。因此, 需要新的设计框架,使开发人员能够在无线传感器网络设计过程的初期就对安全风险进行建模和应 对,同时优化系统性能。为此,本文提出了一种用于在外部攻击下对无线传感器网络进行建模与仿 真的设计框架。在该框架中,无线传感器网络通过UML/MARTE模型进行描述,并基于这些模型实 现自动代码生成,从而支持快速的主机编译仿真。所获得的信息能够实现对无线传感器网络设计弱 点的早期检测,并简化后续设计方案的探索。只需对UML模型进行少量修改,即可自动以迭代方式 仿真和评估每一种设计替代方案。因此,设计人员能够以更短的设计周期和更少的工作量开发出更 安全且经过优化的无线传感器网络系统。
CCS概念: •网络 →网络性能建模;网络安全; •计算机系统结构 →传感器网络;嵌入式系统;
•计算方法论 →建模与仿真;
无线传感器网络,网络攻击,本地仿真,UML/MARTE
ACM 参考文献格式:
Pablo Peñil, Alvaro Díaz, 赫克托·波萨达斯, JulioMedina, 和 Pablo Sánchez. 2017年. 高层设计 of Wire‐ less 传感器网络 for 性能 优化 under 安全性 Hazards.ACM传感器网络汇刊 13, 3, 第19篇文章 (2017年7月), 37 页。
https://doi.org/10.1145/3078359
1 引言
半导体、网络和传感器技术的进步推动了大规模无线传感器网络(WSNs)的发展。这些 WSNs是由分布在空间上的自供电传感设备组成的复杂系统,用于监测感兴趣的物理或环 境条件[1]。典型的WSNs能够测量各种条件,例如
温度、声音、污染水平、湿度、风速或压力,并通过无线信道将采集到的数据发送到中心位置。
无线传感器网络的无线通信在过去二十年中迅速发展,展示了其在军事、健康、环境 以及一些商业相关领域的广泛应用潜力。然而,为了覆盖更多潜在的应用程序,仍需推进 低成本、低功耗无线传感器网络的发展。为此,每个无线传感器网络节点的设计必须满足 系统、网络和传感器需求。因此,传统的性能和功耗考量必须与对外部其他参数(如安全 风险)的管理相结合。
无线传感器网络通常部署在不安全的环境中,未经授权的外部作体可能试图访问系统。
共享信道访问、使用无保护的通信通道、广播传输媒体、在恶意环境中的部署,以及功率 管理、资源和带审方面的其他限制,使得无线传感器网络对安全风险尤为敏感。此外,由 于其应用于从军事到家庭或环境监测等不同领域,所需的安全级别可能因应用程序之间交 换的信息的重要性而异[2]。因此,在无线传感器网络设计过程中,关键是要保护网络免受 威胁其安全性的外部行为的影响。
由于这些原因,必须在设计阶段的最早期识别无线传感器网络的安全弱点,以便根据 最终应用程序及其定义的安全级别,调整复杂性、规模、价格和功率方面的要求。因此, 近年来安全评估已成为无线传感器网络的常见需求,必须确保数据和网络完整性、安全的 节点行为,以及足够的性能和能耗表现。
为了将安全问题融入无线传感器网络设计中,设计流程必须使设计人员能够理解典型 攻击对网络和本地节点造成的影响,并防止可能出现的脆弱性。分析这些攻击及其影响是 确保系统约束的必要条件,因为它们可能对功耗产生重要影响。
因此,无线传感器网络的设计涉及大量必须在设计过程中考虑的设计细节。因此,工 具流程必须考虑与应用程序软件以及执行该应用程序的软硬件平台相关的性能影响。然而, 对如此复杂系统进行完整分析需要强大的评估工具流程。
因此,所提出的设计过程必须能够方便地研究所有生成的设计方案,以获得有助于优 化无线传感器网络配置的性能结果。这些设计过程必须支持在节点设计过程中对多种设计 方案进行探索,例如处理器数量、总线带宽以及收发器特性,必须对这些因素进行探索才 能为特定应用程序找到最合适的软硬件配置。
到目前为止所描述的背景使我们能够阐明本工作的主要动机。考虑到可用的软硬件架 构种类繁多,以及可部署的无线传感器网络配置和环境场景数量庞大,有必要采用基于高 级形式化方法的方法论来应对这种复杂性,从而实现仿真和设计空间探索,以获得最优最 终设计。
因此,本文提出了一种基于流程的基础设施,该流程结合了灵活的高层建模与深度无 线传感器网络仿真模型的自动生成,以探索在可能的设计替代方案和周围环境特性(如网 络攻击)下的最佳系统配置(图1)。为此,首先需要定义一个系统配置,并分析其在不同 条件和攻击下的行为。然后可以检测出弱点,从而需要生成新的无线传感器网络配置,并 在所有定义的外部条件下重新进行评估。最后,必须重复此流程,直到获得合适的配置为 止。
为了实现该流程,我们提出的高层模型能够捕获所有相关系统信息,从而可以使用完 整的高层规格说明作为输入,以驱动后续的仿真和分析步骤。在系统规格说明阶段,涵盖 了节点设计中需要处理的所有细节,例如应用程序代码、软硬件平台、网络结构以及安全 问题。
观察其他需要设计大型、复杂甚至安全关键型信息系统的领域,我们发现应对复杂性 需要有广泛接受的规范和易于使用的工具,以实现设计评估的自动化。因此,模型驱动工 程(MDE)方法论正被普遍采用,用于处理此类系统的架构初始设计与开发,这也使其成 为本研究的基本出发点。模型驱动架构(MDA)[3]是一种设计方法,它使得系统能够在 不同抽象层次上通过模型来表达。MDA最广泛接受和使用的语言是统一建模语言(U ML)[4]。UML是一种标准的图形化语言,用于可视化、描述和记录系统。从最初应用于 面向对象软件系统的建模以来,UML的应用领域已大大扩展。如今,UML被用于满足广 泛的建模需求,包括电子系统、实时系统和嵌入式系统的设计[5, 6]。
然而,普通的UML缺乏充分支持嵌入式系统规格说明、建模和设计所需的特定语义。
为了弥补这一不足,已提出了多个面向特定应用的UML配置文件[5]。在此背景下,对象 管理组织(OMG)标准化机构采纳了一种用于对实时嵌入式系统进行建模和分析的 UML配置文件作为标准,称为MARTE的UML配置文件[7]。该标准提供了在不同抽象层 次上描述平台、应用程序以及规定此类系统语义的实时特性的必要概念。MARTE配置文 件具备创建嵌入式系统模型所需的必要概念。通过使用此UML配置文件,设计人员能够指 定由相互连接的应用组件所涵盖的系统功能,以及应用程序所运行的软硬件平台。
然而,正如在[8]中提到的,MARTE 概要文件并未针对无线传感器网络的特定特性进 行建模。因此,本文的首要目标是提出一种新的建模概念方案,以弥补这些表达能力上的 不足,涵盖系统建模以及多种攻击的管理。此外,所得到的模型必须能够以灵活、简便的 方式修改设计,从而简化系统精化过程。
攻击通常会使无线传感器网络在极端情况下运行,导致出现不同且非典型的运行状态。
因此,对该问题进行静态分析可能极为困难。于是,仿真成为开发无线传感器网络系统的 合适且有价值的工具。本研究还介绍了所实现的基础设施,该基础设施通过仿真代码的自 动生成和快速的宿主端编译仿真,支持对无线传感器网络系统进行快速、简便的优化。
总之,本研究的主要贡献如下: (a)一种用于建模无线传感器网络的创新方法,包括无线传感器网络的结构和通信特 性、每个节点的软硬件平台以及在每个处理器上执行的实际应用程序代码。此外,该 模型能够描述无线传感器网络可能遭受的不同攻击。这些模型采用尽可能接近该领域 最知名建模标准(UML/MARTE)的形式进行定义,并且必要的建模扩展已在工具中 正式定义并实现。
(b) 一种采用宿主编译仿真的框架,能够以快速且精确的方式模拟(a)中描述的所有元 素。该方案与典型的仿真环境形成对比,在典型仿真环境中,为了保持可接受的仿真 速度,系统中某些元素的模型必须被简化版本替代。因此,该框架使设计人员能够评 估无线传感器网络系统中多个节点带来的所有副作用。
(c) 一个能够根据统一建模语言中的信息自动构建无线传感器网络仿真模型的框架。此 外,该框架还能够在对UML模型进行最少修改的情况下,实现系统特性和细节变化的 仿真。因此,可以快速评估多种性能估计,帮助设计者获得系统对不同类型的网络攻 击者的响应,从而相应地优化无线传感器网络。
为了充分说明和展示该方法的优势与适用性,本文结构安排如下。首先,第2节描述了相关 领域的研究现状。第3节介绍了设计流程,第4节描述了UML/MARTE建模方法。第5节阐 述了原生‐主机仿真器。在第5.2节中,介绍了无线传感器网络攻击仿真。然后,第6节提供 了示例和实验结果,最后,第7节给出了结论和未来工作。
2 研究现状
如上所述,无线传感器网络在不同外部条件下的性能取决于多种因素,这意味着设计人员 需要探索大量设计方案,这就要求在无线传感器网络设计过程中建立设计空间探索流程。
因此,需要一个多功能的基础设施来支持该设计空间探索过程的建立,涵盖无线传感器网 络设计中的所有相关方面,并能够与仿真工具相连接。在此背景下,统一建模语言是一种 灵活的语言,能够用于创建系统设计的开发框架,管理此类系统相关的复杂性,并根据框 架目的实现与工具的连接(如代码综合、仿真、设计空间探索等)。此外,早期性能估计 是任何嵌入式系统设计方法论中的关键步骤,以便在较短时间内评估不同的设计方案。
统一建模语言建模和早期性能估计是系统设计中的传统手段。然而,无线传感器网络 具有某些特定特性,可能会限制典型解决方案的有效性。例如,为传统有线网络和无线自 组织网络提出的安全部件并不适用于无线传感器网络。尽管一些传统网络中广为人知的安 全威胁同样适用于无线传感器网络,但后者还具有一些额外的脆弱性。因此,接下来将分 析结合无线传感器网络特性的统一建模语言建模和早期性能估计的最新研究现状。
2.1 统一建模语言在嵌入式系统设计中的应用
UML模型在嵌入式系统设计中的应用已引起越来越多的关注([5, 6])。基于UML的概念 建模已被证明是一种有效的方法,可用于生成高层模型,并由此开发完整的设计流程,包 括设计空间探索(DSE)、仿真和代码综合。例如,在 [9],基于UML模型的综合以创建 状态机模型或其变体为特征。在 [10],提出了一种用于可重构模块化数字控制器逻辑综合 的正式设计。在 [11],提出了一种基于UML/SystemC的软硬件协同设计方法。
然而,如上所述,统一建模语言非常通用,需要使用特定的配置文件(如MARTE),才能以标准化 的方式对嵌入式系统进行建模。
因此,尽管MARTE配置文件的开发相对较新,但已有若干研究提出了基于 UML/MARTE的方法论。Gaspard2[12, 13]是一个面向数据密集型应用程序的设计环境, 支持对应用程序和硬件平台(包括多核片上系统和规则结构)进行MARTE描述。
Gaspard2使用复合图和MARTE配置文件来捕获应用程序和平台架构。Gaspard2工具支 持多种模型到模型(M2M)转换工具的链式调用,有助于生成综合流程以及性能模型。
具体而言,Gaspard2 支持在程序员视图时间(PVT)级别生成 SystemC/TLM 模型。
它能够实现快速仿真,从而加快设计探索过程。此外,[14]提出了用于系统适应性规范的 通用控制语义,特别是在片上系统中的动态可重构性。动态可重构性通过为与高层应用程 序模型相关的动态可重构区域生成代码来实现。然后,将其转换为硬件功能,生成与重构 controller 相关的源代码,该 controller 管理与硬件资源相关联的不同实现。
MoPCoM[15]是另一种用于实时嵌入式系统设计的设计方法,支持使用统一建模语言和 MARTE配置文件进行系统建模。具体而言,MoPCoM使用非功能属性MARTE配置文件来描 述实时特性;使用硬件资源模型MARTE配置文件进行平台描述;以及使用分配MARTE配置文 件进行架构映射。此外,MoPCoM定义了三个生成级别。其中第二个级别称为执行建模层( EML),旨在生成用于性能分析的模型,并适用于在设计空间探索迭代中获取性能数据。
此外,其他研究提出了基于UML的框架用于设计空间探索过程。在[16],提出了一种 基于UML/MARTE的组件化建模方法,该方法明确设计用于支持设计空间探索。这种 UML/MARTE设计探索方法侧重于为软硬件架构指定一组设计方案;包括硬件资源的特性 (频率、内存大小等)以及应用程序在硬件资源上的多种分配方式。然而,应用程序规格 具有固定的结构,其中定义了主动组件(每个执行仅对应一个资源)和被动组件(无执行 资源)。此外,未使用具有特定通信语义的通信元素来连接这些应用组件。
2.2 基于统一建模语言的无线传感器网络框架
一些研究提出了基于统一建模语言的无线传感器网络仿真框架。在[17],中,统一建模语言被用于对无线体 域网进行建模。在[18],中,贝拉迪内利等人提出了一种方法,用于建模和分析无线传感器网络软件
NesC应用程序(用于为TinyOS平台构建应用程序的基于组件的事件驱动编程语言)的性能。在[19],
提出了一种从带有MARTE时间约束的UML序列图出发并生成SystemC/TLM模型的方法。
在[20],提出了一种方法,能够应用事件驱动与时钟驱动混合策略。当时钟驱动仿真检测到 系统配置发生变化时,即被激活。在[21],提供了用于安全攻击的标准模型,使用UML序 列图来描述和分析网络层和传输层中的可能攻击。
然而,目前缺乏能够以快速、简便的方式探索多种无线传感器网络设计方案的选项, 这些方案可以在正常和关键条件下优化平台和应用。例如,在[22],提出了一种建模与仿 真环境对网络化嵌入式系统之间通信影响的方法。该框架支持在网络中验证分布式应用程 序。然而,在本研究中,节点的内部软硬件架构未被纳入仿真范围。
作者在[23]中填补了这一空白。在这项工作中,通过考虑节点的软硬件平台,补充了 先前的建模‐仿真框架。此处,[22]中提出的仿真器与硬件/软件协仿真器相连。
然而,该框架未考虑安全性问题:未考虑潜在网络攻击,因此也未分析这些攻击对网络行为的影响。
无线传感器网络性能受其环境影响,潜在的攻击者会引发漏洞,导致安全故障。因此, WSN设计流程应在设计过程中考虑这一活跃环境,以选择最佳的设计方案来保障无线传感 器网络性能。
为了应对这些无线传感器网络设计需求,在WSN规格化过程中必须对所有考虑的设计 方案进行仿真。在此背景下,主机仿真能够快速估算特定系统配置的性能。因此,可以轻 松且快速地对系统规格说明中考虑的设计方案进行仿真,从而得出关于所选系统配置正确 性或弱点的结论。
J. Jürjens 开展的工作 [24–27]支持对分布式系统进行设计阶段安全分析。在 [24],提 出了UMLsec。它是一种统一建模语言扩展,能够创建用于捕捉系统安全方面的模型,通 过定义新的刻画类型来建模保密性、安全链接、隐秘性等安全方面,从而利用形式语义对 UML规范中的脆弱性进行评估。[25],文中还介绍了工具,用于从UMLsec自动生成评估 模型,以进行系统分析并验证是否满足安全需求 [27]。该框架应用于移动通信的安全分析 [26]。这项工作属于面向软件的工程,为安全性关键的应用程序开发提供了一个框架。通过 使用UML行为图(活动图、序列图或状态图),设计人员可以在特定应用场景中建模不同 的安全需求,并指定该场景中需要执行的任务序列。然后,利用该框架的工具对场景进行 分析。本文提出的工作侧重于结构方面,其中使用节点的应用和硬件/软件平台进行分析。
该分析的重点是研究攻击在网络中造成的影响,这些影响体现在诸如功耗或节点间通信的 中断变更等物理量上。J. Jürjens 的工作则侧重于分析数据传输的完整性保持。
同样,在 [28],中提出了一个用于性能分析的框架。这个面向软件的框架能够在考虑 平台资源的同时,对系统的行为方面进行建模。该框架包含一个用于开展模型性能分析的 工具包。该性能分析能够研究为保护系统免受安全风险而引入的安全机制所产生的影响。
性能结果
从求解器获得的结果包括软件资源的吞吐量和服务时间(包括排队延迟),以及硬件和软件资源的
利用率然。而,此性能分析的目标与本文所提出的工件不同。文献 [28]中的工作侧重于使用求 解器进行抽象仿真,其中程序任务的时序和数据包大小在UML模型中预先定义并加以注释。
而在我们的情况下,实际代码被执行,并且在仿真过程中动态获取执行时间和数据包大小。
因此,还可以估算攻击在代码函数内部产生的影响,而这是采用 [28] 的高粒度方法无法实 现的。
事实上,根据现有技术水平,已有多种基于UML/MARTE的方法论可用于复杂系统的 建模与仿真。然而,这些方法论中很少有针对无线传感器网络系统的研究。涉及网络建模 与仿真的研究更多侧重于建模与仿真应用程序,以检测由外部攻击引起的弱点,从而创建 能够抵御攻击的强健应用程序。在这种情况下,它们并未确定节点的软硬件特性,仅将其 视为黑箱处理,使得软硬件特性被排除在设计过程的初始阶段之外。
最后,将节点视为软硬件实体的研究工作未在建模‐仿真框架中考虑攻击。
2.3 无线传感器网络仿真
早期、快速且精确的仿真可以为无线传感器网络开发人员提供信息,使其能够修改软件算 法或硬件架构,从而优化无线传感器网络设计,以最佳利用有限资源。
传统的网络模拟环境无法详细地描述端点节点的操作。在大多数情况下,模拟不会考 虑每个节点中的硬件和软件。如果忽略这些信息,则无法精确估计网络的能耗。一些论文 [32–35]反映了无线传感器网络仿真工具的最新进展。其中一些最著名的模拟器包括
Cooja [36], Castalia[37], NS-2[38], NS-3[39],OMNeT++[40]、GloMoSim[41], TOSSIM
[42],和 Avrora [43]。NS‐2、NS‐3 和 OMNeT++是离散事件网络模拟器。NS‐2 提供对 有线和无线网络中 TCP、路由和多播协议的模拟支持。OMNeT++可用于在真实的无线通 道和无线电模型中测试分布式算法和/或协议,特别是与无线接入相关的内容。
GloMoSim(全球移动信息系统模拟器)是一个用于无线网络系统的可扩展模拟库。它基 于 PARSEC 模拟环境构建[44]。另一个选择 TOSSIM,是一个位级离散事件模拟器和 TinyOS 传感器网络的仿真器。TOSSIM 在网络比特粒度级别而不是数据包级别上捕捉网 络的行为和交互。TOSSIM 专为在特定平台上运行的 TinyOS 应用程序设计。最后, Avrora 是一种模拟工具,有助于实现微控制器程序的时钟周期精确执行的传感器网络仿真。
Avrora 只能仿真两种非常特定的平台。
此外,OMNeT 的扩展在 ++中提出了一种框架,该框架通过使用基于 UML‐RT 的模 型(一种使用统一建模语言描述实时应用的非标准组件化方法)提供开发接口。然而,该 框架并未解决 OMNeT 中的差距[46],(该框架未使用为特定传感器节点平台编译的应用 程序代码进行测试)。
在 [18],中,作者提出了一种用于建模和分析用NesC编写的嵌入式无线传感器网络软 件性能的方法(NesC是一种基于组件的事件驱动编程语言,用于为TinyOS平台构建应用 程序)。另一个仿真器是J‐Sim[47],,这是一个用Java开发的基于组件的仿真环境。这种
仿真器的低效率。UWSim [48]是用于水下传感器网络 (UWSN) 的仿真器。该仿真器的 问题在于它仅支持对水下网络的仿真。仿真器 Shawn [49]旨在模拟某种现象的影响,而 非现象本身。其他仿真器包括 Prowler [50]和 JProwler [50, 51]。它们是概率性无线传感 器网络模拟器。Prowler 使用 Matlab 编写,而 JProwler 使用 Java 编写。另一种方法是 ATEMU [52],一种用于传感器网络的仿真器,其节点为 Crossbow AVR/Mica2 节点。
然而,所有这些传统的网络仿真都没有详细捕捉端点节点的操作。通常情况下,仿真 并未充分考虑每个节点中的硬件和软件。如果忽略这些信息,则无法精确估计大多数副作 用,例如由网络攻击导致的能耗增加。
为了评估节点硬件和软件带来的影响,需要进行全节点仿真。然而,由于单个仿真时 间过长,使用传统技术(如指令集模拟器)来分析多节点无线传感器网络是不可行的。因此,已提出诸如虚拟化[29]和本地仿真[30, 31],等新的估计算法,用于评估每种设计替代 方案的性能。这些技术是动态的(基于仿真的),相较于指令集模拟器可实现两个数量级 的仿真加速。因此,基于仿真的性能估计方法能够为目标大型复杂系统提供适当的可靠性 权衡,其中服务质量与功耗限制依赖于某些特定且不可预测的影响因素,例如可能破坏无 线传感器网络正常运行的攻击。
考虑到这一点,为了获得有效且准确的估计,使用一个满足以下所有要求的仿真器非常重要:
—使用真实网络流量。为了评估攻击影响,使用网络在部署后将产生的真实流量进行 测试非常重要。—仿真真实软件代码。为了计算软件代码在遭受攻击时的行为,使用 每个节点的最终软件代码对无线传感器网络进行仿真是至关重要的。—硬件平台支持。
功耗会因平台的硬件组件不同而变化,因此仿真器必须支持不同的硬件架构。—操作
系统支持。如今嵌入式系统的软件通常运行在操作系统之上,因此仿真器能够支持多 种典型操作系统具有重要意义。—功耗。功耗的估算对于评估攻击影响是一项主要需 求。
表格 1和 2根据这些要求对一些模拟器进行了分类。这些模拟器的主要缺点是无法建 模攻击对包含中/高计算能力节点的无线传感器网络性能所产生的影响。
表1 列出了那些未关注性能影响(如功耗)的模拟器。因此,它们显然无法用于在攻 击条件下优化无线传感器网络性能。此外,它还列出了基于流量模式的模拟器。由于这些 模式无法建模节点中真实软件对攻击的反应方式,因此它们同样不能用于所提出的分析。
考虑到能够模拟真实软件的仿真器,我们可以找到一些示例。然而,它们通常存在一 些局限性。首先,有些仿真器可以考虑软件功能,但未考虑节点平台。因此,它们无法在 仿真中集成攻击在节点内产生的功耗和时序影响。例如,它们无法对由攻击引发的额外软 件活动所导致的时序开销进行建模。
| 表1. 模拟器调查 |
|---|
| 表2. 模拟器调查(续) |
|---|
其次,还有其他一些模拟器可以考虑节点细节,但据我们所知,这些模拟器只能模拟 小型微控制器,例如AVR微控制器或类似设备。由于支持的操作系统(TinyOS或 Contiki)以及节点架构和组件的限制,它们的应用范围被局限在少数平台上。使用这些 模拟器无法对高频设备进行建模,也无法考虑复杂操作系统(如Linux)或复杂缓存架构 所带来的影响。
因此,目前缺乏能够对基于中高计算能力平台(如树莓派、Zedboard等)的节点进 行无线传感器网络仿真的模拟器。在此背景下,本文提出的仿真基础设施旨在将宿主编译 仿真技术的优势应用于无线传感器网络设计。这种专为多处理器片上系统(MpSoCs)仿 真而设计的技术,因其快速的仿真速度,能够精确建模无线传感器网络中多个节点的运行 行为。从而可以完整地建模攻击在网络软件中产生的影响,优化数据包的生成。
因此,为了克服现有技术中的局限性,本文提出了一种方法论,使设计人员能够考虑 环境攻击者的情况下探索不同的无线传感器网络设计方案。如表2所示,本文提出的架构满 足上述要求。它支持软件和硬件建模,能够估算功耗,并直接通过各节点的软件代码生成 网络流量。此外,它还支持多种操作系统,如FreeRTOS、POSIX或WIN32。
基于该仿真器,所提出的方法在UML/MARTE模型中捕捉了无线传感器网络的所有相 关方面,从而能够管理无线传感器网络系统的复杂性,涵盖功能、节点的软硬件平台、无 线传感器网络架构以及攻击的环境代理。此外,UML/MARTE有助于设计空间探索过程, 便于管理不同的配置替代方案。从高层模型出发,通过自动代码生成产生代码基础设施, 实现主机仿真,从而获得对所建模的无线传感器网络架构和攻击者的性能评估。这一完整 的无线传感器网络探索过程能够实现性能优化,提供更优的最终实现方案。
3 提出的方法
所提出流程的目标是实现对无线传感器网络及其环境所有细节的灵活建模,并提供一个自动、快速 的协同仿真框架,以便在不同攻击和系统配置下对无线传感器网络进行评估,观察其对系统的影响。
行为和性能。因此,该框架使设计人员能够根据获得的结果更改无线传感器网络的特性, 并评估所选的设计方案,以改进系统。结果,设计人员可以在一个快速、易于使用的设计 循环中工作,早期评估不同的设计方案,从而获得合适的实现方案。
为此,灵活的UML/MARTE建模与自动代码生成和快速主机编译仿真相结合,生成完 整的评估流程。通过该流程,只需更改模型中的属性值或链接关联,即可探索各种设计方 案,并借助快速仿真技术快速估算不同攻击的影响。
所提出的流程从基于UML的基础设施中对无线传感器网络系统进行规范开始。使用 UML/MARTE,节点模型被完整地指定,包括每个节点的平台硬件细节及其执行的应用程序。
然后,将网络模型创建为相互通信的节点。此外,这些节点不是黑箱实体;节点是定义明确的 元素,使得在设计过程中能够考虑软硬件平台和应用程序。另外,UML/MARTE建模方法能够 捕获无线传感器网络攻击。
为此,在UML/MARTE建模方法论及建模工具中引入了新的建模元素,以支持对所考 虑的不同攻击类型的规范描述。
然后,一旦UML/MARTE模型完成,所捕获的信息将自动注释到一组XML文件中。
具体来说,会生成两个文件;其中一个包含与网络、节点内部结构和网络结构相关的所有 信息,另一个XML文件包含攻击信息。这些XML文件作为代码生成器的输入,用于创建 可执行协同仿真模型,并实现对模型中指定的所有参数进行仿真。
为了实现基于UML/MARTE的方法以及后续的自动生成,已开发了一个Eclipse插件, 用于生成创建系统实现所需二进制文件的所有元素。用于创建UML/MARTE模型的图形化 工具是Papyrus [53]。此外,XML生成器采用标准MTL语言编写为一组生成模板 [54]。
该开发使用Acceleo完成,[55],这是一个完全集成在Eclipse中的生成框架(即图2中的 “XMLgenerator”)。
生成这些XML文件后,Eclipse插件会启动“无线传感器网络代码生成器”(图2)。
根据生成的XML文件,“无线传感器网络代码生成器”将生成“无线传感器网络仿真模型 文件”。这些是用SystemC编写的文件,包含网络结构、软硬件平台模型以及网络中各节 点执行的功能。此外,还包含了攻击的规格说明、所影响的节点及其相关属性。编写应用 程序功能的源文件被外部引用并纳入模型中(附录,第1.3节)。
同时,生成“makefile文件”以将所有生成的代码与用户代码一起编译,从而实现完整的无线传感器 网络协同仿真模型的自动构建。
当所有代码被编译和链接后,运行本地‐主机编译仿真以分析攻击对系统行为和性能的 影响。为此,本文所采用的协同仿真技术包括执行带注释的软件代码,该代码在建模了平 台硬件细节的框架中运行。该框架包含无线传感器网络所有组件的模型,包括网络连接和 节点模型。网络连接包含描述传输能力和系统环境影响的细节。同时,节点模型集成了处 理器、内存、总线、射频收发器和传感器模型。由此实现了本地或主机编译协同仿真。
然后,利用该协同仿真,可以评估无线传感器网络的安全性。为此,所开发的协同仿真基础设施会评 估攻击对无线传感器网络行为的影响,例如通过引入噪声或伪造数据包,直接影响通信链路或节点。
因此,为了使用无线传感器网络虚拟仿真平台对软件应用程序在硬件平台上的执行进 行建模,并利用这些平台构建无线网络,需要执行一些步骤。基本流程是:软件应用程序 使用C/C++编写,并通过虚拟仿真编译器进行编译。此外,还需要多个包含虚拟平台描述 的SystemC文件,以描述每个节点的完整软硬件系统。同时,还需要一个网络定义模型文 件。一旦所有输入文件被处理完毕,虚拟仿真器将生成一个可执行模型。该可执行模型将 用于模拟整个系统。仿真器会报告一组性能估计结果,例如功耗或中央处理器使用率。更 多细节见第5节。
每个网络节点的所有性能结果均记录在一个自动生成的文件中,该文件由被模拟的网络和仿真 的时间信息标识。
最后,设计人员可以根据主机编译的仿真器提供的性能结果,通过修改 UML/MARTE模型来更改无线传感器网络规格,以满足无线传感器网络设计需求。灵活的 UML/MARTE建模解决方案、自动可执行模型构建以及快速协同仿真技术,使得能够以较 小的 effort 在较短的时间内探索多组设计方案,并将不同文件中的性能结果存储起来供分 析使用。
4 UML/MARTE建模方法学
为开发的基础设施定义的系统建模方法学,其特点是将模型驱动架构原则应用于嵌入式软硬件系统 的开发中。
模型驱动工程工具和MDA策略对我们所关注的各种可能攻击下无线传感器网络设计的 贡献是双重的。一方面,它们有助于应对复杂性,这对高层系统架构师而言是一个极为重 要的目标。另一方面,它们提供了大量广泛支持的资源,用于自动化所需进程。
用于管理不同抽象层次的模型。这些各种自动化和模型转换促进了对大量可能配置进行分 析的设计空间探索阶段。
在流程的最开始,通过UML/MARTE模型对所设计的系统进行定义。UML的图形化 特性有助于设计人员以简化的方式处理大型系统。然而,为了能够支持综合过程的执行, 这些模型必须包含有关系统的所有相关且必要的信息。因此,有必要定义一种 UML/MARTE建模方法,将可视化语言的优势与丰富的信息相结合。为此,根据应用领域 的不同,将UML/MARTE模型中包含的信息按特定关注点进行划分。每个关注点通过一个 模型视图来表达,并使用最适合该关注点的UML图进行表示。模型视图使设计人员能够利 用UML包来组织信息。每个UML包封装了待设计系统的某一具体且相关的关注点,例如 数据类型、应用组件、接口、通信信道或软硬件资源(附录,第1.1节)。模型视图的概念 最早在[77]中提出。然而,这一组模型视图尚不足以应对无线传感器网络的建模以及攻击 问题。为弥补这种表达能力的不足,本文引入了三个新的模型视图:节点视图、网络视图 和攻击视图。
使用附录第1.1节中描述的所有视图以及三个额外的新视图,创建了WSN模型,首先 从节点的定义开始,节点由硬件结构、软件平台和应用程序代码组成。接下来,通过实例 化并互连网络节点来生成无线传感器网络拓扑。然后,在攻击视图中定义无线传感器网络, 建模网络中的哪个元素遭受攻击。
4.1 节点视图
节点视图包括用于指定待设计网络的节点类型。该节点被建模为一个UML组件,由构造型 < >(附录,第2节)指定。
4.1.1软硬件平台
每个节点都具有一个完整的软硬件/软件平台,该平台将定义在模 拟过程中用于建模应用软件执行的条件(第5.1节)。
硬件平台的规格包括处理器、缓存内存、总线、传感器的建模,以及硬件组件属性的 说明,例如处理器频率、缓存大小或总线带宽(附录,第1.2节)。
为了对功耗进行建模,每个硬件组件都包含一个静态功耗值以及用于估算其动态功耗 的信息。然后,通过累加系统中所有硬件组件的能耗来获得总能耗。通常情况下,第5节 所述的仿真基础设施在处理器的情况下根据每条指令能耗获取动态功耗,在内存和缓存等 其他组件中则根据每次读/写访问能耗获取动态功耗。此外,特定硬件组件可以包含更复杂 的能量模型,例如下文所述的网络接口。
软件平台包括操作系统的定义,以及所考虑的操作系统类型建
模。无线传感器网络中的典型实 时操作系统包括FreeRTOS [56]和TinyOS。在本研究中,采用FreeRTOS作为节点的实时操作系统。
此外,节点建模包括在该节点中执行的应用组件。每个应用组件都有一组相关的文件, 其中编码了其实现的功能,这对于自动生成交叉编译的仿真至关重要(附录,第1.3节)。
最后,节点应具有端口。这些端口用于在与其他节点连接时标明通信方向。端口标明 了该端口所使用数据的方向。根据数据包流程,方向可分为输入、输出或双向 (图3 和 图 4)。
图3和图4展示了本文所提出用例中考虑的节点类型结构(第6节)。可以使用 MARTE提供的所有表达机制来设计这些节点,这些机制在附录,第1.2节中有描述。
用户可以使用这些组件并遵循一些基本规则来描述其系统中包含的所有节点类型。所 有节点至少需要一个总线,以及连接到该总线的一个处理器、一个内存和一个网络接口 (还可以添加多个处理器、内存或其他外设)。此外,必须指定将在节点上运行的软件应 用程序组件、操作系统以及描述电池的组件。
一旦定义了节点类型,就可以通过创建节点类型的实例并指定系统中所有可用的物理 点对点连接来描述系统及其拓扑结构,如下所述。远程节点之间的通信将通过链式点对点 跳转完成,如第5.1.2节所述。
4.1.2网络接口
网络接口的建模对于所提出的框架具有特殊意义,因为它们在系统性 能评估和外部攻击影响建模中至关重要。它们由构造型<
>(附录,第 2节)进行建模。构造型txPower的NetworkInterf ace表示传输功耗,其值取决于与特定网络 节点的连接,从而建模了
图 5. 网络模型 每个节点连接均可根据连接需求进行配置这一事实,因此考虑每个节点连接使用不同的传输功率值。
此外,还有三个用于描述数据传输机制的建模变量:$transmPower、$ numOfRetries 和 $encrypted。transmPower 表示用于传输数据包的传输功率; numOfRetries 记录同一数据包的重试次数;encrypted 表示数据包在传输过程中是否被 加密。这些建模变量的具体取值取决于节点之间建立的连接。
此外,这些变量根据[79]中的建议定义了网络接口的能耗。结合节点其他硬件组件的 能耗,可以进行功率分析,例如确定电池寿命周期。每次数据传输都以特定周期激活,并 具有相应的传输概率,该概率指定了通信成功的可能性。
4.2 网络视图
网络被建模为一组通过端口连接的Node组件实例。端口之间使用UML连接器进行互连 (图5)。这些连接器是MARTE CommunicationMedia,用于表示数据传输的通道。通 信媒体CommunicationMedia属性transmMode的值必须与端口方向一致:单工或全双工。
因此,将网络定义为通过连接器链接的节点实例,从而形成了一种非常灵活的方法,可以描述多种不 同的网络结构。
在关注用于支持数据传输的连接器时,必须在其建模过程中考虑一组特性,因为这些 特性对传输安全性和节点性能有显著影响。
通信建模变量 $transmPower,$numOfRetries,和 $encrypted对每个节点连接具有特定的 值。这些通信特性值在由MARTE构造型 <
>指定的UML约束中进行建模。
在此约束中,三个通信特性 $transmPower,$numOfRtries,和 $encrypted的值被标注(图5)。
这三个特性描述了从节点到节点发送的数据。然而,当同一节点在网络中与多个目标 相连时,每条连接都需要其特定的特性,因为网络接口根据数据传输的目标节点具有不同 的配置。因此,有必要为每条连接定义一个统一建模语言约束。为此,NFPConstraints与特 定的CommunicationMedia相关联。此外,在双向连接的情况下,与连接器关联的 NfpConstraint表示两条连接具有相同的传输特性(图5)。
最后,必须对网络部署环境的介质特性进行建模,因为它们决定了通道的误码率。在 无线传输中,用于连接两个节点的物理通道是一个共享通道,存在噪声和干扰,并且必须 考虑到节点的通信范围是有限的。此外,非目的节点的其他节点也可能接收到这些消息。
因此,开发人员需要确定节点的可见性,并关联数据包接收失败的概率(即丢包概率)。
必须分析无线传感器网络(WSN)的部署区域,并定义一个包含所有节点之间丢包概率的 矩阵。例如,100%的丢包概率意味着发送节点的通信范围不足以直接到达目的节点,因此 所有发送的数据包都会丢失。相反,如果链路的丢包概率为0%,则所有数据包都能成功到 达目的地。如果从节点0到节点1的链路丢包概率为10%,这意味着平均每发送100个数据包, 节点0会有90个数据包成功到达节点1。
该概率数据可通过CINDOOR等电磁传播仿真工具进行计算[57]。利用该矩阵,虚拟 平台可估算节点间链路的有效性。此外,可应用数学方法将已知值外推至其他场景,以降 低概率估计过程的复杂性。
然后,一旦获得概率值,就必须将其包含在模型中,以便在自动生成协同仿真模型时 应用。为此,默认情况下,当没有攻击存在时,连接的通信成功概率设置为100%。要更改 此值,应将UML连接器与构造型<
>相关联。因此,probability属性定义了 在此通道上无攻击情况下的数据传输成功率(图5)。此外,可以使用可编译的C代码定义 一个方程来替代固定的百分比,从而直接根据NfpConstraint中指定的传输功率近似计算该概 率。因此,传输功率的变化会自动导致不同的误码概率,简化了无线传感器网络仿真。
4.3 攻击视图
攻击视图包含了针对无线传感器网络精细化所考虑的无线传感器网络攻击者的描述。为此,由 于MARTE未涵盖此问题,因此创建了新的建模元素以捕捉无线传感器网络攻击。具体而言,提 出了一种对MARTE领域视图元模型的扩展。该扩展包含用于表达攻击类型及其主要特征的建模 概念。随后,通过定义新的刻画类型实现了MARTE元模型的扩展,从而能够在更详细的 UML模型中捕捉所经历的无线传感器网络攻击,相关内容在附录第4节中进行了描述。
4.3.1本文考虑的攻击类型
为了能够在无线传感器网络受到最典型攻击影响的情况下 对无线传感器网络进行评估和优化,本文支持多种情况。所选分析方案的集合基于[58]和 [59]中描述的脆弱性以及其他下文引用的特定文献中的攻击描述。根据这些文献,无线传 感器网络攻击根据其对网络的影响被分为三类(附录第3节)。
第一类攻击是在网络中引入噪声。所考虑的攻击如表3中“噪声攻击”列所示。
第二类攻击会在网络中引入数据包。所考虑的攻击如表3中的“数据包注入攻击”列所示。
最后,第三类攻击会在网络中引入噪声和数据包。所考虑的攻击如表3中“混合攻击”列所示。
| 表3. 攻击类型 |
|---|
噪声攻击,B) 数据包注入攻击,C) 混合攻击)
4.3.2网络支持者
为了对攻击进行建模,根据前述的每种攻击类型,定义了三种新的
刻画类型(附录,第4节)。这些刻画类型为<<噪声攻击>>、<<数据包注入攻击>>和<<
混合攻击>>。所有这些刻画类型都具有一组属性,用于描述它们在影响网络方面的方式 (附录,第4节)。
刻画类型中可指定的属性如下(这些属性可能适用也可能不适用,具体取决于攻击类型):
—类型:定义噪声攻击的种类。 —链接:定义受攻击影响的 节点链接。 —数据包类型:定义受影响或被注入的数据包类 型。 —活动时间:定义攻击生效的时间。 —错误率:定义 噪声引入的错误百分比。 —周期:定义数据包注入之间的时 间片。
因此,所开发的框架包含了对指定无线传感器网络上的攻击进行建模并获取其产生影 响所需的全部信息。图6展示了此类攻击标注的一个示例。
5 网络中攻击的仿真与评估
一旦UML/MARTE模型完成,所捕获的信息将由仿真基础设施用于评估攻击对系统的影响。
为了说明其实现方式,下文首先解释仿真模型的生成方法,然后介绍如何模拟攻击。
5.1 仿真模型的自动生成
如前所述,UML/MARTE模型中捕获的信息首先被自动标注为XML文件。然后将这些 XML文件提供给代码生成器,代码生成器将其作为输入,以创建描述该模型的WSN虚拟 平台。代码生成器利用这些文件生成实例化各种组件的SystemC代码,这些组件用于建模 系统的各个部分:计算节点和网络本身。
为了创建每个节点,代码生成器首先在SystemC代码中创建一个总线模型,并围绕该 总线根据需要实例化处理器模型、本地内存模型、网络接口模型以及其他外设模型(这些 模型在5.1.1节中介绍)。为此,它从使用节点视图中的信息生成的XML文件中读取处理器、 内存和外设的数量、类型和特性(例如工作频率),如第4.1节所述。处理器、内存和总线 的实例是使用工具提供的组件创建的[78],,该工具采用主机编译仿真技术来精确建模软件 执行的性能,如第5.1.1节所述。
然后,实例化一个在此工作中开发并将在第5.1.2节中介绍的用于建模网络的Syste mC组件,并将其自动连接到所有节点的网络接口。网络模型被创建为UML模型中用于连 接所有节点网络接口的点对点连接列表。对于每条连接,存储了UML模型中关于其特性的 信息以及可能攻击的列表。
最后,生成的SystemC代码启动仿真,并在仿真结束时报告第5.3节中描述的结果。
一旦生成了无线传感器网络的SystemC代码,就会对其进行编译,从而创建虚拟平台 模型。此外,将在节点的处理器上运行的应用程序代码通过[78]提供的注解工具进行准备, 并由代码生成器自动生成的makefile文件进行编译,如图2所示。然后,仿真器执行该代 码,提供性能估计,以便分析攻击对每个选定配置的影响。
因此,从UML/MODEL模型中的信息生成的虚拟系统是一个无线传感器网络的可执行 模型,能够实现系统仿真,并报告有关系统性能和功耗的信息。它包含无线传感器网络主 要元素的模型,即网络模型和节点模型,并随着仿真的进行动态获得性能和功耗估计。该 方法与其网络模型所采用的技术完全匹配,如第3节所示,因为攻击对软件执行、数据包生 成以及网络和节点操作的所有影响都会自动反映在仿真指标中。
5.1.1节点的主机编译仿真
为了仿真节点的操作,使用了[78]中介绍的仿真基础设施。
该基础设施使用主机编译仿真技术对目标处理器中的应用程序代码执行进行建模。该技术 速度极快,能够以高仿真速度实现多个节点的仿真。
主机编译的仿真基于对软件代码的自动注释,这些注释包含在目标处理器中预期的执 行时间和功耗指标。Posadas 等人 [78]提供了一个用于此目的的工具。
此外,[78]中的主机编译的仿真基础设施包含一个嵌入式RTOS(实时操作系统)模 型,该模型控制节点模拟处理器中应用程序代码的执行(图7)。RTOS模型为多个标准 APIs(如POSIX和uCos)提供了具有功能和时间行为的RTOS API函数。因此,可以在攻 击条件下正确评估WSN软件的行为和性能,而无需对应用软件代码进行手动修改。
此外,RTOS模型包含使仿真的软件代码能够访问硬件外设模型的函数。这些函数用 于将通信数据包从一个节点发送到另一个节点。通过使用这些函数,当仿真的软件调用通 信功能时,处理器模型会通过局部节点总线将每个数据包发送到其本地网络接口。然后, 该接口按照第5.1.2节所述,将数据包传递给网络模型。一旦数据包到达目的节点,处理器 模型便会触发中断,应用软件随即运行以接收该数据包。
更详细地说,协作仿真过程包含多个步骤,如图8所示。首先,代码生成器创建描述 平台的SystemC代码,如上所述。然后,它提取将在每个节点的处理器上执行的应用组件 的信息。
该应用软件源代码随后被分析、注释并编译。为此,基础设施从UML/MARTE模型接 收与每个应用程序组件关联的C文件名称,这些C文件中包含实际的源代码。在此阶段,识 别出基本块,并使用多种面向性能的参数对其进行注释(如每个基本块的能量消耗和执行 时间、缓存及总线访问需求等)。然后,仪器化代码被编译和链接,生成将在主机上运行 的库。
然后,描述所有硬件(网络和节点)的SystemC代码以及带有注释的应用软件库将与 [78],提供的多个附加库链接起来,这些库包括平台的硬件和软件组件模型:实时操作系统、 处理器、总线、缓存等。此外,还包括本文开发并在第5.1.2节中介绍的网络模型库。最终 生成一个能够仿真系统的可执行文件,从而可以开始仿真。
在仿真期间,[78]中的仿真引擎控制整个系统的执行。根据当前的仿真时间,它会激 活处理器和网络的模型,从而实现它们的并发仿真。
仿真结束后,仿真器会生成性能结果。这些结果包括每个节点的各个方面,例如发送/ 接收的数据包数量和能耗,如第5.3节所述。此外,其他估算结果涉及节点的属性,例如中 央处理器的使用、执行时间、执行的指令数等。(详见第3节。)
需要强调的是,执行并非数学或理论上的仿真,而是真实代码的执行(仪器化代码)。
因此,该仿真能够分析每个无线传感器网络节点的功能,并估计其在正常和受攻击条 件下的时间和功耗行为。从而可以快速准确地估算两种情况下功耗、执行时间、数据/指令 缓存命中与未命中、总线访问次数、网络流量等参数。这些估算是评估攻击影响以寻找系 统最优实现时的重要特征。
最后,还需要注意的是 [78]还集成了一个网络模型。然而,最初集成的网络模型并 不适用于无线传感器网络仿真。因此,本研究中集成了一种基于 [79],的新型网络模型, 以及新的攻击仿真支持和新的自动模型生成架构。文献 [79]中的工作未包含在仿真过程中 建模攻击的可能性。因此,本研究扩展了攻击仿真功能,并与 [78]集成以实现全系统建模。
5.1.2无线网络建模
如 [79],图9 所示,表示了本工作中集成的网络模型操作示意图。本 工作中使用的网络模型是
图9. 正常网络运行模式数据包。
一种仿真基础设施,负责对所有用于在UML模型中描述系统的点对点连接中从源到目的地 的数据包传输进行建模。其实现基于一个有序传输队列,数据包在其中存储以待传输,如 图9所示。其建模还能够考虑额外的影响,例如成功概率、传输功率和共享通道效应。
当一个节点发送数据包时,发送节点的网络接口将该数据包传递给网络模型。为此, 网络接口调用网络模型中用于接收待传输数据包的函数。该函数名为“queue_packet”, 其功能如下所述:计算该数据包在前往最终目的地的路径上将要到达的下一节点,并根据 数据包预计到达下一节点的时间将其存储在一个有序队列中。
然后,当仿真时间达到该到达时间时,无线网络从队列中弹出数据包并建模传输过程。
在此建模过程中,网络模型会评估错误率和攻击的影响。错误率仿真基于生成0到100之间 的真随机数。如果成功概率高于此随机数,则网络将数据包传输到下一节点。如果下一节 点为目的节点,则数据包被送达;否则,数据包将再次入队以模拟下一次跳转。如果传输 失败,数据包将被重新入队以进行重传。
此外,网络模型负责模拟在真实的无线网络中传输通道被共享时所产生的影响。在这种情 况下,正在发送的数据包对其数据传输范围内的所有节点都是可见的。为了在仿真中处理这一 情况,数据包不仅发送到目的节点,还会发送到该节点的数据传输范围内的所有节点。
以下展示了这些操作的假代码:
算法1:队列_数据包函数
队列_数据包 (数据包p){ 通道 =获取通道(p.源,p.目的地); 到达时间 =计算_到达_时间 (p.长度, 通道); 按序入
队(p, 到达时间); }
可以看出队列_数据包函数的工作方式(算法1)。当节点发送数据包时,该函数会根 据预期到达时间对数据包进行有序排队。此时间基于数据包长度和通道特性计算得出。一 旦队列中有数据包,网络(算法2)将弹出第一个数据包,并结合生成的随机数与UML模 型中指定的成功概率,进行网络模型处理
计算数据包是否被成功传输。此外,该算法还会检查是否存在与其他数据包的碰撞/干扰, 并应用第5.2节所述的攻击影响。
算法2:网络功能
网络循(环) {
N = random(0, 100); 数据包p =获取第一个数据包(); wait(get_arrival_time(p));
如果(prob_loss(p.源, p.目的地) < N && ! check_碰撞(p)){
传送(p, p.目的);
}else{
通道 =获取信道(p.源, p.目的); 重试次数= getRetries(通道);
if(p.retries>=重试次数){
p.重试次数++; 重新排队_数据包(p);
} } } }
当数据包传输失败时,会检查通道的重试次数属性。如果此数据包的已尝试重试次数低于 UML模型中指定的最大数量,则该数据包将被重新加入队列;否则,该数据包将被丢弃。
图9 表示该无线网络操作的概要总结。
用于对无线传感器网络进行建模的另一个重要元素是位于节点中的网络接口。这些接 口负责决定哪些数据包应被节点实际接收。在真实的无线网络中,当一个节点向另一个节 点发送数据包时,该数据包不仅会被接收节点接收到,而且会被发送方数据传输范围内的 所有节点接收到。在这种情况下,节点的网络接口负责处理那些不属于该节点的数据包。
该接口还可以实现网络协议(Zigbee、802.11、802.15.4等)。这使得可以对集成了射频 模块和用于网络协议管理的微控制器的真实网络收发器进行建模(例如Digi的Xbee系列 [76])。实际上,目前使用的是静态协议,但在未来的工作中计划添加不同的最先进的协 议。
5.2 无线传感器网络攻击的仿真与评估
这项工作最重要的创新是将外部攻击整合到整个设计过程中,涵盖统一建模语言规范、自 动生成以及行为和性能影响仿真。因此,提出的基础设施已为此开发,能够方便地对各种 替代方案进行评估和探索,以避免或最小化此类攻击的影响。为此,算法2中调用的函数已 扩展用于攻击的建模。
图 10. 链路噪声攻击者数据包的网络模式运行。
攻击可以被定义为试图未经授权访问网络或破坏节点间通信的行为。因此,攻击通常 会导致系统完整性、可用性或保密性受到损害。为了模拟攻击,网络会读取第4节中描述的 攻击者信息。在UML模型中,攻击者与网络的点对点连接相关联。根据这些信息,建立了 三种类型的攻击模型(取决于攻击者构造型的类型属性):“链路噪声攻击”、“虚假数 据包注入攻击”和“混合攻击”。
5.2.1链路噪声攻击
在链路噪声攻击中,攻击者通过向网络引入噪声,以增加数据 包丢失的概率。因此,这些攻击在数据包传输过程中进行建模。每当网络模型模拟数据包 从一个节点传输到下一个节点时(算法2),都会分析并应用该连接中存在的可能攻击。
为了模拟“链路噪声”攻击,对之前提到的WSN网络模型(图9)进行了相应修改。
基本原理是,攻击者在预定义的时间周期内修改某些数据包类型的丢包概率。该修改如图
10所示。当需要将数据包传输到接收节点时,接收概率将包括原始链路概率(“prob_
loss”)以及攻击者引入的额外噪声。在噪声攻击构造型的Attack View部分中描述的属
性,规定了攻击者在网络中的行为。例如,错误率 属性会修改通过算法2中调用的prob_
loss函数计算出的接收概率。 数据包类型 属性用于检查数据包是否受到攻击影响,如果受 影响,则修改其概率。此外,算法2中的requeue_packet函数负责根据攻击属性的类型决 定将数据包重新入队或丢弃。
5.2.2假数据包注入攻击
另一种类型的攻击始终在网络中处于活跃状态,与实际发 送的数据包无关。因此,这些攻击与算法2并行执行。由于这些攻击依赖于UML模型中指 定的属性activeTime和period,其执行由仿真时间的推进来控制。
当需要仿真虚假数据包注入器攻击者时,必须将新数据包注入到图9所示网络模型的传 输队列中。一旦数据包被插入该队列,网络便会像传输真实数据包一样传输这些伪造数据 包。图 11 展示了该攻击者如何修改图9中的网络模型。“假数据包攻击者”负责根据攻击 者配置期间定义的结构生成伪造数据包,并将其直接引入传输队列。 数据包注入攻击构造 型的属性定义了攻击者将数据包注入网络的方式。例如,
图12. 虚假数据包注入和链路噪声攻击者数据包的仿真。
PacketType 属性决定了注入数据包的组成。它可以是预定义的类型,例如“问候数据包”或“确认 数据包”,也可以由开发人员定义。
仿真中使用的另一个重要属性是“节点”。该属性定义了数据包的目的地。
5.2.3混合注入攻击
混合攻击的仿真包括两种攻击者的同时组合,即链路噪声节点和 虚假数据包注入器。图12展示了这两种攻击者如何协同工作以模拟这些复杂攻击。为了对 这种攻击进行建模,“链路噪声”攻击者会隔离待复制的节点,意味着这些节点无法接收 任何数据包。第二个攻击节点“虚假数据包注入器”则负责注入数据包,取代被隔离的节 点。该混合攻击构造型的参数是数据包注入攻击和噪声攻击参数的融合。
攻击改变了数据包在网络中传输的方式。随后,在仿真中,所建模的硬件基础设施和 嵌入式软件会模拟其在真实工作场景中的行为。因此,通过仿真可以获得并评估相关的功 耗和性能影响,以及应用软件的正确功能响应。如前所述,仿真是对软件代码的插桩执行。
这意味着功耗和性能估计并非通过统计模型获得,而是通过在平台模型上执行真实软件代 码的仿真结果得出的。
此外,由于采用了快速主机编译仿真技术,可以在短时间内运行多次仿真,从而能够 灵活地探索不同攻击和设计方案的影响,如下文所述。
5.3 仿真器报告的性能估计
仿真结束后会生成一份报告。该报告包含针对每个节点的一组性能估计,具体包括:
—RTOS。操作系统数据进程
•已创建。已创建的进程数量。
•已销毁。已销毁的进程数量。
•平均进程持续时间:平均进程的持续时间。用
户时间。总的用户时间。内核时间。总的内核时间。
—收发器
待机能耗。收发器在待机模式下的能量,单位为焦耳。
•传输能耗。收发器在传输过程中的能耗(单位:焦耳)。
•功率。收发器的输入功率,单位为瓦特。
•发送的数据包。发送的数据包数量。
•接收的数据包。接收的数据包数量。
—处理器。每个系统处理器的数据。
时间估算
•运行时间。中央处理器执行代码所用的纳秒数。
• CPU使用率。CPU使用百分比。指令
•执行的指令。已执行的指令数量。
•缓存未命中。指令缓存未命中的次数。数据
•缓存未命中。数据缓存未命中的次数。能 量和功率
•核心。核心的功率和能量,单位分别为瓦特和焦耳。
•指令缓存。指令缓存的功率和能量,单位分别为瓦特和焦耳,分别地。 -
地。
•数据缓存。数据缓存的功率和能量,单位分别为瓦特和焦耳,分别地。—节点总 能量。节点的总能耗,单位为焦耳。
这样,设计人员可以获得每个节点性能的详细信息,从而全面了解网络中的运行情况。
5.4 设计方案的探索
虚拟模拟器能够方便地探索不同的设计方案,考虑其性能和鲁棒性,例如评估各网络或节 点在最危险攻击下的运行情况。攻击的影响取决于网络的拓扑结构、每个节点的软件、硬 件组件,甚至其传输功率的配置。某种攻击可能对特定节点极具危害,但对另一节点却无 害。因此,无线传感器网络仿真将有助于识别最严重的问题攻击以及无线传感器网络中最 易受损害的部分。利用所提出的虚拟平台,可以在固件执行的同时,模拟精确的硬件和网 络模型以及无线传感器网络攻击的真实条件。
利用所获得的结果,可以更改软件、硬件甚至网络拓扑结构,以期在网络的最终部署中获得更 好的结果。
虚拟模拟器通过促进不同情况的仿真而开发。在仿真过程中,无需为每次仿真重新编 译所有源代码。如果需要更改网络拓扑,可以在不进行额外编译的情况下重新定义。然而, 如果需要模拟硬件或软件架构的变化,则必须重新编译源代码。
6 用例
为了验证本文提出的UML/MARTE方法论和工具包,应用了一个具有代表性的测试用例。
选择该用例旨在展示该方法在建模无线传感器网络、选择最佳无线传感器网络拓扑结构以 及节点类型方面的能力。如第3节所述,仿真器可以提供不同的性能估计。然而,本节中呈 现的结果主要关注功耗以及攻击如何影响节点的这一属性。这是因为无线传感器网络的主 要限制之一通常是其低功耗要求。传感器节点通常为电池供电设备,其使用寿命取决于电 池寿命。无线传感器网络攻击对节点造成的主要影响之一是功耗增加,这可能导致其使用 寿命缩短。该用例包含一个需要根据物理属性(温度)进行监控的设施。传感器网络每隔 3秒周期性地采集一次信息。这些数据由一个中心节点收集并进行计算。根据此过程的结果, 节点控制器将对被控设施的完整性做出决策。
为了选择网络的配置,考虑了三个变量:用于构建网络的节点类型、网络拓扑以及这 些节点的配置。节点类型由其内部软硬件结构定义。其软硬件的复杂性(处理器数量、电 池类型等)对无线传感器网络的设计具有重大影响,具体取决于购买节点的可用预算。
仿真网络包含两种不同类型的节点:网关和传感器节点,这些节点使用UML模型中包 含的信息,如图4所示。网关或中心节点负责协调和控制网络,并与其他外部网络通信。传 感器节点配有传感器以读取环境温度。当节点完成操作后,将进入睡眠模式以降低功耗并 延长电池寿命。
每种节点类型(网关和传感器)均运行不同的嵌入式软件,但使用相同的实时操作系统 FreeRTOS。下面简要描述每种节点类型的基本功能:
—Gateway。网关负责接收来自传感器节点的消息,并将其传输到外部网络。当所有传 感器节点处于唤醒状态时,网关等待所有包含环境温度数据的响应。当网关收到来自 所有节点的信息后,将组成一条消息并通过GPRS模块发送出去。之后,该节点休眠 约3秒。—Sensor。唤醒后,读取传感器并将数据发送至网关或能够到达网关节点的其 他节点。完成功能后,休眠3秒。因此,数据采集频率为每3秒一次。
此外,假设无线传感器网络的部署具有影响节点间通信的特定物理特性。这一事实通 过考虑不同的通信成功概率进行建模。同时,还需考虑设施的安全级别。为此,针对每个 安装区域,通过考虑传输功率、重试次数和加密等不同取值来规定节点通信。
6.1 探索网络拓扑
第一组实验包括评估图13、图14和图15中的网络配置。
图13 显示了一个线性拓扑结构,其中每个节点传输其已捕获的信息,并累积节点链中 先前分配的节点所捕获的信息。
图 14显示了星型拓扑结构,其中站点直接连接到中心点,所有通信必须通过该中心点。
因此,设备之间没有直接连接。
更不规则的拓扑,例如 图15中的拓扑,也可以被捕获。
在之前所有的网络拓扑中,使用了两种不同类型的节点。第一种类型是“传感器节点”, 其内部结构如图4所示。此类节点为“节点i”,具有=0。 . . 8。另一种类型的节点是“节 点控制器”,其内部结构如图3所示。此类节点命名为“controller”。
创建上述模型时,一位具备中等UML/MARTE建模工具Papyrus使用经验的设计人员 大约需要35分钟。该时间包括节点类型(如图3 和4所示)的建模以及三个不同网络模型的 创建。如果节点类型是预先定义好的组件,并从外部节点类型库中导入,则可缩短此时间。
根据之前的模型,设计人员可以选择要分析的网络拓扑。为此,只需通过应用统一建模语言构造型来 选择网络模型即可。
此外,本文提出的设计流程能够通过考虑网络可能遭受的各种攻击并模拟其影响,从 而丰富WSN模型。接下来的实验包括对网络应用不同类型的攻击。
根据节点在网络中的角色,某些节点被选为攻击目标。例如,“node3”生成对网络 安全级别具有重大影响的重要信息,因此其所有通信都经过加密,导致由于加密过程而增 加了能耗。因此,“node3”因其需要发送的信息的重要性而成为攻击目标。
为此,攻击者选择对该节点实施“碰撞”攻击,因为它可能导致该节点无法发送其数据,从而 影响网络完整性。
下一个要被攻击的节点是“节点7”。在这种情况下,该节点受到“Hello Flood 洪泛攻击”, 旨在耗尽节点电池中的全部能量。这一事实非常重要,因为
图16. 每种网络拓扑结构中针对“节点3”的碰撞攻击。
图17. 节点7的Hello Flood攻击
更换该节点的电池在时间和金钱成本方面都非常复杂。
最后受到攻击的节点是“节点6”。该节点遭受了“网络中的环路”攻击。此节点是传 输其他节点信息的根节点(无线传感器网络如图13 和图15所示)。因此,该节点变得无用, 从而导致其他节点也间接受到影响而无法使用。
对于每个模拟的网络拓扑(图13、14和15),均建模了三个攻击者。为了在实验中保 持一致性,每个网络拓扑都关联有相同类型的攻击者,即4.3.1节中描述的三种类型:噪声 攻击、数据包注入和混合型。每种类型的攻击者具有相同的属性值(例如,建模器声攻击 时,其类型、错误率和活动时间属性应具有相同的取值)。通过这种方式,在模型中选择 要仿真的网络拓扑时,将自动选定该网络仿真所考虑的攻击组件集合。因此,在本节所示 的用例中,共建模了九个攻击组件。为捕获实验中考虑的攻击,前述设计人员建模所有攻 击大约需要9分钟。
选择碰撞作为噪声攻击类型,且该攻击针对“节点3”。为了建模此攻击,针对每种网络拓 扑结构分别建立了三种不同的碰撞攻击。该攻击会影响节点间的链路。在这种情况下,碰撞攻 击必须识别出“节点3”用于传输数据的链路。在图13的情况下,该链路位于“节点3”和“节 点2”之间,在图16(a) 中标识为“conn_node3_node2”。对于图14 和图15的情况,该链路分 别标识为“conn_node3_controller_star”和“conn_node3_controller_irregular”(图16(b) 和 图(16(c))。
选择Hello Flood作为数据包注入类型,它攻击“节点7”。图17显示了表征该攻击的 属性。在这种情况下,三种Hello Flood攻击模型具有相同的表示形式。
图18. 每种网络拓扑中针对“node6”的循环攻击。
表4. 模拟时间
| |线性|Star|不规则|
| —|—|—|—|
| 未受攻击|2分37秒|2分12秒|2分48秒|
| |2分41秒|2分22秒|2分50秒|
碰撞
最后,选择Looping作为混合类型,它攻击“节点6”以及该节点用于数据传输的链路。在图13所示
的网络中,受影响的链路是“节点6”和“节点5”之间的节点,在图18(a)中的链路属性以“conn_node6_
node5”表示。
在 图14 和 图15 的情况下,受影响的链路是“节点6”
666

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



