<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Kritos | ProxyShard.com</title><generator>teletype.in</generator><description><![CDATA[Kritos | ProxyShard.com]]></description><link>https://teletype.in/@kr1ts?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kr1ts</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/kr1ts?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/kr1ts?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Wed, 15 Apr 2026 20:27:20 GMT</pubDate><lastBuildDate>Wed, 15 Apr 2026 20:27:20 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@kr1ts/4jlh9zDSywM</guid><link>https://teletype.in/@kr1ts/4jlh9zDSywM?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kr1ts</link><comments>https://teletype.in/@kr1ts/4jlh9zDSywM?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kr1ts#comments</comments><dc:creator>kr1ts</dc:creator><title>Как устроен современный антифрод: многоуровневая система от браузера до сети</title><pubDate>Fri, 20 Mar 2026 14:32:55 GMT</pubDate><description><![CDATA[<img src="https://img4.teletype.in/files/f3/4b/f34b89ac-fbe8-484c-9035-75819d55fbd1.png"></img>Современный антифрод - это не «проверка на прокси» и не «бан по одному признаку». Это система, которая моделирует реальность пользователя и проверяет, насколько его среда может существовать в реальном мире. Любое несоответствие между слоями - сигнал риска.]]></description><content:encoded><![CDATA[
  <nav>
    <ul>
      <li class="m_level_1"><a href="#sknZ">Вступление</a></li>
      <li class="m_level_1"><a href="#alfI">Архитектура: как это выглядит в реальности</a></li>
      <li class="m_level_1"><a href="#ArGv">Многоуровневость: как система экономит ресурсы и позволяет обходить антифрод с минимальными усилиями</a></li>
      <li class="m_level_1"><a href="#LudK">Почему IP больше не идентификатор</a></li>
      <li class="m_level_1"><a href="#nlvq">Browser-first: где сегодня основной детект</a></li>
      <li class="m_level_1"><a href="#8UDo">Глубокая проверка устройства (как реально ловят антидетекты)</a></li>
      <li class="m_level_2"><a href="#ekCN">Automation detection: где палятся даже хорошие антидетекты</a></li>
      <li class="m_level_1"><a href="#DQtf">TLS fingerprint: слой, который ломает многие схемы</a></li>
      <li class="m_level_1"><a href="#1T59">Сетевой уровень: что реально анализируется</a></li>
      <li class="m_level_1"><a href="#7dAC">Где ломаются прокси (реальная причина)</a></li>
      <li class="m_level_1"><a href="#0tWq">Разбор популярных антифрод-систем</a></li>
      <li class="m_level_1"><a href="#mWF5">Типичные ошибки, на которых палятся даже хорошие антидетекты</a></li>
      <li class="m_level_2"><a href="#KSqR">Почему большинство “чекеров” ошибаются, и как должна работать глубокая проверка среды</a></li>
      <li class="m_level_3"><a href="#FIOl">В чем слабость базовых чекеров</a></li>
      <li class="m_level_3"><a href="#JXgH">Как должен работать современный чекер</a></li>
      <li class="m_level_3"><a href="#vkwU">Что отличает наш чекер</a></li>
      <li class="m_level_2"><a href="#tXsf">Как увидеть внутреннюю логику антифрода через скрипты</a></li>
      <li class="m_level_2"><a href="#5Y0T">Финальный вывод</a></li>
    </ul>
  </nav>
  <h2 id="sknZ">Вступление</h2>
  <p id="vc4q">Современный антифрод - это не «проверка на прокси» и не «бан по одному признаку». Это система, которая моделирует реальность пользователя и проверяет, насколько его среда может существовать в реальном мире. Любое несоответствие между слоями - сигнал риска.</p>
  <p id="66ye">Главная цель - не просто детект, а управление риском с минимальным влиянием на UX. Поэтому антифрод - это всегда компромисс: чем больше проверок, тем выше точность, но тем хуже пользовательский опыт.</p>
  <p id="mOgY">Ключевая идея всей системы:</p>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="7c8w">антифрод ищет не плохие сигналы, а конфликты между сигналами</p>
  </section>
  <h2 id="alfI">Архитектура: как это выглядит в реальности</h2>
  <p id="d3LK">Любая серьёзная система строится как распределённый pipeline:</p>
  <ul id="zH2Y">
    <li id="w4cP">Edge (CDN / WAF)</li>
    <li id="qZcD">Backend (risk engine)</li>
    <li id="tmD2">Client (JS sensor)</li>
  </ul>
  <p id="7OSE">На уровне браузера происходит сбор сырых данных: canvas, WebGL, audio, navigator, Intl, performance timing. На уровне сети фиксируются IP, ASN, TLS fingerprint, HTTP поведение. На backend происходит нормализация, агрегация и скоринг.</p>
  <p id="hII9">Важно, что антифрод - это не просто «if (bad) → ban». Это система весов, уверенности и корреляций. Один сигнал редко что-то значит. Значение появляется только в совокупности.</p>
  <h2 id="ArGv">Многоуровневость: как система экономит ресурсы и позволяет обходить антифрод с минимальными усилиями</h2>
  <p id="WNwp">Современные антифрод-системы не проверяют всё сразу - и это не просто оптимизация, а фундаментальный принцип их работы. Полная глубина анализа слишком дорогая по ресурсам и задержкам, поэтому система вынуждена принимать решение постепенно, по мере накопления сигналов.</p>
  <p id="QnJm">На первом этапе выполняются самые дешёвые и быстрые проверки: валидность payload, базовая консистентность браузера и общий IP/ASN контекст. Эти проверки практически ничего не стоят и позволяют быстро отсеять очевидный мусор.</p>
  <p id="gJry">Если профиль выглядит чистым и не вызывает противоречий, пользователь проходит дальше без включения тяжёлых механизмов. Именно здесь возникает ключевая особенность: если на раннем уровне нет триггеров, система часто не доходит до глубоких проверок вообще.</p>
  <p id="jQ8g">Если же появляются сомнения, антифрод начинает углубляться - подключаются проверки WebGL и Canvas, анализируется TLS fingerprint, ищутся признаки automation. Эти проверки уже значительно дороже и включаются только при наличии подозрений.</p>
  <p id="fnRn">И только если риск остаётся неочевидным, система включает самый дорогой уровень - поведенческий анализ и корреляцию (device ↔ IP ↔ аккаунты). Это требует времени, данных и вычислений, поэтому применяется ограниченно.</p>
  <p id="iemJ">Из этого вытекает важный практический вывод:<br />антифрод не видит «всё сразу» - он видит ровно столько, сколько его заставили увидеть.</p>
  <p id="nQ5K">Если удаётся пройти ранние уровни без триггеров, большая часть сложных проверок просто не активируется. Именно поэтому минимальные, но грамотно выстроенные изменения среды могут оказаться достаточными, чтобы существенно снизить вероятность детекта, не затрагивая более глубокие и сложные уровни анализа.</p>
  <p id="MTWp">Таким образом, многоуровневость - это одновременно и способ масштабирования системы, и её ограничение.</p>
  <h2 id="LudK">Почему IP больше не идентификатор</h2>
  <p id="WSGc">Раньше антифрод строился вокруг IP - он использовался как основной идентификатор пользователя. Сегодня эта модель перестала работать.</p>
  <p id="cUDL">Главная причина - изменение самой сетевой инфраструктуры. В условиях CGNAT один публичный IP может одновременно использоваться тысячами пользователей. В мобильных сетях ситуация ещё более выражена: IP динамически переиспользуются, а в крупных городах один адрес может обслуживать десятки тысяч абонентов. При этом один и тот же пользователь может сменить несколько IP за короткую сессию.</p>
  <p id="6cTI">В результате IP потерял свою уникальность и больше не может выступать в роли надёжного идентификатора. Он остаётся важным сигналом, но используется как часть контекста, а не как источник истины.</p>
  <p id="8Ecc">Современная идентичность пользователя строится на комбинации сигналов:</p>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <pre id="GDX0">device fingerprint + network context + behavior</pre>
  </section>
  <p id="QSGm">Именно их согласованность, а не сам IP, определяет уровень доверия к пользователю.</p>
  <h2 id="nlvq">Browser-first: где сегодня основной детект</h2>
  <p id="B0xG">Антифрод начинает с браузера, потому что:</p>
  <ul id="zDjP">
    <li id="9rN2">IP легко менять (VPN, прокси, ротация, NAT/CGNAT).</li>
    <li id="DvXq">Браузерный профиль сложно подделать целиком: можно изменить отдельные поля, но трудно сохранить согласованность всех слоев одновременно.</li>
  </ul>
  <p id="EaiP">Система проверяет:</p>
  <ul id="3SEd">
    <li id="SbXX">совпадает ли <code>UA</code> с <code>platform</code> и заявленной ОС;</li>
    <li id="4pkg">совпадает ли <code>platform</code> с реальными браузерными API и supported features;</li>
    <li id="6VTj">соответствует ли GPU-идентичность фактическим WebGL/WebGPU возможностям;</li>
    <li id="GXG5">соответствует ли CPU execution timing заявленному классу устройства;</li>
    <li id="EGDj">совпадают ли <code>intl</code>, locale, timezone, language и сетевой контекст;</li>
    <li id="DHju">есть ли следы автоматизации (CDP/WebDriver/headless/stack artifacts);</li>
    <li id="21vK">нет ли внутренних противоречий между несколькими “независимыми” источниками одного и того же сигнала.</li>
  </ul>
  <p id="9BxP">Принцип простой:</p>
  <p id="9UoT">браузер может соврать в метаданных, но плохо врет в физике исполнения.<br />Под “физикой” здесь понимаются результаты вычислений, тайминги, ограничения железа и поведение API под нагрузкой.<br />Именно поэтому в browser-first антифроде главный фокус - не на одном поле, а на кросс-валидации:  “что браузер заявил” vs “что реально показали вычисления и capability-тесты”.</p>
  <p id="5gP8">Если эти два слоя расходятся, это самый ценный сигнал риска.</p>
  <h2 id="8UDo">Глубокая проверка устройства (как реально ловят антидетекты)</h2>
  <p id="4dnB">Антифрод не ограничивается чтением “паспортных” полей браузера.<br />Главный детект начинается там, где система делает активные проверки и смотрит не на заявление клиента, а на фактическое поведение среды.</p>
  <p id="9I0U">Что обычно тестируют:</p>
  <ul id="gbDY">
    <li id="yxdm">WebGL/WebGPU: <code>renderer</code>, <code>vendor</code>, limits, extensions, feature flags, shader-capabilities, compute/rt профили;</li>
    <li id="15yk">Canvas: стабильность и воспроизводимость рендера, хэши, различия между контекстами;</li>
    <li id="74c6">Audio: floating-point особенности и дрейф в обработке (а не только “поддерживается/не поддерживается”);</li>
    <li id="986W">Intl/Locale: реальные результаты форматирования дат/чисел/языковых данных;</li>
    <li id="kqVA">Performance: execution timing, стабильность и профиль задержек в контрольных вычислениях;</li>
    <li id="EynO">API coherence: согласованность между независимыми источниками (<code>navigator</code>, графический стек, capability probes).</li>
  </ul>
  <p id="a1P4">Ключевая логика:</p>
  <ul id="dTzV">
    <li id="Rwkw">если браузер заявляет одно, а вычислительные тесты показывают другое - это сильный риск-сигнал;</li>
    <li id="aalY">если противоречий несколько и они независимы, уверенность в детекте резко растет.</li>
  </ul>
  <p id="dssX">Примеры конфликтов:</p>
  <ul id="AUUv">
    <li id="w3Ov">браузер заявляет: GPU = Intel UHD 630,<br />а GPU-профиль/лимиты/поведение ближе к дискретной AMD/NVIDIA карте или к другому поколению Intel GPU - конфликт;</li>
    <li id="MIQs">браузер заявляет: 8 CPU cores,<br />а execution timing и scaling в контрольных задачах похожи на слабый пк/эмуляцию - конфликт.</li>
  </ul>
  <p id="YyWY">Почему это работает:</p>
  <p id="h5RZ">подделать строки можно, но сложно подделать физику исполнения сразу во всех подсистемах.<br />Именно поэтому глубокая проверка устройства - основной инструмент против современных антидетектов.</p>
  <h3 id="ekCN">Automation detection: где палятся даже хорошие антидетекты</h3>
  <p id="T0qS">Современные антифроды действительно проверяют “классический набор”:</p>
  <ul id="MYcX">
    <li id="8o7j"><code>navigator.webdriver</code>;</li>
    <li id="2o8T">признаки CDP и remote debugging;</li>
    <li id="IuRU">patched/native API consistency;</li>
    <li id="f9tO">stack traces и execution frames;</li>
    <li id="zeAJ">следы automation-runtime в окружении страницы.</li>
  </ul>
  <p id="ukQx">Но сильные системы на этом не останавливаются.<br />Главный детект смещается из “что браузер говорит” в “как среда исполняет код”.</p>
  <p id="0VZ4">Что анализируют глубже:</p>
  <ul id="Ruhb">
    <li id="3qtH">event loop поведение: джиттер, характерные задержки, блокировки;</li>
    <li id="RYiK">microtask/macrotask timing: очередность и стабильность исполнения;</li>
    <li id="hG9W">async semantics: цепочки <code>Promise</code>, <code>postMessage</code>, <code>requestAnimationFrame</code>, таймеры;</li>
    <li id="Pnon">scheduler profile: как распределяется нагрузка в JS runtime;</li>
    <li id="YCux">consistency under stress: как среда ведет себя при сериях активных probe-тестов.</li>
  </ul>
  <p id="Aedu">Почему это важно:</p>
  <ul id="LgIX">
    <li id="jZST">метаданные можно подправить;</li>
    <li id="PsOm">один-два API можно замокать;</li>
    <li id="fkiV">но сложно синхронно подделать весь тайминговый и планировочный профиль исполнения без побочных артефактов.</li>
  </ul>
  <p id="x7B3">Типичный паттерн палева “хорошего” антидетекта:</p>
  <ol id="tkAH">
    <li id="XLpx">пассивные проверки выглядят чисто;</li>
    <li id="J6vF">активные timing-пробы дают нестабильный или “нечеловеческий” профиль;</li>
    <li id="YDs7">при повторе теста распределение задержек не соответствует нативной среде.</li>
  </ol>
  <p id="oqNA">Именно поэтому системы уровня Kasada считаются сложными:<br />они делают ставку не на отдельные флаги, а на поведенческую физику runtime - то есть на то, как код реально живет во времени, а не на косметику отпечатка.</p>
  <h2 id="DQtf">TLS fingerprint: слой, который ломает многие схемы</h2>
  <p id="yvGM">TLS fingerprint - один из самых сильных сигналов сетевого уровня, потому что он отражает не “что заявлено”, а как клиент реально строит защищенное соединение.</p>
  <p id="r3iT">Обычно анализируют:</p>
  <ul id="s2Br">
    <li id="BexH">набор <code>cipher suites</code>;</li>
    <li id="R7hl">TLS extensions;</li>
    <li id="VALT">порядок и структура параметров в <code>ClientHello</code>;</li>
    <li id="HY0m">версии протокола, ALPN, key share и связанные negotiation-детали.</li>
  </ul>
  <p id="SurZ">Почему это важно:</p>
  <p id="kAz5">если клиент заявляет себя как “обычный Chrome”, но TLS-поведение похоже на <code>Go</code>/<code>OpenSSL</code>/нестандартный HTTP-стек, это сильное противоречие.<br />В живом трафике такие несовпадения часто являются признаком скриптовой автоматизации, прокси-прослоек или кастомного транспорта.</p>
  <p id="NUiC">Именно поэтому TLS-слой активно используется крупными edge-платформами и бот-защитой (включая Cloudflare/Akamai):<br />он хорошо отделяет нативный браузерный трафик от эмулированного, даже когда заголовки и JS-фингерпринт “причесаны”.</p>
  <p id="Qxzd">Практический момент, который многим знаком:</p>
  <p id="7Gw3">многие сталкивались с ситуацией, когда запрос “вроде правильный” (с теми же URL, headers, cookies) отправляется через обычный HTTP-клиент и все равно получает challenge/403 на сайтах под Cloudflare.<br />Причина часто как раз в том, что header-уровень похож на браузер, а TLS-отпечаток - нет.</p>
  <h2 id="1T59">Сетевой уровень: что реально анализируется</h2>
  <p id="4HNG">Система смотрит:</p>
  <ul id="SUIf">
    <li id="7mHN">ASN и провайдера</li>
    <li id="Gvpv">тип сети (mobile / residential / DC)</li>
    <li id="c4Id">репутацию подсети</li>
    <li id="4Okj">скорость смены IP</li>
    <li id="QT9f">географию</li>
  </ul>
  <p id="3lnx">Дополнительно:</p>
  <ul id="nKqd">
    <li id="sdqo">fake ISP проверки (см. статью: [ссылка])</li>
    <li id="Ah75">исторические данные</li>
  </ul>
  <p id="eYwr">Важно: один IP ничего не значит, но его поведение во времени - значит.</p>
  <h2 id="7dAC">Где ломаются прокси (реальная причина)</h2>
  <p id="vn8j">Современный антифрод ловит не прокси, а невозможные комбинации.</p>
  <p id="KAdk">Типичный кейс:</p>
  <ul id="X7kY">
    <li id="KaRV">IP → residential</li>
    <li id="FBs5">TLS → не браузерный</li>
    <li id="2hAy">WebGL → отличается от заявленного GPU</li>
    <li id="mIPC">behavior → слишком идеальный</li>
  </ul>
  <p id="3oiT">Каждый сигнал сам по себе допустим.<br /> Но вместе - нет.</p>
  <p id="AnwP">Именно это и есть детект.</p>
  <h2 id="0tWq">Разбор популярных антифрод-систем</h2>
  <p id="Sslw">Современные антифрод-системы, несмотря на схожую архитектуру, сильно отличаются по тому, на каком уровне они принимают основные решения. Это напрямую влияет на то, какие атаки они ловят лучше всего.</p>
  <p id="biW8">Сетевые решения, такие как Cloudflare и Akamai, делают основной упор на инфраструктуру. Они анализируют TLS fingerprint, HTTP-поведение, ASN и репутацию IP. Такие системы хорошо ловят несоответствия между заявленным браузером и реальным сетевым стеком, а также массовые аномалии трафика.</p>
  <p id="sH1p">В отличие от них, системы вроде DataDome и Kasada смещают фокус на браузер. Они проверяют не только значения fingerprint, но и реальное поведение среды: WebGL, canvas, execution timing, наличие automation-артефактов. Особенно это заметно в Kasada, где ключевую роль играет не то, что браузер возвращает, а как он выполняет код.</p>
  <p id="khFV">Отдельный класс - поведенческие системы, такие как PerimeterX. Они могут пропустить пользователя с идеальным fingerprint, но зафиксировать неестественные паттерны: одинаковую скорость действий, отсутствие вариативности, повторяемость сценариев. Здесь детект происходит не на уровне устройства, а на уровне действий.</p>
  <p id="7iY4">Наконец, есть системы, ориентированные на корреляцию, например ThreatMetrix. Они строят граф связей между устройствами, IP и аккаунтами и выявляют аномалии на уровне всей экосистемы. Даже если отдельная сессия выглядит чистой, связь с другими подозрительными активностями может привести к детекту.</p>
  <p id="36pP">В реальности эти подходы не существуют изолированно. Крупные сервисы комбинируют несколько типов антифрода, чтобы покрыть разные уровни: сеть, браузер, поведение и историю.<br /></p>
  <p id="qHsv">Если обобщить, все системы сходятся в одном:</p>
  <ul id="zWLK">
    <li id="dnmZ">сетевой слой проверяет откуда пришёл пользователь</li>
    <li id="0NsH">браузерный слой проверяет насколько он реалистичен</li>
    <li id="M2FW">поведенческий слой проверяет как он действует</li>
    <li id="qxot">корреляционный слой проверяет с кем он связан</li>
  </ul>
  <p id="641o">Именно комбинация этих уровней даёт итоговый риск.<br /><br />Главная причина, почему антифрод стал настолько сложным - это распределение детекта по разным слоям. Больше не существует одной точки, которую можно «починить».</p>
  <p id="HlEE">Можно пройти сетевой уровень, но завалиться на браузере.<br />Можно пройти браузер, но спалиться на поведении.<br />Можно пройти всё это, но попасться на корреляции.</p>
  <p id="pR5v">Именно поэтому современный антифрод - это не про поиск одного сигнала, а про проверку целостности всей системы пользователя.</p>
  <pre id="Zew6">| Антифрод | Browser fingerprint | WebGL / GPU | Automation | TLS fingerprint | IP / ASN | Behavior | Correlation | Execution timing | Основная сила |
