Какие простые тесты безопасности я могу выполнить в моей сети MQTT?


13

Я собираюсь настроить сеть MQTT дома. Я хочу накопить некоторые знания практическими упражнениями. Это будет небольшая сеть с брокером, размещенным на моем ноутбуке (Windows 7), и некоторым клиентом на базе Raspberry Pi. Также я думаю о создании клиента на моем телефоне (Android).

Моя цель - создать простую сеть, в которой я могу экспериментировать, и я хочу провести некоторое тестирование безопасности, сначала экспериментируя.

Я обнаружил MQTT Server Test Suite, который предназначен для работы в качестве вредоносного MQTT-клиента. Это довольно многообещающе для начала.

Основные характеристики инструмента тестирования

  • Полностью автоматизированное отрицательное тестирование черного ящика
  • Готовые тестовые случаи
  • Написано на Java (тм)
  • 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
Я не ожидаю полностью защищенной сети. Я только хочу провести проверки работоспособности, поэтому очень простое тестирование, чтобы увидеть, что у меня есть с чего начать.
Бенс Кауликс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.