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

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

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