Проблема: SMS-бюджет сгорает на фиктивных номерах
Интернет-магазин одежды 2MOOD использует SMS для подтверждения регистрации на сайте. Логика простая: у большинства покупателей телефон всегда рядом, сообщение доходит за секунды, а процесс регистрации занимает минимум времени. Одно SMS с кодом - и клиент в личном кабинете.
Но у такой схемы есть уязвимость. Стандартный сценарий работал без ограничений: система отправляла SMS на любой номер при каждом запросе кода. Даже если с одного номера приходил десятый запрос за час - сообщение все равно уходило.
Команда 2MOOD обратила внимание на аномалии. Часть номеров запрашивала код подтверждения подозрительно часто - больше трех раз за полчаса. Нормальному пользователю для регистрации хватает одного SMS, максимум двух-трех, если подводит связь. Частые повторные запросы - признак автоматических ботов или спам-атаки.
Если не решить эту проблему, последствия могут быть серьезными:
- При массовой атаке система перегружается и перестает отправлять SMS реальным клиентам. Покупатели не могут зайти в личный кабинет и уходят без заказа.
- Бюджет на SMS утекает на фиктивные номера, которые никогда не приведут к покупке.
Решение напрашивалось само: нужна автоматическая блокировка подозрительной активности.
Анализ поведения: где проходит граница между клиентом и ботом
Прежде чем настраивать фильтры, в 2MOOD изучили реальное поведение пользователей на сайте. Вопрос был конкретный: сколько SMS обычно запрашивает один человек при регистрации?
Анализ этих показал четкую картину. Подавляющее большинство покупателей обходятся одним сообщением. В редких случаях (плохая связь, задержка доставки SMS) человек запрашивает код повторно - два, иногда три раза. Больше трех запросов за короткий промежуток - это уже аномалия.
На основе этих этих определили два паттерна, которые с высокой вероятностью указывают на бот-активность:
- Больше 3 запросов с одного номера за 30 минут. - вероятная автоматизированная атака в реальном времени.
- Больше 7 запросов с одного номера за 60 часов. - растянутая по времени подозрительная активность.
Второй порог стал основой для формирования сегмента «боты» в CDP-системе компании.
Трехуровневая защита от SMS-фрода
Решение получилось многослойным. Каждый уровень работает независимо, но вместе они создают надежный барьер против фиктивных запросов.
Уровень 1: автоматический сегмент «боты»
В CDP создали динамический сегмент, в который автоматически попадают номера с 7+ запросами кода за последние 60 часов. Сегмент пересчитывается в реальном времени при каждом новом запросе SMS. Дополнительно раз в сутки запускается полный пересчет - благодаря этому «реабилитировать» номера, которые попали в сегмент по ошибке.
Важная деталь: команда проверила, что в сегмент попадает не более 0,01% реальных пользователей. Ложные срабатывания практически исключены.
Уровень 2: ограничения в сценарии отправки
В логику отправки регистрационных SMS добавили два жестких правила:
- Клиентам из сегмента «боты» SMS не отправляются никогда. Полная блокировка.
- С одного номера можно получить не больше трех SMS за 30 минут. Четвертый запрос система игнорирует.
даже если номер еще не набрал 7 запросов для попадания в сегмент «боты», краткосрочный лимит не позволит потратить лишние деньги.
Уровень 3: суточный лимит на все отправки
Третий рубеж обороны - глобальное ограничение: не более 700 SMS в сутки на весь магазин. В обычных условиях количество регистраций за день не превышает эту отметку. Но если лимит вдруг оказывается превышен, система продолжает отправлять SMS реальным клиентам (чтобы не блокировать настоящих покупателей), одновременно оповещая маркетолога и IT-руководителя.
Получив уведомление, команда может оперативно отреагировать: например, временно ужесточить условия до двух SMS за 15 минут. Для реальных клиентов двух сообщений более чем достаточно, а вот эффективность ботов при таком ограничении резко падает.
Система оповещения: мониторинг в реальном времени
Отдельная часть решения - сценарий уведомления сотрудников. Когда очередной номер попадает в сегмент «боты», ответственные сотрудники получают оповещение. По количеству таких попаданий за день можно быстро оценить ситуацию:
- Единичные случаи. - скорее всего, реальные пользователи, которые столкнулись с техническими трудностями при регистрации.
- Больше 20 попаданий за день. - вероятный признак DDoS-атаки. Нужно принимать дополнительные меры по защите сайта.
Такой подход дает команде прозрачность: не просто автоматическая блокировка «вслепую», а полная картина происходящего с возможностью вмешаться при необходимости.
Результаты: 13-кратная экономия на SMS
После запуска трехуровневой защиты ожидания полностью оправдались:
- Доля SMS на фиктивные номера упала со 100% до 8%.. Данные подтверждены отчетами SMS-оператора и внутренней статистикой.
- Расходы на SMS сократились в 13 раз.. Теперь регистрационные коды уходят только тем, кто действительно собирается сделать покупку.
- Все потенциальные атаки были отражены. без негативного влияния на реальных покупателей.
Ни одна серьезная атака не прошла мимо системы мониторинга, а благодаря суточному пересчету сегмента настоящие клиенты не оставались заблокированными надолго.
Что можно вынести из этого кейса
Опыт 2MOOD показывает, что защита от SMS-фрода не требует сложных технических решений. Достаточно грамотно проанализировать поведение пользователей, определить пороговые значения и выстроить многоуровневую систему фильтрации.
Несколько принципов, которые стоит учесть при построении похожей системы:
- Начните с этих.. Прежде чем ставить ограничения, изучите, как ведут себя реальные клиенты. Пороги должны отсекать ботов, а не мешать покупателям.
- Используйте несколько уровней защиты.. Одного фильтра мало. Краткосрочный лимит (3 SMS за 30 минут), долгосрочный сегмент (7 за 60 часов) и суточный потолок (700 SMS) работают в связке и перекрывают разные типы атак.
- Не блокируйте жестко.. Даже при превышении лимитов SMS продолжают уходить реальным клиентам. Блокировка с уведомлением лучше, чем полная остановка.
- Предусмотрите «амнистию».. Ежедневный пересчет сегмента «боты» гарантирует, что случайно заблокированный номер получит доступ через 60 часов.
- Дайте команде видимость.. Автоматические оповещения о попадании в сегмент позволяют различать единичные сбои и массовую атаку, реагируя по ситуации.
Такой подход применим к любому бизнесу, где SMS используются для верификации: e-commerce, доставка еды, финтех, сервисы аренды. Главное - не ждать, пока боты проделают дыру в бюджете, а настроить защиту заранее.



