Akamai Bot Manager v2: глубокий разбор системы обнаружения ботов в 2026

Технический разбор Akamai Bot Manager v2: cookies _abck и ak_bmsc, sensor_data, JA4, X25519MLKEM768 и почему residential-прокси через ProxyHat — единственный надёжный путь для легитимной автоматизации.

Akamai Bot Manager v2 Deep-Dive: 2026 Signals & Clean Bypass
В этой статье

Akamai Bot Manager v2 глубокий разбор: как система оценивает автоматизацию в 2026

Если вы — инженер, отвечающий за легитимный мониторинг цен, сбор данных для исследования безопасности или автоматизированный QA, вы наверняка сталкивались с Akamai Bot Manager v2. Это одна из самых сложных систем обнаружения ботов на рынке, и в 2026 году она стала ещё агрессивнее. В этом глубоком разборе мы детально рассмотрим, как именно Akamai оценивает автоматизацию, какие сигналы собирает, и как настроить легитимную инфраструктуру так, чтобы она проходила проверки чисто.

Правовая оговорка: данный материал предназначен для авторизованного тестирования, исследования безопасности и легитимной автоматизации. Неправомерный обход систем защиты может нарушать Computer Fraud and Abuse Act (CFAA) и GDPR. Всегда получайте явное разрешение от владельца целевого ресурса и соблюдайте robots.txt и условия обслуживания.

Ключевая идея: Akamai Bot Manager v2 глубокий разбор показывает, что система не проверяет один параметр — она строит непрерывный серверный trust score на основе десятков сигналов. Если хоть один сигнал не совпадает с заявленным User-Agent, cookie _abck инвалидируется мгновенно. Именно поэтому обход Akamai Bot Manager в 2026 году — это не про обход одного фильтра, а о создании корректного, полностью согласованного браузерного профиля.

Стек сигналов: cookies _abck, ak_bmsc и телеметрический движок sensor.js

Akamai Bot Manager v2 использует многоуровневую архитектуру обнаружения. На верхнем уровне работают два ключевых cookie: _abck и ak_bmsc. Понимание того, как они взаимодействуют, — основа любой легитимной автоматизации.

ak_bmsc — это cookie, которая устанавливается при первом запросе к защищённому ресурсу. Она содержит базовый отпечаток клиента: IP-адрес, User-Agent, поддерживаемые кодировки и заголовки. Akamai использует ak_bmsc для первичной классификации ещё до выполнения JavaScript. Если ваш IP принадлежит дата-центру с плохой репутацией, вы можете получить блокировку на этом этапе, даже до загрузки sensor.js.

_abck — это зашифрованный токен доверия, который Akamai проверяет на каждом последующем запросе. Он содержит:

  • Серверный trust score (0–1, где значения ниже определённого порога помечаются как бот)
  • Хэш собранного sensor_data
  • Временную метку создания
  • Идентификатор сессии и привязку к IP

Важно: _abck — это не статичный токен. Akamai периодически переоценивает trust score на основе поведения пользователя. Если вы получили валидный _abck, но затем совершили запрос с несогласованным TLS-отпечатком или с другого IP, cookie будет помечена как подозрительная.

sensor.js и движок bmak

JavaScript-модуль, известный как sensor.js или bmak, — это ядро клиентской телеметрии Akamai. Он загружается как обфусцированный скрипт и собирает данные о браузере и устройстве. Движок bmak отвечает за:

  • Сбор событий мыши, клавиатуры, прокрутки и touch
  • Чтение свойств экрана и GPU через WebGL
  • Вычисление временных характеристик (timing)
  • Формирование payload sensor_data
  • Отправку payload на сервер Akamai для валидации

Скрипт обфусцирован и регулярно обновляется — Akamai меняет структуру каждые 2–4 недели. Это означает, что ручной реверс-инжиниринг sensor_data — это игра в кошки-мышки, которую Akamai всегда выигрывает. Гораздо эффективнее использовать реальный браузерный движок, который генерирует sensor_data естественным образом.

Как собирается sensor_data и почему одно несовпадение ломает _abck

Payload sensor_data — это основа, на которой Akamai строит доверие к клиенту. Это структурированная строка, которая кодирует десятки сигналов, собранных bmak в браузере. Понимание её структуры критично для легитимной автоматизации.

Источники данных для sensor_data

sensor_data Akamai собирается из следующих источников:

  • События мыши: координаты движения, скорость, ускорение, интервалы между кликами, количество кликов
  • События прокрутки: направление, скорость, паттерны (плавная прокрутка vs мгновенный скачок)
  • Touch-события: для мобильных устройств — давление, площадь касания,多点 touch
  • Свойства экрана: screen.width, screen.height, screen.colorDepth, window.devicePixelRatio
  • GPU-свойства: WebGL-параметры (UNMASKED_VENDOR_WEBGL, UNMASKED_RENDERER_WEBGL), версия WebGL, поддерживаемые расширения
  • Тайминги: performance.now(), Date.now(), время загрузки страницы, задержки между событиями
  • Свойства браузера: navigator.platform, navigator.languages, navigator.hardwareConcurrency, navigator.deviceMemory

Структура payload

Payload sensor_data передаётся как часть POST-запроса к эндпоинту Akamai (обычно /_bm/...). Строка содержит последовательность значений, разделённых специфическими разделителями, и включает:

  1. Версию сенсора (соответствует версии sensor.js)
  2. Хэш собранных событий
  3. Закодированные временные ряды движений мыши
  4. Отпечаток GPU и экрана
  5. Случайный nonce для защиты от повторного воспроизведения

Почему одно несовпадение инвалидирует _abck

Вот критический момент: Akamai использует перекрёстную валидацию всех полей. Если ваш User-Agent заявляет «Chrome 131 на Windows 10», но:

  • TLS-отпечаток (JA4) соответствует Firefox — _abck инвалидируется
  • WebGL-рендерер сообщает «Apple GPU» вместо ожидаемого «ANGLE (NVIDIA ...)» — _abck инвалидируется
  • navigator.platform = «Linux x86_64» при UA «Windows NT 10.0» — _abck инвалидируется
  • HTTP/2 SETTINGS frame не совпадает с Chrome — _abck инвалидируется

Это означает, что частичный stealth — бесполезен. Вам нужно полное согласование всех сигналов, от сетевого уровня до JavaScript API. Именно поэтому инструменты вроде puppeteer-stealth с плагинами, исправляющими только отдельные поля, часто недостаточны против Akamai v2.

Сигналы протокола 2026: пост-квантовый обмен ключами, JA4 и HTTP/2

В 2026 году Akamai Bot Manager v2 проверяет не только JavaScript-отпечатки, но и сетевые характеристики на уровне TLS и HTTP/2. Эти сигналы особенно важны, потому что они видны серверу до выполнения любого JavaScript.

X25519MLKEM768: пост-квантовый key share в Chrome 131+

С выходом Chrome 131 в конце 2024 года, Google включил по умолчанию пост-квантовый key share X25519MLKEM768 в TLS 1.3. Это гибридный механизм, объединяющий классический обмен X25519 с пост-квантовой инкапсуляцией ключей ML-KEM (Module-Lattice-Based Key Encapsulation Mechanism) с размером ключа 768-бит, как определено в RFC 8446 и последующих спецификациях NIST.

Akamai проверяет наличие этого key share в ClientHello. Если ваш User-Agent заявляет Chrome 131+, но TLS ClientHello не содержит X25519MLKEM768 — это мгновенный красный флаг. Библиотеки вроде Python requests или urllib3 не поддерживают этот key share по умолчанию, что делает их непригодными для имитации современных браузеров.

JA4: TLS-отпечаток нового поколения

JA4 — это улучшенная версия JA3, разработанная FoxIO. В отличие от JA3, JA4 учитывает порядок шифров, расширений и поддерживаемых групп. Akamai использует JA4 для сопоставления TLS-отпечатка с заявленным User-Agent.