|----------|-------------------|------------|------------|----------------|----------|----------|-------------|------------------|--------------|
| Cloudflare | базовый | частично | базовый | очень сильный (JA3/JA4) | очень сильный | средний | средний | слабый | сеть + TLS |
| Akamai | средний | частично | средний | сильный | очень сильный | сильный | сильный | средний | глобальная аналитика |
| DataDome | очень сильный | сильный | сильный | средний | сильный | средний | средний | средний | browser fingerprint |
| Kasada | очень сильный | средний | очень сильный | слабый | слабый | сильный | слабый | очень сильный | execution env |
| PerimeterX | средний | слабый | средний | слабый | средний | очень сильный | средний | средний | behavior |
| ThreatMetrix | средний | слабый | слабый | слабый | сильный | средний | очень сильный | слабый | identity graph |</pre>
  <h1 id="mWF5">Типичные ошибки, на которых палятся даже хорошие антидетекты</h1>
  <p id="KAR3">Большинство детектов происходит не из-за слабого прокси или конкретного инструмента, а из-за несогласованности между слоями. </p>
  <p id="yaKM">Один из самых простых и показательных кейсов - несоответствие TLS и браузера. Пользователь может заходить с Chrome, но TLS fingerprint при этом соответствует другому стеку, например OpenSSL или кастомному клиенту. Такая комбинация не встречается в реальной среде и детектится практически мгновенно. На практике это часто связано с тем, что многие антидетект-браузеры при работе с прокси используют локальную прослойку - промежуточный клиент или туннель, через который проходит трафик. В этом случае TLS формируется не самим браузером, а этой прослойкой, и чаще всего там не воспроизводится нативный TLS стек Chrome. В результате возникает рассинхрон между тем, что заявляет браузер, и тем, как выглядит реальное соединение.</p>
  <p id="2BrG">Похожая ситуация возникает с GPU. Браузер может заявлять один рендер и характеристики устройства, но реальные результаты WebGL или WebGPU тестов показывают другое поведение: отличаются доступные возможности, лимиты, точность вычислений или поддержка функций. Это часто происходит в антидетектах, где отпечатки подставляются статически, без привязки к реальному поведению среды. В итоге значения выглядят правдоподобно по отдельности, но не совпадают с тем, что браузер реально способен воспроизвести.</p>
  <p id="LEmB">На уровне CPU и производительности логика аналогичная. navigator может показывать ожидаемые параметры - количество ядер, память - но execution timing не соответствует этим значениям. Антифрод в этом случае сравнивает не сами цифры, а фактическое время выполнения операций и выявляет расхождение между заявленным и реальным поведением.</p>
  <p id="b2PA">Timezone и география сами по себе редко являются причиной детекта, но усиливают другие сигналы. Например, IP может определяться в одной стране, а локаль, язык и поведение соответствуют другой. В изоляции это допустимо, но в комбинации с другими несоответствиями повышает риск.</p>
  <p id="6o8M">Поведенческий уровень - отдельный источник детекта. Даже реальные пользователи могут выглядеть подозрительно, если их действия слишком однообразны: одинаковые интервалы, повторяющиеся сценарии, отсутствие вариативности. В этом случае система фиксирует не индивидуальное поведение, а шаблон.</p>
  <p id="o0Fl">Ещё один частый сценарий - повторное использование одного и того же окружения. Когда один fingerprint появляется на разных аккаунтах, с разными IP и в короткий промежуток времени, это фиксируется на уровне корреляции. Здесь не важно, насколько «чистый» каждый отдельный сигнал - важна связь между ними.</p>
  <p id="aRYj">Отдельно стоит ситуация с «идеально собранным» профилем. Полностью стабильные значения, отсутствие отклонений и одинаковое поведение выглядят неестественно, потому что реальные устройства всегда дают небольшую вариативность.</p>
  <p id="fyJM">Во всех этих случаях проблема не в конкретном параметре, а в их сочетании. Можно иметь корректный IP, правдоподобный браузер и аккуратно собранный fingerprint, но если они не согласованы между собой, это фиксируется как несоответствие.</p>
  <h2 id="KSqR">Почему большинство “чекеров” ошибаются, и как должна работать глубокая проверка среды</h2>
  <p id="s8Iy">Большая часть публичных чекеров проверяет только базовый слой: пару полей из <code>navigator</code>, тип IP, иногда <code>WebRTC</code> и простые флаги автоматизации.<br />Проблема в том, что такой подход часто создает ложное ощущение точности: пользователь видит “чисто” или “подозрительно”, но не понимает, насколько вывод вообще надежен.</p>
  <h3 id="FIOl">В чем слабость базовых чекеров</h3>
  <p id="Eltf">Многие чекеры:</p>
  <ul id="XhKX">
    <li id="O9xB">смотрят только “паспортные” данные браузера (UA, platform, language);</li>
    <li id="jTQi">не делают активных вычислительных тестов;</li>
    <li id="E6QZ">не сверяют данные между независимыми слоями;</li>
    <li id="TJCS">не учитывают NAT/CGNAT и ограничения IP-аналитики;</li>
    <li id="dSiR">выдают результат без нормальной объяснимости.</li>
  </ul>
  <p id="cyIm">Из-за этого пользователь может быть введен в заблуждение в обе стороны:</p>
  <ul id="LS0L">
    <li id="Ytp4">получить “ок” при реально поддельной среде;</li>
    <li id="nEhS">получить “риск” на легитимной конфигурации (VPN, роуминг, корпоративная сеть, нестандартный драйвер и т.д.).</li>
  </ul>
  <h3 id="JXgH">Как должен работать современный чекер</h3>
  <p id="6cwn">Сильный чекер оценивает не отдельные флаги, а внутреннюю согласованность среды:</p>
  <ul id="x4V1">
    <li id="LNo1">browser/device слой: API-consistency, WebGL/WebGPU, execution timing, automation-артефакты;</li>
    <li id="FlmS">network слой: ASN, тип сети, VPN/Tor/datacenter, провайдерный контекст;</li>
    <li id="O58y">межслойная корреляция: совпадает ли то, что среда “заявляет”, с тем, что она реально “показывает”;</li>
    <li id="GeaE">риск-модель: не бинарный ярлык, а накопление независимых конфликтов с объяснением.</li>
  </ul>
  <h3 id="vkwU">Что отличает наш <a href="https://proxyshard.com/ip-checker" target="_blank">чекер</a></h3>
  <p id="14cm">Наш <a href="https://proxyshard.com/ip-checker" target="_blank">чекер</a> построен именно как глубокая антифрод-проверка:</p>
  <ul id="KO0p">
    <li id="q0N3">проверяет среду по уровням, а не по одной метке;</li>
    <li id="DulT">делает активные тесты, а не только читает поля;</li>
    <li id="mmSK">учитывает межслойные конфликты (browser ↔ network ↔ execution);</li>
    <li id="WrIf">снижает ложные срабатывания за счет нормализации и контекстной логики;</li>
    <li id="adX1">отдает объяснимый результат: какие сигналы сработали и почему.</li>
  </ul>
  <p id="4ei0">Итог простой:<br />обычные чекеры часто проверяют “витрину”, а не реальную среду.<br />Наш чекер проверяет именно поведение и согласованность системы, поэтому дает более надежную картину риска и меньше вводит пользователя в заблуждение.<br /><br />Примеры результатов с чекера<br /></p>
  <figure id="XMj9" class="m_original">
    <img src="https://img4.teletype.in/files/f3/4b/f34b89ac-fbe8-484c-9035-75819d55fbd1.png" width="1568" />
  </figure>
  <figure id="kz7b" class="m_original">
    <img src="https://img4.teletype.in/files/3e/04/3e046f3a-13ca-4455-bd4f-8be8470c5144.png" width="912" />
  </figure>
  <figure id="lOSO" class="m_original">
    <img src="https://img4.teletype.in/files/35/5f/355f89fe-fbc8-480f-8b5e-d6d869011f5c.png" width="1343" />
  </figure>
  <figure id="nXhD" class="m_original">
    <img src="https://img4.teletype.in/files/35/37/3537beb6-3dcf-403a-bc2d-6a28cb0b75a7.png" width="963" />
  </figure>
  <h2 id="tXsf">Как увидеть внутреннюю логику антифрода через скрипты</h2>
  <p id="hACa">Один из самых наглядных способов понять, как работает антифрод на странице - использовать <a href="https://gist.github.com/Kr1tos/5eb2c25eb30136bb649c7a1d590fbbee" target="_blank">скрипт</a>, который перехватывает вызовы browser API в рантайме. Такой скрипт внедряется до выполнения основного кода страницы и позволяет увидеть, какие именно методы вызываются системой для анализа окружения.</p>
  <p id="flm6">Практически это делается через готовый скрипт (например, размещённый в Gist), который логирует обращения к WebGL, Canvas, Audio, navigator и другим API. После установки достаточно открыть сайт, обновить страницу и выполнить обычные действия пользователя - все вызовы будут фиксироваться в консоли DevTools.</p>
  <p id="kpmy">Команды для анализа</p>
  <ul id="a3or">
    <li id="uWqX"><code>__afProbe.dumpTop()</code><br /> Показывает, какие API вызываются чаще всего - основной инструмент для понимания приоритетов антифрода.</li>
    <li id="c00A"><code>__afProbe.recent(50)</code><br /> Выводит последние события в порядке выполнения, помогает понять последовательность проверок.</li>
    <li id="yafB"><code>copy(__afProbe.exportJson())</code><br /> Копирует полный лог для анализа или сохранения.</li>
    <li id="fEQf"><code>__afProbe.clear()</code><br /> Очищает данные перед новым прогоном.</li>
  </ul>
  <p id="jAzS">Как читать результат</p>
  <ul id="jDXI">
    <li id="TxU7">Частые <code>webgl.getParameter</code> / <code>webgl2.getParameter</code><br /> → активная проверка GPU и WebGL fingerprint</li>
    <li id="T6jP">Частые <code>canvas.toDataURL</code> / <code>canvas.getContext</code><br /> → используется canvas fingerprint</li>
    <li id="9y4b">Частый <code>Intl.DateTimeFormat.resolvedOptions</code><br /> → проверка timezone и locale</li>
    <li id="OPsU">Обращения к <code>navigator.webdriver</code><br /> → базовый детект automation</li>
    <li id="ZwF8">Вызовы <code>offlineAudio.startRendering</code><br /> → используется audio fingerprint</li>
    <li id="2v7J"><code>rtc.createOffer</code> / <code>rtc.createDataChannel</code><br /> → задействован WebRTC слой</li>
  </ul>
  <p id="SAF0">Пример интерпретации результата</p>
  <ul id="Nwhp">
    <li id="RjIk">В топе WebGL + Canvas + Intl<br /> → многоуровневый антифрод с глубокой проверкой среды</li>
    <li id="RYR8">В основном только <code>navigator.*</code><br /> → простой уровень детекта</li>
    <li id="Ux3W">Есть WebGL + Audio + Timing<br /> → продвинутый fingerprinting (уровень DataDome / Kasada)</li>
    <li id="WZWZ">Добавляется WebRTC<br /> → проверяется сетевая согласованность</li>
  </ul>
  <figure id="39Zp" class="m_original">
    <img src="https://img3.teletype.in/files/aa/5a/aa5a01fd-a47a-4e6b-be52-3f401f90076d.png" width="941" />
    <figcaption>Пример результата с https://accounts.binance.com</figcaption>
  </figure>
  <h2 id="5Y0T">Финальный вывод</h2>
  <p id="wN7N">Современный антифрод - это не про прокси, не про браузер и не про ботов.</p>
  <p id="s9Js">Это система, которая отвечает на один вопрос: может ли вся эта среда существовать в реальности?</p>
  <p id="ItnY">Если ответ «нет» - пользователь получает риск.</p>
  <p id="xUX6">И именно поэтому сегодня невозможно обойти антифрод одним трюком.<br />Нужно, чтобы вся система выглядела правдоподобно одновременно.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@kr1ts/jpeRUNTn3Xm</guid><link>https://teletype.in/@kr1ts/jpeRUNTn3Xm?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kr1ts</link><comments>https://teletype.in/@kr1ts/jpeRUNTn3Xm?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kr1ts#comments</comments><dc:creator>kr1ts</dc:creator><title>Что такое WebRTC, как он используется антифрод системами и как некоторые антидетект браузеры сдают вас им?</title><pubDate>Fri, 13 Mar 2026 11:22:11 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/18/bf/18bf1a65-5bfe-482e-adef-c826ca410144.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/c7/12/c71297f5-0a95-47c1-aa0f-cbed2eef518b.png"></img>WebRTC это P2P соединение, которое было создано для передачи любых данных в реальном времени между большим количеством кандидатов (клиентов), в основном для аудио. Для быстрой передачи данных был выбран UDP протокол из-за того что он позволяет отправлять данные без хендшейка и прочих механизмов компрессии, которые добавляют дополнительный оверхед.]]></description><content:encoded><![CDATA[
  <nav>
    <ul>
      <li class="m_level_1"><a href="#SNqV">
