Бесплатно Экспресс-аудит сайта:

18.10.2020

Взлом умного замка мужского целомудрия

Автор: pentestpartners

Краткое содержание

  • Умный Bluetooth-замок мужского целомудрия позволяет владельцу указать доверенное лицо, которое может дистанционно управлять устройством с помощью мобильного приложения / API.

  • Множественные недостатки API дают возможность любому недоброжелателю удаленно заблокировать устройство и помешать пользователю освободить себя.

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

  • Точные данные о местоположении пользователя, включая личную информацию и личные чаты, также могут “утечь” через API.

  • Поставщик сначала отреагировал на информацию об уязвимости, а затем сорвал три дедлайна выпуска исправления

  • В дальнейшем поставщик отказался от взаимодействия с нами, хотя большинство проблем решалось переходом на вторую версию API, однако первая версия API попустительски оставалась доступной.

  • Данный пост публикуется по согласованию с Internet of Dongs .

Умные игрушки для взрослых и мы

Мы давно не писали об умных игрушках для взрослых, но клетка целомудрия Qiui Cellmate настолько нас заинтересовала, что просто не смогли пройти мимо. Итак, Qiui Cellmate - устройство целомудрия для взрослых, предназначенное для блокировки выступающих частей тела владельца.

Существуют и другие устройства целомудрия для мужчин, но этот механизм блокировки и зажима оснащен поддержкой Bluetooth (BLE) и имеет сопутствующее мобильное приложение. Основная идея устройства состоит в том, что владелец может передать управление замком кому-то другому.

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

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

В чем риск для пользователей?

Мы обнаружили, что удаленные злоумышленники могут отключить Bluetooth разблокировку, навсегда заблокировав пользователя в устройстве. Физической разблокировки нет. Трубка закреплена на кольце, надетом на основание гениталий, что дополнительно осложняет ситуацию. Чтобы освободить владельца потребуется угловая шлифовальная машина или другой подходящий тяжелый инструмент.

Местоположение, пароль в виде открытого текста и другие личные данные также могут “утечь” через API без необходимости аутентификации.

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

Как видно на графике раскрытия информации, находящимся в нижней части сообщения, часть проблем была устранена, а часть нет. При этом поставщик просто перестал отвечать нам, журналистам и розничным продавцам. Учитывая тривиальный характер обнаружения некоторых из этих проблем, а также разработку компанией другого устройства, которое потенциально может нанести еще больший физический вред («внутреннее» устройство целомудрия), мы решили, что просто обязаны опубликовать результаты исследования на данном этапе.

Мобильное приложение

Мы очень быстро обнаружили серьезную уязвимость конфиденциальности в мобильном приложении: все конечные точки API не прошли проверку подлинности, используя только длинный «memberCode» для выполнения запросов. Сам memberCode в некоторой степени детерминирован и основан на дате регистрации пользователя в службе. Однако нам удалось найти более простой способ, используя более короткий «friend code».

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

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

Номера и данные о местоположении

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

Данные memberCode = DoS для пользователя

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

GET /list?memberCode=20200409xxxxxxxx HTTP/1.1
Host: qiuitoy.com
Connection: close
    "deviceId": 0,
   "deviceCode": "201909xxxxxxxxxx",
   "deviceName": "Cellmatexxxx",
   "deviceNick": "Cellmatexxxx",
   "deviceNumber": "QIUIxxxxxxxxx",
   "deviceType": 2,
   "deviceBlue": null,
   "deviceBlueAddr": "F9:34:02:XX:XX:XX",
   "isEncrypt": 1,

И как только мы получим информацию об устройствах, сможем определить, какие разрешения на блокировку имеются у пользователей (могут ли они разблокировать устройство самостоятельно либо должны просить кого-то другого):

GET /wear?memberCode=20200409xxxxxxx&deviceCode=20191204xxxxxx HTTP/1.1
 Host: qiuitoy.com

Для пользователей с правом самостоятельной разблокировки, мы сможем поменять эту настройку и заблокировать владельцев на устройстве:

POST /binding HTTP/1.1
Host: qiuitoy.com
Connection: close
 memberName=Pwned&memberCode=20200409xxxxxx&deviceCode=20191204xxxxxx

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

Проблемы BLE

Сама реализация BLE требует запроса API для генерации команды разблокировки на основе токена, ранее записанного в блокировку. Это дает возможность проанализировать запросы и ответы, чтобы сгенерировать правильный ключ или перепроектировать само оборудование блокировки ...

Приведенное выше взято из декомпилированного приложения для Android. Подключив его к Frida, можно увидеть уведомления (36f6) и записи (36f5), связанные сначала с проверкой уровня заряда батареи, а затем с разблокировкой (третья запись):