Например, Chrome 131 на Windows генерирует JA4 вида t13d1516h2_8daaf615522b_b0da82dd1658. Если ваш HTTP-клиент генерирует другой JA4, Akamai знает, что вы не используете настоящий Chrome, даже если UA строка совпадает.

HTTP/2 SETTINGS fingerprint

Помимо TLS, Akamai проверяет HTTP/2 SETTINGS frame — начальные параметры соединения, которые каждый клиент отправляет серверу. Chrome, Firefox и Safari имеют разные значения для:

  • HEADER_TABLE_SIZE
  • ENABLE_PUSH
  • MAX_CONCURRENT_STREAMS
  • INITIAL_WINDOW_SIZE
  • MAX_FRAME_SIZE
  • MAX_HEADER_LIST_SIZE

Эти значения формируют уникальный отпечаток, который Akamai сравнивает с заявленным браузером. Если вы используете requests с HTTP/2-адаптером, ваши SETTINGS будут отличаться от настоящих Chrome — и Akamai это заметит.

Решение: используйте настоящий браузерный движок (Chromium через Playwright или Puppeteer), который генерирует корректные TLS и HTTP/2 сигналы автоматически. Это единственный надёжный способ обеспечить согласованность на всех уровнях стека.

Почему residential-прокси обязательны для работы с Akamai

Даже с идеально согласованным браузерным профилем, один неверный IP-адрес может разрушить всю вашу инфраструктуру. Akamai взвешивает репутацию IP-адреса очень высоко — возможно, выше, чем любой другой сигнал.

Datacenter ASN — это мгновенный красный флаг

Akamai поддерживает обширную базу данных автономных систем (ASN). IP-адреса из дата-центров (AWS, Google Cloud, Azure, DigitalOcean, OVH и др.) предварительно помечаются как бот-трафик. Это не означает автоматическую блокировку, но ваш начальный trust score будет значительно ниже — часто ниже порога, необходимого для прохождения challenge.

По данным индустриальных отчётов, более 50% веб-трафика генерируется ботами, и значительная часть блокируется именно на этапе IP-фильтрации. Дата-центр IP-адреса — это самый быстрый путь к блокировке в рамках обнаружения ботов Akamai 2026.

Residential IP: доверие по наследству

Residential-прокси используют IP-адреса, выделенные реальным интернет-провайдерам (ISP). Эти адреса принадлежат обычным домашним сетям, и Akamai не может отличить их от реальных пользователей без дополнительных сигналов. Это даёт вам:

  • Высокий начальный trust score
  • Корректную геолокацию, согласованную с другими сигналами
  • Возможность использования sticky-сессий для сохранения валидного _abck

Сравнение типов прокси для Akamai

Тип проксиРепутация IPРиск блокировки AkamaiLatencyПодходит для
ResidentialВысокая (реальный ISP)Низкий~200msДолгосрочный мониторинг, SERP scraping
MobileОчень высокая (оператор)Очень низкий~300msКритичные задачи, мобильные платформы
DatacenterНизкая (известный ASN)Высокий~50msНе рекомендуется для Akamai

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

Практическая реализация: ProxyHat + stealth-браузер

Теперь соберём всё вместе. Ниже — рабочий подход для легитимной автоматизации через ProxyHat residential-прокси с реальным браузерным движком, который корректно генерирует sensor_data и _abck.

Шаг 1: curl для базовой проверки

Начнём с простого curl-запроса через ProxyHat residential-прокси с гео-таргетингом:

curl -x http://user-country-US-session-abc123:pass@gate.proxyhat.com:8080 \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" \
  -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" \
  -H "Accept-Language: en-US,en;q=0.9" \
  "https://example.com/"

Параметр session-abc123 в имени пользователя обеспечивает sticky-сессию: все запросы в рамках сессии будут идти с одного и того же IP, что критично для сохранения валидного _abck.

Шаг 2: Python + Playwright для полного stealth-профиля

Для реальной работы с Akamai нужен браузерный движок. Playwright с Chromium — лучший выбор, потому что он генерирует корректные TLS, HTTP/2 и JavaScript сигналы:

from playwright.sync_api import sync_playwright

