Как Я Участвовал В Bug Bounty От Xiaomi И Что Я За Это Получил

- У нас есть дыра в безопасности.

- Ну, хоть что-то у нас в безопасности.

— Айфоны ломаются каждый год, и ничего.

Эту ошибку я нашел случайно.

Я уверен, что ни одному тестировщику даже в голову не придет пойти по этому пути — он настолько неочевиден, дик и непредсказуем, что только случайность помогла мне поучаствовать в bug bounty от Xiaomi. В этом посте я расскажу, как мне это удалось, что это повлекло за собой и чем китайские сервисы — зло.



Фон

В операционной системе MIUI можно создать два «пространства» (я для простоты буду называть их профилями) — полностью независимые наборы настроек, приложений и файлов, недоступные друг для друга (не считая отдельного приложения «Импорт»).

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



в чем именно проблема?:

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

Этот был возможно через приложение Google Drive, которое по умолчанию установлено в глобальной прошивке на MIUI 8 и доступно сразу во втором профиле.

У второго профиля меньше прав, чем у первого — в нем, например, нельзя включать и отключать мобильный интернет или управлять резервными копиями на Google Диске.

При попытке это сделать приложение предложит перейти в системный диалог «Управление пользователями» и выбрать пользователя, от имени которого выполняется действие.

Но что-то пошло не так, и выбор основного профиля в этом окне привел не к управлению резервными копиями, а к переходу на него без ввода пароля.



Сомнительная аналитика №1

В принципе, все в порядке.

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

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

С другой стороны, у меня не было времени толком изучить принцип появления экрана «Управление пользователями».

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



Как с этим жить?

Сначала думал сообщить об этом как об ошибке приложения Google (слышал, что за это иногда дают деньги).

Но здравый смысл все же подсказывал, что дыра в безопасности операционной системы может стоить дороже (и исправлять ее нужно быстрее), и я отправился искать программу bug bounty от Xiaomi. Короткие поиски привели меня к Центр безопасности Сяоми .

Сейчас туда добавлено не менее 30 процентов английского перевода, а тогда это выглядело примерно так:

Как я участвовал в Bug Bounty от Xiaomi и что я за это получил

Центр безопасности Xiaomi, sec.xiaomi.com С помощью Google-переводчика я прочитал некоторые общие сведения о программе и понял, что найденная уязвимость соответствует категории High — сюда входят SQL-инъекции, уязвимости в бизнес-логике, XSS с доступом к куки, получение информации о пользователях устройства, повышение привилегий, обход экранов входа и ряд других вещей.

«Ладно», — подумал я, нашел наугад форму и пошел описывать проблему.



Как я участвовал в Bug Bounty от Xiaomi и что я за это получил

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

Хотя поля title,description,proof-of-concept и Solution были как-то понятны, я совершенно не понимал, чего от меня хотят в списках.

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



Как я участвовал в Bug Bounty от Xiaomi и что я за это получил

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

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

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

Я отправил информацию об уязвимости и способах ее устранения (6 апреля) и стал ждать.



Как долго вам пришлось ждать?

11 апреля прямо в Центре безопасности я получил сообщение от анонимного сотрудника Xiaomi. Это было так: > Спасибо за ваше сообщение, это не проблема miui, поэтому она незначительна и не требует награды.

Спасибо за вашу поддержку.

> Спасибо за отправку, это не проблема miui, она помечена как незначительная и останется без ответа.

Спасибо за поддержку.

"Как это может быть? Но это! Такой же! Дыра! Размер! С! Кимберлит! Подобрать! В Якутии! — Я так возмущался следующие четыре часа, а потом успокоился и написал ответное сообщение.

Так: > Miui позволяет просматривать экран «Управление пользователями» и переключать учетные записи без пропуска.

в любом случае, есть ли у вас план исправить эту проблему? > В MIUI можно попасть на экран управления пользователями и переключаться между учетными записями без пароля.

В любом случае, вы планируете решить проблему? Я морально был готов подождать еще пять дней (так как все равно остался без награды), но ответ пришел через час: > извините, моя ошибка, проверю еще раз > Извините, моя вина.

Я проверю еще раз.



Сомнительная аналитика №2

Из-за «ошибки» оператора дыра могла закрыться примерно через бесконечность.

Не знаю, как это работает в других программах сканирования уязвимостей, но в Xiaomi такой подход явно наводит на депрессивные мысли.

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

По той же причине я сейчас пишу этот пост.

Как я участвовал в Bug Bounty от Xiaomi и что я за это получил

К счастью, тестирование не заняло много времени и на следующий день я получил награду в размере 1000 (тысячи) монет в магазине внутри Центра Безопасности.



Что еще магазин ?

На сайте sec.xiaomi.com есть каталог вещей, которые можно купить за валюту победы внутренней безопасности (извините, я просто не смог придумать более простого объяснения).



Как я участвовал в Bug Bounty от Xiaomi и что я за это получил

Ни в чем себе не отказывайте за тысячу призовых монет Поняв, что ничего полезного из товара я выбрать не смогу, я начал изучать еще один интересный вариант – можно было «купить» юани за монеты, по курсу 1 юань за 1,5 монеты.

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

Конечно, я наполнил свою корзину юанями на 900 монет (квантованно по 150).

Я, конечно же, нажал на китайскую версию надписи «Оформить заказ».

И, конечно же, я сразу столкнулся с кучей проблем.

Здесь был бы скриншот формы, если бы я его не потерял Им потребовалось мое имя, номер банковской карты и идентификационный номер CVV.

Как я участвовал в Bug Bounty от Xiaomi и что я за это получил

Форма ввода китайского имени Ни имя, ни номер российского паспорта не подходили — китайский идентификационный номер содержит от 12 до 16 символов, а для имени было отведено только от 2 до 6. Но после этого мне не хотелось упускать награду, и я решил написать письмо в техподдержку и узнать, как иностранцы выводят деньги (которых, судя по никам охотников за уязвимостями, было много) ).

Ладно, с помощью переводчика ищем нужный раздел, поехали.



Как я участвовал в Bug Bounty от Xiaomi и что я за это получил

… дерьмо.

Ладно, мне пришлось выбирать продукты.

Поместится тысяча монет. умная лампа , умная камера на 360 градусов И Bluetooth-динамик .

Вместе они стоят около 7200 рублей (или $124).

Остальные три десятка монет я проиграл в «колесе фортуны» на том же сайте.

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

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

Июль заканчивался.



Сколько мне еще ждать?

После заполнения формы в вашем личном кабинете ничего не изменилось.

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

Ничего не произошло.

Двадцать пятого августа я предпринял еще одну попытку и через пять дней получил ответ с треком посылки и извинениями.

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

Счастливый конец.

В комментариях я готов ответить на ваши вопросы о любых этапах этого тянутого во времени процесса.

Спасибо за внимание! Теги: #информация без #Xiaomi #дыра #bug bounty #miui #история успеха #Android #google диск #информационная безопасность #тестирование ИТ-систем #тестирование мобильных приложений

Вместе с данным постом часто просматривают: