Tes keamanan sederhana apa yang dapat saya lakukan pada jaringan MQTT saya?

13

Saya akan mengatur jaringan MQTT di rumah. Saya ingin membangun pengetahuan dengan latihan praktis. Ini akan menjadi jaringan kecil dengan broker di-host di laptop saya (Windows 7) dan beberapa klien Raspberry Pi. Saya juga berpikir untuk membuat klien di ponsel saya (Android).

Tujuan saya adalah memiliki jaringan sederhana tempat saya dapat melakukan percobaan dan saya ingin melakukan beberapa pengujian keamanan, bereksperimen terlebih dahulu.

Saya telah menemukan Suite Tes MQTT Server yang dirancang untuk bertindak sebagai klien MQTT jahat. Cukup menjanjikan untuk memulai.

Alat uji fitur umum

  • Pengujian negatif kotak hitam sepenuhnya otomatis
  • Kasing uji siap pakai
  • Ditulis dalam Java (tm)
  • GUI, baris perintah, mode antarmuka jarak jauh
  • Kemampuan instrumentasi (pemeriksaan kesehatan)
  • Dukungan dan pemeliharaan
  • Dokumentasi pengguna yang komprehensif
  • Pelaporan dan analisis hasil

Tetapi saya juga tertarik pada beberapa praktik sederhana yang dapat saya gunakan untuk memverifikasi fitur keamanan MQTT. Apa cara paling sederhana bagi pemula untuk melakukan beberapa verifikasi keamanan dasar pada jaringan MQTT?

Bence Kaulics
sumber

Jawaban:

12

Beberapa ide - Saya belum membahas semua kombinasi dengan / tanpa nama pengguna / TLS, semoga Anda dapat melihat di mana mereka hilang.

Bisakah klien terhubung secara anonim, tanpa TLS?

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

Bisakah klien terhubung jika memberikan nama pengguna tetapi tanpa kata sandi, tanpa TLS?

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

Bisakah klien terhubung jika menyediakan nama pengguna dan kata sandi (benar atau tidak), tanpa TLS?

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

Bisakah klien berlangganan ke $SYStopik dan melihat informasi tentang broker?

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

Bisakah klien terhubung menggunakan TLS?

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

Bisakah klien berlangganan semua topik? Apa yang dilihatnya?

mosquitto_sub -t '#' -v

Ulangi semua hal di atas saat menerbitkan juga.

ralight
sumber
5

Mungkin menyatakan yang sudah jelas, tetapi saya pikir penting untuk menekankan bahwa seorang pemula tidak dapat berharap untuk membangun jaringan yang aman. Tidak ada yang salah dengan belajar.

Sepertinya keamanan utama di MQTT diimplementasikan pada lapisan transportasi, sehingga seharusnya menjadi fokus Anda untuk keamanan nyata.

Saya akan terkejut jika ada test suite otomatis akan dapat meniru kemampuan seorang ahli untuk menemukan lubang dalam implementasi protokol Anda.

Sean Houlihane
sumber
4
Saya tidak mengharapkan jaringan yang sepenuhnya aman. Saya hanya ingin menjalankan pemeriksaan kewarasan, jadi pengujian sangat mendasar untuk melihat bahwa saya memiliki sesuatu untuk memulai.
Bence Kaulics