Что такое WebRTC?</a></li>
      <li class="m_level_1"><a href="#AIUF">Как антифрод системы используют WebRTC для детекта прокси?</a></li>
      <li class="m_level_1"><a href="#nzr3">Почему практически все чекеры на утечку WebRTC бесполезны, как антидетект браузеры обманывают вас благодаря им и могут и почему некоторые антидетект браузеры сдают вас антифродам?</a></li>
      <li class="m_level_1"><a href="#ZAeo">Какие сервисы используют проверки WebRTC и как определить есть ли она там или нет?</a></li>
      <li class="m_level_2"><a href="#3OgF">1. Сканирование сети через TCPdump, Wireshark и подобное ПО</a></li>
      <li class="m_level_2"><a href="#j51p">2. Проверка сурсов сайта через DevTools</a></li>
      <li class="m_level_2"><a href="#hs28">3. Инжект в страницу скрипта, который будет присылать аллерты</a></li>
      <li class="m_level_2"><a href="#OuJ2">Сервисы которые используют новый вид проверки WebRTC через SRTP</a></li>
      <li class="m_level_1"><a href="#QlYd">Как полноценно защититься от утечки WebRTC и  не вызывать подозрения у антифрода его блокировкой. </a></li>
    </ul>
  </nav>
  <h2 id="SNqV"><br />Что такое WebRTC?</h2>
  <p id="ZI9w">WebRTC - это P2P-соединение, которое было создано для передачи любых данных в реальном времени между большим количеством кандидатов (клиентов), в основном для аудио. Для быстрой передачи данных был выбран UDP-протокол из-за того, что он позволяет отправлять данные без хендшейка и прочих механизмов компрессии, которые добавляют дополнительный оверхед.<br /></p>
  <h2 id="AIUF">Как антифрод системы используют WebRTC для детекта прокси?</h2>
  <p id="QSpA">Ответ на данный вопрос максимально прост - из-за того, что в основе WebRTC лежит UDP, а если немного подробнее, то из-за того, что многие антидетект-браузеры не поддерживают проксирование UDP, и вообще малая часть прокси умеет работать с ним.</p>
  <p id="19NF">Данная история тянется примерно с 2013 года: тогда были интегрированы первые максимально простые способы для детекта WebRTC, и в то же время были запущены чекеры на утечку DNS. Один из них знают многие - Browserleaks, к нему вернёмся немного позже.</p>
  <p id="NAzM">Первые способы детекта были максимально примитивные, проверка выглядела так</p>
  <pre id="LmYp">var pc = new RTCPeerConnection({
  iceServers: [{ urls: &quot;stun:stun.l.google.com:19302&quot; }]
});