proxy_config = {
    "server": "http://gate.proxyhat.com:8080",
    "username": "user-country-US-session-abc123",
    "password": "pass"
}

with sync_playwright() as p:
    browser = p.chromium.launch(
        proxy=proxy_config,
        headless=False,
        args=[
            "--disable-blink-features=AutomationControlled",
            "--no-sandbox"
        ]
    )
    
    context = browser.new_context(
        user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
        viewport={"width": 1920, "height": 1080},
        locale="en-US",
        timezone_id="America/New_York"
    )
    
    # Удаляем webdriver-признаки
    context.add_init_script("""
        Object.defineProperty(navigator, 'webdriver', {get: () => undefined});
        Object.defineProperty(navigator, 'languages', {get: () => ['en-US', 'en']});
        Object.defineProperty(navigator, 'plugins', {get: () => [1, 2, 3, 4, 5]});
    """)
    
    page = context.new_page()
    page.goto("https://example.com/", wait_until="networkidle")
    
    # Ждём формирования и валидации _abck
    page.wait_for_timeout(5000)
    
    cookies = context.cookies()
    abck = [c for c in cookies if c["name"] == "_abck"]
    ak_bmsc = [c for c in cookies if c["name"] == "ak_bmsc"]
    
    print(f"_abck cookie: {abck}")
    print(f"ak_bmsc cookie: {ak_bmsc}")
    
    browser.close()

Ключевые моменты:

  • headless=False — некоторые версии Akamai обнаруживают headless-режим
  • session-abc123 — обеспечивает постоянный IP для всей сессии
  • timezone_id должен соответствовать гео прокси (US → America/New_York)
  • Ожидание 5000ms даёт sensor.js время на сбор и отправку sensor_data

Шаг 3: Node.js + Puppeteer для высокопроизводительной автоматизации

const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch({
        headless: false,
        args: [
            '--proxy-server=http://gate.proxyhat.com:8080',
            '--disable-blink-features=AutomationControlled'
        ]
    });

    const page = await browser.newPage();
    
    await page.authenticate({
        username: 'user-country-US-session-abc123',
        password: 'pass'
    });
    
    await page.setUserAgent(
        'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'
    );
    await page.setViewport({width: 1920, height: 1080});
    
    await page.evaluateOnNewDocument(() => {
        Object.defineProperty(navigator, 'webdriver', {get: () => undefined});
    });
    
    await page.goto('https://example.com/', {waitUntil: 'networkidle2'});
    await new Promise(r => setTimeout(r, 5000));
    
    const cookies = await page.cookies();
    const abck = cookies.filter(c => c.name === '_abck');
    console.log('_abck:', abck);
    
    await browser.close();
})();

Стратегия ротации сессий

Для масштабирования используйте уникальные session ID для каждого браузерного контекста. ProxyHat поддерживает до 100 concurrent sessions на стандартном тарифе. Пример паттерна ротации:

import uuid

def get_proxy_url(country="US"):
    session_id = str(uuid.uuid4())[:8]
    return f"http://user-country-{country}-session-{session_id}:pass@gate.proxyhat.com:8080"

Каждая сессия получает новый residential IP, что позволяет распределить нагрузку и избежать паттернов, которые Akamai может обнаружить при слишком высокой частоте запросов с одного IP. Подробности настройки см. в документации ProxyHat.

Частые ошибки при работе с Akamai

  • Использование HTTP-клиентов вместо браузера: requests, axios, httpx не генерируют sensor_data и не имеют корректных TLS/HTTP2 отпечатков.
  • Несогласованная геолокация: IP в США, timezone «Europe/Berlin», locale «ru-RU» — мгновенный флаг.
  • Слишком частая ротация IP: каждый запрос с нового IP не даёт _abck сформироваться. Используйте sticky-сессии.
  • Headless-режим без модификаций: navigator.webdriver=true и отсутствие GPU-рендеринга — явные признаки автоматизации.
  • Игнорирование robots.txt: даже при технической возможности доступа, игнорирование robots.txt может быть нарушением условий обслуживания.

Где это уместно: авторизованный мониторинг и security research

