ИБ-специалист компании Avast Мартин Хрон (Martin Hron) с коллегами провел тестовый взлом умной кофеварки SmarterCoffee производства Smarter. Оказалось, что устройство несложно перепрошить с помощью смартфона, а вычислительной мощности процессора кофеварки хватает, чтобы запустить майнинг криптовалюты Monero. Хрон опубликовал пошаговое описание своего исследования на портале Avast. Бинарные файлы прошивки кофеварки и ее модификации опубликованы на GitHub.

Цель данного теста, по словам Хрона, показать, что многие умные устройства очень плохо защищены от простых атак.

Оказалось, что умная кофеварка из коробки готова к работе в системе умного дома. Для ее подключения к интернету нужно с помощью специального приложения на смартфоне организовать доступ к Wi-Fi сети пользователя. Но для взлома устройства даже этого делать не нужно.

При первом включении кофеварка работает в локальном режиме и создает свою собственную сеть Wi-Fi, к которой нужно подключиться со смартфона, чтобы предварительно настроить устройство. По умолчанию в кофеварке не предусмотрено никаких паролей, нет шифрования беспроводного соединения, отсутствует авторизация и аутентификация.

Прошивка кофеварки также передается на устройство по воздуху в открытом виде через мобильное приложение, при этом нет проверки подписи кода при процессе обновления прошивки на кофеварке. Единственная проверка — это CRC в конце прошивки. Оказалось, что файлы с прошивкой можно найти внутри мобильного приложения, сохранить их, модифицировать, а потом скопировать обратно в состав приложения и загрузить в кофеварку со смартфона или ноутбука.

Реверс-инженеринг прошивки показал, что этот файл имеет формат данных plaintext и загружается непосредственно во флэш-память кофеварки. Чтобы понять, как именно работает прошивка, исследователям пришлось разобрать кофеварку и выяснить, какой в ней установлен процессор и контроллеры. Обнаружилось, что там установлен широко распространенный в мире Wi-Fi микроконтроллер ESP8266, а в качестве процессора используется Arm Cortex M0+.

Далее с помощью IDA (интерактивного дизассемблера) Хрон смог после нескольких попыток найти начальный адрес загрузки прошивки — 0x08004000, а также потратил некоторое время на понимание какие команды в прошивке соответствуют функциям кофеварки.

В итоге после реверсирования всей прошивки инженеры узнали, где в ней подключается каждое периферийное устройство, как ими управлять, а также все команды, которые может выполнять кофеварка.

Потом Хрон с коллегами разобрались в работе загрузчика, который не является частью пакета прошивки, и изучили процедуру обновления прошивки кофеварки. Оказалось, что когда на экране устройства появляется сообщение «update», то имя сети Wi-Fi изменяется на «Smarter Coffee Update: xx», где xx совпадает с младшим байтом MAC-адреса устройства. Поэтому даже если кофеварка подключена к домашней сети, когда дело доходит до обновления, то этот процесс выполняется через Wi-Fi из приложения в режиме точки доступа (Access Point).

В итоге Хрон с коллегами написали скрипт на Python, в котором был реализован простой загрузчик, который работает в два этапа. Сначала он пытается найти Wi-Fi кофеварки, а затем подключается к нему (по умолчанию кофеварка всегда доступна через 192.168.4.1 порт 2081). Отправив «команду запуска обновления», кофеварка переключается в режим обновления. Далее скрипт ожидает, пока имя Wi-Fi изменится с «Smarter Coffee: xx» на «Smarter Coffee Update: xx». Как только это произойдет, он снова подключается к кофеварке и отправляет новую прошивку. С помощью скрипта им удалось полностью автоматизировать процесс обновления прошивки, который проходит в течение 25 секунд.

Хрон реализовал два варианта прошивки. Первая — это блокировка работы устройства с выводом на экран ссылки, переходя по котором на смартфоне пользователь видел сообщение о необходимости заплатить за возврат работоспособности кофеварки. Вторая — проверить возможность майнинга криптовалюты Monero. Оказалось, что это можно сделать, но, учитывая элементы и архитектуру кофеварки, на частоте процессора 8 МГц ценность такого майнера практически никакая.

Пример работы вымогателя на кофеварке, в процессе отображения угроз на экране из устройства льется кипяток и раздается шипение.

Согласно информации издания SlashGear, подобному взлому повержены первая и вторая версии умной кофеварки от Smarter, которые достаточно распространены в Европе и Великобритании. Однако, производитель в третей версии обещает улучшить ее безопасность.