pc.createDataChannel(&quot;&quot;);

pc.onicecandidate = function(e) {
  if (!e.candidate) return;

  console.log(e.candidate.candidate);
};

pc.createOffer().then(o =&gt; pc.setLocalDescription(o));</pre>
  <p id="pIsP">Сайт просил клиента вернуть список кандидатов для P2P-адресов без какой-либо валидации на стороне сервера. Тогда и был придуман способ для обмана данной проверки, который до сих пор используется во многих антидетект-браузерах либо в немного модифицированной версии:</p>
  <pre id="FUse">const Orig = window.RTCPeerConnection;

window.RTCPeerConnection = function(cfg) {
  const pc = new Orig(cfg);

  pc.addEventListener(&quot;icecandidate&quot;, e =&gt; {
    if (e.candidate) {
      e.candidate.candidate =
        e.candidate.candidate.replace(
          /\d+\.\d+\.\d+\.\d+/,
          &quot;127.0.0.1&quot;
        );
    }
  });

  return pc;
};</pre>
  <p id="TU4L">Способ обхода, как и сама проверка, были максимально примитивными: достаточно было заинжектить на страницу скрипт, который при вызове icecandidate (это метод, который получает и возвращает список всех кандидатов) устанавливал любые адреса в ответ.</p>
  <p id="oZ5M">Некоторое время такая подмена работала, но антифроды не стоят на месте: в ход пошли двусторонние SRTP-проверки с валидацией на стороне сервера, и тогда же начались огромные волны банов, о которых, возможно, даже кто-то слышал. Например: Ticketmaster в 2018, Facebook в 2017–2018, Google в 2018–2019 и куча других сервисов.</p>
  <p id="bINU">Волны банов начались из-за того, что практически все тогда использовали классическую функцию подмены кандидатов на стороне клиента и не блокировали отправку WebRTC. Из-за того, что WebRTC начали проверять на сервере, он просто сопоставлял TCP-IP клиента и UDP-IP. В таком случае TCP-IP будет прокси, а UDP - устройства, с которого производится подключение. Простыми словами - утечка реального IP через WebRTC.</p>
  <p id="X6gB">Тогда антидетект-браузеры начали просто блокировать WebRTC на уровне ядра браузера либо ломать стандартные функции для установки WebRTC-соединения, чтобы соединение на сервер не устанавливалось. Для антифрода это, конечно, подозрительно, но если нет других триггеров, подтверждающих подмену железа, использование прокси и т.д., то он просто записывает вас на карандаш.</p>
  <p id="VZDj">Сейчас это работает не везде, особенно на посредственных антидетект-браузерах. За последние несколько лет антифрод-системы начали уделять огромное внимание железу, проверяя всё, что возможно - CPU, GPU, шрифты, CSS и т.д. Об этом я подробнее расскажу в следующей статье про виды антидетектов, как именно работает их многоуровневая проверка и почему даже на максимально «грязном» IP можно пройти некоторые антифрод-системы.</p>
  <p id="C1sq">Из-за этого в последние годы всё чаще всплывают вопросы:<br /> «Почему не удаётся решить Funcaptcha в Twitter, уже все виды прокси перепробовал?» или аналогичные вопросы по поводу Hcaptcha Enterprise и других антифрод-систем.</p>
  <p id="23jE"><br />В данных ситуациях накладывается всё: грязные отпечатки, плохая подмена данных самим антиком, и заключительным гвоздём в крышку гроба становится WebRTC. Самое простое решение в данной ситуации - отключение прокси и блокировка WebRTC в профиле, а также раздача интернета с телефона или использование интернета с ПК, если нужно произвести действия с одного аккаунта. Если по отпечаткам не всё так плохо, то данный способ поможет, добавив дополнительные «баллы» за WebRTC и QUIC, но также бывают ситуации, когда это не помогает и нужно менять отпечатки.</p>
  <p id="svqH">Способ с раздачей интернета или использованием домашнего плох тем, что у аккаунта резко два раза меняется гео, и антифрод за такие манипуляции может забанить. Для Discord, Twitter и других соцсетей он ещё подходит, но если работа производится с FB Ads или любым другим сайтом, где стоит антифрод от Akamai, с огромной вероятностью аккаунт будет заблокирован. Поэтому единственное правильное решение, максимально минимизирующее шанс блокировки, - это использование прокси с поддержкой UDP и антидетекта с поддержкой его туннелирования.</p>
  <h2 id="nzr3">Почему практически все чекеры на утечку WebRTC бесполезны, как антидетект браузеры обманывают вас благодаря им и могут и почему некоторые антидетект браузеры сдают вас антифродам?</h2>
  <p id="HCXT">В предыдущей главе был описан максимально старый, примитивный способ детекта и подмены WebRTC из 2013 года. До сих пор практически все чекеры и некоторая часть антидетект-браузеров используют данный способ. Из-за этого сервисы наподобие whoer, browserleaks, ipleak показывают неверную информацию, создавая иллюзию безопасности, но на деле у вас будет утекать реальный IP, если антидетект-браузер его не блокирует, либо он будет заблокирован, что подтолкнёт антифрод к дополнительной слежке и проверке.</p>
  <p id="ZNBB">Если вы используете антидетект-браузеры и прокси без поддержки UDP, убедитесь, что WebRTC отключён, т.к. до сих пор существует большое количество антидетект-браузеров, которые используют старый способ подмены без блокировки, и у вас будет утекать реальный IP. Пример утечки на скриншоте ниже.</p>
  <figure id="eChn" class="m_original">
    <img src="https://img3.teletype.in/files/a5/ee/a5ee06fa-b103-4813-a5ad-d9657ba5e94a.png" width="1093" />
  </figure>
  <p id="wg7k"><br />Важно: если вы используете прокси с поддержкой UDP, TCP-IP и UDP-IP у вас могут отличаться, и это нормально, т.к. многие мобильные/домашние провайдеры используют Dual NAT или симметричный/CG-NAT. В таком случае по WebRTC будет получаться не ваш домашний IP, а IP вашего провайдера, который используется как точка входа в NAT. Такой вид NAT особенно распространён в Америке, например у T-Mobile USA.<br /></p>
  <h2 id="ZAeo">Какие сервисы используют проверки WebRTC и как определить есть ли она там или нет?</h2>
  <p id="4FCi">Способов определения наличия проверки WebRTC на сайте несколько:<br /></p>
  <h3 id="3OgF">1. Сканирование сети через TCPdump, Wireshark и подобное ПО</h3>
  <p id="fXeu">Если на сайте есть вызов WebRTC, то в Wireshark или TCPdump вы увидите отправку STUN-соединений на сервер сервиса (см. скриншот ниже).</p>
  <figure id="M95s" class="m_original">
    <img src="https://img4.teletype.in/files/73/70/737055cd-6740-45c1-8638-6d7548c347b0.png" width="965" />
  </figure>
  <p id="2LOO"><br /><strong>У данного способа есть масса минусов:</strong></p>
  <ol id="N5DE">
    <li id="SLjB">он слишком затратный по времени;</li>
    <li id="vy0l">если вы ранее не работали с подобным ПО, то в первые разы будет сложно разобраться, как фильтровать и сканировать пакеты;</li>
    <li id="JvVZ">параллельно запущен Discord или другой сайт, использующий WebRTC, вы можете перепутать сервера;</li>
    <li id="XfPt">сайт может маскировать передачу кандидатов под XMLHttpRequest или WebSocket, тогда вы не увидите отправку запроса к серверу.<br /></li>
  </ol>
  <h3 id="j51p">2. Проверка сурсов сайта через DevTools</h3>
  <p id="Uhyo">Открыв DevTools на сайте, можно через поиск по Sources найти функции для работы с WebRTC по ключевым словам: RTCPeerConnection, RTCIceCandidate, RTCSessionDescription, RTCDataChannel, iceConnectionState, iceTransport, createDataChannel. Также при необходимости можно поставить breakpoints и отдебажить.</p>
  <figure id="WQ2i" class="m_original">
    <img src="https://img1.teletype.in/files/c7/12/c71297f5-0a95-47c1-aa0f-cbed2eef518b.png" width="1289" />
  </figure>
  <figure id="shSA" class="m_original">
    <img src="https://img2.teletype.in/files/12/ce/12ce5e48-5806-4643-bb05-06dbbb24a74b.png" width="1464" />
  </figure>
  <p id="RjH8"><br />Единственный минус этого способа в том, что сайт может быть обфусцирован, и будет тяжело что-то найти, например как у Funcaptcha.<br /></p>
  <figure id="N0HI" class="m_original">
    <img src="https://img1.teletype.in/files/0f/c9/0fc926ad-bd0e-4ce8-b634-6fd37ed1c183.png" width="1319" />
  </figure>
  <h3 id="hs28">3. Инжект в страницу скрипта, который будет присылать аллерты</h3>
  <p id="2TOe">Через Tampermonkey можно заинжектить скрипт, который будет слушать все события WebRTC и логировать их в консоль браузера.<br /><br />На примере LinkedIn можно полностью увидеть все этапы, т.к. у них проверка вызывается сразу на главной странице.<br /></p>
  <figure id="zo26" class="m_original">
    <img src="https://img4.teletype.in/files/f1/50/f15017bf-a588-4431-bc8b-3b330bd9d036.png" width="1414" />
  </figure>
  <figure id="fre6" class="m_original">
    <img src="https://img4.teletype.in/files/f2/25/f2256a1f-65c5-4cde-8de1-7e8950ea31de.png" width="1381" />
  </figure>
  <p id="ilpB">На других антифродах может быть всё не так очевидно, т.к. чаще всего происходит инициализация WebRTC, а запрос отправляется только при наличии подозрений по более дешёвым проверкам (отпечатки и т.д.). Эту тему раскрою подробнее в следующей статье.</p>
  <p id="RaLQ">Инструкцию и сам скрипт для дебага вы можете найти в нашем <a href="https://docs.proxyshard.com/nashi-produkty/o-protokole-udp/kak-ustanovit-tampermonkey-i-skript-dlya-debaga-webrtc" target="_blank">гитбуке</a></p>
  <h3 id="OuJ2">Сервисы которые используют новый вид проверки WebRTC через SRTP</h3>
  <p id="ZKnN">Arkose Labs (Funcatpcha Enterprise - Twitter, EpicGames, Roblox и тд)<br />Cloudflare Turnstile<br />Hcaptcha Enterprise (Discord, CoinBase, OpenSea, Kraken)<br />Akamai (Linode, Nike, Ticketmaster, Linkedin) <br />PerimeterX (StockX, Walmart)<br />DataDome<br />Kasada<br />SEON (Revolut, Bitpanda)<br />ThreatMetrix (PayPal, American Express)<br />Криптобиржи, неизвестные SaaS-решения (Binance, OKX, MEXC, Bybit и т.д.)</p>
  <h2 id="QlYd">Как полноценно защититься от утечки WebRTC и  не вызывать подозрения у антифрода его блокировкой. </h2>
  <p id="wFsn">Есть только один способ полностью защититься от этого — использовать прокси с поддержкой UDP и антидетект с поддержкой UDP-туннелирования либо стороннее ПО для проксирования процесса/всей системы.</p>
  <p id="qx4U">У второго случая есть единственный минус — можно использовать одновременно только одну прокси и, соответственно, один профиль. Также на резидентских прокси будет потребление трафика в несколько раз больше, чем при использовании прокси только в браузере.<br /><br />Приобрести все виды прокси с подержкой UDP вы можете у нас на <a href="https://proxyshard.com/?utm_source=teletype&utm_medium=article&utm_campaign=webrtc_detection" target="_blank">сайте</a>, а так же ознакомиться в <a href="https://docs.proxyshard.com/nashi-produkty/o-protokole-udp/programmnye-resheniya-dlya-vklyucheniya-webrtc" target="_blank">документации</a> с ПО и антидетектами поддерживающими проксирование UDP.<br /><br />Не прощаюсь. В скором времени ожидайте огромную статью по антидетект-браузерам и, возможно, мини-копию <a href="https://proxyshard.com/ip-checker" target="_blank">чекера</a> внутри расширения/Tampermonkey-скрипта для определения, какие механизмы детекта может использовать сайт.<br /></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@kr1ts/vQETnb8ZLZo</guid><link>https://teletype.in/@kr1ts/vQETnb8ZLZo?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kr1ts</link><comments>https://teletype.in/@kr1ts/vQETnb8ZLZo?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kr1ts#comments</comments><dc:creator>kr1ts</dc:creator><title>Что такое фейк ISP прокси, или как многие прокси провайдеры продают датацентр прокси под видом ISP?</title><pubDate>Thu, 12 Mar 2026 12:27:35 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/c8/50/c850bc46-316e-4367-80f7-3cc62916ad1c.png"></media:content><description><![CDATA[Начнём с ответа на вопрос - что вообще такое ISP прокси? ISP прокси - это прокси которые размещаются на адресах домашних или мобильных провайдеров, из этого вытекает второй вопрос - а как вообще достать такие адреса? Самое первое что приходит в голову - это писать провайдерам и договариваться с ними о аренде их подсетей, но тут не всё так просто. Из условных 300 провайдеров, только у одного-двух десятков будут свободные подсети, которые они могут предоставить, но готовы предоставить такие услуги только единицы, т.к прокси считается серой сферой и переубедить в обратом не является возможным. И выходит так что на поиск провайдера в одной стране могут уйти в месяцы, а иногда без связей найти кого-нибудь просто невозможно. Из-за этого...]]></description><content:encoded><![CDATA[
  <p id="78zK">Начнём с ответа на вопрос  - что вообще такое ISP прокси?<br /><br />ISP прокси - это прокси которые размещаются на адресах домашних или мобильных провайдеров. Из этого вытекает второй вопрос - а как вообще достать такие адреса? <br /><br />Самое первое что приходит в голову - это писать провайдерам и договариваться с ними о аренде их подсетей, но тут не всё так просто. Из условных 300 провайдеров, только у одного-двух десятков будут свободные подсети, которые они могут предоставить, но готовы предоставить такие услуги только единицы, т.к прокси считается серой сферой и переубедить в обратом не является возможным. Выходит так, что на поиск провайдера в одной стране могут уйти месяцы, а иногда без связей найти кого-нибудь просто невозможно.<br /><br />Из-за этого и появились фейк ISP прокси. Существует множество маркетов для сдачи своих подсетей в аренду и не редко домашние/мобильные провайдеры выставляют там свои подсети. Тут начинается самое интересное - т.к подсеть использовалась домашним провайдером по GeoIP базам, она будет биться как ISP, этим и пользуются те кто делает и продают фейк ISP прокси. <br /><br />Подсеть у нас уже есть, но возникает вопрос - где её анонсировать, чтобы всё выглядело максимально правдоподобно. Решение данной проблемы максимально простое, практически все крупные домашние провайдеры предоставляют услуги датацентр хостинга. Приобретается такой сервер, на нём анонсируется подсеть от лица (ASN) домашнего провайдера и человек который не знает об этом ничего - даже не заподозрит, но GeoIP провайдеры и антифроды не дремлют. <br /><br />Задетектить такую подсеть максимально просто и есть 3 основных способа.<br /><br />Для проверки возьмём подсеть 45.93.186.0/23<br /><br /><strong>Первый способ - geofeed провайдера</strong><br />Geofeed это стандартизированный файл, в котором каждый провайдер указывает точное физическое расположение своих подсетей. Обычно у провайдеров один geofeed, но если провайдер предоставляет несколько видов услуг - домашний интернет, датацентр или бизнес, то под каждый вид услуг будет свой geofeed.<br />Данная подсеть анонсируется у DTAG, проверяем по их geofeed<br /></p>
  <figure id="olbH" class="m_original">
    <img src="https://img4.teletype.in/files/3e/da/3eda1f0c-27c1-402a-a958-50963ebf5e16.png" width="2001" />
  </figure>
  <p id="LgVk">Данной подсети в geofeed нет, первый звоночек есть.<br /><br /><strong>Второй способ - трассировка до адреса (traceroute/mtr)<br /></strong>У многих домашних провайдеров для датацентр услуг используются отдельные маски для маршрутизаторов с типом DCH и меткой router и на таких провайдерах, по последним хопам можно понять, что подсеть анонсируется в датацентре, либо если тот кто поднимал прокси неопытный и не закрыл ICMP пакеты, то можно прозвониться вплоть до сервера, который управляет подсетями. Т.к обычно сервера у провайдеров не арендуются из-за того что цены на их услуги довольно высокие, а просто пробрасывается GRE туннель от маршрутизаторов до любого другого хостинга в датацентре. <br />У DTAG нет отдельных масок для дц и ICMP закрыт, по этому тут ничего не было найдено <br /></p>
  <figure id="beeN" class="m_original">
    <img src="https://img1.teletype.in/files/c8/89/c889fa35-8433-4719-9487-17faa8f879a7.png" width="2241" />
  </figure>
  <p id="T56h"><strong>Третий способ - whois по базе регистратора подсети и GeoIP базам<br /></strong>Тут начинается самое интересное, в основном подсети после домашних провайдеров арендуются на IPXO, есть ещё пару других маркетплейсов, но этот самый крупный.<br /><br />Посмотрев на результаты из <a href="https://apps.db.ripe.net/db-web-ui/query?bflag=false&dflag=false&rflag=true&searchtext=45.93.186.0%252F23&source=RIPE" target="_blank">RIPE DB </a>сразу всё становится понятно<br /></p>
  <figure id="LRjZ" class="m_original">
    <img src="https://img4.teletype.in/files/79/3b/793b56c9-1fb8-4ebb-ad32-8f971bb87795.png" width="1235" />
  </figure>
  <p id="uDqN">Подсетью ранее владел SCALEIT, он же выдал права IPXO для управления подсетью - создание route object и тд. В данном случае просто был создан route object на ASN DTAG. Даже старые записи о названии сети не были подтёрты, но если были бы убраны, то это ничего бы не изменило, т.к подделать название организации которая владеет подсетью невозможно.<br />В данном случае это Private Customer с abuse почтой report@abuseradar.com. Abuseradar это прослойка IPXO<br /></p>
  <figure id="u0dg" class="m_original">
    <img src="https://img2.teletype.in/files/16/7b/167bf50d-a281-4452-913e-a83bfb3536df.png" width="1173" />
  </figure>
  <p id="6j9M">Вот к примеру как должна выглядеть реальная подсеть <a href="https://apps.db.ripe.net/db-web-ui/query?bflag=false&dflag=false&rflag=true&searchtext=79.192.0.0%252F10&source=RIPE" target="_blank">DTAG</a><br /></p>
  <figure id="RthJ" class="m_original">
    <img src="https://img3.teletype.in/files/ed/a6/eda6479c-c7b8-42b6-ba64-edde3331c919.png" width="1251" />
  </figure>
  <figure id="av7K" class="m_original">
    <img src="https://img3.teletype.in/files/a1/99/a199680e-81f1-49cc-afa3-bfb178bd4ff1.png" width="1313" />
  </figure>
  <p id="fLae">Результат с ip2location подтверждает, что данная подсеть и прокси на ней являются фейк ISP. Опираться только на его результаты не стоит, т.к они проводят полные проверки адресов только 2-3 раза в год и какие-то подсети могли ещё не задетектить. Если подсеть ещё не задетектили, то по ip2loc можно увидеть только максимально явные миссматчи, например - ASN DTAG, а domain ukrtelecom.ua или любого другого провайдера, сейчас urktelecom чаще всего встречается, т.к было много выброшено их подсетей на рынок.<br /><br />Для полной проверки советуем воспользоваться нашим <a href="https://proxyshard.com/ip-checker" target="_blank">чекером</a>, который проводит детальную проверку, если айпи анонсирован на ASN домашнего/мобильного провайдера<br /><br />Есть ещё и четвёртый способ, но обычным смертным он недоступен. Существует так называемый реестр адресов домашних провайдеров, в который все домашние провайдеры подают свои адреса и он используется некоторыми антифродами.<br /><br />После прочтения всего этого может возникнуть вопрос - а нельзя ли попросить провайдера чтобы он добавил адреса в geofeed или подал заявку на обновление данных?<br />Нет, ни один тир 1 провайдер не будет такого делать. До недавнего времени с ATT можно было договориться, но их оштрафовали за это и лавочка закрылась.<br /><br />По этому если видите заголовки, что прокси имеют айпи адреса тир 1 провайдеров, в 99% случаях это будут фейк ISP. Реальные ISP можно получить только работая с тир 2-3 провайдерами, но это очень затратно по времени, либо имея связи с тир 1 провайдером, но стоить это будет обычному пользователю минимум 2.5-3$, и по этому больше половины рынка прокси заполнено фейк ISP прокси.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@kr1ts/1BmsTyhBXzl</guid><link>https://teletype.in/@kr1ts/1BmsTyhBXzl?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kr1ts</link><comments>https://teletype.in/@kr1ts/1BmsTyhBXzl?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kr1ts#comments</comments><dc:creator>kr1ts</dc:creator><title>Почему прокси - это мнимая безопасность?</title><pubDate>Fri, 13 Jun 2025 13:07:03 GMT</pubDate><description><![CDATA[Зачастую люди полагают, что подключения к прокси-серверу достаточно для полной анонимизации и защиты своего трафика. На практике же подавляющее большинство массовых решений (HTTP- и классических SOCKS5-прокси) проксируют исключительно TCP-пакеты — и это далеко не полный спектр сетевого взаимодействия современного браузера.]]></description><content:encoded><![CDATA[
  <p id="u6RE">Зачастую люди полагают, что подключения к прокси-серверу достаточно для полной анонимизации и защиты своего трафика. На практике же подавляющее большинство массовых решений (HTTP- и классических SOCKS5-прокси) проксируют исключительно TCP-пакеты — и это далеко не полный спектр сетевого взаимодействия современного браузера.</p>
  <p id="CUqC">В обычной работе браузер формирует два типа соединений:</p>
  <ul id="ikeb">
    <li id="6hH4"><strong>TCP</strong> — для загрузки веб-страниц, статики, файлов, медиа-контента. Здесь ключевым является надёжность: все пакеты должны дойти, быть упорядочены и собраны в правильном порядке.</li>
    <li id="lsA0"><strong>UDP</strong> — для DNS-запросов, HTTP/3 (QUIC), WebRTC-звонков, потокового вещания и игровых протоколов. В таких сценариях важнее минимальная задержка и высокая пропускная способность, чем абсолютная гарантия доставки каждого байта.</li>
  </ul>
  <p id="iTzv">При использовании классического TCP-прокси весь UDP-трафик либо блокируется, либо утекает напрямую в интернет вне прокси, используя основной айпи систему. Анти-фрод-системы (Google, Cloudflare, Discord, Twitter и тд.) анализируют профиль активности клиента:</p>
  <ol id="JlWG">
    <li id="EFwi">Если <strong>нет UDP-запросов</strong> (DNS, WebRTC, HTTP/3 (QUIC) и тд), система помечает сессию как «нетипичную» для реального пользователя.</li>
    <li id="dyaj">Клиент, который виден лишь как источник TCP-пакетов, автоматически получает более строгую фильтрацию (капча, верификация номера или другие дополнительные проверки) или вовсе блокируется как потенциальный бот.</li>
  </ol>
  <p id="4gjY">Чтобы устранить это несоответствие и повысить уровень доверия со стороны анти-фрод-систем, в ProxyShard была внедрена полноценная поддержка UDP в протоколе SOCKS5. На текущем этапе эта функциональность доступна в тестовом режиме на дата-центр прокси в Нидерландах, но уже в ближайшее время она будет развёрнута в других регионах и на ISP-прокси, которые скоро будут доступны, сейчас ведутся тесты.<br /><br />Мы и наши клиенты провели серию сравнительных тестов, которые наглядно демонстрируют эффективность UDP-поддержки:</p>
  <ol id="fB8o">
    <li id="Q0dx">Регистрация Google аккаунтов без номера</li>
    <ul id="W69x">
      <li id="bAvh">С UDP 15 аккаунтов из 15 попыток.</li>
      <li id="QjLy">Без UDP 0 из 15.</li>
    </ul>
    <li id="Fz8Q">Регистрация Discord аккаунтов и вход в каналы</li>
    <ul id="5tyw">
      <li id="4KrI">С UDP 3 аккаунта из 3 с привязкой первого попавшегося номера с сервиса для активации и вход в каналы с анти-бот защитой (OpenSea, IOTA и тд).</li>
      <li id="J3OB">Без UDP на всех аккаунтах не дало привязать номер и не пускало в некоторые каналы.</li>
    </ul>
    <li id="kGj9">Регистрация Twitter</li>
    <ul id="a4o9">
      <li id="woml">С UDP на всех аккаунтах регистрация прошла без капчи, спустя час на все аккаунты прилетел ревериф по почте, везде без каких либо проблем прошёлся.</li>
      <li id="lZGT">Без UDP на этапе регистрации была капча и так же примерно спустя час прилетел ревериф, но уже по номеру.</li>
    </ul>
    <li id="rSPV">Регистрация Instagram</li>
    <ul id="1FJn">
      <li id="093h">С UDP на всех аккаунтах регистрация прошла без капчи, реверифа по номеру не последовало.</li>
      <li id="G5O5">Без UDP на этапе регистрации была капча, спустя минут 15-20 прилетел ревериф по номеру.</li>
    </ul>
    <li id="sa08"> Регистрация Facebook ADS</li>
    <ul id="eMET">
      <li id="KK7a">С UDP на всех аккаунтах регистрация прошла без капчи, реверифа по номеру не последовало. На следующий день прилетела верификация по видео, это нормальное поведения для Facebook, в последнее время он всем рассылает его</li>
      <li id="xKA0">Без UDP на этапе регистрации была капча, спустя час заблокировали аккаунт</li>
    </ul>
  </ol>
  <p id="zyeg">Подводя итог: для полной маскировки сетевого профиля и обхода детект-механизмов необходимо проксировать не только TCP, но и UDP-трафик. Для работы с UDP-прокси требуются анти-детект браузеры, поддерживающие UDP прокси, о списке которых мы сообщим позже.</p>
  <p id="eMFr"></p>
  <p id="VbVY">Stay turned…</p>

]]></content:encoded></item></channel></rss>