← Назад в базу знаний

Как антифрод-системы вычисляют прокси по TCP fingerprint и MTU

Как антифрод-системы вычисляют прокси по TCP fingerprint и MTU

Как антифрод-системы вычисляют прокси по TCP fingerprint и MTU

Антифрод-системы копают глубже, чем IP-адреса. Они смотрят на то, как твой пакет стучится в сервер. TCP fingerprint и MTU — два ключа, которые палят прокси быстрее, чем ты моргнёшь. Давай разберём, что это за звери и как они работают.

Что такое TCP fingerprint?

TCP fingerprint — это цифровой отпечаток твоего TCP-стека. Каждая операционка (Windows, Linux, macOS) и даже версия ядра настраивает TCP-пакеты по-своему. Параметры вроде TTL, window size, MSS, опций — это не случайные цифры. Они жёстко завязаны на сборку ядра. Антифрод-системы собирают эти данные из SYN-пакета и сверяют с базой известных fingerprint'ов.

Пример: Windows 10 обычно шлёт TTL=128, window size=65535, MSS=1460. Linux — TTL=64, window size=29200, MSS=1460. Если ты сидишь через прокси на Linux, но браузер под Windows — разница видна сразу. Антифрод видит fingerprint сервера, а не клиента.

Как MTU выдаёт прокси

MTU (Maximum Transmission Unit) — размер пакета, который может пролезть через сетевое соединение. Прокси-серверы часто режут MTU, чтобы избежать фрагментации. Клиент шлёт пакет с MTU=1500, а прокси — с MTU=1400 или 1300. Антифрод замечает это несоответствие.

Классический случай: ты сидишь дома с MTU=1500, а прокси выдаёт MTU=1280. Антифрод видит, что твой клиент шлёт пакеты с MSS=1460, но сервер отвечает с MSS=1220. Разница — явный признак туннеля или прокси.

Почему это работает?

Потому что прокси — это прослойка. Он перепаковывает твои пакеты, но не может идеально скопировать fingerprint клиента. Каждый прокси-сервер имеет свой стек, свои настройки. Даже если ты используешь прозрачный прокси, он меняет TTL и window size.

Антифрод-системы вроде ThreatMetrix или MaxMind собирают статистику. Они знают, что fingerprint клиента с IP из Германии должен быть типичным для европейского провайдера. Если ты шлёшь fingerprint китайского сервера — это красный флаг.

Реальные цифры и примеры

Вот таблица типичных fingerprint'ов для разных систем:

| ОС | TTL | Window size | MSS | Опции |

|----|-----|-------------|-----|-------|

| Windows 10 | 128 | 65535 | 1460 | SACK, TS, NOP |

| Linux (ядро 5.x) | 64 | 29200 | 1460 | SACK, TS, WScale |

| macOS (Big Sur) | 64 | 65535 | 1460 | SACK, TS, NOP |

| OpenVPN (по умолч.) | 64 | 14600 | 1300 | SACK, TS |

Если твой клиент показывает TTL=128, а прокси режет его до 64 — антифрод видит разницу. Он понимает: клиент на Windows, но сервер на Linux. Значит, ты за прокси.

Как антифрод собирает данные?

Он анализирует первые пакеты TCP-рукопожатия. SYN-пакет клиента содержит fingerprint. SYN-ACK от сервера — тоже. Антифрод сравнивает их. Если они не совпадают по ожидаемому шаблону — тебя палят.

Есть ещё техника сбора MTU через ICMP. Антифрод шлёт пакет с флагом «не фрагментировать» и смотрит, как сервер отвечает. Если MTU меньше стандартного — это признак туннеля.

Кейс из практики

Одна компания использовала прокси для парсинга. Все IP были чистые, но антифрод банил их через 10 минут. Оказалось, проблема в MTU. Прокси резал пакеты до 1280, а клиент шёл с MSS=1460. Антифрод видел несоответствие и решал: это бот.

Решение — настраивать MTU на стороне клиента. Например, через iptables под Linux:

```

iptables -A OUTPUT -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

```

Это заставляет клиента подстраивать MSS под MTU прокси. Но антифрод может копать глубже — смотреть window size.

Продвинутые методы: анализ window size

Window size — размер окна TCP, который клиент готов принять. Разные ОС используют разные алгоритмы. Windows часто выставляет 65535, Linux — 29200 или 5840. Прокси может менять window size, но не всегда точно.

Антифрод смотрит на отношение window size к MSS. Например, у Linux window size часто кратен MSS (29200 / 1460 = 20). У Windows — нет (65535 / 1460 = 44.88). Если прокси выставляет window size=65535, но MSS=1460 — это нормально для Windows, но подозрительно для Linux.

Как это ломает анонимность?

TCP fingerprint — это не единственный фактор. Антифрод комбинирует его с IP-репутацией, User-Agent, временем отклика. Но fingerprint даёт 30-40% точности детекта прокси. Если твой fingerprint не совпадает с ожидаемым для региона — тебя банят.

Например, ты сидишь в России, но используешь прокси в США. Антифрод видит fingerprint сервера в США (TTL=64, window size=29200) и понимает: это дата-центр, а не домашний пользователь. Домашние пользователи в США обычно имеют TTL=128 (Windows) или 64 (macOS), но window size у них другой.

Что можно сделать?

Минимизировать fingerprint'инг сложно. Можно использовать прокси, которые подменяют fingerprint на клиентский. Например, через iptables или nftables:

```

nft add rule ip filter OUTPUT tcp flags syn tcp option maxseg size set 1460

```

Но это не панацея. Антифрод смотрит на множество параметров.

Есть сервисы, которые делают fingerprint'инг невидимым. Например, lexic.ml — IPv6 прокси с 2015 года. Они используют ротацию IP и настройку TCP-стека под клиента. Но даже они не гарантируют 100% защиты от продвинутых антифрод-систем.

Почему это важно для бизнеса?

Если ты используешь прокси для парсинга или обхода геоблокировок — fingerprint'инг может сломать всё. Антифрод-системы типа Cloudflare или Akamai активно его применяют. Они банят не по IP, а по поведению.

Пример: ты парсишь данные с сайта, используя 1000 прокси. Все IP чистые, но fingerprint одинаковый (все с одного сервера). Антифрод видит паттерн и банит всю сетку.

Как антифрод обходит прокси с подменой fingerprint?

Они смотрят на время отклика. Если fingerprint подменён, но RTT (round-trip time) не соответствует региону — это подозрительно. Например, ты шлёшь fingerprint из США, но пакет идёт 200 мс (как из Европы). Антифрод понимает: это прокси.

Ещё один трюк — анализ последовательности пакетов. Прокси часто задерживает или переупорядочивает пакеты. Антифрод видит аномалии в TCP-потоке.

Итог

TCP fingerprint и MTU — мощные инструменты антифрода. Они палят прокси на уровне сети, до того как ты отправил хоть один HTTP-запрос. Чтобы защититься, нужно настраивать TCP-стек под клиента, менять MTU и использовать прокси с гибкой конфигурацией.

Но помни: идеальной защиты нет. Антифрод-системы эволюционируют быстрее, чем прокси-сервисы. Если тебе нужно реально скрыться — используй несколько слоёв: прокси + VPN + подмена fingerprint. И всё равно будь готов к тому, что однажды тебя вычислят по какому-нибудь новому параметру.

✔️Купить прокси