Новаком
IOT

OWASP IoT Top-10: разбор уязвимостей IoT-устройств с примерами и чеклистом

Полный разбор OWASP IoT Top-10 на русском: слабые пароли, небезопасные сети, отсутствие обновлений, незащищённые интерфейсы. Примеры атак, чеклист для разработчика и архитектора.

Н
Новаком
2026-05-21 · 14 минут чтения

Почему безопасность IoT — это катастрофа

В октябре 2016 года ботнет Mirai заразил 600 000 IoT-устройств (камеры, роутеры, DVR) и устроил DDoS-атаку на DNS-провайдер Dyn. Упали Twitter, Netflix, GitHub, Reddit — полинтернета. Причина: дефолтные пароли admin:admin на камерах видеонаблюдения.

С тех пор мало что изменилось. Исследование 2025 года показало: 57% IoT-устройств имеют критические уязвимости, 98% трафика между устройством и облаком передаётся без шифрования, у 83% устройств нет механизма безопасного обновления прошивки.

OWASP IoT Top-10 — это список 10 самых критичных уязвимостей IoT-устройств, составленный Open Worldwide Application Security Project. Последняя версия — 2018 года, но все 10 пунктов актуальны в 2026. Разберём каждый с примерами и рекомендациями.

I1: Weak, Guessable, or Hardcoded Passwords

Слабые, угадываемые или зашитые пароли

Проблема

Самая распространённая уязвимость IoT. Три формы:

  1. Дефолтные пароли: admin/admin, root/root, admin/1234 — устройство из коробки доступно любому
  2. Hardcoded credentials: пароль зашит в прошивке и не может быть изменён. Извлекается реверсом бинарника за 5 минут
  3. Отсутствие brute-force защиты: нет ограничения на количество попыток — пароль подбирается за часы

Пример атаки

Mirai сканировал интернет на открытый Telnet (порт 23) и перебирал список из 62 пар логин/пароль, характерных для IoT-устройств. Среди них: root:xc3511, root:vizxv, admin:admin. Этого хватило для 600K устройств.

Как защитить

МераРеализация
Уникальный пароль из коробкиГенерировать при производстве, печатать на наклейке
Принудительная смена при первом входеНе давать доступ к функциям до смены
Запрет слабых паролейМинимум 8 символов, проверка по словарю
Rate limitingБлокировка после 5 неудачных попыток на 15 минут
Нет Telnet, SSH по ключамTelnet передаёт пароль в открытом виде

I2: Insecure Network Services

Небезопасные сетевые сервисы

Проблема

Устройство слушает на сетевых портах сервисы, которые не нужны для его работы, уязвимы или неправильно настроены:

  • Открытый Telnet, FTP, UPnP
  • Веб-интерфейс без HTTPS
  • Debug-порты, оставленные в продакшен-прошивке (JTAG через сеть, GDB-сервер)
  • MQTT-брокер без аутентификации

Пример атаки

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

Как защитить

МераРеализация
Минимум открытых портовТолько то, что нужно. nmap при каждом релизе
Нет debug-сервисов в продакшенеУсловная компиляция: #ifdef DEBUG
Все соединения — TLSДаже в локальной сети (mTLS для MQTT)
Firewall на устройствеiptables/nftables для Linux, фильтрация в RTOS
UPnP отключён по умолчаниюUPnP — источник NAT-пробивок и атак

I3: Insecure Ecosystem Interfaces

Небезопасные интерфейсы экосистемы

Проблема

IoT-устройство — часть экосистемы: мобильное приложение, облачный backend, веб-панель, API. Уязвимость в любом компоненте компрометирует всю систему:

  • API без аутентификации или с предсказуемыми токенами
  • Мобильное приложение хранит credentials в открытом виде
  • Веб-панель с XSS/SQLI
  • Облачный backend с IDOR (доступ к чужим устройствам по ID)

Пример атаки

В 2020 году исследователь обнаружил, что API умных замков одного производителя использовал последовательные числовые ID для устройств. Изменив ID в запросе, можно было открыть чужой замок. Классический IDOR.

Как защитить

КомпонентМеры
APIOAuth 2.0, JWT с коротким TTL, rate limiting
Мобильное приложениеCertificate pinning, безопасное хранилище (Keychain/Keystore)
Веб-панельCSP, CSRF-токены, параметризованные запросы
ОблакоRBAC, аудит доступа, шифрование данных at rest
Все интерфейсыПентест перед каждым релизом

I4: Lack of Secure Update Mechanism

Отсутствие безопасного механизма обновлений

Проблема

