Jakie proste testy bezpieczeństwa mogę wykonać w mojej sieci MQTT?

13

Mam zamiar założyć sieć MQTT w domu. Chcę zdobyć wiedzę poprzez ćwiczenia praktyczne. Byłaby to mała sieć z brokerem hostowanym na moim laptopie (Windows 7) i niektórych klientach zasilanych Raspberry Pi. Zastanawiam się także nad stworzeniem klienta na mój telefon (Android).

Moim celem jest posiadanie prostej sieci, w której mogę eksperymentować i chcę przeprowadzić pewne testy bezpieczeństwa, najpierw eksperymentując.

Znalazłem MQTT Server Test Suite, który ma działać jako złośliwy klient MQTT. Na początek jest dość obiecująco.

Ogólne cechy narzędzia testowego

  • W pełni zautomatyzowane testowanie negatywne czarnej skrzynki
  • Gotowe skrzynki testowe
  • Napisane w Javie (TM)
  • GUI, wiersz poleceń, tryby interfejsu zdalnego
  • Możliwość oprzyrządowania (kontroli stanu)
  • Wsparcie i utrzymanie
  • Kompleksowa dokumentacja użytkownika
  • Raportowanie i analiza wyników

Ale jestem również zainteresowany kilkoma prostszymi praktykami, których mogę użyć do weryfikacji funkcji bezpieczeństwa MQTT. Jakie są najprostsze sposoby dla początkujących na wykonanie podstawowych weryfikacji bezpieczeństwa w sieci MQTT?

Bence Kaulics
źródło

Odpowiedzi:

12

Kilka pomysłów - nie opisałem wszystkich kombinacji z / bez nazwy użytkownika / TLS, mam nadzieję, że zobaczysz, gdzie ich brakuje.

Czy klient może łączyć się anonimowo, bez TLS?

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

Czy klient może się połączyć, jeśli poda nazwę użytkownika, ale nie ma hasła ani TLS?

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

Czy klient może się połączyć, jeśli poda nazwę użytkownika i hasło (prawidłowe lub nie), brak TLS?

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

Czy klient może zasubskrybować ten $SYStemat i wyświetlić informacje o brokerze?

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

Czy klient może połączyć się za pomocą TLS?

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

Czy klient może zasubskrybować wszystkie tematy? Co to widzi

mosquitto_sub -t '#' -v

Powtórz powyższe czynności również podczas publikowania.

ralight
źródło
5

Być może stwierdzenie oczywistości, ale myślę, że należy podkreślić, że początkujący nie może oczekiwać zbudowania bezpiecznej sieci. Ale nie ma nic złego w nauce.

Wygląda na to, że podstawowe zabezpieczenia w MQTT są zaimplementowane w warstwie transportowej, więc to powinno być twoim celem dla prawdziwego bezpieczeństwa.

Byłbym zaskoczony, gdyby jakikolwiek automatyczny zestaw testów byłby w stanie odtworzyć zdolność eksperta do znalezienia dziur w implementacji protokołu.

Sean Houlihane
źródło
4
Nie oczekuję całkowicie bezpiecznej sieci. Chcę tylko przeprowadzać kontrole poczytalności, więc bardzo podstawowe testy, aby zobaczyć, czy mam coś na początek.
Bence Kaulics,