Антифрод что это такое в такси
Про Такси
Всем привет! Сегодня мы разберемся, что такое Фрод, какие виды фрода бывают, как его можно выявить и бороться с ним.
Оглавление
Фрод (от англ. fraud, «мошенничество») — вид мошенничества в области информационных технологий, в частности, несанкционированные действия и неправомочное пользование ресурсами и услугами.
Мошенничество с платежными картами, кардинг (от англ. carding) — вид мошенничества, при котором производится операция с использованием платежной карты или её реквизитов, не инициированная или не подтверждённая её держателем.
Реквизиты платежных карт, как правило, берут со взломанных серверов интернет-магазинов, платежных и расчётных систем, а также с персональных компьютеров (либо непосредственно, либо через программы удаленного доступа: «трояны», «боты» с функцией формграббера).
Типы фрода такси
На данный момент мы установили несколько типов фрода в такси:
Фрод с купонами
Это достаточно простой способ для клиентов совершить несколько бесплатных поездок за счет промо-тарифов агрегатора, вовлекающего новых пассажиров в систему. Для такого мошеннику нужно 2 телефона и возможность установить на них приложения
Работает следующим образом:
Ну сколько можно так прокатиться? У меня всего 2 друга, кто мне будет говорить смс-коды для активации новых аккаунтов?
Кардинг и «заливы» на водителей
Что такое кардинг, вы уже знаете. Но между тем, чтобы украсть данные карты и получить кеш, существует большая пропасть. У злоумышленников стоит задача заполучить деньги с карт, для этого им подходят водители такси. Возможно, вы слышали или сталкивались с таким предложением. Как правило, услышать его можно в такси бизнес-класса, клиент говорит водителю:
«Все поездки на такси мне компенсирует Газпром, могу ездить сколько угодно. Если хочешь, можешь ездить по своим делам, а тебя буду заказывать, все полученные деньги поделим пополам. Тебе же все равно нужно ездить, а так двух зайцев: ты и по делам съездишь и половину от тарифа получишь. »
Далее такие клиенты заказывают водителя, обычно с разных аккаунтов, бывает что иностранных, водитель выводит деньги и делится со злоумышленником. Рано или поздно такого водителя блокируют. Так же возможно, что выставят счет за поездки, которые не были оплачены.
Работа с ломанным GPS (Таксометр)
ТАКСОМЕТР ДЛЯ РАБОТЫ:
• Увеличенное время принятия заказа;
• Подмена координат (fakeGPS) (Возможность поставить себя в очередь в аэропорту физически там не находясь);
• Подмена фотоконтроля (возможность вставить свои фотографии во время фотоконтроля для получения приоритета);
• Отклонение от заказа без потери активности;
• Инфоокно с категорией заказа и расстоянием до клиента;
• Для установки нужны root права на телефоне и установленный xposed (Что это такое ищите на 4pda.ru);
• Обновления редкие, но платные.
Платформа Android допускает большую гибкость в плане настройки и прав доступа со стороны пользователя. Благодаря стараниям энтузиастов на просторах интернета существуют такие предложения.
Само по себе использование такого софта нарушает правила сервиса ЯТ и ведет за собой блокировку. Но в случае с комбинированием данного инструмента с кардерами и получается самая опасная связка. В такой схеме водители по чужим документам регистрируются в автопарках удаленно. Как правило, выбираются автопарки с моментальным выводом средств. После регистрации они начинают усиленно «катать» и выводить заработанное.
Вскоре антифрод-система Яндекс распознает таких «водителей» и блокирует их, списывая в минус всё заработанное. Только вот проблема в том, что автопарк уже выплатил эти деньги, получается обманут автопарк. За большое количество фрондеров в парке может последовать блокировка самого парка, так что инструмент антифрода актуален, как никогда. В следующей статье мы расскажем, какой результат дает наш антифрод при выявлении таких мошенников.
Удлинение поездок без ведома клиента
Самый глупый из всех видов фрода, глупее только обманывать клиентов и просить оплатить наличными поездку с оплатой по карте. Суть заключается в том, что водитель, при получении безналичного заказа, не завершает поездку на месте высадки клиента, а начинает кружить со включенным счетчиком. У клиента списывается сумма, превышающая стоимость поездки, водитель выводит деньги ДО того, как поступит жалоба клиента и по ней сделают возврат. К сожалению от таких джентльменов не застрахован никакой парк. Но к счастью, сумма ущерба по такому фроду не может быть большой, так как:
Редакция не рекомендует использовать Фрод, Фрод для слабаков, зарабатывать надо головой.
Что значит сумма замороженная антифродом такси агрегатор?
Электронные системы платежей обеспечивают максимальное удобство пользователям. Но и у мошенников этот способ оплаты пользуется популярностью. Периодически фроды выявляются во всех сферах. Не стали исключением и таксопарки, использующие в деятельности электронные платежи. Согласно статистике, более половины компаний за полгода теряют около 10 тысяч рублей. У остальных таксопарков убытки составляют от 10 до 50 тысяч рублей. Спасти положение, исключить финансовые потери позволяет установка специальной программы антифрод.
Популярные схемы действий мошенников
Целью недобросовестного водителя является мошенничество, позволяющее обмануть таксопарк и агрегатор. Есть несколько популярных схем для нечестного получения денег. Для реализации плана мошенник выполняет подключение к таксопарку с использованием автоматической регистрации. При этом вводятся данные знакомого, коллеги, предоставляется фотография его машины. Для получения реквизитов платежных карт взламываются серверы расчетных, платежных систем, интернет-магазинов, используются боты, трояны, позволяющие найти такую информацию в ПК.
К самым популярным видам фрода относятся:
Агрегатор выплачивает бонусы за слишком короткие поездки. Водитель фиксирует фальшивые поездки, в которых не было пассажиров. Большое количество таких случаев позволяет агрегатору выявить мошенника. Если он успел вывести средства до обнаружения мошенничества, агрегатор списывает потерянные финансы с таксопарка.
Новым клиентам выдается промокод на определенную сумму. Таксист обзаводится двумя телефонами для приложения и ввода промокода, получает право на 2 бесплатные поездки. После этого он уходит со старого аккаунта и открывает другой, на новый номер телефона. В сети есть сервисы, предоставляющие возможность для бесконечного количества активирования аккаунтов. Со временем агрегатору удастся проследить, выявить всю цепочку. В этом случае блокируется аккаунт, назначается штраф.
Согласно правилам агрегатора, водителю положена компенсация затрат на платные стоянки. Мошенник скачивает приложение, позволяющее менять местоположение по GPS. Он ставит авто на бесплатную стоянку, но навигация показывает, что машина стоит на платной парковке, водителю начисляется компенсация.
У таксиста открыт аккаунт в приложении агрегатора. К нему привязывается карта, на которой отсутствуют средства, на нее должны зачисляться чаевые, назначенные водителем. Мошенник делает фальшивые поездки, выводит их, не отправляя на привязанную карту. Агрегатор видит, что поездок совершено много, но средства не поступали. В результате таксопарку деньги за них не выплачиваются, он терпит убытки.
Антифрод такси агрегатор, принцип его работы
Специальная программа антифрод позволяет выявить мошенника, не позволить ему вывести средства за фальшивые поездки. Она включает систему из нескольких фильтров. Если по каким-либо причинам поездка покажется антифроду подозрительной, сведения о ней направляются на модерацию. На это время средства будут заморожены, снять их будет невозможно до окончания проверки.
Настроить антифрод можно в диспетчерской агрегатора, с которым сотрудничает таксопарк. В программе есть поля, которые необходимо заполнить, устанавливая галочки напротив нужных операций. Все подозрительные поездки отправляются агрегатору для проверки. Они могут одобряться вручную или автоматически. Для ручного способа нужно воспользоваться Личным кабинетом в Такси агрегаторе. Автоматически поездка снимается с модерации, если агрегатор не отменил их до обеда следующего дня.
В Антифроде предлагается несколько функций, позволяющих выявлять мошенничество, оптимизировать работу водителей. Можно устанавливать максимальные и минимальные лимиты для следующих показателей:
Установленные ограничения создают для мошенников существенные сложности. Для фрода необходим моментальный вывод средств до выявления фальсификации агрегатором. Заморозка финансов исключает возможность незаконных действий. Таксопарки могут использовать антифрод в полной мере только для новичков, добросовестность которых необходимо проверить. Опытным, проверенным водителям средства могут перечисляться сразу.
Использование антифрода существенно снижает риск убытков, позволяет повысить рентабельность таксопарка.
Как мы фрод из избы выносили
Меня зовут Никита, я backend-разработчик из команды антифрода в Ситимобил. Сегодня я поделюсь с вами историей о том, как мы выносили наш сервис из монолита в отдельный сервис, как вообще пришли к этому решению и с какими проблемами столкнулись.
Для начала немного расскажу о нашем сервисе.
Антифрод 101
Наш антифрод — это набор правил для выявления заказов, содержащих признаки мошенничества, фродовые паттерны.
Водители, которые пользуются сервисами агрегаторов такси, имеют возможность получить бонусы за короткие поездки, на чём водители-мошенники пытаются нечестно заработать. Например, мы видим у одного водителя n заказов подряд с одним и тем же клиентом. Чем они там занимались, нам не ясно, но с большой уверенностью можно заявить, что это фрод и аннулировать эти заказы.
Клиентам начисляются бонусы в случае приглашения ими новых клиентов в приложение. Клиенты-фродеры регистрируют несколько новых клиентов на своем девайсе, за что могут потерять все начисленные бонусы.
Чтобы проверить водителя на мошенничество, мы запускаем все проверки и в результате получаем события, каждое из которых говорит о наличии искомого паттерна в поданных на вход заказах.
Проверки можно разделить на несколько типов:
Для настройки правил есть web-интерфейс — «админка». И для визуального контроля за сработавшими правилами мы создали web-страницу с разными отчетами с большим набором фильтров.
Добавление новой проверки происходит следующим образом: описали фродовый паттерн, закодировали его в сервисе, запустили новое правило в тестовом режиме, и наблюдаем. При необходимости корректируем правило и включаем.
Проблемы прежней архитектуры
Раньше компания-партнер могла получить деньги только при проверке всех своих водителей на фрод.
Антифрод работал внутри PHP на одном потоке. Не масштабировался без костылей, в пиковые часы возникали очереди на проверку. Сами проверки никак не распараллеливались, и добавление каждого нового правила неизбежно увеличивало время обработки.
Старый антифрод «перерос» свою модель БД, работать с базой стало невозможно: периодически клали базу при работе, что в условиях монолитной архитектуры приводило не только к проблемам антифрода, но и всего бизнеса в целом.
Отчёты строились медленно. Чтобы посмотреть, казалось бы, простые вещи руками в базе, иногда приходилось JOIN-ить по пять и более таблиц, не говоря уже о более сложных вещах.
Бизнес рос, и эти проблемы требовали скорого решения. Также хотелось проверять водителей на фрод «на лету» (после каждой поездки).
Какие у нас были варианты:
Выбор пал на уход антифрода в отдельный сервис. В качестве основного инструмента распараллеливания был выбран Golang, по которому в компании есть хорошая экспертиза.
Решено было переезжать в два этапа.
Первый этап: перенос на новый язык
Остались на старой модели данных (да, скрипит, но пока работает). Стали делать сервис с нуля, за пару месяцев перенесли основной функционал и большинство проверок. Добились полной работоспособности сервиса.
Теперь каждая проверка по одному заказу может запускаться параллельно, что значительно уменьшает время обработки.
Сравнительные характеристики по скорости обработки: ранее на анализ всех водителей уходило 6 часов, теперь 25 минут.
Второй этап: выбор модели хранения
Для текущей работы нужна была как OLTP-подобная база данных для анализа на фрод, так и OLAP-база для построения отчетов. Текущая схема данных не поддерживала сценарии антифрода, от слова «никак».
Мы выбрали Elastic. Он легко масштабируется, в нём «из коробки» есть индексы по любому полю, что позволяет настраивать фильтры в отчетах как душе угодно. Денормализовали модель, чтобы не приходилось делать JOIN’ы между индексами Elastic’а.
Если вы тоже решили выбрать Elastic в качестве базы данных, то будьте бдительны. При настройках по умолчанию Elastic под нагрузкой может начинать отдавать частичный результат поиска. Например запрос стаймаутится на нескольких шардах при этом код ответа будет 2xx. Если вас не устраивает такое поведение и вам лучше получить ошибку поиска (например, чтобы потом заретраить), то вы можете отрегулировать это поведение через параметр allow_partial_search_results.
Текущая схема работы антифрода
Напомню, что основная логика, связанная с поездками, живет в монолите, а вся информация по заказам всё еще лежит в MySQL. При завершении поездки монолит переносит заказ из таблицы активных заказов в таблицу закрытых и отправляет сообщение в наш сервис через RabbitMQ, чтобы мы проверили конкретный заказ.
Получая сообщение из RabbitMQ, можно было бы сразу порождать горутину для обработки сообщения и переходить к получению следующего сообщения, но при таком подходе никак не контролируется количество горутин. Поэтому в сервисе количество обработчиков регулируется динамически с помощью пула воркеров.
Приступая к обработке сообщения, сервис антифрода идет на слейв MySQL, считывает все нужные нам данные по заказу из разных таблиц, записывает их к себе в Elastic, а потом посылает сам себе сообщение проверить этот же заказ. При проверке захватывает распределенный lock на Redise, чтобы предотвратить параллельную обработку объекта при особо интенсивных запросах, например, при частом обновлении водителя или клиента. В случае нахождения фрода сервис отправляет сообщение об этом монолиту.
При построении отчетов в админке сервис вызывается через REST API.
Всё это позволяет оказывать на монолит минимальное влияние.
Теперь подробнее
Читатель мог заметить парочку проблем:
Начнем с решения второй проблемы.
Наш RabbitMQ внутри состоит не просто из двух очередей (входящей и исходящей), но еще и третьей — очереди повторных попыток (retry).
У этой очереди есть producer, но нет consumer’а. На ней настроена политика dead-letter: по истечении своего TTL сообщение попадает обратно во входящую очередь, и мы обработаем это сообщение.
Иными словами, если мы получили сообщение на проверку заказа, но на слейве этого заказа еще нет, то мы просто будем помещать это сообщение каждый раз в retry-очередь, пока заказ не появится. С помощью этого подхода можно ретраить временные ошибки, а при превышении количества попыток на обработку этого сообщения отбрасывать его с записью об ошибке в лог.
А теперь вернемся к первой проблеме.
Самый быстрый и самый плохой вариант — делать refresh индекса при любой операции записи. Разработчики Elasticsearch советуют быть крайне осторожными с таким подходом, это может привести к снижению производительности.
Есть другой вариант: сразу передавать в сообщении всю информацию о заказе, а не считывать его со слейва. Но тогда размер сообщения вырастет на несколько порядков, что увеличит нагрузку на наш кролик, а мы его стараемся беречь. К тому же структура считываемых данных меняется достаточно часто, и изменения модели как в монолите, так и в сервисе хотелось бы избежать.
Может быть, проверять заказ сразу, как только прочитали его со слейва? Можно, только вот большинство наших проверок всё-таки делают вывод на основе нескольких заказов, то есть в базу лезть всё равно придется за остальными заказами. Зачем усложнять логику, если можно воспользоваться тем же механизмом retry-очереди?
Выставляя TTL сообщений в retry-очереди больше интервала обновления индекса Elastic, мы забудем о первой проблеме раз и навсегда.
Подробнее про механизм dead-letter можете почитать например тут.
Немного про наши тесты
Ошибки в логике правил антифрода совершать опасно: это может привести к массовым денежным списаниям. Именно для этого мы стремимся к 100% покрытию важных участков кода. Для этого мы используем библиотеку testify, mock’ая внешние зависимости и проверяя правила на работоспособность. Также у нас есть функциональные тесты, проверяющие основной флоу обработки и проверки заказа.
Вместо выводов
Переписав весь антифрод, на выходе мы обеспечили себе уверенность в нашем сервисе при дальнейшем росте бизнеса в течение следующих нескольких лет. Решили важную бизнес-задачу, благодаря которой честный водитель уверен в получении своих честных денег сразу после выполненной поездки.
Безусловно, некоторые задачи, которые выполняет наш сервис, остались за занавесом NDA. А некоторые задачи просто не влезли бы в одну статью.
Быть может, в следующий раз я вернусь с рассказом о том, как мы анализируем на фрод действия пользователей, где нагрузки на порядки выше.
Водители-мошенники: как таксопарку обезопасить себя от фрода
С проблемой фрода встречается каждая компания, работающая с электронными платежами, и таксопарки не исключение. Мы подсчитали и ужаснулись: у 61% опрошенных нами парков были случаи фрода. Из них за полгода 53% таксопарков потеряли до 10 000 рублей, 32% — 10 000 – 50 000 рублей, 13% — более 50 000 рублей.
Водитель, который фродит, пытается обмануть агрегатор и таксопарк. Чаще всего он старается действовать удаленно, чтобы не привлекать к себе внимание: находит документы какого-нибудь коллеги, фотографии машины и через авторегистрацию подключается к таксопарку, а затем атакует выбранный им агрегатор, который после успешного вывода средств водителем-мошенником наказывает таксопарк.
Сегодня мы расскажем об основных методах мошенничества, на которых агрегаторы и таксопарки теряют деньги, и научим вас, как бороться с недобросовестными сотрудниками.
Водитель совершает поездку, но сразу ее завершает. Агрегатор видит, что поездка очень короткая и пытается компенсировать ее водителю, начисляя ему бонусы. Если водитель не знает меры и занимается этим постоянно, агрегатор рано или поздно понимает, что никакого клиента в машине не было, поездки были фальшивыми, и пытается забрать у водителя начисленные бонусы. Если водитель успевает вывести эти бонусы раньше, то агрегатор, которому тоже не хочется оставаться в минусе, списывает эти деньги с таксопарка. Тот терпит убытки.
Так как все заказы проходят через приложения агрегаторов, где распознать клиента можно только с помощью номера телефона, водителю достаточно обзавестись несколькими новыми номерами, чтобы никогда не иметь дела с реальными пассажирами, а набивать себе фродовые поездки самостоятельно.
Если вы хотя бы раз получали промокод, то знаете, что использовать его, как правило, можно только один раз. Причем «подарочная» сумма не дробится: если пассажир решил скататься на работу за 150 рублей, а промокод получил на 300 рублей, обратно ему придется ехать или на общественном транспорте, или самостоятельно разориться на такси.
Пассажир не может докатать промокод, но это может сделать водитель. Ему достаточно попросить разрешения у клиента использовать промокод полностью или просто не закрывать поездку. Как правило, пассажиры водителю не отказывают: промокод не ощущается реальными деньгами, а потому с остатками его так просто расстаться.
Таксопарк от полного использования промокода никак не страдает: он получает деньги за полную поездку, но проводить работу с водителями и объяснять им, что так делать не нужно, стоит все равно.
Если водители работают с агрегатором по договору оферты, в котором прописывается, что стоимость поездки — это рекомендуемая, а не окончательная цена, то они имеют право отказаться от заказа, если им не хочется везти бабушку за хлебом. «Подключенцу» достаточно отменить заказ и спокойно дожидаться нового. На практике это делают далеко не все.
Водитель отменяет заказ, но по указанному адресу пассажира отвозит, а затем объявляет ему собственную стоимость поездки. Вопрос «почему так» отметается ссылкой на описанный выше договор оферты. Клиент решает, что 100 рублей сверху — это не так уж страшно, и все остаются довольны, кроме агрегатора и таксопарка, которым водитель в этом случае не выплачивает комиссию.
Водитель-мошенник старается быть очень аккуратным. Он регистрируется в таксопарке удаленно и совершает одну реальную поездку, чтобы проверить, какими системами выплат пользуется таксопарк. Если водитель понимает, что деньги к нему поступают, как только он завершает поездку, то есть таксопарк использует мгновенные выплаты, он начинает действовать.
Водитель совершает фродовые поездки и сразу старается вывести полученные деньги. Он не выжидает момент, а пытается обмануть сразу, играет на скорости, чтобы после быстро перебежать к другому таксопарку и начать свою операцию там.
Временный запрет мгновенных выплат
Так как водители-фроды сразу стараются вывести полученные деньги, самым мощным способом защиты от них остается временная проверка, то есть запрет для «новичка» мгновенных выплат на некоторое время. В брендированном приложении от Jump Taxi прошедший авторегистрацию водитель сразу же попадает в группу, которой запрещены мгновенные выплаты. Как только становится понятно, что водитель добросовестный, его исключают из этой группы, и он снова сможет радоваться мгновенному поступлению денег к себе в кошелек.
Работа с персоналом
Короткие обучающие встречи с водителями, конечно, не спасут таксопарк от фрода, но повысят доверие сотрудников, и в следующий раз они несколько раз подумают, стоит воровать у таксопарка или нет.
Полно сценариев, которые нельзя считать полноценным фродом, но которые тем не менее наносят ущерб имиджу таксопарка. Представим, что водитель договаривается с пассажиром, чтобы закрыть поездку раньше, а остаток забрать себе. Огромных потерь с этой схемы таксопарк не несет: если он получает 5% комиссии с «подключенца», а заказ выйдет не на 350 рублей, а на 300 рублей, то таксопарк получит 15 рублей вместо 17,5 рубля. Разница не такая страшная, но показывает отношение водителя к таксопарку.
Помимо временного запрета мгновенных выплат, таксопарки могут использовать специальные системы антифрода.
Каждый водитель в брендированном приложении Jump Taxi принадлежит только к одной группе. Они могут быть самыми разнообразными, например, «Новички», «Проверенные ребята», «Старожилы», «Трудяги» и прочее.
В целях безопасности таксопарк настраивает для каждой группы специальные критерии, по которым система определяет подозрительные поездки и отправляет их на ручную проверку сотрудникам таксопарка. «Новичкам» на первых порах стоит ограничить мгновенный вывод средств, а также установить для них более строгие критерии проверки на фрод. А вот «Старожилам» и «Трудягам» можно позволить небольшие поблажки.
Критерии проверки:
Пытаясь обмануть таксопарк на чаевых, водитель не будет стесняться, он сразу пропишет себе 1500 рублей за хороший сервис, но вы же понимаете: на самом деле такие чаевые никто не оставляет, а если и оставляет, то это скорее исключение из правила? Таксопарку достаточно установить нужное значение, например, «сумма чаевых более 1000 рублей», чтобы очередной водитель-фрод, получивший в награду за свои услуги огромные чаевые, отправился на проверку.
То же самое с платной парковкой. Если водитель пытается обмануть таксопарк, используя замену GPS-координат, и притворяется, что дожидается клиента на платной стоянке, таксопарку достаточно указать в приложении стоимость, после которой он начинает сомневаться, что водитель его не дурит, например, «стоимость парковки более 1000 рублей». Если водитель преодолевает эту сумму, это повод поговорить с ним и выяснить, была стоянка настоящей или его автомобиль и близко платной парковки не видел.
Пока справиться с обманом на бонусах возможно только полным их отключением, но это наносит огромный ущерб честным водителям и доставляет таксопарку массу неудобств. Комфортного варианта борьбы с этой схемой фрода, к сожалению, пока не существует, но слишком короткие поездки должны настораживать таксопарк.
Настройка условий проверки поездок на фрод выглядит так: