Хабрахабр

Первое правило антифрода — никому не рассказывать про антифрод

Но понятное дело, почему оно работает. На самом деле, правило фиговое. Чтобы никто-никто не мог заглянуть в щель и узнать, как этот антифрод работает и вообще, чего там внутри. В среде безопасников считается, что антифрод должен быть такой суперсекретной штуковиной за семью печатями с парой голодных Церберов поблизости. Безопасникам это добавляет важности, а самому механизму антифрода — иллюзорную защиту.

Если пойти погуглить насчет новостей в разрезе «Клиента банка Х взломали и увели Y рублей», то такие новости будут всегда. Принцип security through obscurity не работает. Почти каждый день (почти — потому что не всегда об этом пишут).

Все криптографические и математические алгоритмы тоже описаны, причем весьма подробно. Реализации всех известных протоколов шифрования открыты и доступны для изучения. То есть садись, запасайся кофе или энергетиками, изучай все это добро да ломай себе потихоньку.

А вот чем такая система открытее, тем быстрее въедливое сообщество укажет своим критически настроенным перстом на все косяки в реализации. Поэтому система, которая считается защищенной только потому, что люди не знают, как она работает — вообще ни разу не защищенная. Что позволит эти косяки устранить.

Я работаю именно в парадигме открытости протоколов и систем, и в этом посте я хочу рассказать про устройство стандартного антифрода, о работе нашего в RBK.money, почему будущее за OpenSource, а также о том, как всё это может работать в идеальном мире.

Который мы с вами и можем приблизить.

Антифрод под капотом

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

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

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

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

И вот из этого базиса можно вывести критерии хорошего антифрода.

Три кита

Удобный, красивый и понятный. Во-первых, это интерфейс написания правил. Об этом будет чуть ниже.

Во-вторых, специальный язык написания этих правил.

В-третьих, быстрая обработка этих написанных правил.

Антифрод как сущность ставится в разрыв платежной системы. Почему быстро — потому что скорость тут реально важна. И тут есть два подхода подобной реализации.

1) Bypass

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

2) Минимизация рисков

Если есть подозрение на фрод, то бизнес тормозится, разбираются в ситуации, и только потом платеж проводится. В этой ситуации бизнес понимает, что антифрод, в общем-то, не просто так поставили в систему, и прислушивается к его показаниям. Или не проводится.

Поэтому антифрод должен быть быстрым, максимально быстрым, и при этом адекватно конфигурироваться.

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

  • ip
  • fingerprint
  • БИН банка
  • ID мерчанта
  • токен карты

Например, посмотреть прямо сейчас, что проводится с определенного фингерпринта. И есть задача вида схлопнуть в окне движущееся сейчас количество платежей с конкретным значением. Это очень помогает работе. Или уточнить проходящие платежи по конкретной карте.

Он не может быть плохим или хорошим, это инструмент, требующий настройки. Да, кстати, важно понимать, что антифрод — это не вещь в себе. И если антифрод работает хреново, это не потому, что антифрод хреновый — это его хреново настроили, вписали не те правила или не учли еще кучу важных штук.

Не только потому, что из банка, где антифрод хреновый, все клиенты разбегутся, а потому, что отрасль тут сильно зарегулирована. А настраивать его правильно важно для бизнеса. Ну а если совсем все грустно, то отключат нафиг от платежной системы. Если в банк приходит слишком много фродового чарджбека, это повод для штрафов и дополнительных проверок.

Если ты оперируешь чужими деньгами, люди тебе их доверяют, а ты не в состоянии их защитить — на кой ты вообще на рынке? И это правильно. Открой шиномонтаж, например.

Поэтому у тебя или хорошо настроенный антифрод, или никакого вообще, ибо тебя выкинули с рынка и он тебе больше не нужен.

Своя рубаха

Когда мы писали свой антифрод, мы смотрели на все это, проверяли работоспособность, и поставили в итоге ClickHouse.

У нас есть платёжная система, которой активно пользуются. Работает это так. Все эти события мы единым потоком сливаем в ClickHouse, где они успешно агрегируются и обрабатываются. Соответственно, генерится большое количество событий. И обрабатываются быстро.

Вполне себе решение, работало по подписке, особых неудобств не доставляло. Некоторое время назад у нас был вендорский антифрод. Писали мы его суммарно месяца два, внешняя апишечка описана swagger-ом. Но когда мы вывели для себя критерии правильного антифрода, мы стали писать свой. Ну а вдруг там навернется чего. Когда закончили, стали тестить, сначала пускали почти весь трафик на старый, а небольшую часть — на новый.

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

Ведь на входе есть база (сами платежи), есть определенный датасет, есть модель, которая легко описывается уже известными имеющимися фродами. Антифрод — это отличная почва для использования возможностей машинного обучения. В общем, для полноценной тренировки нейросети тут есть все, бери и пользуйся. То есть можно для модели просто взять и на старом потоке платежей отметить — вот, зацени, тут был фрод, ату его, ату.

Система управляется бодрым curl напрямую из консоли. Уютного интерфейса мы пока не сделали, так как пока мы на этапе отлаживания протокола и правил (их у нас штук 200+, новые пишем ежедневно). Как видите, роботам пока не удалось полностью спихнуть с работы кожаных мешков. И тут уже главная задача антифродера (да, есть такой специально обученный человек, который именно этим занимается) — сидеть, внимательно смотреть на трафик, получать чарджбеки из-за фрода, корректировать правила.

Но пока не прямо отличный-отличный. В общем, новый сейчас хорош. Это вот ощутимо прокачает его возможности. Хотим впилить туда dry run — это когда ты написал правило, а потом прогнал через него какой-то конкретный платеж с пометкой «А что было бы с платежом, если бы к нему применилось это правило».

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

Идеальная система

А вот идеал, как обычно, достижим не так легко. Когда мы допишем наш антифрод, он станет отличным.

То есть опенсорсный антифрод на опенсорсном языке и удобный обмен правилами. Идеал, как по мне, построен на абсолютном OpenSource.

Давайте на примере про подобную идеальную систему защиты от DDoS.

Если на ресурсе какого-то маленького оператора начинается DDoS, он оперативненько смотрит, какому оленю не спится, добавляет айпишники негодяя в блеклист. Представим, что всех текущих операторов мамкины дудосеры достали так сильно, что они объединились и стали использовать единую базу засранцев. Обновление блеклиста расходится по единой системе, и все, что связано с этой атакой, блокируется на уровне клиентских подключений.

Вопрос доверия и надежности такой системы решается блокчейном.

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

ОК, если представить, что взломали сам антифрод у одного банка — это все еще проблема банка. Система распределенная, у нас же блокчейн, взломать ее нельзя. А сами движки антифрода в каждом банке свои. Потому что общий у нас только список правил.

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

Финтех вот вполне себе может потянуть, именно платежные системы и стартапы. Так что такую идеальную историю банки вряд ли осилят.

кто хорошо научится с этим работать, тот сможет взять неплохой куш — индустрия огромна, там миллиарды. Machine learning вкупе с OpenSource — это будущее антифрода. Но идеально решения пока нет.

А раз его нет — то есть хорошие возможности выйти на рынок.

Что предлагает RBKmoney

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

Общее опенсорсное решение позволяет совместно обмениваться экспертизой, обмениваться правилами защиты.

Не говоря уже о комьюнити, которое совместно может допиливать движок, делать какие-то новые вещи, про которые мы или не подумали или не успели сделать.

Множество участников платежной индустрии сейчас разрабатывает свои собственные решения, еще больше — покупают какие-то готовые из тех что есть на рынке. Это переводит уровень защиты в совершенно новую плоскость.

Наше решение выиграет любой тендер как минимум по стоимости — с опенсорсным решением трудно конкурировать. Не покупайте.

Репозитории открыты, исходники есть у вас уже сейчас. Давайте разрабатывать вместе. Комьюнити всегда лучше, чем что-то делать в одиночку.

Представление RBKmoney Fraudbusters как отдельного продукта, с мануалами по сборке и интеграции будет темой следующей статьи и это будет скоро.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть