Нещодавні обговорення на Reddit, присвячені платформі Home Assistant, виявили серйозну проблему безпеки: розумний дім мешканця Маямі-Гарденс опинився під загрозою через вихід в інтернет. Сторонні особи мали змогу вимикати світло та навіть перейменовувати пристрої. Причиною стала незахищеність та публічна доступність їхнього MQTT-брокера.
Розглянемо, як уникнути подібних інцидентів та забезпечити надійний захист вашого розумного дому.
Adam Davidson
Чому розумні домівки використовують MQTT
Ефективна комунікація для смарт-пристроїв
MQTT розшифровується як Message Queuing Telemetry Transport. Хоча назва може здатися складною, її суть досить проста. Це легковаговий протокол обміну повідомленнями, який працює за моделлю “видавець-підписник” (publish-subscribe). Один пристрій “публікує” повідомлення, а інший пристрій може “підписатися” на ці повідомлення.
Наприклад, датчик температури може кожні десять хвилин публікувати поточне значення. Ваше програмне забезпечення для розумного дому може підписатися на ці повідомлення, щоб відстежувати показники температури.
Ключову роль у цьому процесі відіграє MQTT-брокер. Він відповідає за отримання інформації від видавця та її передачу відповідним підписникам. Видавцю та підписнику не обов’язково знати про існування один одного – MQTT-брокер забезпечує доставку повідомлень за призначенням.
MQTT ідеально підходить для розумних домівок, оскільки він швидкий, потребує мінімальної пропускної здатності мережі та може працювати на простих пристроях, таких як датчики або мікроконтролери. Наприклад, у Home Assistant ви можете використовувати MQTT, щоб дозволити вашим Zigbee-пристроям передавати дані на ваш сервер Home Assistant через Zigbee2MQTT.
Як брокери потрапляють в інтернет
Уникайте використання публічних MQTT-брокерів
Для обміну повідомленнями між пристроями вашого розумного дому за допомогою MQTT вам потрібен MQTT-брокер, який керуватиме маршрутизацією. Цей брокер має працювати локально у вашій мережі, щоб уся комунікація між датчиками та системою розумного дому відбувалася в межах вашої локальної мережі.
У випадку з користувачем з Маямі-Гарденс, схоже, замість налаштування власного MQTT-брокера, було використано публічний. Оскільки цей брокер був доступний будь-кому з доступом до інтернету, інші користувачі могли надсилати повідомлення до розумного дому в Маямі-Гарденс. За допомогою відповідних команд можна було керувати підключеними пристроями, наприклад, вмикати та вимикати світло.
Зазвичай немає жодної потреби використовувати публічний MQTT-брокер для вашого розумного дому. Деякі посібники можуть згадувати про це для тестування, і, можливо, саме так вчинив користувач з Маямі-Гарденс. Не виключено, що штучний інтелект міг надати некоректну пораду щодо використання публічного MQTT-брокера.
Для ясності: цього робити не слід. Вам завжди варто запускати MQTT-брокер локально на власних пристроях. Він надзвичайно легковаговий – його можна запустити навіть на Raspberry Pi Zero, тому немає причин не розміщувати його самостійно.
Як перевірити, чи ваш MQTT-брокер доступний публічно
Переконайтеся, що він локальний і не виставлений назовні
Швидкий спосіб перевірити, чи ваш MQTT-брокер не є публічно доступним, – спробувати підключитися до нього з мережі поза вашим домом. Ви можете вимкнути Wi-Fi на своєму смартфоні та використати застосунок на кшталт MQTT Explorer, вказавши свою публічну IP-адресу та порт 1883. Якщо ви зможете підключитися до MQTT-брокера через мобільну мережу, це означає, що він доступний ззовні.
У Home Assistant перевірте, чи налаштований MQTT-брокер з локальною IP-адресою, а не з публічною веб-адресою. Перейдіть до Налаштування > Пристрої та служби, відкрийте інтеграцію MQTT та натисніть на іконку з трьома крапками. Виберіть Переналаштувати. Переконайтеся, що в полі Брокер вказано локальну IP-адресу або внутрішнє ім’я хоста, а не зовнішній URL. Також важливо переконатися, що встановлено надійний пароль.
Якщо ви запускаєте власний MQTT-брокер (що вкрай рекомендується), то найімовірніший спосіб його виходу в зовнішній світ – це налаштування переадресації портів (port forwarding). Якщо ви переадресуєте порт 1883 на свій домашній сервер, будь-хто в інтернеті зможе отримати до нього доступ. Це також може статися випадково, якщо ви використовуєте такі функції, як Universal Plug and Play (UPnP).
Підпишіться на розсилку з порадами щодо безпеки MQTT для розумних домівок
Захистіть свій розумний дім, підписавшись на розсилку, яка висвітлює ризики MQTT, надає практичні поради щодо посилення безпеки, покрокові перевірки та чіткі інструкції з безпечного налаштування брокерів та пристроїв – зосереджена, дієва інформація про безпеку розумного дому, яку ви можете використати.
Отримувати оновлення
Підписуючись, ви погоджуєтеся отримувати розсилки та маркетингові електронні листи, а також приймаєте наші Умови використання та Політику конфіденційності. Ви можете відписатися будь-коли.
Ви можете перевірити, чи доступний ваш MQTT-брокер із зовнішнього світу, використовуючи онлайн-сервіси, такі як Shodan, вказавши свою публічну IP-адресу. Сервіс покаже доступні служби за вашою публічною IP. Для аналогічного ефекту також можна використовувати утиліту nmap з командного рядка.
Захист вашого MQTT-брокера
Безпека – ключ до всього
Якщо ви випадково зробили свій MQTT-брокер публічно доступним і незахищеним, незнайомці з іншого кінця світу можуть почати вимикати ваше світло або робити щось гірше. Саме тому важливо не дозволяти анонімні з’єднання; хороша новина полягає в тому, що інтеграція MQTT в Home Assistant не підтримує анонімні з’єднання.
Також намагайтеся уникати переадресації портів. Хоча переадресація порту 1883 може дозволити вам віддалено керувати своїми пристроями, це також може надати таку можливість іншим. Існує безліч інших, безпечніших варіантів для віддаленого доступу до Home Assistant. Ви можете підвищити безпеку свого MQTT-брокера, увімкнувши шифрування TLS та використовуючи порт 8883.
Не дозволяйте іншим вимикати ваше світло
Це незвичний приклад, але він демонструє, що може статися, якщо ви неправильно налаштуєте свій розумний дім. Користувачі Reddit не робили нічого більш зловмисного, ніж увімкнення та вимкнення світла, але зловмисники можуть завдати значно більшої шкоди.
Порада від Soft Portal: Ця інформація є надзвичайно важливою для всіх користувачів Home Assistant та інших систем розумного дому, що використовують MQTT. Правильне налаштування безпеки вашого MQTT-брокера є першочерговим кроком для захисту ваших пристроїв та особистих даних від несанкціонованого доступу. Дотримання цих рекомендацій допоможе уникнути неприємних інцидентів та забезпечить стабільну роботу вашої системи.
Дізнатися більше на: www.howtogeek.com
