Наша команда столкнулась с непростой задачей: мобильное приложение одного из клиентов стало жертвой целенаправленной атаки. Злоумышленники использовали ботов, которые через API мобильного приложения массово отправляли запросы на SMS-подтверждение для регистрации и восстановления пароля.

Суть проблемы:

Атака привела к двум критическим последствиям:

  1. Финансовые потери: Каждая отправленная SMS — это прямые операционные затраты. Боты генерировали тысячи бесполезных запросов, что создавало угрозу существенного перерасхода бюджета;
  2. Ухудшение пользовательского опыта: Легитимные пользователи могли столкнуться с задержками в получении кодов или вовсе не получить их из-за исчерпания лимитов, что подрывало доверие к сервису.

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

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

  • Не испортит UX: Классические капчи могут раздражать в мобильном приложении, где важна скорость и простота;

  • Будет кроссплатформенным: Решение должно работать одинаково стабильно на iOS и Android;

  • Не увеличит размер приложения: Минимизация воздействия на вес APK/IPA файла;

  • Интегрируется в нативный/кроссплатформенный стек: В нашем случае приложение было написано на Kotlin и Swift.

Решение: Бесшовная интеграция Яндекс SmartCaptcha в мобильное приложение

После анализа мы выбрали Яндекс SmartCaptcha. Ключевыми аргументами стали:

  • Простота и узнаваемость для пользователей: Мы реализовали классический и интуитивно понятный вариант с галочкой «Я не робот». В большинстве случаев пользователю требуется совершить всего одно действие, чтобы доказать, что он не бот. Дополнительные задания (например, выбор тематических изображений) система предлагает только в случае сомнений, что практически не встречается у реальных пользователей;

  • Адаптивный подход: В подозрительных случаях пользователю предлагается знакомое и простое решение— тап по кнопке «Я не робот»;

  • Надёжная защита от мобильных ботов: Технология эффективно распознает эмуляторы, модифицированные APK и другие инструменты мошенников;

  • Отличная документация для мобильных разработчиков: Готовые SDK и подробные гайды для iOS (Swift) и Android (Kotlin/Java) позволили провести интеграцию быстро и безболезненно.

Как это работает в приложении:

  1. Пользователь нажимает «Получить код»;

  2. SmartCaptchaв фоне анализирует поведение и метаданные запроса;

  3. В90% случаев система мгновенно пропускает запрос, и SMS уходит мгновенно;

  4. В редких случаях система показывает всплывающее WebView с кнопкой «Я не робот». После её нажатия запрос подтверждается.

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

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

Результаты внедрения:

  • Сокращение количества мошеннических запросов к SMS-сервису на 99.8%. Атака была полностью остановлена;

  • Сохранение бесшовного пользовательского опыта. Более90% пользователей вообще не заметили изменений;

  • Прямая экономия бюджета на услугах SMS-рассылки;

  • Повышение безопасности без ущерба для удобства и конверсии на этапе регистрации.

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

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

Остались вопросы?

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