Устройство не может обновлять прошивку, или обновление небезопасно:

  • Нет OTA-обновлений вообще (уязвимость навсегда)
  • Обновление по HTTP без шифрования (MITM → подмена прошивки)
  • Нет проверки подписи (любой может загрузить свою прошивку)
  • Нет отката (битое обновление = кирпич)

Пример атаки

Атакующий в той же Wi-Fi сети перехватывает HTTP-запрос на обновление прошивки (MITM), подменяет бинарник на свой. Устройство ставит вредоносную прошивку, становится частью ботнета. Без проверки подписи устройство не может отличить легитимное обновление от поддельного.

Как защитить

МераРеализация
Подпись прошивкиEd25519 или ECDSA. Публичный ключ в bootloader
Безопасный загрузчикMCUboot (Zephyr), ESP Secure Boot
A/B-схема обновленийДве партиции: если новая не загрузилась — откат на старую
Шифрование каналаTLS 1.3 для скачивания, проверка сертификата сервера
Delta-обновленияПередавать только diff — экономия трафика для LPWAN
Принудительные обновленияДля критических CVE — обновлять без согласия пользователя

I5: Use of Insecure or Outdated Components

Использование небезопасных или устаревших компонентов

Проблема

Прошивка содержит сторонние библиотеки с известными уязвимостями:

  • OpenSSL 1.0.x с Heartbleed
  • BusyBox с CVE в ash/wget
  • Ядро Linux 3.x без патчей безопасности
  • Старая версия lwIP/mbedTLS

Многие IoT-производители собирают прошивку один раз и никогда не обновляют зависимости. Устройство выходит на рынок с уязвимостями, которые были исправлены годы назад.

Как защитить

МераРеализация
SBOM (Software Bill of Materials)Список всех компонентов с версиями
CVE-мониторингАвтоматический сканер (Yocto cve-check, Trivy, Grype)
Политика обновленийКритические CVE — патч в течение 30 дней
Минимум зависимостейМеньше кода = меньше поверхность атаки
Статический анализCoverity, CodeQL, PVS-Studio для C/C++

I6: Insufficient Privacy Protection

Недостаточная защита конфиденциальности

Проблема

Устройство собирает и передаёт персональные данные без необходимости или без защиты:

  • Камера стримит видео в облако без шифрования
  • Фитнес-трекер отправляет геолокацию в открытом виде
  • Умная колонка записывает разговоры и хранит на сервере
  • Данные пользователя доступны другим пользователям через API

Как защитить

МераРеализация
Минимизация данныхСобирать только то, что нужно для функции
Шифрование at restAES-256 для хранения на устройстве и в облаке
Шифрование in transitTLS 1.3 для всех каналов
АнонимизацияНе привязывать данные к пользователю, если не нужно
Согласие пользователяЯвный opt-in для сбора данных (GDPR, 152-ФЗ)
Право на удалениеAPI для удаления всех данных пользователя

I7: Insecure Data Transfer and Storage

Небезопасная передача и хранение данных

Проблема

Данные передаются или хранятся без шифрования, с использованием слабых алгоритмов или с доступными ключами:

  • MQTT без TLS (данные в открытом виде в Wi-Fi)
  • Ключи шифрования зашиты в прошивке (одинаковые на всех устройствах)
  • Логи с чувствительными данными на SD-карте без шифрования
  • Токены в plaintext в EEPROM/Flash

Как защитить

МераРеализация
TLS для всех соединенийДаже в локальной сети
Уникальные ключи на устройствоГенерировать при производстве, хранить в Secure Element
Secure Element / TEEATECC608, OPTIGA Trust, ARM TrustZone
Нет секретов в прошивкеКлючи — в Secure Element, не в Flash
Шифрование FlashПолнодисковое шифрование (ESP Flash Encryption, STM32 PCROP)

I8: Lack of Device Management

Отсутствие управления устройствами

Проблема

Нет возможности управлять парком устройств после развёртывания:

  • Нет инвентаризации (сколько устройств, какие версии прошивок)
  • Нет мониторинга (устройство упало — никто не знает)
  • Нет удалённого доступа для диагностики
  • Нет деактивации (украденное устройство продолжает работать)
  • Нет сегментации (IoT-устройства в той же сети, что и корпоративные ПК)

Как защитить

МераРеализация
Device registryЦентрализованный реестр: ID, версия, статус, владелец
Мониторинг heartbeatУстройство регулярно отчитывается; нет heartbeat → алерт
Remote accessБезопасный туннель (WireGuard, SSH) для диагностики
ДеактивацияВозможность заблокировать устройство из облака
Сетевая сегментацияОтдельный VLAN для IoT, firewall между сегментами
Аудит логовКто, когда, что делал с устройством

