MQTTネットワークで実行できる簡単なセキュリティテストは何ですか?


13

自宅でMQTTネットワークをセットアップしようとしています。実践的な演習で知識を積み上げたい。それは、私のラップトップ(Windows 7)でホストされるブローカーと、Raspberry Piを搭載したクライアントを備えた小さなネットワークです。また、携帯電話でクライアントを作成することも考えています(Android)。

私の目標は、簡単なネットワークを使用して実験できるようにすることであり、最初に実験して、セキュリティテストを実行することです。

悪意のあるMQTTクライアントとして機能するように設計されたMQTT Server Test Suiteを見つけました。開始することはかなり有望です。

テストツールの一般的な機能

  • 完全自動化されたブラックボックスネガティブテスト
  • 既製のテストケース
  • Java(tm)で書かれています
  • GUI、コマンドライン、リモートインターフェースモード
  • 計装(ヘルスチェック)機能
  • サポートとメンテナンス
  • 包括的なユーザードキュメント
  • 結果の報告と分析

しかし、MQTTセキュリティ機能を検証するために使用できる、より簡単なプラクティスにも興味があります。初心者がMQTTネットワークでいくつかの基本的なセキュリティ検証を実行する最も簡単な方法は何ですか?

回答:


12

いくつかのアイデア-ユーザー名/ TLSの有無にかかわらず、すべての組み合わせを網羅しているわけではありません。

クライアントは匿名で接続でき、TLSは接続できませんか?

mosquitto_sub -t test/topic -h <broker address>

クライアントは、ユーザー名を提供し、パスワードもTLSも提供しない場合、接続できますか?

mosquitto_sub -t test/topic -u <username> -h <broker address>

ユーザー名とパスワード(正しいかどうか)を提供し、TLSを提供しない場合、クライアントは接続できますか?

mosquitto_sub -t test/topic -u <username> -P <password> -h <broker address>

クライアントは$SYSトピックを購読して、ブローカーに関する情報を見ることができますか?

mosquitto_sub -t '$SYS/#' -v -h <broker address>

クライアントはTLSを使用して接続できますか?

mosquitto_sub -t test/topic -h <broker address> -p 8883 --capath /etc/ssl/certs

クライアントはすべてのトピックを購読できますか?何が見えますか?

mosquitto_sub -t '#' -v

公開するときも上記のすべてを繰り返します。


5

明らかなことを述べているかもしれませんが、初心者は安全なネットワークを構築することを期待できないことを強調することが重要だと思います。ただし、学習に問題はありません。

MQTTの主要なセキュリティはトランスポート層に実装されているように見えるため、実際のセキュリティに焦点を当てる必要があります。

自動化されたテストスイートが、プロトコル実装の穴を見つける専門家の能力を再現できるかどうかは驚きです。


4
完全に安全なネットワークを期待していません。健全性チェックのみを実行したいので、非常に基本的なテストを行って、最初に何かがあることを確認します。
ベンスカウリックス16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.