用于物联网入侵检测系统的eMQTT流量生成器
Jorge Ortega-Moody、
Cesar Isaza、
Kouroush Jenab、
Karina Anaya、
Adrian Leon 以及
Cristian Felipe Ramirez-Gutierrez
《Future Internet》:eMQTT Traffic Generator for IoT Intrusion Detection Systems
Jorge Ortega-Moody,
Cesar Isaza,
Kouroush Jenab,
Karina Anaya,
Adrian Leon and
Cristian Felipe Ramirez-Gutierrez
【字体:
大
中
小
】
时间:2026年04月14日
来源:Future Internet 3.6
编辑推荐:
摘要 为物联网(IoT)环境开发有效的入侵检测系统(IDS)受到缺乏真实、大规模数据集的制约,特别是对于在工业物联网中广泛使用的消息队列遥测传输(MQTT)协议而言。现有的数据集往往范围有限、不平衡,或者无法捕捉到MQTT特有的攻击模式,从而阻碍了准确机器
摘要 为物联网(IoT)环境开发有效的入侵检测系统(IDS)受到缺乏真实、大规模数据集的制约,特别是对于在工业物联网中广泛使用的消息队列遥测传输(MQTT)协议而言。现有的数据集往往范围有限、不平衡,或者无法捕捉到MQTT特有的攻击模式,从而阻碍了准确机器学习模型的训练。为了解决这一差距,引入了可扩展的消息队列遥测传输(eMQTT)流量生成器,这是一个模块化平台,能够模拟合法的MQTT通信和针对性的拒绝服务(DoS)攻击。该框架具有可扩展和可复制的架构,结合了协议感知的攻击建模、自动化流量标记以及适合机器学习应用的数据集直接导出功能。该系统生成标准化、可配置、可重复且公开可访问的数据集,从而促进了可复现的研究和可扩展的实验。实验验证表明,模拟的流量与已建立的DoS行为模型一致。生成了两个高容量数据集:一个代表正常的MQTT流量,另一个模拟了CONNECT洪水攻击。在这些数据集上训练的机器学习分类器表现优异,梯度提升模型在区分良性流量和恶意流量时准确率超过95%。这项工作为物联网安全研究中数据集的稀缺问题提供了一个实用的解决方案。通过提供一个受控的、可扩展的、可复制的流量生成平台以及经过验证的数据集,eMQTT能够系统地进行实验,支持IDS解决方案的进步,并增强关键物联网基础设施的MQTT安全性。
1. 引言
连接到互联网的设备数量持续迅速增加,主要得益于智能家居、医疗保健和工业自动化等智能设备的普及。这些设备现在被应用于医疗系统和先进制造之外的领域,包括智慧城市[1]。因此,数十亿设备相互连接,不断交换消息并生成大量数据。物联网硬件和软件的简单性和有限能力使得这些设备越来越容易受到各种网络攻击。此外,物联网网络的复杂性和异构性,加上计算资源的限制以及对过时固件的依赖,使其成为对手的目标。攻击可能发生在多个层面,包括设备篡改、基于网络的攻击(如中间人攻击和DoS/DDoS)、固件级别的攻击以及密码学攻击(如侧信道攻击)[2,3]。消息队列遥测传输(MQTT)协议因其简单性而被广泛采用,因此成为了恶意利用的常见目标。
鉴于物联网设备在日常运营中的关键作用,保持基于MQTT的通信的机密性、完整性和可用性对于关键基础设施的持续运行至关重要。网络威胁是现代通信系统固有的风险。在基于MQTT的数据交换环境中,攻击者可能利用MQTT协议本身及其支持服务(如DNS和HTTP)中的漏洞[4]。物联网网关和代理服务器,作为设备与应用程序之间的通信桥梁,尤其成为对手的目标[5]。这些节点可以通过暴力尝试[6]、流量洪水[7]、恶意消息或慢速DoS攻击[8]等技术被破坏,所有这些都会迅速削弱物联网系统的可靠性和稳定性[9]。例如,SlowITe攻击利用MQTT 3.1.1协议中的一个漏洞,以最少的资源造成拒绝服务[10]。鉴于延迟检测可能导致不可逆的损害,实时和准确的入侵检测在基于MQTT的通信系统中至关重要。
物联网系统的入侵检测仍然面临重大挑战:训练数据集通常不平衡[11,12]。通常,正常流量在数据集中占主导地位,而实际攻击样本很少。这种不平衡阻碍了机器学习模型识别罕见或不寻常攻击的能力,而这些攻击往往是最需要检测的。此外,许多现有数据集仅关注有限类型的攻击,例如与僵尸网络或Telnet相关的网络流量,限制了它们用于开发能够识别更广泛威胁范围的入侵检测系统(IDS)解决方案的实用性。高级持久性威胁(APT)行为者也可能在物联网环境中活动,但由于缺乏足够广泛和可扩展的数据集,当前的IDS系统往往无法检测到它们。
与广泛使用的通用入侵检测数据集(如DARPA 1999、KDD Cup 1999、UNSW-NB15和CICIDS)不同,这些数据集没有模拟MQTT特定的通信模式,eMQTT框架是专门为基于MQTT的物联网和工业物联网(IIoT)环境设计的[14]。传统数据集无法捕捉MQTT控制包交换的语义,包括CONNECT和CONNACK交互,或代理服务器过载动态,而这些对于评估协议感知的攻击至关重要。即使是面向物联网的数据集(如Bot-IoT),也主要关注基于TCP、UDP或HTTP的僵尸网络活动,因此忽略了应用层的MQTT行为。虽然像MQTTset和MQTT-IoT-IDS2020这样的最新资源代表了一定程度的进步,但它们仍然是静态数据集,扩展性有限[15]。
为了应对这些挑战,引入了可扩展的消息队列遥测传输(eMQTT)流量生成器。其模块化设计的可扩展性使得可以轻松集成新的物联网设备配置文件和额外的攻击场景,例如暴力尝试和恶意数据注入,适用于可扩展的、软件定义的环境。这种适应性架构允许框架根据新兴的安全威胁和变化的网络条件进行进化。因此,eMQTT作为一个可持续和灵活的实验平台,支持长期的物联网入侵检测研究。这一能力直接解决了类别不平衡的问题,这是物联网入侵检测研究中长期存在的挑战。该框架还支持全包捕获、结构化特征提取和可复制的实验配置,便于在定义的攻击强度和持续时间下进行系统化复制。除了数据生成,eMQTT还提供了一个集成的实验环境,结合了传感器级模拟、协议感知的攻击注入、数据包捕获、结构化数据转换和导出,用于异常检测和攻击分类。这种端到端的方法为在工业物联网环境中评估先进的入侵检测策略建立了可复制和可扩展的基础。
为了应对这些限制,提出了eMQTT流量生成器(eMQTT)作为解决方案。该工具提供了一个测试环境,用于模拟物联网传感器,生成的流量与实际物联网系统中观察到的MQTT流量真实且无法区分。生成器通过结合各种用例和典型流量模式,能够构建平衡和可扩展的攻击场景。其模块化架构支持感知层和应用层之间的可扩展性,确保了适应性。系统使用Tshark进行高效的网络数据包捕获,并生成PCAP和CSV等格式的输出以供后续分析。通过集成基于流量的和服务层面的特征,生成器提供了异常检测、入侵识别和攻击分类的全面表示。
采用eMQTT生成合成流量的动机在于现有真实世界数据集的固有局限性,这些数据集往往过时、规模有限或缺乏机器学习训练所需的多样化标记。采用软件定义的合成方法可以模拟复杂、高容量的工业环境,这些环境是可复制的,且不受真实世界数据捕获的隐私限制。这种方法便于创建包括罕见或新兴攻击向量的平衡数据集,为评估IDS性能提供了可控且现实的基准,其规模超出了目前可用的公共仓库。
本文提出了一个支持两阶段入侵分析流程的框架:(i)模拟物理传感器和物联网设备以生成用于异常检测的流量;(ii)使用分类进行入侵检测以对攻击类型进行分类。eMQTT模拟器与大多数仅关注异常或入侵检测的现有方法不同,它提供了一个更全面的物联网安全解决方案。此外,eMQTT生成的数据集包括多种专门针对MQTT流量的DoS/DDoS场景,为在真实工业条件下测试检测算法提供了有价值的基准。
本研究的主要贡献包括开发了一个MQTT流量生成器和一个专为物联网入侵检测研究定制的数据集,以及证明它们在应对物联网系统中各种攻击类型所带来的安全风险方面的有效性。这项研究加强了在关键工业和社会领域安全采用物联网技术的基础。
本文的其余部分组织如下:第2节回顾了当前物联网数据集和现有入侵检测实现策略的最新进展。第3节介绍了eMQTT模拟器框架,详细介绍了其总体架构和核心模块。第4节深入探讨了分层软件设计,包括数据合成、挖掘和报告过程。第5节展示了实验结果,包括数据集验证和分类器性能分析。最后,第6节总结了研究的贡献,并讨论了潜在的未来研究方向。相比之下,所提出的eMQTT模拟器被设计为一个可扩展的流量生成环境,能够控制创建良性及恶意MQTT流量,同时具有可调参数、时间安排和场景配置。这种方法允许研究人员训练和测试检测模型,迭代设计实验,在不同负载下对算法进行压力测试,并以可重现的方式研究新兴的攻击策略。通过优先考虑灵活性、可配置性和协议级行为建模,eMQTT提供了一个实用的实验平台,有助于在不断发展的物联网(IoT)环境中持续开发和评估入侵检测解决方案。
与专注于基础设施真实性和全栈网络行为的一般网络仿真器和攻击工具不同,eMQTT框架是专为控制数据集生成和入侵检测实验而构建的。虽然仿真平台可以复制复杂的网络环境,但它们通常需要大量的配置、手动标记攻击阶段以及对原始数据包捕获进行后处理以生成结构化数据集。相比之下,eMQTT将流量合成、协议感知的攻击建模、结构化存储和自动化导出整合在一个统一且可重现的流程中。此外,与MQTTset和MQTT-IoT-IDS2020等静态数据集相比,后者提供固定流量追踪且可扩展性和参数变化有限,eMQTT支持设备密度、连接率、攻击强度和流量阶段比例的动态调整。这种参数驱动的方法使得可以系统地扩展CONNECT-flooding场景并控制工作负载特征的变化,从而生成用于比较入侵检测评估的大型、带标签的数据集。
2.2. 物联网(IoT)中的入侵检测实现
1999年,Zissman等人引入了一种利用动态规则插值的MQTT模糊检测方法,并使用Contiki操作系统和COOJA模拟器对这种方法进行了评估,以解决物联网设备中的资源限制问题。同样,Sharafaldin等人提出了一种用于检测MQTT应用层拒绝服务(DoS)攻击的机器学习策略。这些研究表明,MQTT既是物联网(IoT)系统的关键推动者,也是重要的攻击向量。这一视角与仅使用物理设备在真实网络环境中生成合成流量的研究不同。
2018年,Meidan等人引入了用于物联网流量异常检测的深度自编码器。该系统在两个已知基于TCP/UDP的洪水攻击和DDoS攻击的僵尸网络家族Mirai和BashLite上进行了验证。这项研究证明了深度学习在物联网安全中的可行性,并提供了一个公共数据集,成为后续研究的参考。作者使用典型的组织数据流基础设施收集了流量数据,其中物联网设备通过Wi-Fi连接到多个接入点,并通过有线方式连接到连接到路由器的中央交换机。
2020年,Skandari等人通过分类恶意流量(包括端口扫描、暴力尝试和SYN洪水)来解决威胁检测问题。在相关研究中,Vaccari等人提出了一种针对MQTT设备的慢速拒绝服务攻击,并在Mosquitto、HiveMQ和ActiveMQ等广泛使用的代理服务器上进行了验证。
随着深度学习的进步,如Yadav 2025年的工作已经实现了使用在MQTT-IoT-IDS2020和其他数据集[23]上训练的完全连接神经网络的有效攻击分类,包括DoS、中间人(MitM)和入侵攻击。其他研究则集中在提高MQTT在DoS条件下的性能上。由于像Mosquitto和RabbitMQ这样的代理容易受到畸形负载洪水或SYN洪水的影响而性能下降,Khan等人[32]对分层架构中的物联网威胁进行了全面调查,提供了机器学习防御的分类。
尽管eMQTT模拟器提供了一个灵活且可配置的环境来生成MQTT流量,但它在一个受控的实验环境中运行,可能无法完全捕捉大规模实际物联网部署的不可预测性。准确再现异构设备的行为、网络延迟变化和人类交互模式仍然具有挑战性。此外,模拟器的攻击场景基于已知的威胁模型,因此可能无法表示新兴或复杂的零日策略。在模拟过程中可用的计算资源也会影响扩展到大型网络时的流量真实性。因此,尽管eMQTT能够进行可重现的实验,但使用真实运营数据进行补充验证是必不可少的。
最近的研究强调了针对资源受限的物联网系统的轻量级和优化入侵检测方法,包括Zhang等人[33]的特征选择和贝叶斯优化方法,以及Alomari等人[34]的轻量级机器学习IDS模型。此外,Rahman等人的调查[35]指出了与数据集质量和可重现性相关的持续挑战。
3. 模拟器框架
在本节中,我们介绍了eMQTT的架构,从建立入侵检测网络拓扑的传感器和物联网设备的物理层开始。此外,模拟的展示也体现出与所研究的攻击类型的一致性。
3.1. eMQTT架构
图1展示了eMQTT用例图,总结了利益相关者互动和模块依赖关系。包含关系表明某些功能(如认证)总是需要与设备模块集成。前端应用程序允许用户创建、查看或修改设备。认证是入口点,仅向具有有效凭据的用户授予访问权限。一旦通过认证,用户(分为标准用户或root用户)可以创建、读取、更新和删除跨模块的资源。该平台模拟与虚拟设备(组织为传感器和攻击者)的交互。模拟的传感器生成典型的环境和电气测量数据,包括湿度、温度、电流、电压和霍尔效应,以提供真实的实验数据。
图1. eMQTT用例图,显示了用于模拟和系统管理的核心功能模块和用户交互。模拟器的灵活性和可扩展性促进了控制环境的发展,用于研究一系列表现出恶意行为的攻击者模型,例如拒绝服务、暴力攻击、畸形数据注入和低频攻击,目标包括模拟设备和真实设备。模拟模块根据用户定义的参数和时间框架协调这些组件,生成合成数据集以支持全面的实验和分析。
该架构优先考虑系统级设计而非操作使用。分离模拟、攻击建模、数据捕获和报告确保了可扩展性和可扩展性。实现侧重于一个可配置的MQTT平台,用于流量生成和实验,包括用户管理和界面操作。平台的模块化设计通过将攻击行为作为可配置组件来实现,而不是固定的流量脚本。新的MQTT特定攻击模式可以通过在协议级别定义参数化行为来集成,例如控制包操作、连接率变化、负载修改和认证滥用。与MQTTset和MQTT-IoT-IDS2020等提供预定义且不可变流量捕获的静态数据集相比,eMQTT支持攻击强度、持续时间、并发级别和代理交互模式的动态配置。这种方法通过允许在受控条件下生成大量数据来提高可扩展性,并通过支持攻击参数的系统变化增加了多样性。虽然本研究实验性地评估了CONNECT-flooding作为基线场景,但该框架设计为可以扩展到其他MQTT层威胁和应用层攻击策略,而无需重新设计核心系统。
认证模块作为网关,确保对所有功能的安全访问。标准用户可以在设备和模拟模块内执行可选任务,而root用户负责管理操作。图表突出了强制性和可选关系,清晰地展示了系统的工作流程和访问权限。
除了结构模块化之外,eMQTT架构还基于配置驱动的流量合成。流量生成由参数化配置文件控制,这些文件指定传感器行为、通信频率、负载结构和攻击特性,而不是硬编码的。这种设计使得可以独立于核心系统集成新的攻击模块。每种攻击行为都被封装为可配置的模块,能够操纵MQTT控制包、连接率、认证尝试或消息负载属性。因此,该框架通过允许模块化扩展来支持新的协议感知行为。
通过确定性机制和随机机制实现流量变异性。在传感器层面,可配置的分布决定了测量间隔、负载值和传输抖动,从而产生更准确地反映真实世界物联网部署的非均匀通信模式。在攻击层面,可以调整开始时间、持续时间、突发强度、连接并发和数据包到达间隔等参数,以模拟各种过载条件。这种参数驱动的配置能够在保持可重现性的同时系统地变化流量特性。
例如,一个模拟配置可能包括500个虚拟传感器,根据高斯分布每2到5秒传输一次温度读数,而攻击模块在模拟开始10分钟后发起一个持续120分钟的CONNECT-flooding事件,具有指定的连接率和随机化的客户端标识符。这种高级配置展示了如何在不修改底层架构的情况下合成多样化的操作和对抗条件。因此,该框架支持可扩展的、可重现的和可扩展的生成真实MQTT流量,适用于高级入侵检测评估。
3.2. 软件架构
该应用程序设计注重可靠性、可扩展性和可维护性。其架构包括三个主要的Web开发层:前端、中间件和后端。每一层都有明确的角色,并与其他层平滑集成。
前端:前端作为用户界面,允许通过Web门户与系统交互,如图2所示。用户可以启动包含传感器数据的模拟并监控实时流量。该界面针对桌面、平板电脑和智能手机进行了优化,简化了复杂任务并提供通知和进度更新。为了可扩展性,前端作为独立模块在虚拟服务器上运行,支持HTTP和HTTPS。其模块化设计允许根据需求增长添加节点,确保高可用性和响应性。
中间件:中间件连接前端和后端,将用户请求转换为系统指令。它处理输入、分析和输出,接收请求、分析模式并将结构化输出发送到数据库。
已提出接入点来消费Web界面并完成功能需求用例。选择了Web风格的架构,其中每个功能对应一个API接入点。通过使用HTTP类型的动词,我们可以对功能应用操作。
后端:后端模块处理和提取流量信息,并连接到数据库,以确保效率、可靠性和稳健性。核心组件包括用于生成MQTT流量的eMQTT数据合成器、用于扫描TCP/IP数据包的eMQTT数据分析器和用于提取交易记录的eMQTT报告器。该架构使用前端的标准设计模式和基于适配器的后端方法,支持可靠性、可扩展性和可维护性。这种设计实现了一个强大的、可扩展的数据生成平台,能够生成用于训练和验证入侵检测系统的真实流量模式。
图3展示了支持流量生成、监控和报告的所有应用程序组件,这些组件构成了模拟环境的基础。
3.3. 模拟器框架
在本节中,我们介绍了eMQTT的架构,从建立入侵检测网络拓扑的传感器和物联网设备的物理层开始。此外,一些一致性来自于根据所研究的攻击类型来展示模拟。与仅使用PCAP或CSV输出相比,该平台提供了更大的可扩展性、灵活性和分析效率,同时保持了数据包级别的验证。该架构还支持在虚拟化或云环境中的分布式部署,允许合成、捕获和存储服务在受控网络内的不同机器上运行。这种分布式方法在高并发和持续攻击条件下确保数据集的稳定生成。多线程、模块隔离和独立的服务扩展使得在真实的工业物联网场景中能够生成可重复的大规模、平衡的数据集,以评估入侵检测机制。
4. eMQTT分层软件设计
4.1. eMQTT-Datasynth
eMQTT-Datasynth组件将用户配置转换为MQTT数据包。其设计模式基于众所周知的MVC(模型-视图-控制器)模式。这种架构的主要优点是将业务逻辑与视图或事件处理器分开。由于其可验证的结果,它通常是最佳的设计模式(见图4)。
图4. eMQTT-Datasynth组件的基于MVC的架构,展示了从用户输入到通过控制器、模型、视图和线程池生成MQTT数据包的流程。
模型:传感器的所有可配置属性都将定义在这个文件夹中,即与其物理属性相关的所有内容。例如,数据类型定义、长度等。通过封装来实现对这个接口的访问,因为实现类通常定义在一个私有方法中。
控制器:所有充当项目事件处理器的类都定义在这个文件夹中。为了方便起见,通常会包含一个名为Main的文件。Param工具用于获取架构变量,Util工具用于一般的或重复性处理,以避免过度加载中央控制器。
视图:在这个文件夹中,定义了一个作为输出的单一类,但它不直接面对用户;相反,它与从该服务消耗数据的进程进行交互。设备是将真实传感器抽象为虚拟传感器,由模型数据和控制器逻辑组成。
4.2. eMQTT-DataMiner
eMQTT-DataMiner组件转换由eMQTT-Datasynth组件生成的数据包。这是通过利用Tshark库来分析整个网络接口中传递的流量来实现的。这一级别的流量包括在网络中移动的TCP/IP数据包。由于这些信息在网络参与者之间传输,因此缺乏持久性。必须由一个中间系统实时过滤和处理这些信息,以便最终存储在数据仓库中。该过程应仅作为信息转换器;它应该能够处理并行互联网请求,并且仅限于分析MQTT协议(见图5)。
图5. eMQTT-DataMiner组件的工作流程,显示了使用Tshark捕获MQTT数据包、通过适配器进行转换以及存储在MySQL数据库中的过程。该组件使用基于适配器的设计模式,目前将比特帧转换为数据库记录。为了提高性能,它应该执行存储过程以减少插入时间,并在并发操作期间最小化表锁定风险。该过程应快速拦截数据包并高效扩展,优化重点是快速的INSERT操作。未来的增强可以添加新功能和设计模式以扩展功能。
4.3. eMQTT-Reporter
eMQTT-Reporter组件将数据库记录转换为HDF5输出文件。Reporter根据输入规范生成这些文件,并使用模拟状态以及开始和结束日期作为参数。其操作依赖于数据提取和处理;不涉及业务逻辑,因此可以简单地将其视为系统架构中的一个适配器(见图6)。
图6. eMQTT-Reporter组件的工作流程,展示了从MySQL提取数据、排队以及通过线程池并行生成HDF5报告的过程。该过程必须设计为不干扰其他正在进行操作的方式与数据库交互。请注意,在下载结果的同时,可能在表上执行新的INSERT操作,如果数据访问不正确可能会导致阻塞。大部分逻辑应驻留在存储过程中,以从数据库中提取数据并通过非阻塞队列对象迭代,以便由并行线程将信息从阻塞队列转换为HDF5文件。
4.4. 数据库
数据库作为一个中心存储库,以组织但未处理的格式存储信息。在这个阶段,收集来自用户、MQTT数据包、传感器和其他来源的数据,以支持进一步的处理和分析。有效的数据库对象设计对于系统的灵活性至关重要。一个设计良好的系统可以在不影响依赖应用程序的情况下处理大量的读写操作。以下部分简要解释和定义了用于管理和操作信息的表。生成的数据集提供了正常流量和恶意流量的清晰分布,以确保透明度和可重复性。正常流量包括在稳定网络条件下的合法MQTT发布者和订阅者通信。恶意流量包括在实验过程中执行的所有注入攻击场景。数据集指定了每个类别的样本数量及其比例表示,从而能够在预处理前后精确评估类别平衡。这种详细的细分支持对检测结果的准确解释和对入侵检测模型的公平基准测试。
4.5. 分布式部署
IONOS Cloud上的eMQTT平台将Web、逻辑和数据库服务器集成在一个集中式基础设施中。由Nginx或F5负载均衡器管理的Web集群将请求分发到多个节点,以维护可用性和容错性。每个节点运行Debian或RHEL,配备4个CPU核心、4 GB RAM和20 GB SSD存储。支持API eMQTT账户的用户管理,并禁用了回环连接以增强安全性。逻辑服务器配备8个CPU核心和12 GB RAM,执行密集型处理,并在emqtt用户下运行以确保安全操作。专用于持久存储的数据库服务器配置有8个CPU核心、8 GB RAM和40 GB SSD存储,运行在dbemqtt账户下。它使用固定的IP地址,禁用了交互式登录以确保安全性,并启用回环进行内部通信。图7显示了这些组件在虚拟私有云中的交互,DNS和路由服务提供外部互联网访问。这种架构支持eMQTT系统的可扩展性、可靠性和安全资源管理。
4.6. eMQTT部署
应用程序的部署,无论是在服务器端(后端)还是客户端(前端),都是将软件应用程序实现并投入使用,使其对最终用户可用和可访问的过程。这一阶段在软件开发生命周期中至关重要。如前所述,后端过程主要使用Python 3开发。选择Python是因为其在机器学习、数据分析和数值分析方面的丰富库对于复杂的合成流量生成和数据分析任务至关重要。下面提供了应用程序部署概念的简要介绍:
图7. eMQTT系统的虚拟私有云(VPC)架构,显示了用于模拟、数据规划和报告的分布式组件,以及用于安全外部访问的DNS和路由服务。
4.6.1. 前端部署
客户端部署专注于在浏览器或移动应用程序中实现和运行应用程序的用户界面。
在eMQTT项目实现中,要配置FrontEnd模块,请访问以下链接:FrontEnd
在eMQTT项目实现中,要配置Session Start模块,请访问以下链接:Session Start
在eMQTT项目实现中,要配置Session Stop模块,请访问以下链接:Session Stop
4.6.2. 后端部署
服务器端部署通常涉及配置和运行在服务器上的应用程序组件。
在eMQTT项目实现中,要配置Middleware模块,请访问以下链接:Middleware
在eMQTT项目实现中,要配置Datasynth模块,请访问以下链接:Datasynth
在eMQTT项目实现中,要配置DataMiner模块,请访问以下链接:DataMiner
在eMQTT项目实现中,要配置DataReporter模块,请访问以下链接:DataReporter
一旦所有服务都启动并正常运行,下一步就是保存和配置在计算机操作系统启动时eMQTT正确运行所需的服务。
4.7. 合成数据生成
“MQTT协议模拟器用于生成标准化合成数据”构成了eMQTT框架的核心流量生成引擎。与通用MQTT工作负载生成器或主要关注良性发布/订阅行为的公开可用模拟器不同,eMQTT模拟器具有协议意识,专为物联网安全研究而构建。它提供了对MQTT控制流、会话行为、有效载荷分布以及攻击时间和强度的细粒度、参数化控制。这允许控制性地注入协议级的对抗行为,从而能够模拟真实的DoS和异常流量情况。该模拟器在一个模块化架构中运行,集成了流量合成、结构化数据包捕获和索引存储,确保了实验运行的可重复性、可扩展性和一致性。
一旦流量生成框架的所有组件都正确配置并运行,系统就进入数据生成阶段。这一阶段至关重要,因为合成流量成为后续分析、验证和入侵检测实验的基础。要开始与eMQTT应用程序交互,用户必须首先通过注册界面创建账户。成功认证后,将显示主仪表板。在执行任何模拟之前,需要注册将生成MQTT流量的虚拟传感器。配置好传感器后,下一步是注册模拟,指定定义每个实验的参数。对于涉及DoS攻击模拟的场景,用户必须遵循与DoS流量模块相关的配置步骤,其中定义了攻击行为、强度和时间。每个模拟都需要两个基本属性:开始日期和结束日期。这些时间戳决定了系统保持活跃并持续生成合成MQTT流量的确切间隔。一旦启动,该过程将在配置的时间窗口内自动运行。
为了获得完整且具有代表性的数据集,在不同的条件下执行了多次模拟。这些运行安排在一天中的不同时间以及一周中的几天内,持续了几周。这种方法确保了操作上下文的多样性,并生成了适合机器学习训练、验证和物联网安全实验的强大数据集。这种方法捕获了广泛的情境和条件,确保了生成数据的完整性和有效性。生成了两个独立的数据集,每个数据集包含100万条记录。第一个数据集包含代表正常网络行为的合法MQTT流量,而第二个数据集模拟针对MQTT协议的拒绝服务(DoS)攻击,特别是CONNECT洪水攻击。
虽然本研究的实验验证主要关注良性流量和CONNECT洪水场景,但该平台不限于这些情况。其模块化架构支持额外的MQTT特定攻击行为、可定制的流量配置文件和参数驱动的模拟配置。评估的场景为验证提供了受控的基线,但该框架可以扩展以模拟其他DoS变体和应用层攻击策略。
eMQTT框架使用参数驱动的流量生成模型来精确控制模拟行为。用户可以配置虚拟设备的数量,定义设备类别(如环境或电气传感器),设置发布间隔,选择QoS级别,并指定有效载荷的大小和结构。对抗行为也可以通过设置并发攻击者的数量、攻击时间和持续时间、连接率强度以及良性与恶意阶段的比例来配置。这些参数决定了流量量、时间模式、突发动态和协议交互,从而创建了统计上多样且操作上真实的数据集。
例如,一个模拟可能包括在定义的正常操作期间每两秒发布一次的500个传感器,随后有几个协调的攻击者以指定的请求率生成CONNECT洪水流量一段时间。这种结构化的参数化确保了设备密度、工作负载强度和对抗条件的变异性,从而生成了适合系统入侵检测评估的代表性数据集。
5. 实验结果
实验评估测量了在不同流量条件下使用合成数据集的分类器性能,每个数据集包含一百万条记录,用于大规模测试。比较了正常MQTT通信和模拟CONNECT洪水攻击的对抗流量下的检测准确性和稳健性。评估仅针对CONNECT洪水攻击进行了验证,不能代表生成器的全部功能。这种受控设置建立了评估所提出方法的有效基准,该方法能够区分合法活动和拒绝服务场景。用户在eMQTT应用程序中注册,通过主界面进行身份验证,并在开始模拟前注册所有数据记录传感器。每次模拟都由开始和结束时间戳定义,设置了自动生成MQTT流量的活动窗口。生成数据后,从MySQL数据包存储表中提取并导出到Excel中进行预处理和分析。评估使用了从生成的MQTT流量中提取的特征来支持机器学习分析。特征包括连接尝试率、CONNACK响应率、会话持续时间、发布频率、数据包大小统计、到达时间间隔分布、QoS级别比例、认证失败次数以及在设定时间窗口内良性流量与恶意流量的比例。特征提取在数据包级别以及时间窗口聚合层面进行,以捕捉协议行为和短期流量动态。这种方法支持异常检测和监督分类。聚合方法、窗口大小和标记过程都有明确的定义,以确保可重复性。最终的数据集结构包括特征向量、类别注释和时间分割,提供了一个从原始数据包捕获到适合机器学习的数据的透明流程。
为了确保模拟的攻击流量符合预期,我们根据Haripriya等人[36]描述的DoS行为模型对数据集进行了评估。他们的研究表明,持续的CONNECT请求会淹没MQTT代理,触发过多的CONNACK响应,最终影响服务可用性。模拟的数据集再现了这一模式,在攻击期间显示了CONNECT和CONNACK数据包的预期快速增长。这证实了攻击模拟准确地捕捉了代理过载事件的动态。
为了验证eMQTT生成流量的真实性,合成数据集经过了两步验证。首先,统计属性(如数据包大小分布和到达时间间隔)与MQTT 3.1.1协议特性及公共流量捕获(如MQTTset)进行了比较。其次,通过监控代理响应延迟和资源耗尽情况来验证模拟的CONNECT洪水攻击的行为模式,确保复制了物理物联网基础设施中的拒绝服务状态。虽然这种对齐支持了强大的IDS训练,但未来与硬件测试平台的集成将进一步加强框架合成输出的经验验证。
CONNECT洪水和SlowITe代表了针对不同代理机制的不同拒绝服务策略。SlowITe是一种低频、基于时间的攻击,模仿合法客户端行为,使其更难以检测。相比之下,CONNECT洪水是一种高强度攻击,通过发送大量会话请求来压垮代理的连接和认证功能。尽管SlowITe更为隐蔽,但由于其快速破坏服务的能力,在工业物联网中仍然非常相关。本研究使用CONNECT洪水作为经过验证的协议感知攻击生成的基线。然而,eMQTT框架也支持低频和自适应攻击,包括计划中的SlowITe风格扩展。
为了确保可重复性,实验环境使用的是Ubuntu 20.04 LTS服务器上的Python 3.9和Scikit-learn v1.0.2,配备Intel Core i7-10700K CPU和32 GB RAM。对于分类任务,决策模型采用了分割标准、无最大深度、100个估计器以及特征选择集设置为总特征的平方根。eMQTT生成器模拟了50个并发的合法传感器和10个恶意节点,发布频率为1 Hz,保持活动间隔与模拟时间相匹配。实验评估确认了eMQTT流量生成器及其数据集的有效性,如图8所示。测试了几种机器学习分类器(包括朴素贝叶斯、梯度提升、多层感知器和神经网络)区分恶意流量和良性流量的能力。梯度提升分类器在检测DoS攻击方面取得了最高的准确性。图8展示了基于关键入侵检测指标的机器学习算法性能比较,报告了每个分类器的准确性、精确度和召回率以及F1分数,全面评估了它们正确识别良性流量和恶意流量的能力。(a) 召回率表示模型检测实际攻击的有效性;(b) 准确率反映了正确分类实例的总体比例;精确度衡量模型在不产生误报的情况下识别恶意流量的可靠性;(c) F1分数表示精确率和召回率的调和平均值,在潜在类别不平衡情况下总结了检测性能。此外,图8通过展示模拟的CONNECT数据包数量与攻击期间相应的CONNACK数据包数量之间的关系,验证了生成攻击流量的真实性,准确再现了预期的代理过载动态。这些可视化结果证实了数据集的有效性和生成器在开发和评估工业物联网环境中强大的入侵检测系统方面的实际用途。
图9中描绘的行为应被视为代理压力,而不是完全的服务中断。在MQTT系统中,过载并不一定导致CONNACK响应的立即停止;相反,它通常表现为资源饱和和性能下降。在CONNECT洪水阶段,代理继续生成CONNACK数据包,这也解释了CONNECT和CONNACK曲线之间的视觉相似性。过载情况通过每秒连接尝试次数的急剧增加、响应延迟的升高、确认时间的波动以及攻击期间系统资源利用率的提高来体现。这些指标表明,尽管协议级响应仍然存在,但代理的会话管理和认证子系统受到持续的压力。这项分析澄清了在这种情况下,过载指的是在高强度连接爆发期间操作效率的下降,而不是完全失去响应能力。图9展示了模拟的CONNECT洪水DoS攻击流量,显示了攻击期间CONNECT和CONNACK数据包数量之间的相关性,准确再现了代理过载动态。在数据集验证之后,应用了几种机器学习分类算法(包括朴素贝叶斯、梯度提升、多层感知器和神经网络)来区分合法的MQTT流量和CONNECT洪水活动。在这些模型中,梯度提升取得了最平衡的性能,结合了强大的准确性和适合资源受限物联网系统的计算要求。虽然神经网络和多层感知器显示出优越的预测能力,但它们的训练成本和计算需求较高,使得在低功耗或资源有限的物联网设备上部署不太现实。相反,朴素贝叶斯的开销最小,但代价是检测准确率降低,突显了轻量级操作和强大入侵检测性能之间的权衡。
这些结果强调了在开发基于MQTT系统的检测机制时平衡准确性和计算效率的必要性。研究结果进一步展示了合成数据集在提供受控和可重复环境以评估分类器行为方面的价值,无论是正常还是对抗性条件下。
6. 结论
本文介绍了eMQTT流量生成器的设计、实现和实验验证。这种方法解决了物联网入侵检测研究中对于真实、平衡和可扩展数据集的迫切需求。通过采用模块化后端-前端架构,eMQTT有效地模拟了工业物联网传感器流量以及针对MQTT协议的多样化拒绝服务(DoS)攻击场景。本研究的主要贡献是生成了两个高容量、经过验证的数据集用于实验评估:一个代表合法的MQTT通信,另一个模拟CONNECT洪水DoS行为。这些数据集专门创建是为了为所提出的框架建立一个受控、可重复的验证基线。eMQTT平台不仅限于这两种流量类别;其模块化和可扩展的架构支持更广泛的流量建模,包括额外的MQTT特定攻击模式、可配置的操作配置文件和参数化的对抗行为。这种设计使得生成器能够扩展,以应对未来研究中更广泛的DoS变体和应用层威胁。
在数据生成过程中消除人为干预增强了一致性并减少了偏见,而模块化架构确保了多样化的学术和工业应用的可扩展性和适应性。除了研究应用外,该平台还为IT专业人士提供了一个实用工具,用于在受控条件下对MQTT代理进行压力测试和支持性能评估。这项工作通过提供强大的异常检测和攻击分类基础,增强了MQTT的安全性。经过验证的数据集和流量生成器使得实验可重复,并支持开发更准确和高效的物联网环境入侵检测系统。
尽管eMQTT框架性能强大,但必须承认当前验证范围存在某些局限性。尽管该平台在架构上是模块化的,并设计为支持各种威胁(如暴力攻击或恶意数据注入),但这里的实验评估特别关注CONNECT洪水拒绝服务(DoS)攻击。这种关注使得能够进行深度、高容量的验证(100万条记录);然而,虽然模拟器逻辑支持其他攻击类别,但尚未针对两阶段检测流程进行实际测试。此外,当前研究采用二分类设置进行初步验证,未来计划扩展为多类、多阶段检测系统。解决这些问题是将eMQTT框架发展为工业物联网安全的全面、多威胁评估工具的关键步骤。
eMQTT框架的一个核心优势是它提供了一个专门为结构化数据集生成和入侵检测评估设计的受控、可重复的环境,而不是替代实际的物联网部署或网络仿真平台。尽管基于Docker的物联网测试平台和CORE等仿真工具可以生成真实的流量,但它们通常需要复杂的编排、手动攻击标记和重复的数据包跟踪来提取可用特征。相比之下,eMQTT将流量合成、攻击参数化、数据包捕获、结构化存储和自动化数据集导出整合在一个统一的框架中。这一集成流程确保了良性流量和恶意流量被明确定义、一致标记,并直接与配置参数关联,从而减少了实验期间的歧义。此外,可以系统地改变设备密度、发布频率、攻击时间和攻击强度等流量特性,而无需重新部署基础设施或重新配置网络拓扑。这种参数驱动的控制有助于可扩展的数据集生成和控制比较研究。因此,eMQTT通过优先考虑实验的可重复性、配置性和针对基于机器学习的入侵检测系统研究的结构化数据生成,补充了基于仿真的方法。
未来工作将重点扩展eMQTT模拟器的能力,以模拟更广泛的MQTT特定威胁,包括SlowITe、恶意消息注入和对代理的暴力攻击。
生物通微信公众号
生物通新浪微博
今日动态 |
人才市场 |
新技术专栏 |
中国科学人 |
云展台 |
BioHot |
云讲堂直播 |
会展中心 |
特价专栏 |
技术快讯 |
免费试用
版权所有 生物通
Copyright© eBiotrade.com, All Rights Reserved
联系信箱:
粤ICP备09063491号