Skip to main content
QUICK REVIEW

[论文解读] Security assessment of common open source MQTT brokers and clients

Edoardo Di Paolo, Enrico Bassetti|arXiv (Cornell University)|Sep 7, 2023
IoT and Edge/Fog ComputingComputer Science被引用 3
一句话总结

本文通过动态模糊测试对五个开源MQTT代理和三个客户端库进行了实际安全评估,以识别与MQTT标准不符的行为,这些行为可能导致安全问题。尽管未发现严重漏洞,但多个代理表现出不符合标准的行为,例如对QoS 2消息处理不当、主题长度限制异常以及乱序数据包处理,这些行为可能为拒绝服务或重放攻击创造潜在攻击向量,其中Mosquitto在标准符合性方面表现最强。

ABSTRACT

Security and dependability of devices are paramount for the IoT ecosystem. Message Queuing Telemetry Transport protocol (MQTT) is the de facto standard and the most common alternative for those limited devices that cannot leverage HTTP. However, the MQTT protocol was designed with no security concern since initially designed for private networks of the oil and gas industry. Since MQTT is widely used for real applications, it is under the lens of the security community, also considering the widespread attacks targeting IoT devices. Following this direction research, in this paper we present an empirical security evaluation of several widespread implementations of MQTT system components, namely five broker libraries and three client libraries. While the results of our research do not capture very critical flaws, there are several scenarios where some libraries do not fully adhere to the standard and leave some margins that could be maliciously exploited and potentially cause system inconsistencies.

研究动机与目标

  • 评估广泛使用的开源MQTT代理和客户端库的安全性与协议合规性。
  • 识别实现与MQTT标准之间的偏差,这些偏差可能导致可利用的安全问题。
  • 评估真实物联网设备(如Shelly DUO灯泡)在非标准MQTT消息模式下的行为。
  • 调查代理或客户端中的非合规行为是否会导致系统不一致或漏洞。

提出的方法

  • 采用模糊测试技术进行动态安全测试,向代理和客户端库注入格式错误或非标准的MQTT消息。
  • 设计测试用例,针对MQTT协议标准中模糊或未明确规定的部分,特别是关于QoS级别、数据包排序和主题长度的部分。
  • 在受控条件下评估五个代理库(Aedes、EMQX、HiveMQ、Mosquitto、VerneMQ)和三个客户端库(Eclipse Paho、Mosquitto,以及来自Shelly DUO灯泡的客户端)的表现。
  • 监控协议违规行为,例如错误的状态转换、意外断开连接或崩溃。
  • 通过与Shelly DUO灯泡中嵌入的MQTT客户端交互,开展真实设备测试,以评估实际影响。
  • 分析延迟、重排序或修改的数据包的影响,以模拟中间人攻击或网络注入攻击。
Figure 1: Typical MQTT architecture: IoT devices (clients) publish their messages to the broker. Subscribers ask the broker to receive only those messages with topics they subscribe. Broker relays (publishes) to each subscriber only messages with subscribed topics.
Figure 1: Typical MQTT architecture: IoT devices (clients) publish their messages to the broker. Subscribers ask the broker to receive only those messages with topics they subscribe. Broker relays (publishes) to each subscriber only messages with subscribed topics.

实验结果

研究问题

  • RQ1在非标准消息输入下,流行的开源MQTT代理实现与MQTT标准的偏离程度如何?
  • RQ2MQTT代理对QoS 2消息序列的非合规处理会引发何种安全风险?
  • RQ3主题长度违规是否会导致MQTT客户端或代理出现拒绝服务状况?
  • RQ4客户端库对格式错误或非标准MQTT消息的响应如何?是否存在鲁棒性问题?
  • RQ5当暴露于非合规MQTT流量时,现实世界物联网设备在多大程度上表现出不安全行为?

主要发现

  • Aedes及其他代理在处理PUBCOMP数据包时出现乱序,可能为重放攻击提供向量,从而干扰或损坏机械类物联网设备。
  • 向超过4096字节的主题发布消息导致大多数代理断开连接,其中Aedes甚至发生代理完全崩溃,引发全网拒绝服务。
  • 除Mosquitto外,所有代理在双次发布测试中均以不同方式违反了QoS 2的‘唯一标识符’要求,造成互操作性风险。
  • Mosquitto是唯一在所有测试用例中均完全符合MQTT标准的代理,表现出所评估实现中最强的安全姿态。
  • 客户端库存在轻微问题,主要与编码错误或长主题订阅有关,但总体上比多个代理更具鲁棒性。
  • Shelly DUO灯泡的MQTT客户端在测试中表现一致,表明当实现得当时,嵌入式客户端可以是安全的。
Figure 2: Schema of the testbed for the experiments: the fuzzer, which acts as a typical client, takes in input a “JSON experiment file” containing the client’s packets to the MQTT broker. The fuzzer will also receive all the PUBLISH packets sent to the broker. The MQTT Client, instead, uses one of
Figure 2: Schema of the testbed for the experiments: the fuzzer, which acts as a typical client, takes in input a “JSON experiment file” containing the client’s packets to the MQTT broker. The fuzzer will also receive all the PUBLISH packets sent to the broker. The MQTT Client, instead, uses one of

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。