Автостопом по галактике

Цель: поиск уязвимостей в мобильных приложениях
Территория охоты: отобранные мобильные приложения
Срок проведения: с 08.05.2024 по 10.06.2024

Что предлагаем искать

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

Что поисследовать в диплинках?

В наших приложениях реализовано множество диплинков — в некоторых приложениях их может быть несколько десятков и более. Нас особенно интересуют те, при помощи которых можно повлиять на работу приложения (mutable deeplinks) или получить доступ к чувствительным данным, например:

  • Диплинк, при помощи которого можно заставить приложение выполнить обращение к контролируемому багхантером веб-сервису с подстановкой сессионных заголовков
  • Диплинк, при помощи которого можно изменять настройки приложения, например, переключить используемый бекенд yamobileapp://debug?set_api_backend=//example.com


Что поисследовать в WebView ?

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

В некоторых случаях WebView может обращаться к Javascript interface/bridge, где может быть реализована расширенная функциональность. Нам интересны ситуации, когда можно отобразить контролируемый домен в WebView и, используя доступные JS-интерфейсы, получить доступ, например, к текущей геолокации.

Механизм синхронизации аккаунтов пользователя

Для бесшовной аутентификации в наших приложениях применяется Account Manager. Нас интересует возможность получения доступа к аккаунту пользователя со стороны 3rd-party приложений.

Область тестирования

Tier 1
  1. Яндекс.Ключ 🔗
  2. Механизм синхронизации аккаунтов между приложениями 🔗
Tier 2
  1. Почта 🔗
  2. Диск 🔗
  3. Карты 🔗
  4. Авто.ру 🔗
  5. Навигатор 🔗
  6. Маркет 🔗
  7. Яндекс Go 🔗
  8. Яндекс Про 🔗
  9. Еда 🔗
  10. Лавка 🔗
  11. Яндекс Пэй 🔗
  12. Умный дом с Алисой 🔗
Tier 3
  1. Путешествия 🔗
  2. Кинопоиск 🔗
  3. Музыка 🔗
  4. Недвижимость 🔗

Награды

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

Ниже в таблице указано максимальное значение награды.

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

Категория
Описание
Tier 1
Tier 2
Tier 3
Исполнение произвольного кода

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

Пользователь не должен давать согласие и дополнительные разрешения со стороны ОС.

Например:

  • Перезапись исполняемого .so файла вредоносным .so файлом
  • Исполнение Java Exec функции с произвольной командой
500 000
300 000
200 000
Доступ к критичной информации
Уязвимости, связанные с получением доступа к чувствительным данным, которые обрабатывает мобильное приложение. 

Например, загрузка произвольного URL в webview в сочетании с возможностью кражи OAuth токена. 

500 000
300 000
150 000
Прочие уязвимости

Прочие уязвимости, оказывающие влияние на безопасность, например:

  • Изменение логики работы приложения (например, mutable deeplinks)
  • Intent redirections (только с демонстрацией импакта)
  • Path traversal (e.g. zip slip), которые позволяют переписать файл внутри приватного контейнера приложения
  • Фишинг через загрузку произвольного URL в webview
200 000
150 000
100 000

Коэффициенты для награды в зависимости от способа эксплуатации

Категория
Вознаграждение

Полностью удаленная эксплуатация

200%
1-click эксплуатация
100%
Пользователю необходимо установить вредоносное приложение
50%

Примеры расчета наград:

1. Вы обнаружили возможность выполнения произвольного кода в Tier 1 приложении, при этом достаточно отправить сообщение пользователю, которое даже не обязательно открывать. В этом случае награда будет 1 000 000 рублей (500 000 * х2 за удаленную эксплуатацию)

2. Вы нашли способ прочитать заказы (tier 2), но надо убедить пользователя кликнуть на ссылку/диплинк из чата. Награда будет 300 000 (1-click = x1).

3. Вы смогли отобразить фишинговый сайт внутри tier 1 приложения, но для эксплуатации нужно установить вредоносное APK. Награда будет 100 000 (200 000 * x0.5 за необходимость доставить APK)

Какие данные мы относим к критичным

📍Геоданные

  • Данные о местоположении пользователя
  • Сохраненные приватные адреса
  • Возможность узнать местоположение пользователя

💰 Финансовые данные

  • История операций и баланс счета
  • Доступные лимиты Сплита
  • Информация о заработках исполнителей

💾 Сервисные данные

  • Информация о поездке или заказе пользователя
  • Письма, информация о встречах, документы
  • Навыки из Алисы
  • История поисковых запросов
  • Реальные телефоны пользователей/курьеров/водителей/владельцев объявлений (не подменные)

Основные правила и исключения

  • "1-click эксплуатация" подразумевает, что для воспроизведения уязвимости достаточно перейти по ссылке
  • "Полностью удаленная эксплуатация" подразумевает, что от пользователя не требуется никаких действий, будь то установка приложений или клики. Например уязвимость можно проэксплуатировать находясь в одной WIFI сети, в радиусе действия bluetooth, или через отправку пользователю письма, либо сообщения.
  • Уязвимость по-умолчанию должна затрагивать самую свежую версию приложения. Отчеты, где эксплуатация возможна лишь в неактуальных версиях, скорее всего, не будут вознаграждены.
  • Hardcoded API ключи будут вознаграждаться только в случае, если инженерами безопасности будет доказана возможность исчерпания ресурсов.
  • Публичные Zero-day уязвимости в third-party зависимостях, которые были исправлены не менее, чем 1 месяц назад, будут рассматриваться индивидуально и только при наличии доказательства эксплуатации

Яндекс не выплачивает вознаграждение за:

  • Отчет сканеров без предоставления доказательства эксплуатации
  • Уязвимости, для эксплуатации которых требуется наличие root-привилегий, jailbreak и любой другой модификации приложений или устройств
  • Уязвимости, которые требуют физического доступа к девайсу
  • Отсутствие механизма или недостаточно безопасную реализацию SSL/Certificate pinning
  • Отсутствие аттестации среды
  • Хранение критичных данных в открытом виде в приватном контейнере приложения без доказательства возможности получения данных извне
  • Аутентификационные данные, которые были получены без эксплуатации уязвимости в мобильном приложении
  • Strandhogg и подобные
  • Доступ к некритичным медиафайлам в контейнере приложения
  • Уязвимости, которые требуют чрезмерно избыточного количества действий от пользователя


Удачной охоты!



Fri May 17 2024 23:05:37 GMT+0300 (Moscow Standard Time)