Payment fraud. (1 часть)
Введение
Всё началось просто, я нашёл статью на форуме, про фрод. Парень там разбирал Fraud Console из видео 2014 года. В ответах я увидел, что многим была информация полезна и было бы интересно узнать, что сейчас твориться в этой Fraud системе. Не долго думая, я нашёл сайт, после посмотрел на цены... 5000$/мес. Дороговато для меня... Но, я не сдался, найдя несколько обходных путей, создав сайт с регистрацией и продажей музыки, а также зарегистрировав учётку на некого Charles из facebook. Я попал в ту самую заветную консоль... А так же получил кучу интересных PDF мануалов.
Но, у меня то продаж на сайте нет. Как же ещё можно посмотреть функционал, реакцию фрода и т.д. Недолго покопавшись в консоли, я нашёл обучалку, но обучалка - это не то, хочется самому покопаться. Ещё чуть - чуть порывшись, я нашёл так сказать Demo Version, который добавит мне fake покупки в мою консоль.
Думаю, информация будет полезна хоть чуть - чуть всем.
Все пункты рассмотреть конечно нереально, ибо их очень много, но самое полезное и интересное мы затронем.
Статья будет достаточно большая, но терпение - Ваш лучший друг сегодня. = )
На случай, если картинки не отображаются, добавлю ссылки на них.
Панель
Зайдя в нашу консоль, первым делом надо выбрать в панели, то, с чем мы будем работать.
Разберём всё по пунктам.
https://yadi.sk/i/x2BLaXVe3TJuyu
Viewing scores for - Выбор, фрод баллы чего мы будем рассматривать, к примеру: Payment Abuse (платёжное мошенничество), Promo Abuse (промо-коды), Account Abuse (мошенничество с аккаунтами), Content Abuse (авторские права/контент мошенничество). У данной консоли 4 типа Abuse (проверки мошенничества). Сегодня мы разберем самый интересный: Payment Abuse (Платёжное Мошенничество). То - есть фрод баллы за платёж / покупку товара. Откуда они берутся, что проверяет система и т.д.
Explore - тут будем исследовать наших клиентов, кто какие покупки совершил, с какого аккаунта и карты. Сегодня рассмотрим именно эту часть панели, ибо она самая интересная для нас.
Review - здесь можно выстроить очередь (Queues). Очередь можно выстроить вручную, либо по Score (Фрод баллам), либо по почтам, либо по Time Left (как давно был сделан заказ, к примеру: три минуты назад), по Route (маршрут) он бывает Low - High Priority (Низкий - Высокий приоритет / Как быстро юзер хочет получить заказ), либо по статусу платежа (Approve/Monitor/Block/Cancel и т.д.) и т.д.
https://yadi.sk/i/JBk_L_9T3TK4nU
Automate - здесь можно создать правило (скрипт). Этот пункт мы разберём по подробнее. Он интересный.
К примеру, если очки фрода > 60, то сделать Cancel User Order (отменить заказ). Естественно это простой пример. Тут же можно посмотреть какие решения сделала наша система. Скрипт можно настроить как на работу с аккаунтами, так и на работу с ордерами (заказами) поэтому, тут есть выбор двух таблиц: orders/accounts.
Приведу пример более сложного правила: Если очки фрода > 75 и Биллинг/Шиппинг не совпадают и Домен E-Mail = dot.com, тогда забанить аккаунт.
То - есть правило может быть совершенно любым, оно может содержать кучу пунктов и т.д. Естественно у "крутых" шопов своя антифрод система. Но по сути, она ничем не отличается. В ней также прописаны правила. Ещё пример: Если очки фрода > 60 и если очки фрода < 80 и Биллинг/Шиппинг расстояние > 1000 км и BIN = 525477, тогда отправить заказ на проверку человеком.
https://yadi.sk/i/gBpMHy8c3TK5Sh
Так же есть формулы, они являются фильтром, чтобы не нагружать сильно систему. Если у Вас 1 000 000 заказов в день и каждый будет проверяться по сотням правил, но не забывайте, что антифродом пользуетесь не Вы одни, а ещё 1000, а возможно и 100 000 других шопов. Как думаете, что будет?
Сервера компании (антифрод компании) бы знатно просели и ваш купленный антифрод за 5000$ начал бы тупить. Неприятная ситуация... Отвлеклись.
Формулы достаточно просты, в отличии от правил.
Приведу примеры: Если число пользователей с точно таким же устройством > 8, то забанить аккаунт. Если у данного юзера заказов за прошлый час > 5, то отправить на проверку его последний заказ. Отправить на проверку - то-есть бот проверит заказ по созданным правилам(скриптам).
Таким образом, мы фильтруем заказы. Чтобы все подряд не проверялись по сложным правилам.
Сомнительные заказы - на проверку ботом, создание кучи аккаунтов - в бан все аккаунты и т.п.
https://yadi.sk/i/he06Rgy93TK8Qk
Также, я говорил про таблицы, вот так выглядит таблица решений бота по формулам на заказы:
https://yadi.sk/i/0xmqPyw43TKA3w
Она естественно тоже кастомизируется, можно добавить график, к примеру, сколько было забанено юзеров из - за ордеров.
Напоследок, посмотрим таблицу решений бота после проверки ордеров по нашим скриптам:
https://yadi.sk/i/uqC027-m3TKCpY
Здесь видно, на какой тип мошенничества проверял бот, прошёл или не прошёл заказ, описание и прочее.
Неверные решения, по нашему мнению, мы можем скорректировать или вообще удалить.
Вернемся к панели.
Analyze - здесь можно посмотреть обычный график на разные события: Транзакции/Создание Заказов/Создание учетных записей и т.д. Выберем транзакции, за последние 30 дней и ползунками выберем уже более точный период на графике. Все заказы показываются синим, Плохие/Отклоненные красным.
https://yadi.sk/i/dHnT0_JQ3TKGM9
Developer - подключение модулей через API на Ваш сайт.
Account - настройки аккаунта.
Explore
Перейдём к самому интересному.
Выберем рискованные заказы (Risky Orders), далее выберем фильтр: Заказы, где Фрод > 60, рассматривать будем прошлую неделю, отсортируем по фрод очкам по убыванию.
https://yadi.sk/i/R5y7vXJD3TKMMQ
Теперь вверху нам показывает самый "стрёмный" ордер. Выберем его и посмотрим, почему система решила ему дать 92 очка фрод из 100.
https://yadi.sk/i/EfAhwyk63TKNt5
Пройдёмся быстренько по интерфейсу:
92 - баллы фрод системы.
fairy920 - логин в шопе.
[email protected] - почта, так же, если к аккаунту привязано несколько почт, можно увидеть их все нажав на стрелочку вниз. У нашего "клиента" только одна почта.
Last activity 2 days ago - последняя активность 2 дня назад.
Decision - решение/заключение. Нажимая на эту кнопку, мы можем сделать решение, пропустить или отменить ордер.
https://yadi.sk/i/YIi-zd6v3TKUNS
Выберем, к примеру, Looks Bad.
https://yadi.sk/i/SetcTtCx3TKUNg
Также мы можем оставить заметку по ордеру.
https://yadi.sk/i/-gZoJcy_3TKVMY
Вкладка "Overview"
Top Payment Abuse Signals - Здесь у нас показывается, что больше всего не понравилось системе, за что она дала очки фрода. Этот пункт нас очень сильно интересует, к нему мы вернёмся позже и разберём его во всех красках.
https://yadi.sk/i/r5Z_rTVH3TKWX7
Custom Attributes - это панелька настраивается полностью юзером аккаунта.
https://yadi.sk/i/zebDs0sE3TKXuN
К примеру, хочу видеть тут только Билл/Ip расстояние, удаляю всё, добавляю нужный атрибут и сохраняю.
https://yadi.sk/i/3cwazBTC3TKb8m
Orders - заказы нашего "клиента". А точнее все заказы с аккаунта fairy920.
https://yadi.sk/i/dgsJnLPG3TKcRT
Можно каждый заказ рассмотреть поподробнее.
https://yadi.sk/i/s1RFPssh3TKd3k
Каждый заказ можно либо отменить, либо наоборот пропустить. Нажав на уже знакомую нам с Вами кнопку.
Locations - адреса Billing/Shipping/IP.
https://yadi.sk/i/GndsEMET3TKePf
Social Media - социальные сети. В данной фрод системе три: Facebook, LinkedIn и Google. Можно самому вручную попробовать найти по почте человека. Нам даны на это ссылки, если конечно сканирование не дало результатов.
https://yadi.sk/i/MiAlKdGf3TKf7L
Identity - личные данные найденные из заказов, настроек и прочего.
https://yadi.sk/i/ks_tMT153TKfeT
Вкладка "Network"
Здесь мы можем посмотреть по заданным нами атрибутам, что связывает аккаунт нашего "клиента" с другими.
https://yadi.sk/i/oRMMj-CQ3TKh6B
Я отключил все прочие атрибуты, чтобы страничку не расстягивать сильно и выбрал, к примеру, атрибут IP address.
Вкладка "Activity"
На этой вкладке можно увидеть, какие действия делал "клиент" в магазине. И за какие действия в основном получал фрод очки.
https://yadi.sk/i/DJNTEzMP3TKiRH
Не будем торопиться и сразу отклонять ордер, давайте посмотрим, что же криминального совершил наш "клиент". Начнём с самого начала - регистрация.
https://yadi.sk/i/OvLK0Rx-3TKjrd
Наш "клиент" получает 52 очка фрода за свой E-Mail!
Но, 52 - это нормально. У данной антифрод системы разные цвета, обозначают разные риски.
С цветами мы встретимся ещё чуть позже, поэтому запомните их:
Серый - нормально.
Жёлтый - Risky (Рискованный).
Рыжий - Very Risky (Большой риск).
Красный - Extreme Risky (Экстремальный риск).
Что не понравилось в почте? Во - первых, сам домен. У меня его блокирует ad-block. Поэтому открываю через Tor, получаю следующую страницу.
https://yadi.sk/i/jyWlbBFw3TKm6f
И даже нажав на "Click here" выдаёт 404. Конечно, вы можете сказать, мне рандомизировали клиентов для демоверсии, вот у них и странные такие почты. Не думаю, ибо клиенты с хорошим фродом имеют хорошие почты, с доменами. К примеру, вот один из доменов: darkwizard.com. Один раз даже попался домен yandex.com - на который тоже, кстати, ругалась антифрод система. И пометила этот домен красным цветом.[email protected] - признавайся, зачем шелковые одеяла вбивал?!
В любом случае, даже если информация рандомизированна, будем анализировать, то, что есть.
То-есть первая причина - странный домен.
Вторая причина - по этой почте не нашло ни одного пользователя в социальных сетях.
Так же аккаунт он создаёт в течении нескольких секунд и минуты не проходит!
Дальше "клиент" попадает на страницу "Create an Account!" и закрывает наш сайт. Ничего интересного, едем дальше.
Дальше, "клиент" дает отлежаться аккаунту 2 недели.
https://yadi.sk/i/YmZihRT73TKqAL
Заходит на аккаунт 3 марта в 10 часов утра. И тоже за несколько часов заполняет Billing Address.
А знаете зачем он сделал перерыв в 2 недели? Почему сразу не заполнил? Всё просто, на этот биллинг уже один аккаунт до этого был создан, причём в этом же месяце! А также его расстояние IP/Billing 1,400 км. Это не экстремальный риск, конечно, но рыжий (Очень рискованный). И естественно за такое он сразу получает 87 баллов антифрод системы и помечается красным!
На этом этапе аккаунт можно выкидывать. Ибо меньше 87 баллов фрода он теперь не получит.
Но, наш "клиент" явно не из таких.) Едем дальше.
"Клиент" даёт отлёжку в неделю.
https://yadi.sk/i/RMm_YSLs3TKssr
После начинает лупить шоп, что есть силы. И за 1 минуту успевает сделать 4 заказа и их оплатить.
Непонятно, зачем он выставил биллинг адрес, в прошлую неделю, если потом его менял в каждом заказе. Очки фрода скачат ибо везде разный биллинг и шип, а соответственно разный Billing/Shipping Address Distance. Где - то ближе, где - то дальше. И в 4 заказах 8 разных адресов. Интересно...
https://yadi.sk/i/WhgOb5gY3TKuM8
Перед первой оплатой он заходит в описание товара, за что его хвалит фрод и снижает ему очки до 87. После он делает ещё две оплаты. Фрод тут уже побольше, ибо даже в описание поленился зайти. Перед последним ещё раз заходит в описание, за что не получает дополнительных очков, они как и были 90 у этого заказа, так и остались. Плюс, нас сразу оповещает о Extreme Risky, потому что в придачу ко всему, он ещё и с разных карт каждый заказ вбил.
https://yadi.sk/i/yM9ggX4b3TKvvh
После транзакций он обновляет каждую страницу checkout заходит ещё раз посмотреть описание товара, но это ему уже не поможет и закрывает все вкладки. На этом мы закончим с этой вкладкой.
Если указываете почту с корпоративным доменом, то проще, я думаю сделать свой рабочий сайт и заполнить его по минимуму. Чтобы он точно не оказался в blacklist'е антифрода. Пример сайта был дан выше. Естественно, если с данных корпоративных почт будут чарджбеки и их будет много, то домен надо менять.
Top Payment Abuse Signals
Вернёмся и теперь разберём 55 основных пунктов(атрибутов) проверки платежей. В Top Payment Abuse Signals у всех показывается только 55 атрибутов. Но, не забывайте, у каждого аккаунта есть своя кастомная панель, которую он может настроить под себя. И добавить туда хоть все атрибуты. У данной системы имеется 181 атрибут на проверку, но все атрибуты разобрать сразу сложно. Мы постараемся их разобрать в следующей статье.
https://yadi.sk/i/ExN8k6CZ3TKyu8
Значок "Планета Земля" - означает, что значение данного атрибута находиться в blacklist'е.
Цвета восклицательного знака - означают ранг риска. Если восклицательного знака нет, риск нейтральный. То - есть не даёт фрод баллов.
Нажав на определенный атрибут, мы можем посмотреть, у каких аккаунтов этот атрибут одинаковый. Также описание атрибута, по описанию атрибута я буду делать перевод.
Некоторые атрибуты могут различаться только временем: за последний час/день/месяц.
(?) - требует дополнения/разъяснения.
https://yadi.sk/i/f8T04VYN3TL2JR
Теперь все атрибуты, по порядку:
Email similarity to billing name - От 0 до 1. (от 0% до 100%) Насколько E-Mail адрес (без домена и цифр) совпадает с биллинг именем.
Unique billing last 4 (past hour) - Кол-во разных 4 последних цифр CC за последний час. Наш "клиент" бил с 4 разных кредиток, вот и значение 4. То - есть по сути, это кол-во разных кредиток введенных пользователем за последний час. То - есть, если вы оплатите четыре заказа одной кредиткой значение будет равно 1.
Unique billing addresses (past month) - Кол - во разных биллинг адресов. Как Вы помните, в начале наш "клиент" зачем - то вбил биллинг адрес, который он так и не использовал. Поэтому их 5.
Email domain - домен почты. (то, что идёт после "@")
Number of users with the same shipping address - Кол - во разных пользователей, которые используют адрес доставки, как у нашего "клиента".
Estimated email address age - Ориентировочный возраст почты "клиента". Возможно просчитывается по словарям или базам почт. К примеру, сейчас почту: [email protected] - вряд ли зарегистрируешь, она скорее всего древняя. А вот [email protected] зарегистрировать легко.
Payment method card bin - BIN карты. В данном случае это китайский бин, поэтому он в "blacklist'е".
Unique billing BINs (past month) - Кол-во разных BIN'ов на данном аккаунте за последний месяц.
User location - Локация "клиента" по IP.
Browser/OS - Система и браузер.
Host providing this user's email service - Хост предоставляющий услуги для домена почты "клиента".
Shipping/billing address distance - Дистанция между билл и шип адресами.
Changes in payment methods in the last day - Кол-во измененных видов оплаты за последний день.
IP organization - Привязанный к IP провайдер интернета.
Network - IP-сеть.
Payment method payment gateway - Способ оплаты.
Unique billing postal codes (past month) - Кол-во уникальных биллинг почтовых индексов за последний месяц.
Account age - Возраст аккаунта.
Unique billing BINs (past day) - Количество разных BIN'ов за последний день.
Unique billing postal codes (past hour) - Кол-во уникальных биллинг почтовых индексов за последний час.
https://yadi.sk/i/s7vh_RcI3TL6q2
Shipping address country - Страна получения пака.
Purchase amount in USD - Стоимость заказа в USD.
Number of users with the same billing address - Кол - во разных пользователей, которые используют этот же билл адрес. 59 пользователей используют тот же билл [Number of different users that share this billing address] (?)
Time since previous transaction - Время между последними транзакционными событиями.
Shipping name length - Количество символов в имени получателя.
Unique billing addresses (past day) - Кол - во разных биллинг адресов за последний день.
Unique Billing Names (past month) - Кол - во разных биллинг имен за последний месяц.
Timezone offset - Разница между UTC временем и временем "клиента", в минутах, узнается через браузер.
Number of digits in the shipping address - Кол - во цифр в шип адресе.
IP address - IP с которого зашёл "клиент".
https://yadi.sk/i/w7NXfI3n3TLBbT
Unique billing names (past hour) - Кол - во разных биллинг имен за последний день.
Mx records from email domain count - Количество MX Records на домене почты.
Credit Card BIN And Last4 - BIN и последние 4 цифры CC.
Unique billing BINs (past hour) - Кол - во разных BIN'ов на данном аккаунте за последний час.
Number of digits in the billing address - Кол - во цифр в платежном адресе.
Digit-Normalized email address - Адрес электронной почты с пониженным регистром и с заменой цифр на знак "#".
API event without page view - пользователь получил "non-transaction" API событие. Но обошёл/не прошёл Javascript антифрода.
Signup to transaction time - Кол - во дней между транзакцией и регистрацией.
Browser fingerprint - Уникальный идентификатор браузера.
https://yadi.sk/i/Yx0hNfdC3TLDzv
Unique Shipping Add in Orders (Month) - Кол - во уникальных адресов доставки за последний месяц.
Billing last name in email - Отображается ли последнее слово имени биллинг адреса в адресе почты.
Latest name - Последнее имя.
Billing address is reshipper - Является ли биллинг адрес известным адресом пересыла/посреда.
IP/credit card country match - Соответствие стран IP/CC.
Shipping name fraction vowels - Какая часть символов в имени шиппинг адреса является гласными.
Transaction billing last 4 - Последние 4 цифры биллинг транзакции.
IP connection type - [Connection of the IP block the user connected from] (?)
Device fingerprint - Уникальный отпечаток устройства, с которого подключился пользователь.
Unique Billing Names in Orders (Month) - Кол - во уникальных биллинг имен за последний месяц.
Latest changed password - Последний измененный пароль/изменялся ли пароль.
Ratio of digits to address length - Отношение цифр ко всем символам шипинг адреса.
https://yadi.sk/i/KCNjECwD3TLLD4
Вот и всё, на сегодня!
Всё написанное в этой статье, только лишь мои догадки, на подсказках и разных справочниках антифрода, я не работаю в таких системах, поэтому, если где - то что - либо не правильно или не сходиться, исправьте меня, я отредактирую. При написании данной статьи помогала мне моя основная профессия - программист. Отдельное спасибо ей.)
Что будет во второй части?
Мы разберём, так же как и сегодня, поведение юзера и его атрибуты с более низкой оценкой антифрода (50~60).
Возможно, рано или поздно, я напишу статью где отсортирую все атрибуты по категориям и всё по этим 181 атрибутам распишу.
В зависимости от того, понравиться ли эта статья Вам, будет принято мною решение, писать продолжение или нет.
Статья взята с ВВХ.