К содержимому
MoranaLabs.
Инженерные гайды5 мин чтения0 просмотров

Потоковый антифрод для e-commerce: как ловить фейки и возвраты в реальном времени 

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

0xReality
SELECT user_id, COUNT(*) AS orders
FROM checkout_events
WINDOW TUMBLING (SIZE 5 MINUTES)
GROUP BY user_id, ip_address
HAVING COUNT(*) > 5 AND sum(amount) > 50000;

Любой туториал по безопасности предложит вам этот кусок Flink SQL как решение проблемы. Вы выкатываете это в прод. Через час в саппорт врывается разъяренный клиент: вы заблокировали корпоративный аккаунт архитектурного бюро, которое заказывало кресла в новый офис. Тем временем ферма ботов на резидентных проксях спокойно высасывает ваш маркетинговый бюджет через приветственные бонусы, делая строго по одному заказу с уникальных отпечатков. Классика. Антифрод и потоковая аналитика для маркетплейса и e-commerce в реальном времени: фейк-аккаунты, накрутки и мошеннические возвраты — это не поиск трех совпадений по IP-адресу. Это гонка вооружений, где угрозы эволюционируют быстрее, чем ваши дата-инженеры пишут простые агрегации.

Банковский AML и транзакционный фрод давно живут в понятной парадигме. Там есть жесткие правила регулятора, Kafka, Flink и четкие паттерны отмывания. Шаг влево, шаг вправо — блокировка до выяснения. В e-commerce все работает иначе. Ваш враг — не кардер с ворованной кредиткой, а профессиональный абузер. Он создает тысячи мультиаккаунтов для сбора промокодов. Он пишет фейк-отзывы конкурентам через ферму мобильных устройств. Он проворачивает возвратный фрод: заказывает оригинальный флагман, а в пункт выдачи приносит искусно запаянную коробку с куском мыла внутри. Батчевая аналитика здесь абсолютно бесполезна. Если вы ищете аномалии раз в сутки по ночам, вы просто констатируете уже нанесенные убытки. Деньги ушли. Товар выдан. Репутация честного селлера уничтожена накрученным отрицательным рейтингом.

Единственный рабочий рубеж обороны — миллисекунды до подтверждения заказа или выплаты продавцу. Вы обязаны принять взвешенное решение в окне между кликом «Оплатить» и фактической маршрутизацией транзакции в платежный шлюз. Это накладывает жесточайшие требования на архитектуру чекаута. Вам нужны потоковые признаки, которые невозможно подделать сменой прокси или подменой User-Agent. Граф связей аккаунтов: пересекался ли этот новый, кристально чистый девайс с узлом, который полгода назад был замечен в хантинге за скидками? Поведенческие фичи: скорость скролла, тайминги между нажатиями клавиш, траектория мыши на фронтенде. Живой человек сомневается, тупит, промахивается мимо кнопок. Скрипт на Puppeteer бьет в нужные DOM-элементы с холодной машинной точностью. И все это нужно посчитать, обогатить историческим контекстом из Redis или Aerospike и прогнать через ML-модель за 50-70 миллисекунд. Иначе вы ломаете конверсию и теряете клиентов из-за таймаутов.

Вместо примитивных оконных функций нужен полноценный стриминговый feature store. В нем агрегаты считаются инкрементально. Как только событие попадает в топик, движок обновляет стейт: сколько раз этот хэш браузера мелькал на этапе авторизации за последние пять минут? Какова дельта времени между добавлением в корзину и вводом CVC-кода? Если эта дельта меньше пары секунд — перед вами не человек, а автофиллер, который парсит украденную базу дамп-карт. Эти признаки рассчитываются на лету. Главная архитектурная боль здесь — размер графа. Фродеры работают плотными сетями. Они прогревают аккаунты месяцами, перекидывают между ними мелкие суммы, заказывают дешевые чехлы для телефонов, чтобы базовый алгоритм пометил их как надежных покупателей. Когда наступает сезонная распродажа, эта сеть одновременно бьет по самым дорогим позициям, применяет цепочки скомпрометированных промокодов и исчезает. Чтобы поймать этот паттерн в потоке, движок должен уметь обходить локальные окрестности графа за миллисекунды. Сделать это обычным реляционным JOIN-ом невозможно. Вы упретесь в CPU и положите базу. Нужны in-memory структуры, стоящие в горячем контуре вплотную к инференсу.


