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
ひとこと要約

本稿では、動的ファジングを用いて、5つのオープンソースMQTTブローカーおよび3つのクライアントライブラリの実証的セキュリティ評価を実施し、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 Bulbなどの実際のIoTデバイスが、非標準のMQTTメッセージパターンに対してどのように反応するかを評価すること。
  • ブローカーやクライアントにおける非準拠の挙動が、システムの不整合や脆弱性を引き起こす可能性があるかを調査すること。

提案手法

  • 不正または非標準のMQTTメッセージをブローカーやクライアントライブラリに注入するため、ファジング技術を用いた動的セキュリティテストを実施した。
  • 特にQoSレベル、パケット順序、トピック長に関する曖昧または不完全に定義されたMQTTプロトコル標準の部分を標的としたテストケースを設計した。
  • Aedes、EMQX、HiveMQ、Mosquitto、VerneMQの5つのブローカーライブラリおよびEclipse Paho、Mosquitto、Shelly DUO Bulbのクライアント(実装例)の3つのクライアントライブラリを、制御された条件下で評価した。
  • プロトコル違反、例えば誤った状態遷移、予期しない切断、クラッシュの有無を監視した。
  • 実際のデバイステストとして、Shelly DUO Bulbに埋め込まれた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クライアントやブローカーにおいてサービス拒否(DoS)状態を引き起こす可能性があるか?
  • RQ4クライアントライブラリは、不正または非標準のMQTTメッセージに対してどのように反応するか?また、耐障害性の問題を示すか?
  • RQ5実世界のIoTデバイスは、非準拠のMQTTトラフィックにさらされた際に、どの程度の不安全な挙動を示すか?

主な発見

  • Aedesおよび他のブローカーは、PUBCOMPパケットの順序が入れ替わった処理を示しており、リプレイ攻撃による機械的IoTデバイスの破壊や停止の攻撃ベクトルを生じさせた。
  • 4096バイトを超えるトピックへの公開により、大多数のブローカーで切断が発生し、Aedesではブローカー全体のクラッシュが発生し、ネットワーク全体のサービス拒否が発生した。
  • Mosquittoを除くすべてのブローカーが、ダブルパブリッシュテスト中にQoS 2の「一意の識別子」要件を異なる方法で違反しており、相互運用性のリスクを生じさせた。
  • Mosquittoは、すべてのテストケースにおいてMQTT標準を完全に準拠しており、評価された実装の中で最も高いセキュリティポストゥールを示した。
  • クライアントライブラリは、主にエンコードエラーまたは長大なトピックのサブスクリプション関連でわずかな問題を示したが、多数のブローカーよりも堅牢性に優れていた。
  • Shelly DUO Bulbの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が作成し、人間の編集者が確認しました。