MarioSMS
SMS pumping: когда боты запрашивают ваши коды

SMS pumping: когда боты запрашивают ваши коды

Автор: MarioSMS team · · 5 мин чтения

Содержание
  1. Как работает SMS pumping?
  2. Во сколько это может обойтись?
  3. Как атака выглядит в логах?
  4. Как это остановить?
  5. Как проверить меры защиты без реальных пользователей?
  6. Частые вопросы

SMS pumping, или накрутка SMS-трафика, — это мошенничество против компании, которая отправляет коды подтверждения. Боты вводят в форму регистрации или входа номера из дорогих диапазонов, компания платит за отправку кода на каждый из них, а часть этих денег возвращается к тем, кто управляет ботами, через долю в плате за терминацию. Коды никто не вводит. Атака видна по скачку расходов на SMS, кодам в страны, где у вас нет клиентов, и падающей доле подтверждённых кодов.

Как работает SMS pumping?

Каждое SMS, которое отправляет компания, стоит денег, и большая часть платы уходит мобильной сети, которая доставляет сообщение. В некоторых странах эта плата за терминацию во много раз выше цены SMS в США или Западной Европе. На этой разнице pumping и зарабатывает.

  1. Организатор договаривается о разделе выручки с тем, кто может собирать плату за терминацию на блоке номеров, например с небольшим оператором или посредником на маршруте.
  2. Боты находят форму, которая отправляет SMS по запросу. Подходят формы регистрации, входа, сброса пароля и «пришлите мне ссылку на приложение».
  3. Боты вводят номера из этого блока, часто подряд, с множества IP-адресов, с постоянной частотой или всплесками.
  4. Ваш SMS-провайдер доставляет каждый код и выставляет вам счёт. Плата проходит по маршруту, и оговорённая на шаге 1 доля достаётся мошеннику.
  5. Коды никто не вводит. Ни один аккаунт так и не создаётся.

В отрасли это называют искусственно завышенным трафиком (artificially inflated traffic), а SMS pumping — его распространённое название. Он отличается от SMS-бомбинга, цель которого — завалить кодами телефон одного человека. Pumping бьёт по вашему счёту, и номера выбирают по тому, во сколько они вам обойдутся.

Во сколько это может обойтись?

Самый известный пример — Twitter в 2023 году. Илон Маск заявил, что компания теряет около 60 млн долларов в год на фальшивом SMS-трафике двухфакторной аутентификации, и в том же месяце Twitter объявил, что с 20 марта двухфакторная аутентификация по SMS останется только у платных подписчиков Twitter Blue. В небольшой компании первым признаком часто становится счёт за SMS в несколько раз больше обычного, причём лишние расходы сосредоточены в нескольких странах.

Как атака выглядит в логах?

СигналОбычный трафикPumping
Конверсия (подтверждённые коды ÷ отправленные коды)Стабильная и высокаяРезко падает, часто почти до нуля в атакованных странах
Страны назначенияСовпадают с вашими клиентамиСтраны, где вы не работаете, или внезапный всплеск в одной
Шаблоны номеровСлучайныеНомера подряд из одного диапазона, повторяется один и тот же префикс
Ритм запросовПовторяет ваш суточный трафикРовная машинная частота или всплески в необычные часы
СеансыЗапросы идут от людей, которые проходят по экранам приложенияЗапросы кода без какой-либо другой активности в сеансе

Конверсия — самый полезный отдельный показатель. Отслеживайте её по странам и настройте оповещение на падение. Если в страну уходят сотни кодов, а подтверждаются единицы, это либо сломанная доставка, либо pumping, и в обоих случаях нужно, чтобы кто-то разобрался.

Как это остановить?

Сочетайте несколько мер, потому что у каждой есть брешь.

  1. Разрешите только страны, где вы работаете. SMS-провайдеры позволяют отключать страны назначения, в Twilio это называется geo permissions. Если в стране нет ваших клиентов, туда ничего не должно уходить.
  2. Ограничьте частоту по номеру, по префиксу и по IP. Одному номеру редко нужно больше нескольких кодов в час, а блок номеров подряд никогда не должен получать по коду на каждый.
  3. Добавьте препятствие перед отправкой. Показывайте запрос кода только после того, как пользователь сделал что-то, что дорого обходится боту, например прошёл CAPTCHA или подтвердил почту. SMS отправляйте последним шагом.
  4. Замедлите повторные отправки. Увеличивайте паузу между запросами повторной отправки, например 30 секунд, затем 60, затем несколько минут.
  5. Следите за конверсией по странам и приостанавливайте отправку в любую страну, где она упала ниже вашего порога, пока кто-нибудь не проверит.
  6. Используйте антифрод-инструменты провайдера. Некоторые API верификации блокируют номера и префиксы, уже замеченные в pumping, ещё до отправки сообщения.
  7. Предложите канал, отправка через который ничего не стоит, например приложение-аутентификатор, код на почту или ключ доступа (passkey), чтобы меньше входов вообще зависело от SMS.

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

Как проверить меры защиты без реальных пользователей?

Чтобы увидеть то же, что видит пользователь, нужны реальные номера в реальных странах: приходит ли код, сколько он идёт и не блокируют ли новые лимиты законную вторую попытку. Для этого подходят арендованные номера. API запрашивает номер в выбранной стране, проверяет, пришёл ли код от вашего приложения, и освобождает номер по окончании теста, так что тестовый прогон со стороны получателя подтвердит, что разрешённый список стран и таймеры повторной отправки работают как задумано. Как выстроить такие прогоны, описано в руководстве по тестированию OTP, а статья как одноразовый код доходит до телефона объясняет, каким маршрутом код идёт от вашего провайдера до устройства.

Частые вопросы

Незаконен ли SMS pumping?

Со стороны мошенников схема держится на обмане ради сбора платы и нарушает правила допустимого использования SMS-провайдеров. Для компании, против которой она направлена, практический вопрос в счёте. Провайдеры выставляют счёт за накрученные сообщения как за любые другие доставленные SMS, а возврат остаётся на их усмотрение, поэтому предотвращение важнее споров.

Остановит ли CAPTCHA SMS pumping сама по себе?

Нет. Некоторые организаторы платят сервисам, которые решают CAPTCHA, так что она повышает стоимость атаки, но брешь не закрывает. Вместе с ограничением стран и лимитами частоты она сокращает число кодов, которые могут запросить боты.

Может ли мой собственный номер участвовать в атаке SMS pumping?

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