
Сразу отметим, что это не настолько серьезная уязвимость, как кажется из краткого описания. В Sternum решили не тратить время на демонстрацию полного цикла атаки и вместо этого ограничились доказательством того, что она теоретически возможна. Тем не менее в статье наглядно показано, как анализировать и искать уязвимости в IoT-устройствах. Наконец, работа вновь подтверждает тот факт, что в целом подобные штуки защищены недостаточно хорошо.
В американском онлайн-магазине Amazon об устройствах Belkin Wemo есть множество отзывов, и наверняка такие розетки продавались тиражами в десятки тысяч штук. Однако когда исследователи обратились к производителю с информацией об уязвимости, он отказался выпускать патч, сославшись на то, что устройство уже не поддерживается. Это еще одна типичная IoT-история: производитель поддерживает устройство максимум пару лет, потом переключается на новую модель. А старая без патчей и, вероятно, с легко эксплуатируемыми дырами может оставаться у потребителя годами и десятилетиями.
Вот так выглядит само устройство изнутри:

Оно поделено на две платы: высоковольтную и управляющую. На управляющей плате расположены SoC от Mediatek, модуль памяти на 512 мегабайт и ПЗУ на 128 мегабайт. На первом этапе исследователи скопировали прошивку устройства из ПЗУ и изучили ее. Анализ показал, что умная розетка работает на базе свободно распространяемого дистрибутива OpenWRT. Методом прозвонки тестовых площадок на плате исследователи нашли и последовательный интерфейс, через который можно управлять устройством. Пароль суперпользователя взломать не удалось, зато получилось перезагрузить устройство в «режим восстановления», где пароль root можно было просто поменять. Все эти действия позволили установить на устройство отладочное ПО для дальнейшего анализа.

Главная зацепка, благодаря которой удалось обнаружить уязвимость, нашлась в фирменном приложении для удаленного управления умной розеткой. Каждой розетке можно назначить уникальное имя (что-нибудь вроде «вентилятор_на_кухне»). В приложении говорится, что имя не должно быть длиннее 30 символов. Оказалось, что это ограничение (а также запрет на использование спецсимволов) проверяется только на уровне приложения, а не на самом устройстве. Используя свободно распространяемую утилиту
Проанализировав содержимое оперативной памяти «взломанного» устройства, авторы работы нашли куски «длинного названия» в ряде мест, где у пользователя вообще не должно быть прав доступа. Выяснилось, что на кастомное имя умной розетки выделяется 68 байт, ввод на стороне устройства никак не проверяется, а при записи особо длинной строки происходит переполнение буфера. Из-за действующей системы Address Space Layout Randomization (ASLR) лишние данные записывались в разные области памяти. Для дальнейшего изучения прошивки ASLR пришлось отключить. В результате еще пары экспериментов у исследователей получилось выполнить произвольную команду (например, для загрузки по определенному адресу потенциально вредоносного кода и его запуска), переданную в составе «уникального имени» для умного устройства. Вместе с такой командой передаются и данные, обеспечивающие ее выполнение путем перезаписи по определенным адресам в оперативной памяти.
Уязвимость получила идентификатор CVE-2023-27217. В представленном методе атаки есть несколько ограничений. Даже с выключенной системой ASLR потенциальный эксплойт должен сделать несколько «попыток» атаки. Каждая неудачная попытка будет приводить к падению приложения и его перезагрузке — таким образом устройство оказывается вне доступа примерно на 10 секунд. Авторы статьи предполагают, что атаку можно провести и при включенном ASLR. Есть еще одна теория, которую было бы неплохо проверить, — вероятно, атака возможна не только в локальной сети, но и через облачный сервис.
В любом случае рекомендации для защиты от подобных атак всегда примерно одинаковые:
- не делать устройства доступными из Интернета;
- не забывать менять стандартные пароли доступа, если они есть;
- если вдруг такие розетки используются в корпоративном окружении — изолировать их от основной сети.
Что еще произошло
А вот пример последствий плохих решений по безопасности. Производитель автомобилей Hyundai и KIA
В менеджерах паролей Keepass версий 2.х
Фичу операционной системы Windows под названием Phone Link
Компания Apple
Китайские исследователи