10.08.2018

Исследование безопасности кофемашин Nespresso Prodigio и Jura E8

Защита подобного рода IoT-устройств настолько беззуба, что нам остается только плакать и смеяться одновременно.


Автор: Ken Munro

Недавно я заинтересовался безопасностью кофемашин и чайников. Защита подобного рода IoT-устройств настолько беззуба, что нам остается только плакать и смеяться одновременно.

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

В нашем офисе есть несколько кофе машин, некоторые из которых мы используем по назначению, а некоторые – исследуем на безопасность с особой тщательностью J.

Кофемашина Nespresso Prodigio

Кофемашина, показанная на рисунке выше, была моим первым подопытным устройством. Мы проводили исследование этого устройства на конференции Defcon 25 в Лас-Вегасе. Параллельно проводилась работа с другими девайсами (см. рисунок ниже).

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

Есть только одна маленькая проблема: вначале нужно подойти к кофемашине и вставить капсулу.

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

Короче говоря, достаточно примитивное устройство.

Более того, в этой кофемашине отсутствуют даже самые простые средства защиты при подключении через Bluetooth. Как и в случае с игрушкой My Friend Cayla отсутствует Bluetooth PIN, режим запуска соединения и вообще хоть что-то, напоминающее защиту.

Поскольку на данный момент к кофемашине не подключено ни одно устройство, ЛЮБОЙ ТЕЛЕФОН МОЖЕТ ВЫПОЛНИТЬ ПОДКЛЮЧЕНИЕ, и соответственно, кто угодно может сварить себе кофе. Вам даже не потребуется выполнять реверс-инжиниринг приложения. Нужно лишь просто загрузить копию из AppStore или Play Store.

Найти кофемашины, доступные для подключения, не составит особого труда. BLE ID = Prodigio_<MAC address>:

Таким образом, если вы оказались достаточно предусмотрительным и зарядил капсулу перед сном, то на утро можете получить холодный кофе.

Исследование приложения

Но у нас пытливый ум и мы провели исследование. Совсем небольшое. В ранних версиях Android-приложения была доступна функция «call_phone». То есть тихие вызовы прямо из программы.

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

Единственная проблема: если некто установил минимальный порог в 65536 капсул или сделал так, чтобы приложение «думало», что машина выполнила больше операций, чем есть на самом деле, вы получите очень много уведомлений о покупке новых капсул.

Кофемашина Jura E8

Капсулы вдохновляли меня недолго, и на смену пришла кофемашина типа bean-to-cup, на которую мы потратили немалое количество денег:

Устройство на рисунке выше было выбрано по причине присутствия возможности подключения через Bluetooth. Как вы могли догадаться, никаких защитных мер там тоже не предусмотрено.

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

Еще более забавным является тот факт, что, если кто-то варит кофе, вы можете остановить процесс через BLE. Вы даже можете управлять крепостью кофе.

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

Заключение

Как вы могли убедиться, все найденные проблемы достаточно забавны, но в то же время представляют серьезную угрозу безопасности. В основном все уязвимости в подобного рода IoT-устройствах имеют место быть из-за отсутствия каких-либо средств защиты соединений через Bluetooth.

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