April 12, 2025

Remark about anti fraud system.

Part I (Intro)

Ни хао!

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

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

Давайте вместе разберёмся, что означает само слово антифрод, фингерпринт, подберём нужный инструментарий и рассмотрим практический кейс.
Желаю приятного прочтения.

Поехали!

Part II (base)

Начинаем с простого, что это за слова такие были сверху и зачем они нужны?

Anti Fraud System - изначально это системы борьбы с мошениками, финансовыми махинациями, ботами и в нашем случаи абузерами. Кто для сайтов и платформ мошеник? Правильно! каждый сомнительный пользователь. Смотря в рамках крипто авантюры это могут быть абузеры которые выносят очередной проект фермами.

Заходя в интернет каждый браузер имеет свой профиль, лицо и особые приметы. И много платформ собирают эти данные, для анализа/защиты или других своих потребностей.
Правильно собраная пачка этих данных нам известна как Fingerprint.

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

Часто нам будут встречаться такие системы защиты на разных сайтах: Arkose Labs (Fun Captcha)

Cloudflare (Captcha, Turnstale Page)

Google (Recaptcha, Bot Detection)

HCaptcha (Invisiable, Passive)

FingerprintJS (библиотека которая собирает данные про пк и генерирует индитификатор фингерпринта)

Аналоги FingerprintJS. Чтобы получить более наглядное представление, загуглите, посмотрите на капчи их документации, виды лишним явно не будет.

Part III (Instruments)

По ходу нашего путешествия нам пригодятся разные приложения и боты — это и будет наш инструментарий.

Первым инструментом будет такой дискорд сервер: Зашли на сервер, давайте посмотрим, что там есть.

Cлева, среди веточек есть antibot-test
и там:
Api Sniffer - показывает какие web APIs используют на сайте и с какими он скриптами они взаимодействуют.

Antibot test - проверяет наличие антибот/антифрод систем на сайте.

Browser monitor - трекер который следит за обновлениями хрома, а также пишет что поменялось в новой версии.

Остальные разделы можете изучить самостоятельно — там всё довольно понятно.

Traffic sniffers:

Для анализа сайтов, нам также пригодиться один из сниферов трафика(последнее время я использую charles) для того чтобы удобно смотреть куда идут наши запросы и что получают в ответ.

Из популярных это:
Burp Suite Charles Proxy WireShark

Не забываем, что выбранную программу придётся подкрутить - как это сделать, легко найдёте на YouTube.

Enviroment prepere:

После того как нужный софт установлен и готов к работе вам нужно:

Cделать чистый профиль хрома, Уставить только одно расширение кошелька (если есть в этом потребность).

Такой минимализм нужен для удобства, вам будет проще работать без лишних запросов.

Part IV (Practic Case)

Заскучали уже от всей этой теории? Я тоже! Предлагаю перейти к самому интересному!

1) Eye Review :
Заходим на сайт, просто осмотритесь, покликайте, поскрольте.
Особое внимание уделяем подрузкам страницы, наличии разных видов каптч и проверок. Мониторим и URL самого сайта, запоминаем пути где есть проверки.

Посмотрели, нашли капчу, на такой url, на месте около крана, супер.

2) Discord check:
Переходим в дискорд сервер, копируем наш url, заходим в бота и воркаем с ним.
Проверяем сначала через API сниффер.

Cкачем json внизу себе, и открываем
Первое поле будет url, далее в масиве лежат web APIs которые там используются. На втором примере видим очень длиный путь.
этот путь привел нас к js файлу в котором где то будеть обфусцирование взаимодействие с этими APIs.

Скролим дальше, опять дискорд, юзаем второго бота:

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

Что же нам тогда делать, и как понять что мы передаем при запросе токенов на кране?

3)Time to sniffers:

На этом моменте в тусовку влетают сниферы трафика и много терпения.

Заходим на сайт, делаем жесткую перезагрузку (f12, пкм на кнопку reload страницы), с очисткой кеша и закрываем вкладку не дожидаясь загрузки страницы.

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

+- такую картинку вы будете видеть после того как проделали свой флоу работы например для получения токенов. Сюда входит, прохождение каптчи, прогрузка сайта, и взаимодействие с краном. Кстати кран то находиться у нас на другом домене faucet-claim-2. Что случилось в первым неизвестно... Но посмотрим что происходит во втором.

На тот момент кран не работал, спустя время они поменяли endpoint, и он зароботал.

Сам же запрос выглядит так:

Сюда перейти нужно

Смотрим что внутри:

Наблюдаем: адрес нашего кошелька, токен от Cloudflare и... visitor ID. Интересный момент — он у меня был такой же, как и на предыдущей версии крана. Почему так? Давайте разбираться.

Что за визитор ид и откуда он?

Чтобы попасть сюда, нужно немного пользоватся поиском и иногда подебажить сайт в панельке которую найдете в f12-sources(там и поиск делайте. Пкм на домен сайта, и ищите слово по всех файлах). Код в сорсах сайта обфусцирован чтобы мы ничего не поняли, но кому интересно вот нормальная версия данного файла: https://github.com/fingerprintjs/fingerprintjs/blob/master/src/confidence.ts

Нашли его сеттер скорее всего тут собирают объект Agent (про него немного позже), первое на что обращаем внимание, это coment внизу, где написано updrage to pro и линк. Попробуем перейти по нему https://fpjs.dev/pro.

Теперь знаем что они используют связку fingerprint js + cloudflare.

Но давайте убедимся в нашей теории и попробуем подсмотреть что же содержит в себе фингерпринт.

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

То что мы нашли это хорошо но полную картину так и не поняли. Предлагаю обратится к github библиотеки fingerprint js, мы примерно увидели что там должно быть и серчим в этом векторе дальше.

Переходим в директорию sourсes:

Данные наши содержатся в таком объекте.
Agent: сам visitor id confidence - наш скор components - полный розвернутый фингерпинт, который на скриншоте выше формирутся.

Это и есть наши components, и то что собирает кран про ваш девайс, более подробно по каждому пункту можете посмотреть в файле, но по некоторым понятно из названия.

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

Part V (Final)

Подводим итоги и рисуем схему их работы:

Юзер заходит на сайт, с него создают Agent, который мы уже знаем что хранит.
Эти данные собирают при первом заходе на сайт, далее проверяют есть ли такой ид, если нету собирают опять. Далее они могут хранить отпечатки на бекенде у себя или сервере того же fingerptint js, а при выполнении крана уже передают только visitor id пользователя, по которому уже смогут при надобности стянуть с бека фулл данные и сделать фильтрацию.

Part VI (Thanks you!)

Спасибо большое за прочтение!

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

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

Спасибо за внимание и до новых встреч!

Tg channel: https://t.me/uppercasenote

Evm wallet: 0x6B5E5c5fdA1Fd68c784Ff2628e23A66220c418d9