Антифрод и потоковая аналитика для маркетплейса и e-commerce в реальном времени: цена ложного срабатывания

Теперь к неудобным цифрам, которые вендоры не показывают на демо-стендах SaaS-решений. Допустим, ваш чекаут держит 2000 транзакций в секунду в пике «Черной пятницы». Отдел рисков закручивает гайки жесткими правилами. Доля пойманного фрода взлетает до 95%. Отличный KPI для отчета безопасников. Но вместе с ним ложноположительные срабатывания (False Positive Rate) улетают к 3%. Три процента от 2000 TPS — это 60 заблокированных реальных покупателей каждую секунду. Шестьдесят полных корзин, которые превратились в чистую ненависть к платформе и ушли к конкуренту. За час распродажи вы теряете миллионы упущенной выручки, спасая десятки тысяч рублей от фродеров. Это трейд-офф, который стабильно убивает растущие маркетплейсы. Строгие эвристики эффективно режут фрод, но вместе с ним они безжалостно вырезают живой бизнес.

Машинное обучение в стриминге решает эту проблему за счет многомерности. Модель видит не просто совпадение хэша устройства, а нетипичную плотность графа вокруг конкретного селлера, который внезапно начал получать сотни пятизвездочных отзывов от аккаунтов-однодневок с нулевой историей покупок. Алгоритм взвешивает десятки слабых сигналов, которые по отдельности выглядят безобидно, но в сумме дают профиль накрутчика. Но ML требует непрерывного тюнинга. Модели деградируют со временем. Профессиональные фродеры реверс-инжинирят ваши веса за пару недель слепых тестов, нащупывая точные пороги блокировки методом проб и ошибок. Обучили модель и забыли — значит, через месяц она станет тыквой.

Наш подход в MoranaLabs опирается на пайплайны непрерывного дообучения и строгий on-premise для инференса. Индустриальный e-commerce оперирует гиперчувствительными данными. Графы связей пользователей, детализированные профили поведения, истории платежей — все это не должно покидать ваш защищенный контур. Отправлять такие массивы по REST API в стороннее облако — это архитектурная халатность, где вы теряете контроль над latency и дарите чужому вендору ядро вашей коммерческой тайны.

Сборка подобной системы не имеет ничего общего с покупкой коробочного софта по подписке. Это глубокая интеграция тяжелого потокового движка в кровеносную систему вашего чекаута. Мы строим кастомный потоковый антифрод от 750 000 ₽, проектируя графовые и поведенческие пайплайны, которые держат p99 latency в пределах пары десятков миллисекунд на серверах заказчика. Никакого хайпа ради хайпа. Только суровая профильная инженерия, которая отличает реального покупателя от скрипта в тот самый момент, когда это спасает сделку.

  • #anti-fraud
  • #e-commerce
  • #machine-learning
  • #streaming
ПоделитьсяTelegramX
рассылка

Новые статьи — на почту

Лонгриды про ML в проде, edge и компьютерное зрение — сразу после выхода.

Канал в Telegram: morana.log

Без спама. Нажимая «Подписаться», соглашаетесь с обработкой персональных данных

бесплатный pdf-гайд

Edge AI или облако: когда тащить нейросеть на железо

Признаки, фреймворк выбора и прикидка экономии — короткий PDF-гайд на почту.

PDF · 5 страниц · без спама. Нажимая «Получить», соглашаетесь с обработкой персональных данных

Читать дальше
— заявка

Опишите задачу  ответим как инженеры. 

Оставьте имя и Telegram — остальное обсудим. Без брифов на 40 слайдов и звонков по три раза.

Отвечаем за пару часовотвечает инженер, а не отдел продажNDA по запросу

Сюда напишем — это быстрее всего

Или сразу написать в Telegram

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