[+] BluetoothGattCallback constructor called from com.apicloud.uzble.AndroidBle$2
[BLE Write  =>] UUID: 000036f5-0000-1000-8000-00805f9b34fb data: 0x56f3430769ddd6e1603xxx
[BLE Notify <=] UUID: 000036f6-0000-1000-8000-00805f9b34fb data: 0xe01012b3074d111c98bxxx
[BLE Write  =>] UUID: 000036f5-0000-1000-8000-00805f9b34fb data: 0x25f8a92325fd9cfc7ea79xxx
[BLE Notify <=] UUID: 000036f6-0000-1000-8000-00805f9b34fb data: 0x2717dd996ab4a017a6ceexxx
[BLE Write  =>] UUID: 000036f5-0000-1000-8000-00805f9b34fb data: 0x9ee90373a2d3f156b3557xxx
[BLE Notify <=] UUID: 000036f6-0000-1000-8000-00805f9b34fb data: 0xbcdaea06fa1cb94f3f1c2596xxx
[BLE Write  =>] UUID: 000036f5-0000-1000-8000-00805f9b34fb data: 0x9ee90373a2d3f156b3557d52xxxx
[BLE Notify <=] UUID: 000036f6-0000-1000-8000-00805f9b34fb data: 0xc04dab04c54c818d808a78c79adef839

Но подождите, этот шестнадцатеричный код из приложения для Android и характеристики BLE выглядят ужасно знакомыми. Тут точно такая же реализация, как и у Nokelock, за исключением того, что объявленное устройство называется «OKGSS101».

Ключ шифрования AES для каждой блокировки возвращается в вызове API, в котором перечислены устройства, которые мы создали ранее. Массовая разлочка через BLE?

Заблокированы? Вот обходной путь

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

Конструкция стопорного штифта для снятия использует двигатель, но, к сожалению, не железный, так что не получится использовать для открывания ни магниты, ни «bumping» . Я добился небольшого успеха с помощью регулировочной шайбы, сделанной из нарезанной банки. Однако использовать заостренный металл рядом с чем-то важным не безопасно.

«Лучшая» альтернатива - открыть область печатной платы, где находятся передняя кнопка и индикатор:

Крышка приклеена, но снялась без особых усилий и повреждений. Трех вольт (две батареи AA), приложенных к белому и желтому проводам, достаточно для непосредственного запуска двигателя разблокировки (белый = отрицательный, желтый = положительный), метод , известный как «spiking».

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

Вывод

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

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

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

Многие продавцы игрушек для взрослых в последние годы практически полностью пренебрегают вопросами конфиденциальности и безопасности. К счастью, такие проекты, как Internet of Dongs , помогли многим продавцам повысить безопасность в этой сфере.

График раскрытия информации

Раскрытие информации, к сожалению, прошло не так гладко, как мы изначально надеялись:

20 апреля 2020 г .: мы отправили им сообщение с вопросом, кому сообщить о проблеме. Они ответили очень быстро. Круто!

Нет проблем, поэтому мы попробовали еще раз без PGP:

Итак, мы отправили им детали. А в ответ тишина…

26 мая 2020 года: мы снова напомнили разработчикам о проблеме, и получили ответ, что все исправят до 6 июня.

06.11.2020: обновленная версия появилась в магазинах приложений и игр. В обновленной версии в основном решены проблемы, связанные с принудительной аутентификацией запросов. Тем не менее, старые конечные точки API остались включенными, а новые API по-прежнему возвращали точное местоположение пользователей.

17 июня 2020 г .: мы отправили сообщение с подробным описанием оставшихся проблем, но ответа не получили.

25 июня 2020 г .: мы снова связались с разрабочиками через журналиста. Qiui ответили, что не хотят (или не могут) решить оставшиеся проблемы, поскольку у них «всего» было 50 000 долларов.

30 июня 2020 г .: мы отправили дополнительное электронное письмо (и сообщение в Twitter) с потенциальными исправлениями оставшихся проблем (на всякий случай письмо перевели на китайский язык). Однако ответа не последовало.

10 июля 2020 г .: мы связались с двумя розничными продавцами устройства в Великобритании, чтобы сообщить им о проблемах. Один снял устройство с продажи и вступил в контакт с оптовиками в ЕС. Qiui ответила розничным продавцам, что оставшиеся проблемы будут исправлены «в августе».

11 сентября 2020 г .: С нами связался RenderMan из @InternetOfDongs : он помог другому исследователю раскрыть информацию с компанией Qiui. @MikeTsenatek самостоятельно обнаружил проблему сброса пароля и также изо всех сил пытался быть услышанным поставщиком. Он случайно заметил мой твит и подумал, что мы могли также исследовать это устройство.

Мы созвонились и обменялись удивительно похожим опытом взаимодействия с Qiui! Его рецензия доступна здесь .

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

RenderMan определенно заслуживает похвалы за свои постоянные усилия по посредничеству в диалогах между исследователями и поставщиками игрушек для взрослых. Некоторые поставщики значительно улучшили безопасность и конфиденциальность своих продуктов благодаря его напряженной работе.

4 октября 2020 г .: К нам обратился третий исследователь с аналогичными проблемами.

6 октября 2020 г .: Статья была опубликована по согласованию с другими сторонами.