Слогер Создать блог
Разработка

Почему email-верификация не защищает триал: разбор системы из трёх сигналов

На примере B2B SaaS с реальными цифрами: как отличить координированных абьюзеров от живых пользователей, почему автоблокировка опасна и что делать вместо неё.

Проверка email и блокировка одноразовых доменов — это не защита от фрода. Это вежливое уведомление. Если защита триала заканчивается на «проверили почту + заблокировали Mailinator», вы построили не оборону, а лежачий полицейский, который отсеивает самых ленивых 20% абьюзеров и оставляет вас один на один с остальными 80%.

Почему это ощущается как защита? Email- проверки дают логи, отклонённые регистрации и дашборд с надписью «заблокировано фрода: 1 204 за месяц». Этот дашборд врёт. Настоящий абьюзер не вводит throwaway@guerrillamail.com. У него 40 настоящих Gmail, 40 настоящих украденных или виртуальных карт и скрипт, который ротирует резидентные прокси. Против такого email-верификация бессильна. Именно он съедает вашу юнит-экономику, оставаясь невидимым для проверки MX-записей.

Что было на старте

Разберём на живом примере. B2B-продукт с триалом 14 дней, тарифом $49 в месяц и самообслуживанием. Базовая защита — email-верификация (MX + список одноразовых доменов) плюс ограничение на один триал с похожего домена (простой Levenshtein по локальной части адреса). За 90 дней:

  • регистраций — 18 400;
  • конверсия в платящих — 3,3% вместо обычных 4,8%;
  • заблокировано email-слоем — 1 340 (7,3%);
  • себестоимость одного триала — $4,10 с учётом инфраструктуры, серии писем и времени саппорта.

Падение конверсии связали с рекламой на аудиторию с pricing-страницы конкурента. Но подтвердить это email-проверкой было невозможно.

Три сигнала, которые действительно работают

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

Сигнал Что ловит Подводный камень
Device fingerprinting Холст, WebGL-рендерер, шрифты, несоответствие таймзоны и локали. Один и тот же отпечаток на многих «уникальных» аккаунтах. Железо с отключённым canvas API или общий VPN дают одинаковые отпечатки у реальной команды.
Поведенческий тайминг Время до первого действия, энтропия движений мыши, разница между вставкой и вводом пароля. Скрипты двигаются по прямым, люди «дрожат». Сотрудники корпорации, которые проходят один и тот же онбординг-чеклист, ведут себя одинаково.
Платёжный прокси Страна BIN-кода карты против IP и адреса, паттерны картинга (много фейлов за короткое время с разных аккаунтов, но один токен карты). Препейд-карты и мобильный NAT дают ложные срабатывания.

Одиночные сигналы намеренно не блокировали. Остановить могли только сочетание минимум двух.

Цифры после внедрения

Повторный прогон на тех же 18 400 регистрациях дал такую картину:

  • 2 890 (15,7%) помечены как высокорисковые по сочетанию минимум двух сигналов;
  • ручная проверка случайной выборки из 150 подтвердила 138 случаев — точность 92%;
  • один и тот же отпечаток устройства всплывал в 6–11 «уникальных» регистрациях, одна семья BIN, география IP и биллинга не совпадала;
  • конверсия среди оставшихся легитимных триалов выросла до 4,6% — почти вернулась к исторической норме;
  • экономия на инфраструктуре и саппорте — примерно $11 850 за квартал.

Финансистов греет последняя цифра. Рост — греет восстановление конверсии. Ни того, ни другого не было бы при защите одной email-проверкой.

Главная ошибка: автоблокировка

На второй неделе мы сделали то, что однажды делает каждая команда: настроили связку «отпечаток + поведение» на автоблокировку вместо мягкого челленджа. И вжух — корпоративные триалы реального потенциального клиента полетели в бан. QA-отдел, который тестировал продукт с общего VPN на корпоративных ноутбуках с отключённым canvas API, шёл по одному чеклисту друг за другом. Шесть живых регистраций с одного аккаунта, заблокированы как фрод-кольцо. Молча, без возможности обжаловать.

Узнали через одиннадцать дней, когда сейлз сказал, что перспективный клиент «махнул рукой на триал — говорит, продукт сломан». Продажа на $40K ARR почти умерла. Аномалия-детекция показала, что поведение необычное, но не объяснила, почему. Залоченные корпоративные сети и скоординированный абьюз дают почти одинаковую статистику. Сигнал был прав. Автоматическое действие поверх него — нет.

Лечится это не «более умным ML». Лечится это организационным правилом: блокировать только то, что подтверждено тремя независимыми сигналами. Два сигнала — ещё не повод для хард-блока. Один — вообще не повод. Всё, что собрало меньше трёх источников, должно уходить в челлендж: короткая задержка, лёгкая верификация или очередь на ручную проверку.

Что делать с нуля

  1. Начните с бесплатных self-hosted библиотек для отпечатков — не тащите на сервер чужой SDK, который утекает данные вендору.
  2. Добавьте поведенческие метрики на форму регистрации: время до первого клика, кривизна движения мыши, способ ввода пароля.
  3. Собирайте псевдонимизированный токен карты и сверяйте BIN, IP и биллинговый адрес.
  4. Никогда не блокируйте по одному сигналу. Мягкий челлендж — ваш друг.
  5. Готовьтесь к ложным срабатываниям: VPN-выходы, препеды и корпоративные NAT — это не баги, а реальность.

Отстройка защиты для триала — это не «внедрить библиотеку и забить». Сначала копите статистику на челленджах, потом, когда правила подтвердятся на живых данных триангуляции, включайте автоматику. Не наоборот.

По материалам: career. Текст переработан редакцией Слогера.

← На главную

Рекламное место — Конец поста
Реклама · Слогер

Комментарии (0)

Войдите, чтобы комментировать.

Пока нет комментариев. Будьте первым.