Исходный текст представляет собой отрывок из технического анализа (writeup) о критических уязвимостях безопасности умного дверного звонка (вероятно, бренда X Smart Home). Текст описывает процесс эксплуатации устройства через последовательный порт (UART), анализа сетевого трафика и бинарного кода.
Ниже представлен структурированный анализ ключевых уязвимостей и методов атаки, изложенных в тексте:
- Факт: Устройства оснащены шпильками для UART с открытым доступом.
- Данные в cleartext: Через этот порт устройство выводит на консоль (UART) полные данные аутентификации при каждом запуске:
- Уникальный ID устройства (
UID), связанный с аккаунтом владельца. - Статический пароль для ретранслятора (
static relay password/token). - Домен и учетные данные сети.
- Версию прошивки и статус OTA.
- Уникальный ID устройства (
- Риск: Любое лицо с простым USB-кабелем может получить полный список учетных данных, привязанных к этому устройству.
Доступ к интерактивному оболочке msh позволяет исполнить следующие вредоносные действия:
* device_code: Чтение и вывод UID устройства.
* write_device_code: Критическая уязвимость. Позволяет переписать идентификационный код устройства на лету без какой-либо аутентификации. Атакующий может подделать ID устройства или его владельца.
* fal (Flash Abstraction Layer):
* Позволяет читать таблицы разделов (bootloader, app, filesystem).
* Позволяет считывать бинарные образы прошивки прямо из Flash-памяти в hex-формате.
* Скрипты для автоматического извлечения всей прошивки созданы с учетом режима энергосбережения устройства (пауза при входе в сон).
- Алгоритм: Используются хеши
SHA1с использованием статическогоsalt(заглушкиsecret), который выводится в консоль при командеdevice_code. - Уязвимость:
saltявляется общим для всех устройств данной модели и зашит в прошивку.- Не используется настоящая сессионная аутентификация (nonce/random).
-
Последствие: Зная общую схему и
salt, атакующий может вычислять подписи (токены) для любых запросов к API платформы, полностью эмулируя устройство владельца. Сервер не может отличить поддельный запрос от легитимного. -
Статичность токенов: Токены для устройства (
devToken) и аккаунта (cliToken) являются постоянными и не обновляются (не вращаются). - Сценарий атаки:
- Атакующий получает токен (например, заставив устройство ringing или используя UART).
- Используя этот токен, он может регистрировать устройство на ретрансляторе как владельца.
- Это дает доступ к прослушиванию всех звонков и управлению устройством без согласия владельца.
-
Отсутствие ротации: Сброс устройства или смена аккаунта владельца не меняет серверные токены.
-
Формат ID:
1e2023XXXXXX.1e: ЛОКАЛЬНО УПРАВЛЯЕМАЯ (Locally Administered) MAC-адресация.2023: Год выпуска (фактор производства).XXXXXX: Последовательный счетчик.
-
Следствие: ID устройств легко переборить (enumerate). Зная префикс, атакующий может создавать поддельные ID для перехвата сессий или спам-атак.
-
Анализ прошивки показал, что модуль OTA существует в коде, но отсутствует физический раздел
downloadдля новых образов. - Вывод: Уязвимости в этом устройстве (CVE, устаревшие алгоритмы шифрования) никогда не будут исправлены производителями.
Умный дверной звонок имеет множество критических уязвимостей:
1. Full Disclosure: Полный вывод всех секретов на UART.
2. Broken Auth: Псевдо-подписи, позволяющие подделывать запросы сервера.
3. Privilege Escalation: Возможность менять ID устройства и права доступа через write_device_code.
4. Permanent Token Theft: Токены не вращаются, что позволяет злоумышленнику захватить сессию навсегда.
Это классический пример устройства IoT, разработанного без должного внимания к безопасности (security by obscurity заменен на открытые отладочные интерфейсы), где "отладочный порт" превратился в "порт доступа для хакера".