Технологии, описанные выше, применимы исключительно в легитимных сценариях:

  • Авторизованный мониторинг цен: сбор публично доступной информации о ценах с явного согласия или в рамках fair use
  • Security research: тестирование собственных ресурсов или ресурсов, для которых у вас есть письменное разрешение (bug bounty, pentest)
  • QA-автоматизация: тестирование собственных или клиентских сайтов
  • Сбор данных для AI: сбор публично доступных данных в соответствии с robots.txt и условиями обслуживания

Использование этих методов для обхода систем защиты с целью мошенничества, создания фейковых аккаунтов, ticketing-ботов или любых других нарушений условий обслуживания — незаконно и неэтично. Подробнее о легитимных сценариях читайте в разделах web scraping и SERP tracking.

Ключевые выводы

  • Akamai Bot Manager v2 использует непрерывный серверный trust score, а не статичные правила. Один несогласованный сигнал инвалидирует _abck.
  • sensor_data собирается из десятков источников: мышь, прокрутка, touch, экран, GPU, тайминги. Частичный stealth бесполезен.
  • В 2026 году критичны сигналы протокола: X25519MLKEM768 key share в Chrome 131+, JA4 TLS-отпечаток и HTTP/2 SETTINGS. Они должны быть согласованы с User-Agent.
  • Residential-прокси обязательны: datacenter ASN предварительно помечаются как бот-трафик.
  • Используйте настоящий браузерный движок (Playwright/Puppeteer) через ProxyHat residential-прокси для корректной генерации всех сигналов.
  • Sticky-сессии необходимы для сохранения валидного _abck между запросами.
  • Всегда получайте разрешение владельца ресурса и соблюдайте CFAA, GDPR и условия обслуживания.

Часто задаваемые вопросы

Что такое Akamai Bot Manager v2 и для чего нужен глубокий разбор?

Akamai Bot Manager v2 — это система обнаружения ботов нового поколения, которая использует многоуровневую архитектуру сигналов: cookies _abck и ak_bmsc, JavaScript-телеметрию через sensor.js, TLS-отпечатки JA4 и HTTP/2 SETTINGS. Глубокий разбор нужен, потому что система проверяет десятки сигналов одновременно и инвалидирует доверие при малейшем несовпадении. Понимание архитектуры критично для настройки легитимной автоматизации.

Почему Akamai Bot Manager v2 важен для пользователей прокси?

Akamai Bot Manager v2 напрямую влияет на выбор прокси, потому что система взвешивает репутацию IP-адреса как один из ключевых сигналов. Datacenter IP-адреса предварительно помечаются как бот-трафик, что приводит к мгновенной блокировке или существенному снижению trust score. Residential-прокси обеспечивают высокий начальный уровень доверия и корректную геолокацию, согласованную с остальными сигналами браузера.

Какой тип прокси лучше всего подходит для работы с Akamai Bot Manager v2?

Residential-прокси — оптимальный выбор для Akamai Bot Manager v2. Они используют IP-адреса реальных интернет-провайдеров, что обеспечивает высокий начальный trust score. Mobile-прокси ещё надёжнее, но дороже. Datacenter-прокси не рекомендуются, так как ASN дата-центров предварительно помечаются Akamai как бот-трафик. Sticky-сессии необходимы для сохранения валидного cookie _abck между запросами в рамках одной сессии.

Как избежать блокировок при работе с Akamai Bot Manager v2?

Используйте настоящий браузерный движок (Playwright или Puppeteer с Chromium), который генерирует корректные TLS, HTTP/2 и JavaScript сигналы. Настройте residential-прокси с sticky-сессиями для сохранения _abck. Убедитесь, что timezone, locale и гео прокси согласованы. Избегайте headless-режима без модификаций. Не превышайте разумную частоту запросов — 1–2 запроса в секунду на сессию. Всегда соблюдайте robots.txt и условия обслуживания целевого ресурса.

Готовы начать?

Резидентные, ISP и мобильные прокси в 148+ странах. Создайте бесплатный аккаунт.

Создать бесплатный аккаунт
← Вернуться в Блог