Хакер #305. Многошаговые SQL-инъекции
Еще одно доказательство того, что IoT-устройства – настоящая головная боль для специалистов по безопасности, представили эксперты компании Invincea Скотт Тенаглия (Scott Tenaglia) и Джо Танен (Joe Tanen).
Серия «умных» устройств Belkin WeMo включает в себя самые разные продукты, начиная от свичей и камер, и заканчивая кофеварками и лампочками. Причем ранее, в 2013-2014 годах эксперты уже находили уязвимости в IoT-девайсах компании. Исследователи Invincea решили изучить продукты WeMo еще раз, чтобы посмотреть, что изменилось со временем. В итоге специалисты обнаружили критические проблемы как в самих устройствах, так и в Android-приложении WeMo (скачано 100 000-500 000 раз).
Исследователи рассказали, что к устройствам WeMo можно получить root-доступ. Когда пользователь программирует свой IoT-гаджет на какие-то действия (к примеру, устанавливает включение свича, или задает программу мультиварке), он создает определенный набор правил. Эти правила создаются и обрабатываются Android-приложением WeMo, и хранятся в виде SQLite базы, которая затем загружается на само устройство и там выполняется. Проблема в том, что если атакующий имеет доступ к смартфону пользователя WeMo, он может подменить ряд значений в этой SQLite базе (по сути, осуществить SQL-инъекцию). Когда уязвимое устройство получит и обработает такую БД, произвольный код атакующего будут выполнен с root-правами, что в итоге может привести к печальным последствиям, включая установку на устройство дополнительной IoT-малвари.
При этом атакующий с root-доступом, имеет больше прав, чем легитимный пользователь WeMo. Если устройство действительно было взломано и подверглось заражению, единственный вариант удаления малвари – это обновление прошивки, но эксперты предостерегают, что злоумышленники могут вмешаться в процесс обновления и вообще отрезать пользователя от управления устройством.
Еще одна уязвимость была обнаружена в самом Android-приложении WeMo, и это обычная проблема cross-site scripting (XSS). Атакующий, который имеет сетевой доступ к уязвимому WeMo устройству, сможет выполнить произвольный JavaScript-код в контексте приложения. Когда приложение WeMo включается, оно пытается найти и идентифицировать доступные устройства WeMo. Злоумышленники могут подменить имя устройства JavaScript-кодом, который в итоге будет выполнен на смартфоне или планшете жертвы.
Эксперты продемонстрировали, что при помощи такой атаки вообще можно подменить интерфейс приложения контентом, загруженным с определенного IP-адреса. Proof-of-concept исследователей показывает, что в итоге хакер будет способен похитить все изображения с устройства жертвы и отследить ее местоположение. Причем для смены имени устройства злоумышленнику совсем не обязательно потребуются root-права, порой будет достаточно и обычного UPnP сообщения.
Исследователи сообщили об уязвимостях производителю еще в августе 2016 года. Приложение WeMo получило патч в том же месяце, с выходом версии 1.15.2. Уязвимость, позволяющая осуществить SQL-инъекцию, пока не устранена, но разработчики Belkin обещают выпустить обновленную прошивку 10884 и 10885 в самом ближайшем будущем (вероятнее всего, на этой неделе). Стоит заметить, что обновление будет не автоматическим, пользователям придется озаботиться скачиванием и установкой прошивки самостоятельно.
Помимо вышеописанных проблем исследователи также обнаружили аппаратный способ обхода аутентификации. Полный отчет о проделанной работе исследователи Invincea представят на BlackHat.