
Пару месяцев назад мы обнаружили довольно серьезный сбой в системе безопасности, затронувший многих пользователей OnePlus. Компания сливала адреса электронной почты сотен своих пользователей через приложение «Shot on OnePlus». Самая важная проблема сейчас исправлена, но вот подробный разбор того, как это произошло и что OnePlus еще предстоит исправить.
Shot on OnePlus
Если у вас есть устройство OnePlus, вы, возможно, заметили приложение «Shot on OnePlus», доступное через меню выбора обоев. Как следует из названия, оно содержит фотографии, загруженные пользователями OnePlus, что позволяет установить их в качестве текущих обоев. Каждый день в приложении появляется одна новая фотография.
OnePlus, похоже, работает над устранением этой проблемы безопасности. См. обновления ниже для получения дополнительной информации.
Пользователи могут загружать фотографии как из самого приложения, так и с веб-сайта. В любом случае, для загрузки фотографии требуется войти в систему. Пользователи также могут настроить свой профиль, включая имя, страну и адрес электронной почты, как в приложении, так и на веб-сайте. Наконец, когда пользователи загружают фотографию, они могут указать заголовок, местоположение и описание фотографии. Если фотография выбрана, она отображается публично в приложении Shot on OnePlus и в Галерее на их веб-сайте.
- Меню обоев
- Shot on OnePlus
При загрузке фотографии пользователи могут ввести заголовок, местоположение и описание фотографии. Если фотография выбрана OnePlus, она отображается публично в приложении Shot on OnePlus и в галерее на их веб-сайте.
Что пошло не так?
Приложение Shot on OnePlus использует API для создания связи между их сервером и приложением. Фотографии и другая информация, которую необходимо сохранить онлайн, должны проходить через этот API. Как правило, API, особенно тот, который может использоваться для получения частной информации о пользователях, защищен различными способами.
Вместо этого API, используемый OnePlus, был и остается довольно легкодоступным. Их API — размещенный на open.oneplus.net — может использоваться кем угодно, имеющим токен доступа. Токен доступа требуется для большинства действий с API. Для получения токена доступа требуется незашифрованный ключ, но это его единственная цель. И токен доступа, и незашифрованный ключ являются буквенно-цифровыми кодами.
API в основном используется для получения общедоступных фотографий. Но, как видно на следующем скриншоте — который является ответом, полученным с использованием API, используемого OnePlus — можно было найти конфиденциальные данные, которые обычно не должны быть общедоступными.
(Чтобы защитить личность пользователя, любое поле, которое могло бы привести к идентификации этого человека, было размыто.)
Неизвестно, как долго происходила эта утечка, но поскольку у OnePlus не было причин делать эти данные общедоступными после выхода приложения, мы полагаем, что оно сливало данные с момента своего выпуска — по крайней мере, несколько лет. Одна из ключевых уязвимостей этой утечки была связана с тем, что OnePlus называет «gid».
Что такое «gid» и как он используется?
«gid» — это буквенно-цифровой код, используемый для идентификации пользователя. Любой, кто когда-либо входил в приложение Shot on OnePlus, имеет «gid» в этом API. Он состоит из двух частей:
- Две буквы, указывающие, является ли пользователь из Китая (CN) или откуда-то еще (EN)
- Уникальный номер, например 123456
Этот идентификатор используется API OnePlus для поиска фотографий, загруженных конкретным пользователем, или для их удаления. Он также мог использоваться для получения информации об этом пользователе (имя, адрес электронной почты, страна) и даже для обновления этой информации без какой-либо реальной защиты.
Существовал и другой недостаток. Поскольку вторая часть является простым числом, можно было очень легко находить других пользователей, просто перебирая различные номера.
Что сделала OnePlus по этому поводу?
Мы связались с OnePlus по поводу этих проблем, но не получили прямого ответа. Однако после нашего электронного письма они быстро внесли изменения в API, и он больше не сливает gid и адреса электронной почты пользователей, чьи фотографии публикуются.
Что касается недостатка «gid», OnePlus добавила некоторую дополнительную защиту к некоторым частям API. Теперь они пытаются гарантировать, что API используется только приложением Shot on OnePlus, но это можно обойти очень легко. Кроме того, они теперь скрывают адрес электронной почты, добавляя звездочки, например «d****@9to5mac.com».
Заключение
Это не первая проблема безопасности, с которой сталкивалась OnePlus на своих устройствах. Еще в 2017 году Кристофер Мур, инженер-программист, обнаружил, что OnePlus собирает личную информацию о пользователях в приложении, используемом для аналитики. Однако, на сегодняшний день адреса электронной почты, собранные приложением, насколько мне известно, не являются общедоступными.
В случае этой новой проблемы OnePlus должна полностью проверить свои API и соответствующим образом обновить приложение на всех устройствах. Они были осведомлены об этих недостатках с начала мая, но не проявили никакой публичной озабоченности. Они не видели необходимости раскрывать, что адреса электронной почты пользователей были легко доступны любому. На самом деле, все еще возможно изменять имя, адрес электронной почты, домашнюю страницу и код страны любого пользователя. Чтобы исправить это, OnePlus необходимо полностью переработать свой API и обновить приложение «Shot on OnePlus».
Мы связались с OnePlus для получения комментариев по этому вопросу и сообщим об обновлениях, как только получим ответ.
Обновление: OnePlus предоставила нам заявление по этому поводу:
OnePlus серьезно относится к безопасности и расследует все поступающие сообщения.
Обновление 2: OnePlus, похоже, работает над исправлением API. В настоящее время получение и изменение информации об учетной записи заблокировано, при этом появляется следующее сообщение:
Функционал обновляется, пожалуйста, попробуйте позже.
Обновление 3: OnePlus объявила на своих форумах, что работает над обновлением серверной части функции галереи Shot on OnePlus.
Мы работаем над обновлением нашей серверной части для функции Shot on OnePlus Gallery. Поэтому она временно будет недоступна. Приносим извинения за неудобства и надеемся вскоре вернуться в сеть с обновлениями и новыми версиями.
Неясно, связано ли это с нашими выводами, поскольку нам никогда не сообщали об этом.