Проверка , является ли транзакция мошеннической

carderplanet

Пользователь
Регистрация
12.06.16
Сообщения
65
Реакции
5
Баллы
8
Нарушения
0 / 1
Для выявления признака, что платеж является мошенническим, существует большое количество эвристик. Некоторые компании могут похвастаться цифрой под 200 эвристик. Хотя у меня сразу возникают подозрения, что некоторые из этих эвристик либо ничем не подкреплены, либо являются следствием какой-то другой эвристики, либо это вовсе костыль, позволяющий лучше подгонять результат под обучающую выборку и не дающий никакого эффекта на реальных данных. Большое количество эвристик дает лишь: переобученную модель, неправильное распознавание является ли транзакция мошеннической и уменьшение производительности приложения.

Поэтому перечислю лишь основные и, в общем случае, наиболее эффективные эвристики:

одна карта – много IP, и обратный случай: один IP – много карт;
одна карта – много покупок/неудачных попыток;
один клиент – много карт (особенно эмитированных различными банками);
один клиент – много индексов, email'ов;
имя клиента не совпадает с именем владельца эккаунта на сайте мерчанта (если есть);
страна клиента не совпадает со страной владельца эккаунта на сайте мерчанта (если есть);
оплата происходит ночь (по локальному времени клиента).

Но «много» это сколько? За какой период времени (5 секунд или 2 недели)? Как обойти проблему, что вес фильтра x1 в не равен весу фильтра x2, а величины их весов должны динамически меняться в процессе работы приложения?

Часто основным подходом является наивное присвоение фиксированного значения для какого-то из фильтров и последующая обработка этих условий в конструкциях типа (это псевдокод, а не 1С):

if (количество_карт_с_одного_ip > 4) {
статус_платежа = отклонен;
return;
}
else {
if (количество_покупок_с_карты_за_1_час > 5) {
статус_платежа = отклонен;
return;
}
else {
// continuation magic…
}
}

// проведение платежа…

Ne zabivaite menyat strategii dlya udachnih vbivov! :)

(COPYPAST) :)
 
Последнее редактирование:
Назад
Верх Низ