- У нас есть дыра в безопасности.
- Ну, хоть что-то у нас в безопасности.
— Айфоны ломаются каждый год, и ничего.
Эту ошибку я нашел случайно.
Я уверен, что ни одному тестировщику даже в голову не придет пойти по этому пути — он настолько неочевиден, дик и непредсказуем, что только случайность помогла мне поучаствовать в bug bounty от Xiaomi. В этом посте я расскажу, как мне это удалось, что это повлекло за собой и чем китайские сервисы — зло.
Фон
В операционной системе MIUI можно создать два «пространства» (я для простоты буду называть их профилями) — полностью независимые наборы настроек, приложений и файлов, недоступные друг для друга (не считая отдельного приложения «Импорт»).Оба профиля могут быть защищены паролем, и вы, например, можете использовать устройство с кем-то еще.
в чем именно проблема?:
Проблема в том, что я нашел способ перейти со второго профиля на первый без ввода пароля.Этот был возможно через приложение Google Drive, которое по умолчанию установлено в глобальной прошивке на MIUI 8 и доступно сразу во втором профиле.
У второго профиля меньше прав, чем у первого — в нем, например, нельзя включать и отключать мобильный интернет или управлять резервными копиями на Google Диске.
При попытке это сделать приложение предложит перейти в системный диалог «Управление пользователями» и выбрать пользователя, от имени которого выполняется действие.
Но что-то пошло не так, и выбор основного профиля в этом окне привел не к управлению резервными копиями, а к переходу на него без ввода пароля.
Сомнительная аналитика №1
В принципе, все в порядке.Чтобы воспользоваться уязвимостью, необходимо знать хотя бы один из паролей и иметь физический доступ к телефону.
Но даже внутри ограниченной группы получить доступ к данным, хранящимся во втором профиле, может быть крайне неприятно.
С другой стороны, у меня не было времени толком изучить принцип появления экрана «Управление пользователями».
Вероятно, существуют системные методы для вызова его из других приложений, но я не заходил так далеко.
Как с этим жить?
Сначала думал сообщить об этом как об ошибке приложения Google (слышал, что за это иногда дают деньги).Но здравый смысл все же подсказывал, что дыра в безопасности операционной системы может стоить дороже (и исправлять ее нужно быстрее), и я отправился искать программу bug bounty от Xiaomi. Короткие поиски привели меня к Центр безопасности Сяоми .
Сейчас туда добавлено не менее 30 процентов английского перевода, а тогда это выглядело примерно так:
Центр безопасности Xiaomi, sec.xiaomi.com
С помощью Google-переводчика я прочитал некоторые общие сведения о программе и понял, что найденная уязвимость соответствует категории High — сюда входят SQL-инъекции, уязвимости в бизнес-логике, XSS с доступом к куки, получение информации о пользователях устройства, повышение привилегий, обход экранов входа и ряд других вещей.
«Ладно», — подумал я, нашел наугад форму и пошел описывать проблему.
Форма отправки сообщения об уязвимости
Google-переводчик, встроенный в Chrome, хорош лишь до того момента, когда дело касается динамически генерируемых выпадающих списков.
Хотя поля title,description,proof-of-concept и Solution были как-то понятны, я совершенно не понимал, чего от меня хотят в списках.
Пришлось путем просмотра HTML-кода подбирать иероглифы из нужных мест на странице и переводить их вручную.
Спасибо, теперь все ясно
Оказалось, что первый список определял тип уязвимости, второй его указывал, а в третьем нужно было выбрать масштаб проблемы — от низкого до серьезного.
Я это естественно написал проблема чрезвычайно важная и дайте мне деньги быстро, я больше не могу, я такой хороший парень .
Для подтверждения своих намерений я записал пятиминутное видео, где на ломаном английском объяснил, как эксплуатировать уязвимость и легко получить доступ к личным данным.
Я отправил информацию об уязвимости и способах ее устранения (6 апреля) и стал ждать.
Как долго вам пришлось ждать?
11 апреля прямо в Центре безопасности я получил сообщение от анонимного сотрудника Xiaomi. Это было так: > Спасибо за ваше сообщение, это не проблема miui, поэтому она незначительна и не требует награды.Спасибо за вашу поддержку.
> Спасибо за отправку, это не проблема miui, она помечена как незначительная и останется без ответа.
Спасибо за поддержку.
"Как это может быть? Но это! Такой же! Дыра! Размер! С! Кимберлит! Подобрать! В Якутии! — Я так возмущался следующие четыре часа, а потом успокоился и написал ответное сообщение.
Так: > Miui позволяет просматривать экран «Управление пользователями» и переключать учетные записи без пропуска.
в любом случае, есть ли у вас план исправить эту проблему? > В MIUI можно попасть на экран управления пользователями и переключаться между учетными записями без пароля.
В любом случае, вы планируете решить проблему? Я морально был готов подождать еще пять дней (так как все равно остался без награды), но ответ пришел через час: > извините, моя ошибка, проверю еще раз > Извините, моя вина.
Я проверю еще раз.
Сомнительная аналитика №2
Из-за «ошибки» оператора дыра могла закрыться примерно через бесконечность.Не знаю, как это работает в других программах сканирования уязвимостей, но в Xiaomi такой подход явно наводит на депрессивные мысли.
Ошибка, однако, была исправлена через две недели после повторного тестирования — в последнем обновлении системы этот трюк больше не повторялся.
По той же причине я сейчас пишу этот пост.
К счастью, тестирование не заняло много времени и на следующий день я получил награду в размере 1000 (тысячи) монет в магазине внутри Центра Безопасности.
Что еще магазин ?
На сайте sec.xiaomi.com есть каталог вещей, которые можно купить за валюту победы внутренней безопасности (извините, я просто не смог придумать более простого объяснения).
Ни в чем себе не отказывайте за тысячу призовых монет
Поняв, что ничего полезного из товара я выбрать не смогу, я начал изучать еще один интересный вариант – можно было «купить» юани за монеты, по курсу 1 юань за 1,5 монеты.
Быстрый подсчет показал, что моя тысяча монет быстро превратилась примерно в 5200 рублей (по курсу на момент написания статьи), и это выглядело как очень хорошее вознаграждение за нажатие пары кнопок в сомнительных местах системы.
Конечно, я наполнил свою корзину юанями на 900 монет (квантованно по 150).
Я, конечно же, нажал на китайскую версию надписи «Оформить заказ».
И, конечно же, я сразу столкнулся с кучей проблем.
Здесь был бы скриншот формы, если бы я его не потерял
Им потребовалось мое имя, номер банковской карты и идентификационный номер CVV.
Форма ввода китайского имени
Ни имя, ни номер российского паспорта не подходили — китайский идентификационный номер содержит от 12 до 16 символов, а для имени было отведено только от 2 до 6.
Но после этого мне не хотелось упускать награду, и я решил написать письмо в техподдержку и узнать, как иностранцы выводят деньги (которых, судя по никам охотников за уязвимостями, было много) ).
Ладно, с помощью переводчика ищем нужный раздел, поехали.
… дерьмо.
Ладно, мне пришлось выбирать продукты.
Поместится тысяча монет. умная лампа , умная камера на 360 градусов И Bluetooth-динамик .
Вместе они стоят около 7200 рублей (или $124).
Остальные три десятка монет я проиграл в «колесе фортуны» на том же сайте.
К счастью, регистрация проще, и мне осталось придумать, как проставить в поле международный адрес доставки.
с ограничением в 100 символов , а также сократить имя до шести букв – Евгений, а в «Заметках» написать полное имя.
Июль заканчивался.
Сколько мне еще ждать?
После заполнения формы в вашем личном кабинете ничего не изменилось.1 августа я наконец решил уточнить, что происходит с доставкой, и написал в том же диалоге сообщение, где сообщил об уязвимости.
Ничего не произошло.
Двадцать пятого августа я предпринял еще одну попытку и через пять дней получил ответ с треком посылки и извинениями.
Доставка заняла еще неделю, и я наконец получил посылку с наградой за ошибку от Xiaomi. Приятно, что курьер EMS доставил до двери и не пришлось никуда ехать.
Счастливый конец.
В комментариях я готов ответить на ваши вопросы о любых этапах этого тянутого во времени процесса.
Спасибо за внимание! Теги: #информация без #Xiaomi #дыра #bug bounty #miui #история успеха #Android #google диск #информационная безопасность #тестирование ИТ-систем #тестирование мобильных приложений
-
Караджич, Вук Стефанович
19 Oct, 24 -
Изучение Рпа. Дорожная Карта Разработчика
19 Oct, 24 -
Эволюция Докера. Часть 1
19 Oct, 24 -
Об Обложке
19 Oct, 24 -
Взлом Форума Htmlbook.ru
19 Oct, 24 -
Использовали Ли Вы Макеты Объектов?
19 Oct, 24