IoT-безопасность: что должна знать каждая продуктовая команда

Reading time: 6 minutes

Last modified:

Схема уровней IoT-безопасности

Веб-безопасность и IoT-безопасность используют общую терминологию, но по сути это разные дисциплины. Взломанное веб-приложение сливает данные и бьёт по репутации. Взломанное IoT-устройство может открыть дверь, отключить датчик безопасности, вмешаться в работу промышленного оборудования или войти в ботнет для атаки на другие системы — и всё это пока устройство физически находится в доме пользователя или на заводском полу без каких-либо видимых признаков неладного.

Ставки другие. Угрозовая модель другая. Стандартный подход веб-разработчика к безопасности — настроить аутентификацию, зашифровать трафик, патчить вовремя — необходим, но недостаточен для подключённых устройств.

Дальше — чем IoT-безопасность отличается от обычной, где большинство команд ошибается и что нужно заложить с первого дня, а не допиливать после того, как устройства уже в полевых условиях.

Почему IoT-безопасность — это отдельная история

Физический доступ меняет угрозовую модель. Веб-сервер стоит в дата-центре с контролируемым физическим доступом. IoT-устройство — на складе, в доме пациента, в уличном корпусе или на промышленной машине. Злоумышленник с физическим доступом к устройству может извлечь прошивку, прочитать память, манипулировать аппаратными входами или перехватить коммуникации на уровне платы. Контроль физического доступа, который веб-команды воспринимают как должное, для развёрнутых устройств не существует.

Обновления прошивки не происходят автоматически. Веб-приложения обновляются незаметно при каждом посещении. IoT-устройства запускают прошивку, прошитую при производстве или подготовке к эксплуатации, и могут работать на ней месяцами или годами — особенно в промышленной, медицинской или потребительской среде, где автоматические обновления отключены, не поддерживаются или просто не реализованы. Уязвимость, обнаруженная в 2025 году, может работать на устройствах в поле до 2030 года.

Долгий жизненный цикл устройств создаёт долгое окно уязвимости. Типичный жизненный цикл корпоративного ПО — несколько лет. IoT-устройства в промышленных условиях часто работают 10–15 лет. Криптографические алгоритмы, коммуникационные протоколы и библиотеки, которые сейчас безопасны, могут иметь известные уязвимости в этот период. Долговечность устройств требует дальновидного проектирования безопасности, а не только защиты от актуальных угроз.

Разнородные неуправляемые флоты. Типичный развёрнутый IoT-парк содержит устройства с разными версиями прошивки, разными аппаратными ревизиями, подключённые в разных сетевых условиях. Централизованное управление флотом не гарантировано. Политики безопасности должны применяться при всём этом разнообразии.

Самые распространённые векторы атак

Встроенные учётные данные. Это самая распространённая ошибка в IoT-безопасности. Логины и пароли по умолчанию, зашитые в прошивку, API-ключи, встроенные в код, интерфейсы администратора с неизменяемыми учётными данными. Эти данные часто одинаковы для всех экземпляров линейки продуктов, поэтому одно раскрытие компрометирует весь развёрнутый парк. Инструменты для сканирования учётных данных по умолчанию существуют именно для их поиска — и злоумышленники ими пользуются.

Незашифрованные коммуникации. Многие IoT-устройства общаются через HTTP, MQTT без TLS или по самодельным бинарным протоколам без шифрования. Злоумышленник в той же сети — или на скомпрометированном роутере между устройством и облаком — может наблюдать весь трафик, внедрять команды и воспроизводить пакеты.

Отсутствие проверки подписи прошивки. Если устройство принимает и прошивает любой образ прошивки, переданный по каналу обновления, злоумышленник, добравшийся до этого канала, может установить произвольный код. Подпись прошивки — когда устройство принимает только обновления, подписанные известным закрытым ключом, — предотвращает такой класс атак. Реализовать это несложно, но многие команды пропускают этот шаг.

Открытые отладочные интерфейсы. UART-последовательные порты, JTAG-коннекторы, SWD-интерфейсы — стандартные инструменты аппаратной отладки, оставленные включёнными в продакшн-устройствах. Они дают прямой доступ к прошивке, загрузчикам, а иногда и к памяти запущенных процессов. Устройства, поставляемые конечным пользователям с доступными отладочными интерфейсами, регулярно взламываются. Исправление на этапе проектирования — несколько долларов или перемычка. Исправление после производства устройств — отзыв продукции.

Небезопасный облачный бэкенд. Прошивка устройства может быть безопасной, а облачный API за ней — полностью открытым. Аутентификация на стороне устройства, доверяющая идентификационным данным, предоставленным самим устройством без надлежащей проверки; API без проверок авторизации; конечные точки управления устройствами, доступные из открытого интернета — всё это встречается в реальных развёртываниях.

Как выглядит настоящая модель IoT-безопасности

