Почему мы не говорим вам «это бот».
Большинство сервисов фингерпринтинга говорят вам то, что вы хотите услышать: «это бот» или «это человек». Бинарно. Чисто. Неверно. Под вердиктом — чёрный ящик: десятки измерений, сложенных в модель, чьи решения вы никогда не увидите объяснёнными. Вы либо доверяете ответу, либо нет.
Фингерпринтинг — это не классификатор. Это измерение. Реальные пользователи и реальные злоумышленники оставляют перекрывающиеся сигналы. Интересный вопрос не «лжёт ли этот человек о том, кто он», а «как эта сессия соотносится с популяцией, взвешенно с учётом того, какие сигналы легко подделать, а какие — нет».
Модель квитанции
Мы не говорим вам «это бот». Мы говорим вам уровень риска, насколько уверена оценка и причины, лежащие в её основе. Вы решаете.
Каждая категория обнаружения чётко задокументирована. У каждого порога есть обоснование. Когда сессия помечена на реальном клиенте, ваша команда может обосновать решение — перед юридическим отделом, командой продукта, самим клиентом. Никакого чёрного ящика. Никакой таинственной модели. Только откалиброванные измерения, которые вы можете проверить и настроить.
Уверенность — это реальное число с реальным источником. Так же как и уровень риска. Так же как и список причин. Когда ваш сервер верифицирует сессию, вы получаете не вердикт — вы получаете квитанцию. Решение за вами, потому что только ваш код знает, что стоит на кону.
Бинарные вердикты скрывают цену ошибки
У бинарного вердикта два режима отказа:
- Ложное срабатывание: реальный клиент помечен как бот. Цена — отток, обращения в поддержку и медленная эрозия доверия к вашему продукту. Вы никогда не увидите её в своём дашборде, потому что клиент просто уходит.
- Ложный пропуск: бот пропущен как реальный клиент. Цена — чарджбэк, потеря от мошенничества или фейковая регистрация. Вы увидите её громко и чётко в своём дашборде.
Когда видна только цена ложных пропусков, модели дрейфуют в сторону избыточной блокировки. Это тихий режим отказа каждого бинарного классификатора в сфере противодействия мошенничеству.
Откалиброванные уровни риска и показатель уверенности переворачивают асимметрию. Ваша команда выбирает, где провести черту — и черта может быть разной для каждой поверхности. Форма регистрации может проверять раньше; платёжная форма может ждать более веских доказательств; публичный API только для чтения может разрешать почти всё и всё равно логировать для последующего просмотра. Модель даёт вам исходные данные; ваша политика проводит черту.
Пятиуровневая модель риска
Мы предоставляем пять уровней риска, каждый с определённым значением:
| Уровень | Что означает | Действие по умолчанию |
|---|---|---|
| Минимальный | Скучная середина популяции — большая часть реального трафика людей. | разрешить |
| Низкий | Небольшая аномалия, обычно приватные браузеры или необычное железо. | разрешить и наблюдать |
| Средний | Указывает на автоматизацию или мошенничество, но не является убедительным. | проверить (второй фактор, усиление) |
| Высокий | Веские доказательства автоматизации, подделки или злоупотребления инфраструктурой. | блокировать или серьёзная проверка |
| Критический | Несколько категорий согласны — почти наверняка вредоносно. | блокировать, логировать для просмотра |
Значения стабильны между релизами. Мы не ужесточаем модель незаметно и внезапно не начинаем блокировать клиентов, которые вчера были «низкими». Дрейф калибровки трактуется как критическое изменение — объявляется заранее, со старыми порогами, по-прежнему доступными через флаг конфигурации.
Уверенность — это отдельная ось
Уровень риска говорит, насколько вероятно, что сессия вредоносна. Показатель уверенности говорит, насколько мы знаем о ней.
Сессия, проведшая полную минуту на странице, с активностью мыши, клавиатуры и прокрутки, даёт нам много для работы. Сессия, которая запросила оценку через пару секунд и сразу отправила данные, даёт нам очень мало — мы не знаем достаточно, чтобы быть ни в чём уверены.
Когда уверенность низкая, правильным действием обычно является отложить, а не блокировать. Сессия с высоким риском и низкой уверенностью — отличный кандидат для мягкой проверки — решите CAPTCHA, и тогда будет достаточно данных для принятия решения.
Причины — это аудит-трейл
К каждой оценке риска прилагаются причины — именованные сигналы, сработавшие при сборе. Этот список является аудит-трейлом. Когда на стол вашему инженеру попадает обращение в поддержку «мне заблокировали регистрацию», инженер может достать результат верификации и увидеть в точности, какие сигналы сработали.
Если сработал сигнал, который не должен был, ваш инженер может найти соответствующую категорию в документации, прочитать обоснование её калибровки и либо настроить порог, либо добавить клиента в белый список. Весь цикл замыкается за минуты, а не за дни.
Калибровка вместо вердиктов
Краткая выжимка:
- Вердикты — это маркетинговая поверхность; измерения — инженерная поверхность.
- Ваша антифрод-команда принимает окончательное решение — мы даём ей доказательства.
- Ложные срабатывания недопустимы; настройки по умолчанию консервативны по причине.
- Причины — это аудит-трейл; каждая оценка прослеживается до сигналов, которые её породили.
Вот и всё. Вот вся философия.
Дополнительное чтение
- Категории угроз — шесть категорий, вносящих вклад в оценку.
- Инженерные принципы — операционные ограничения, вытекающие из этой философии.
- Сценарии использования — как это выглядит в продакшне.