Skip to main content
QUICK REVIEW

[논문 리뷰] Security assessment of common open source MQTT brokers and clients

Edoardo Di Paolo, Enrico Bassetti|arXiv (Cornell University)|2023. 09. 07.
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 표준에서 벗어난 구현 오류가 악용 가능한 보안 문제로 이어질 수 있는지를 특정하기 위해.
  • 실제 IoT 기기, 예를 들어 Shelly DUO 램프와 같은 기기들이 비표준 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실제 IoT 기기들이 비준수 MQTT 트래픽에 노출되었을 때 얼마나 비안정한 행동을 보이는가?

주요 결과

  • Aedes 및 기타 브로커는 PUBCOMP 패킷의 순서가 뒤섞이는 방식으로 처리하여 재생 공격의 잠재적 공격 벡터를 만들었으며, 이는 기계식 IoT 기기를 방해하거나 손상시킬 수 있다.
  • 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가 만들고, 인간 에디터가 검토했습니다.