Безопасность нужно проектировать одновременно на четырёх уровнях. Брешь на любом из них создаёт поверхность атаки, независимо от того, насколько сильны остальные.

Уровень Что важно сделать правильно Типичная ошибка
Аппаратура устройства Отключить отладочные интерфейсы в продакшне; защищённый элемент для хранения ключей JTAG/UART открыт; ключи во флеш-памяти
Прошивка Подписанная цепочка загрузки; минимальная поверхность атаки; зашифрованное хранилище Нет проверки подписи; сторонние библиотеки не патчатся
Сеть / коммуникации TLS для всех коммуникаций; взаимный TLS там, где возможно; никаких протоколов открытым текстом HTTP или незашифрованный MQTT; нет проверки сертификата
Облачный бэкенд Проверка идентификации устройства; учётные данные для каждого устройства; API-доступ с минимальными привилегиями Общие учётные данные; открытые API управления устройствами

Идентификация устройства. Каждое устройство в полевых условиях должно иметь уникальную криптографическую идентичность — сертификат X.509 или аналог — выданный при производстве и привязанный к аппаратуре. Общие секреты для флота устройств — единая точка отказа. Идентификация каждого устройства позволяет отозвать скомпрометированное устройство, не затрагивая остальные.

Безопасная загрузка. Цепочка загрузки — от аппаратного корня доверия через загрузчик до прошивки — должна проверяться на каждом этапе с использованием подписанных образов. Это предотвращает загрузку модифицированного образа прошивки злоумышленником с физическим доступом. Аппаратные модули безопасности (HSM) или защищённые элементы на SoC обеспечивают якорь корня доверия.

Подпись OTA-обновлений. Каждое обновление прошивки, доставляемое по воздуху, должно быть подписано закрытым ключом, к которому устройство не имеет доступа. Устройство проверяет подпись перед прошивкой. Это обязательное требование для любого устройства, получающего удалённые обновления.

Управление сертификатами. TLS-сертификаты истекают. Флоты устройств, поставленных с жёстко закодированными сертификатами, которые истекают через пять лет, прекратят работать или станут небезопасными без механизма ротации. Планируйте ротацию сертификатов до поставки.

Неудобная реальность

Большинство проблем с IoT-безопасностью не обнаруживаются во время разработки. Их находят после развёртывания устройств — исследователи безопасности, клиенты, заметившие странное поведение, или злоумышленники, которые не объявляют о себе.

Экономика жёсткая: устранение уязвимости в облачном ПО стоит инженерного времени и деплоя. Устранение той же уязвимости в прошивке требует сборки и распространения обновления, получения согласия устройств на его принятие, и надежды на то, что устройства в полевых условиях подключены и могут завершить обновление. Если сам механизм обновления сломан или устройство офлайн — запатчить невозможно.

В промышленных и медицинских контекстах обновления прошивки требуют процессов валидации и согласования, которые могут занять недели. Есть реальные IoT-развёртывания, где известная уязвимость была запатчена в прошивке за 18 месяцев до того, как патч добрался до всех устройств в поле — потому что процесс обновления требовал ручного вмешательства на каждом объекте.

Эта асимметрия — дёшево исправить при проектировании, дорого в поле — объясняет, почему IoT-безопасность должна быть первоклассным требованием с первого дня, а не финальным укреплением перед запуском.

Как планировать безопасность с первого дня

Угрозовая модель — до написания кода. Для каждого потока данных (устройство → облако, облако → устройство, устройство → пользовательский интерфейс, технический доступ) спросите: кто может это перехватить? Что с этим можно сделать? Каков худший сценарий? Задокументируйте ответы и проектируйте с учётом угроз.

Используйте функции безопасности платформы. Современные микроконтроллеры (STM32, ESP32, NXP i.MX и др.) включают аппаратные функции безопасности: безопасную загрузку, шифрование флеш-памяти, защищённое хранение ключей, TrustZone. За их использование не платят отдельно — они встроены в кремний. Почти всегда они недоиспользуются, потому что команды не выделяют время на настройку.

Относитесь к учётным данным так, будто они утекут. Ничего не хардкодьте. Используйте провизирование сертификатов для каждого устройства. Храните секреты в защищённых элементах, а не в прошивке или на диске. Исходите из того, что любой секрет, встроенный в поставляемое устройство, доступен мотивированному злоумышленнику с физическим доступом.

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

Проводите пентест всего стека. Аппаратуру устройства, прошивку, механизм обновления, облачный API и мобильный или веб-интерфейс. У каждого уровня свои поверхности атак и нужны разные техники тестирования. Большинство IoT-проблем безопасности, попавших в новости, можно было обнаружить базовым пентестом.

Разрабатываете подключённый продукт и хотите второй взгляд на архитектуру безопасности? Напишите нам на hello@cimpleo.com. Мы поставляли IoT-продукты и знаем, где настоящие риски.

Table of Contents