I9: Insecure Default Settings

Небезопасные настройки по умолчанию

Проблема

Устройство из коробки настроено небезопасно, и пользователь не меняет настройки:

  • Открытый Wi-Fi точка доступа для первоначальной настройки (без пароля)
  • Все функции включены (даже те, что не нужны пользователю)
  • Debug-режим включён по умолчанию
  • Шифрование отключено «для совместимости»
  • Firewall отключён

Как защитить

МераРеализация
Secure by defaultМинимум функций включён, шифрование включено
Временная точка доступаAP для настройки работает 5 минут, с паролем на наклейке
Нет debug в продакшенеУсловная компиляция, fuse-бит для отключения JTAG
Hardening guideДокументация для администратора: что проверить после установки
Автоматический hardeningУстройство само проверяет настройки и предупреждает

I10: Lack of Physical Hardening

Отсутствие физической защиты

Проблема

Атакующий с физическим доступом к устройству может:

  • Считать прошивку через JTAG/SWD и извлечь ключи
  • Подключиться к UART-консоли и получить root-shell
  • Снять Flash-чип и прочитать данные
  • Модифицировать прошивку и вернуть устройство обратно

Пример атаки

Исследователь покупает умную камеру, подключается к UART (4 контакта на плате), получает shell с root-правами, извлекает private key от облачного API. Этот ключ одинаковый на всех камерах этой модели. Теперь у атакующего доступ ко всем камерам.

Как защитить

МераРеализация
Отключить JTAG/SWD в продакшенеOTP fuse bit (STM32 RDP Level 2, ESP32 eFuse)
Отключить UART-консольИли защитить паролем
Secure BootПроверка подписи при загрузке — модификация невозможна
Flash EncryptionДаже если считали — данные зашифрованы
Tamper detectionДатчик вскрытия корпуса → стирание ключей
Уникальные ключиКомпрометация одного устройства не компрометирует остальные

Чеклист безопасности IoT-устройства

Сводная таблица — используйте при проектировании и code review:

#КатегорияПроверкаПриоритет
1АутентификацияУникальный пароль из коробкиКритический
2АутентификацияНет hardcoded credentials в прошивкеКритический
3АутентификацияRate limiting на все точки входаВысокий
4СетьТолько необходимые порты открытыКритический
5СетьВсе соединения через TLS 1.2+Критический
6СетьMQTT/CoAP с аутентификациейВысокий
7ОбновленияOTA с подписью прошивкиКритический
8ОбновленияA/B-схема с откатомВысокий
9ОбновленияSecure Boot включёнВысокий
10КомпонентыSBOM актуален, CVE-мониторингВысокий
11КомпонентыНет компонентов с известными CVEКритический
12ДанныеШифрование at rest и in transitВысокий
13ДанныеКлючи в Secure Element, не в FlashВысокий
14ДанныеМинимизация собираемых данныхСредний
15УправлениеDevice registry и мониторингСредний
16УправлениеВозможность удалённой деактивацииСредний
17ФизическаяJTAG/SWD отключён в продакшенеВысокий
18ФизическаяFlash Encryption включенаВысокий
19НастройкиSecure by defaultВысокий
20НастройкиDebug отключён в продакшенеКритический

Итого

OWASP IoT Top-10 — это не теоретический список. Каждый пункт — реальные атаки, реальные ботнеты, реальные утечки данных. Большинство уязвимостей IoT — не сложные zero-day эксплоиты, а банальные ошибки: дефолтные пароли, отсутствие шифрования, забытый debug-порт.

Три самых важных действия, которые закрывают 80% рисков:

  1. Уникальные credentials на каждое устройство (не admin:admin)
  2. TLS везде — между устройством и облаком, между устройством и приложением
  3. Подписанные OTA-обновления с Secure Boot — чтобы закрывать уязвимости после выпуска

Стоимость внедрения этих мер на этапе проектирования — 5–10% от бюджета разработки. Стоимость устранения последствий взлома — несопоставимо больше.


Хотите убедиться, что ваше IoT-устройство безопасно? Мы делаем экспресс-аудит IoT-идеи за 25 000 ₽: архитектура, безопасность, протоколы, компоненты — за 5 рабочих дней. Или посмотрите наши услуги по IoT и embedded-разработке.

РАЗРАБОТКА

Нужна похожая задача?

Обсудим вашу задачу и предложим решение за 30 минут.

Обсудить проект