
Какие риски мы берем на себя, устанавливая систему «умный дом»? Ту, что рулит лампочками и чайником с приложения на смартфоне, внутри локальной сети и удаленно. Если на умную систему завязана безопасность и управление замками (как в случае Amazon Key) — то понятно какие. Если нет, то теоретически можно представить опасность программного вывода из строя какой-нибудь кофеварки с последующим пожаром. Но лучше не фантазировать, а знать наверняка.
Специалисты команды ICS CERT из «Лаборатории Касперского» решили провести натурный тест на умном доме одного из сотрудников компании (
Художественная интерпретация последствий взлома
В технической статье довольно много места отведено относительно скучным, но важным моментам: что НЕ удалось взломать, и как проходил анализ системы умного дома на наличие потенциальных уязвимостей. Перед началом эксперимента исследователи уже знали производителя системы. Им оказалась компания

Следующий шаг — анализ прошивки устройства и WebAPI. Обычно на таком анализе все заканчивается, и выходит новость в стиле «в устройстве обнаружен вшитый пароль». Но в случае Fibaro очевидных прорех в безопасности не было. Зато была получена полезная информация о реализации части управляющей логики на PHP. Без авторизации контроллер отдает только серийный номер устройства, и для взлома железки эта информация бесполезна. Зато, как выяснилось, она позволяет взломать облачную часть сервиса.

Помимо этого, в базе была полная информация о подключенных IoT-устройствах, а также пароль для доступа к настройкам, но захешированный с добавлением «соли». Анализ прошивки показал, что «соль» не рандомная, а прочно зашита в устройство. Теоретически очень простой пароль может быть взломан, но в данном случае не вышло. База SQLite также содержала открытые пароли для подключения к другим устройствам внутри сети: если бы эти пароли совпадали с основным, контроллер также можно было бы легко взломать.
Но опять не получилось: владелец системы оказался знаком с базовыми рекомендациями по безопасности и не использовал один и тот же пароль для разных устройств. Поэтому пришлось применить социальную инженерию. Уязвимость в облачной системе, позволяющая проводить ряд действий без авторизации, зная только серийный номер устройства (который отдается «бесплатно», если есть доступ к админке извне), сделала возможным следующий сценарий. В «облако» была загружена подготовленная резервная копия устройства, в которую был внедрен вредоносный скрипт. Сообщение о необходимости «обновить» устройство через штатные возможности облачной системы было отправлено владельцу (по электронной почте и SMS).
Так как владелец системы знал об эксперименте, он сразу понял, что это не настоящий патч. Но в целом это вполне реальный сценарий, когда пользователю через привычный канал связи приходит правдоподобное сообщение, поэтому резервная копия была установлена. Вредоносный код был выполнен с системными правами благодаря недосмотру в PHP-коде, вызывающему выполнение bash-скрипта:


Disclaimer: Мнения, изложенные в этом дайджесте, могут не всегда совпадать с официальной позицией «Лаборатории Касперского». Дорогая редакция вообще рекомендует относиться к любым мнениям со здоровым скептицизмом.