Approfondimento Akamai Bot Manager v2: il panorama del detection nel 2026
Questo approfondimento su Akamai Bot Manager v2 è destinato a ingegneri di scraping senior, team di QA e ricercatori di sicurezza che operano nel contesto dell'automazione autorizzata. Le tecniche descritte in questo articolo si applicano esclusivamente a monitoraggio legittimo, penetration test autorizzati e ricerca di sicurezza. L'accesso non autorizzato a sistemi informatici può violare il Computer Fraud and Abuse Act (CFAA) negli Stati Uniti e normative equivalenti nell'UE sotto il GDPR. Verificate sempre i Termini di Servizio del sito target e ottenete un'autorizzazione scritta prima di qualsiasi test.
Se avete provato ad automatizzare richieste verso siti protetti da Akamai nel 2026, avete probabilmente incontrato sfide che vanno ben oltre i semplici CAPTCHA. Akamai Bot Manager v2 non si limita a bloccare richieste sospette: assegna un punteggio di fiducia continuo a ogni sessione, aggiornato lato server dopo ogni interazione. Un singolo campo errato nel payload sensor_data può invalidare l'intero cookie _abck e innescare un challenge invisibile che nessuna rotazione IP può risolvere.
In questa guida tecnica analizziamo lo stack completo di segnali, dal motore bmak/sensor.js ai fingerprint TLS JA4, e mostriamo come configurare un'infrastruttura proxy residenziale con ProxyHat che permette all'automazione legittima di passare pulitamente. L'akamai bot detection 2026 rappresenta un salto qualitativo rispetto alle versioni precedenti: ogni aspetto dell'ambiente browser deve essere coerente con un profilo umano reale.
Il contesto tecnico: perché Akamai Bot Manager v2 esiste
Akamai Bot Manager v2 rappresenta l'evoluzione della difesa anti-bot da un modello basato su regole statiche a un sistema di scoring probabilistico continuo. Il problema fondamentale che Akamai risolve è la distinzione tra traffico umano e automatizzato in presenza di attaccanti che controllano browser reali, IP puliti e fingerprint coerenti.
Nel 2026, l'ecosistema delle minacce include botnet che utilizzano browser headless con patch anti-detection, farm di dispositivi mobile reali e servizi di risoluzione CAPTCHA basati su AI. Akamai risponde combinando oltre 200 segnali lato client e lato server in un modello di scoring che si aggiorna dopo ogni richiesta. Il punteggio determina se la sessione riceve challenge JavaScript, CAPTCHA invisibile, o blocco HTTP 403 immediato.
La conseguenza pratica per chi opera automazione legittima è che ogni aspetto dell'ambiente browser — dalla firma TLS alle coordinate del mouse, dalle proprietà della GPU al comportamento di scroll — deve essere coerente con un profilo umano reale. Una singola incongruenza, come un cipher TLS che non corrisponde allo User-Agent dichiarato, è sufficiente per far scattare il challenge.
Lo stack di segnali: cookie _abck, ak_bmsc e il motore bmak/sensor.js
Akamai Bot Manager v2 utilizza un sistema di cookie a più livelli per tracciare lo stato di fiducia di una sessione. Comprendere ogni componente è essenziale per chi implementa automazione legittima o ricerca di sicurezza.
Il cookie _abck: il gatekeeper della sessione
Il cookie _abck è il segnale più critico. Viene impostato dal server Akamai alla prima richiesta e contiene un token cifrato che codifica il punteggio di fiducia corrente, il timestamp di emissione e un identificatore di sessione. Il valore del cookie cambia dopo ogni richiesta significativa: se il sensor_data inviato è valido, il punteggio migliora; se è assente o invalido, il punteggio degrada.
Una sessione con _abck presente ma con punteggio basso riceverà challenge JavaScript silenziosi. Il browser deve eseguire il challenge (un frammento di codice offuscato che raccoglie ulteriori segnali) e inviare la risposta come sensor_data in una richiesta POST successiva. Solo dopo che il challenge viene risolto correttamente, il punteggio raggiunge la soglia necessaria per accedere al contenuto protetto. Il sensor_data akamai è quindi il cuore del meccanismo di proof-of-work del sistema.
Il cookie ak_bmsc: il segnale di sessione iniziale
Il cookie ak_bmsc viene impostato prima di _abck e serve come marker di sessione iniziale. Contiene un hash delle proprietà del browser raccolte durante il caricamento della pagina. A differenza di _abck, ak_bmsc non viene aggiornato continuamente, ma viene confrontato con i segnali successivi per rilevare discrepanze. Se il canvas fingerprint o le proprietà WebGL cambiano tra la prima richiesta e le successive, Akamai rileva l'inconsistenza e degrada il punteggio.
Il motore bmak/sensor.js: il raccoglitore di telemetria
Il file sensor.js (spesso referenziato come oggetto globale bmak) è il cuore del sistema di detection lato client. È uno script JavaScript pesantemente offuscato che:
- Raccoglie oltre 200 proprietà del browser e del dispositivo
- Registra eventi mouse, scroll e touch con timestamp ad alta risoluzione
- Calcola hash di canvas fingerprint, WebGL renderer e AudioContext
- Assembla tutto in un payload
sensor_datacodificato - Invia il payload al server Akamai via una richiesta POST asincrona
Lo script viene rigenerato frequentemente con offuscamento diverso, rendendo difficile l'estrazione statica della logica. Tuttavia, i segnali raccolti rimangono costanti nel tempo: sono le proprietà del browser e del dispositivo che Akamai valuta.
Il punteggio di fiducia continuo lato server
Akamai mantiene un punteggio di fiducia lato server per ogni sessione, aggiornato dopo ogni richiesta. Il punteggio integra:
- La validità e coerenza del
sensor_data - La reputazione dell'IP (ASN, geolocalizzazione, storico)
- Pattern comportamentali (frequenza delle richieste, navigazione, timing)
- Corrispondenza tra fingerprint dichiarato e segnali osservati
Un punteggio sopra una certa soglia (stimato intorno a 0.7 su una scala 0–1) permette l'accesso. Sotto la soglia, il server può restituire un 403, un challenge JavaScript o un redirect a una pagina CAPTCHA.
Come viene assemblato il sensor_data: mouse, scroll, touch, GPU e timing
Il sensor_data è il payload che il browser invia ad Akamai per dimostrare la propria "umanità". La sua costruzione avviene in più fasi e ogni fase deve essere coerente. Il sensor_data akamai è strutturato come una stringa codificata che contiene decine di campi separati da delimitatori specifici.
Eventi mouse e scroll
Il motore bmak registra eventi mousemove, mousedown, mouseup, scroll e wheel con timestamp ad alta risoluzione usando performance.now(). La telemetria include:
- Coordinate relative all'elemento target e alla viewport
- Timestamp con precisione al microsecondo
- Velocità e accelerazione del movimento (derivate)
- Distribuzione spaziale dei movimenti (un mouse umano non si muove in linea retta)
Akamai valuta la distribuzione statistica di questi eventi. Un browser headless che genera eventi mousemove a intervalli regolari con coordinate perfettamente lineari viene immediatamente flaggato. I movimenti umani reali hanno jitter, accelerazione non uniforme e pause irregolari.
Eventi touch
Su dispositivi mobile, bmak registra eventi touchstart, touchmove e touchend. Ogni evento include coordinate multi-touch, pressione (se disponibile) e area di contatto. Un dispositivo che dichiara di essere mobile nello User-Agent ma non genera eventi touch viene immediatamente invalidato.
Proprietà schermo e GPU
Il sensor_data include proprietà dello schermo (screen.width, screen.height, screen.colorDepth, window.devicePixelRatio) e della GPU (estratte via WebGL API):
WEBGL_debug_renderer_info:UNMASKED_VENDOR_WEBGLeUNMASKED_RENDERER_WEBGL- Parametri WebGL:
MAX_TEXTURE_SIZE,MAX_VIEWPORT_DIMS, numero di estensioni supportate - Canvas fingerprint: rendering di testo e forme su un canvas nascosto, seguito da hashing del risultato
La coerenza tra questi valori è critica. Un browser che dichiara di essere Chrome su Windows ma restituisce un renderer WebGL "Apple M2" è immediatamente contraddittorio. Allo stesso modo, un devicePixelRatio di 1.0 su un dispositivo che dichiara di essere un iPhone (che ha tipicamente 2.0 o 3.0) è un segnale di spoofing.
Timing e prestazioni
Il payload include timing di esecuzione: quanto tempo impiega performance.now() a restituire un valore, quanto tempo richiede l'hashing del canvas, e la differenza tra Date.now() e performance.timing.navigationStart. Browser headless come Puppeteer hanno timing caratteristici che differiscono dai browser reali: per esempio, l'assenza di estensioni del browser riduce il tempo di performance.timing in modo predicibile.
Perché un singolo campo errato invalida _abck
Il sensor_data viene validato lato server contro un modello di coerenza. Akamai non controlla solo la presenza di ogni campo, ma la coerenza tra campi. Per esempio:
- Se
navigator.platformè "Win32" manavigator.userAgentcontiene "Macintosh", il payload è invalido - Se il canvas fingerprint corrisponde a un profilo noto di Puppeteer, il punteggio crolla
- Se il numero di estensioni WebGL è inferiore al minimo atteso per il browser dichiarato, il payload è sospetto
Una volta che il sensor_data viene invalidato, il server Akamai aggiorna _abck con un punteggio basso. Le richieste successive riceveranno challenge o blocchi. Il recupero richiede l'esecuzione corretta di un nuovo challenge JavaScript, che a sua volta richiede un ambiente browser coerente. Questo è il motivo per cui un akamai bot manager bypass non può essere ottenuto con semplici rotazioni IP o header spoofing: richiede un ambiente browser completo e coerente.
Segnali di protocollo 2026: X25519MLKEM768, JA4 e HTTP/2 SETTINGS
Nel 2026, Akamai Bot Manager v2 integra fingerprint a livello di protocollo che vanno oltre il JavaScript. Questi segnali sono particolarmente difficili da spoofare perché sono determinati dallo stack di rete del client, non dal browser. L'akamai bot detection 2026 si basa pesantemente su questi segnali di basso livello.
JA4: il fingerprint TLS di nuova generazione
JA4 è il successore di JA3, introdotto per superare le limitazioni del fingerprint TLS precedente. A differenza di JA3, JA4 separa il fingerprint in quattro componenti distinte: versione TLS, cipher suites, estensioni e signature algorithms. Questo permette a Akamai di identificare non solo lo stack TLS, ma anche anomalie specifiche come cipher suites fuori ordine o estensioni non standard.
Il fingerprint JA4 deve corrispondere allo User-Agent dichiarato. Un browser che dichiara di essere Chrome 131 su Windows ma presenta un JA4 tipico di curl o Python requests viene immediatamente flaggato. La corrispondenza è verificata contro un database di fingerprint noti per ogni combinazione browser-SO-versione.
X25519MLKEM768: il key share post-quantum default in Chrome 131+
A partire da Chrome 131, Google ha abilitato di default il key share post-quantum X25519MLKEM768 come parte dell'iniziativa di post-quantum cryptography in TLS 1.3, come specificato nella RFC 8446 e nelle estensioni sperimentali IETF. Questo significa che il ClientHello di Chrome 131+ include un'estensione key_share con il gruppo X25519MLKEM768 (code point 0x11EC), oltre al classico X25519.
Per Akamai, questo è un segnale potente: se un client dichiara di essere Chrome 131+ ma il ClientHello non include X25519MLKEM768, il client sta mentendo sul proprio browser. Allo stesso modo, se un client include X25519MLKEM768 ma dichiara di essere Firefox o Safari (che non lo supportano di default nel 2026), c'è un'incongruenza immediata.
Questo rende praticamente impossibile l'uso di librerie HTTP semplici come requests o httpx per superare Akamai: il loro stack TLS non include il key share post-quantum. L'unica via praticabile è utilizzare un browser reale (headless o no) con patch anti-detection appropriate.
HTTP/2 SETTINGS fingerprint
Akamai verifica anche il fingerprint delle impostazioni HTTP/2. Ogni client invia un frame SETTINGS all'inizio della connessione HTTP/2 con parametri specifici: HEADER_TABLE_SIZE, ENABLE_PUSH, MAX_CONCURRENT_STREAMS, INITIAL_WINDOW_SIZE, MAX_HEADER_LIST_SIZE. L'ordine e i valori di questi parametri sono caratteristici di ogni client.
Chrome, Firefox, Safari e curl inviano frame SETTINGS diversi. Se il fingerprint HTTP/2 non corrisponde al browser dichiarato nello User-Agent, Akamai rileva l'incongruenza. Strumenti come curl-impersonate tentano di replicare i fingerprint HTTP/2 dei browser reali, ma l'aggiornamento costante dei browser rende questa una corsa continua.
Perché i proxy residenziali sono obbligatori: reputazione IP e ASN datacenter
Akamai Bot Manager v2 assegna un peso significativo alla reputazione dell'IP. Anche se il sensor_data è perfetto e il fingerprint TLS è coerente, un IP con cattiva reputazione può far scattare il challenge. La reputazione dipende da diversi fattori:
- ASN (Autonomous System Number): gli ASN associati a datacenter noti (AWS, Google Cloud, Azure, DigitalOcean, OVH) sono pre-classificati come bot
- Storico dell'IP: IP che hanno generato traffico bot in passato mantengono un punteggio basso
- Geolocalizzazione: IP con geolocalizzazione inconsistente o in paesi ad alto rischio
- Tipo di connessione: IP residenziali (ISP) hanno punteggio più alto rispetto a IP hosting
La conseguenza è che anche un'implementazione tecnicamente perfetta fallirà se eseguita da un IP datacenter. Akamai non ha bisogno di analizzare il sensor_data per bloccare un IP con ASN AWS: il blocco avviene a livello di rete, prima ancora che il JavaScript venga eseguito.
Confronto: proxy residenziali vs datacenter vs mobile per Akamai
| Tipo proxy | Reputazione IP | Punteggio Akamai iniziale | Coerenza geolocalizzazione | Costo indicativo |
|---|---|---|---|---|
| Residenziali | Alta (ISP reale) | Favorevole | Alta | ~$3–8/GB |
| Mobile | Altissima (operatore) | Molto favorevole | Alta (cell tower) | ~$8–15/GB |
| Datacenter | Bassa (hosting) | Penalizzato | Media | ~$0.5–2/GB |
I proxy residenziali offrono il miglior equilibrio tra costo e reputazione. I proxy mobile hanno la reputazione più alta (gli IP degli operatori mobile sono quasi impossibili da distinguere dai dispositivi umani reali), ma il costo per GB è significativamente più alto. I proxy datacenter sono economici ma praticamente inutilizzabili contro Akamai Bot Manager v2.
Implementazione pratica con ProxyHat: un contesto stealth reale
Vediamo come configurare un'infrastruttura di automazione legittima che passa pulitamente Akamai Bot Manager v2 usando i proxy residenziali di ProxyHat. L'approccio si basa su un browser reale (non headless classico) con patch anti-detection e proxy residenziali con sessioni sticky.
Configurazione del proxy residenziale
ProxyHat fornisce un gateway unificato con geo-targeting e sessioni sticky configurabili via username. Per un'automazione che deve mantenere la stessa identità IP per una sessione browser completa:
# Proxy HTTP residenziale con sessione sticky e geo-targeting US
curl -x "http://user-session-myresearch01-country-US:PASSWORD@gate.proxyhat.com:8080" \
"https://httpbin.org/ip"
# Proxy SOCKS5 residenziale (per browser automation)
curl -x "socks5://user-session-myresearch01-country-US:PASSWORD@gate.proxyhat.com:1080" \
"https://httpbin.org/ip"La flag session-myresearch01 garantisce che tutte le richieste dalla stessa sessione utilizzino lo stesso IP residenziale. Questo è critico per Akamai: il _abck è legato alla sessione e all'IP. Cambiare IP a metà sessione invalida il punteggio di fiducia.
Integrazione con Playwright e stealth
Per un'implementazione in Python con Playwright, è necessario configurare il browser con il proxy ProxyHat e applicare patch anti-detection per garantire che il sensor_data venga generato correttamente:
from playwright.sync_api import sync_playwright
PROXY = {
"server": "http://gate.proxyhat.com:8080",
"username": "user-session-myresearch01-country-US",
"password": "PASSWORD"
}
with sync_playwright() as p:
browser = p.chromium.launch(
headless=False, # Browser visibile: evita detection headless
proxy=PROXY,
args=[
"--disable-blink-features=AutomationControlled",
"--no-sandbox",
"--disable-dev-shm-usage"
]
)
context = browser.new_context(
viewport={"width": 1920, "height": 1080},
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",
locale="en-US",
timezone_id="America/New_York"
)
page = context.new_page()
# Naviga al sito target autorizzato
page.goto("https://esempio-target-autorizzato.com")
# Attendi che sensor.js carichi ed esegua il challenge
page.wait_for_timeout(5000)
# Simula comportamento umano: scroll graduale
page.mouse.move(500, 300)
page.mouse.move(520, 310)
page.wait_for_timeout(200)
page.mouse.move(540, 320)
# Scroll naturale
page.mouse.wheel(0, 300)
page.wait_for_timeout(500)
# Verifica che _abck sia stato accettato
cookies = context.cookies()
abck = [c for c in cookies if c["name"] == "_abck"]
print(f"_abck presente: {len(abck) > 0}")
browser.close()Notate che il browser viene lanciato in modalità non-headless (headless=False). Anche se Playwright supporta la modalità headless, Akamai può rilevare l'assenza di rendering visibile tramite segnali come navigator.webdriver e timing di rendering. Per automazione in produzione su server Linux, considerate l'uso di xvfb per fornire un display virtuale.
Rotazione delle sessioni
Per distribuire il carico su più sessioni, create contesti browser separati con identificatori di sessione diversi:
import uuid
def create_session_context(browser, country="US"):
session_id = f"research-{uuid.uuid4().hex[:8]}"
proxy = {
"server": "http://gate.proxyhat.com:8080",
"username": f"user-session-{session_id}-country-{country}",
"password": "PASSWORD"
}
context = browser.new_context(proxy=proxy)
return context, session_idOgni sessione ottiene un IP residenziale diverso, permettendo di distribuire le richieste su più IP puliti senza invalidare il punteggio _abck di singole sessioni. Consultate la documentazione ufficiale su docs.proxyhat.com per i parametri completi.
Casi d'uso appropriati: ricerca autorizzata e monitoring legittimo
Le tecniche descritte in questo approfondimento sono appropriate esclusivamente nei seguenti contesti:
- Penetration testing autorizzato: test di sicurezza commissionati dal proprietario del sito, con scope e autorizzazione scritta
- Ricerca di sicurezza: analisi accademica o industriale di sistemi anti-bot, con approvazione etica
- Monitoraggio di prezzi e SERP: raccolta di dati pubblici in conformità con i Termini di Servizio del sito target
- QA automation: test di proprie applicazioni protette da Akamai
L'uso di queste tecniche per frode, scalping non autorizzato, bypass di paywall o accesso non autorizzato a sistemi informatici è illegale e viola i Termini di Servizio di ProxyHat. Per approfondire i casi d'uso legittimi, consultate le pagine su web scraping e SERP tracking.
Errori comuni e edge case
1. Usare librerie HTTP invece di un browser reale
Il primo errore è tentare di superare Akamai con requests, httpx o fetch. Senza un browser reale, non c'è sensor.js, non c'è sensor_data, e il fingerprint TLS non corrisponde a nessun browser reale. Il risultato è un 403 immediato.
2. Dimenticare la coerenza tra User-Agent e fingerprint
Se dichiarate Chrome 131 nello User-Agent ma il browser non include X25519MLKEM768 nel ClientHello, Akamai rileva l'incongruenza. Usate sempre un browser aggiornato alla versione dichiarata.
3. Cambiare IP a metà sessione
Il _abck è legato all'IP. Se usate un proxy rotante per-request mentre mantenete lo stesso contesto browser, ogni richiesta avrà un IP diverso ma lo stesso _abck. Akamai rileva l'incoerenza e invalida la sessione. Usate sessioni sticky per tutta la durata di una sessione browser.
4. Generare eventi mouse con distribuzione uniforme
I movimenti del mouse umani hanno accelerazione non uniforme, jitter e pause. Generare eventi mousemove a intervalli perfettamente regolari con coordinate linearmente interpolate è un segnale di bot immediato.
5. Ignorare il timing di caricamento della pagina
Akamai misura il tempo tra il caricamento della pagina e l'esecuzione del challenge. Un browser che carica la pagina e invia il sensor_data in meno di 100ms è chiaramente automatizzato. Un utente reale impiega almeno 1–3 secondi per interagire con la pagina.
Key Takeaways:
- Akamai Bot Manager v2 assegna un punteggio di fiducia continuo basato su oltre 200 segnali, aggiornato dopo ogni richiesta
- Il
sensor_datadeve essere coerente in tutti i campi: una singola incongruenza invalida il cookie_abck- Nel 2026, il key share post-quantum
X25519MLKEM768in Chrome 131+ è un segnale TLS che deve corrispondere allo User-Agent dichiarato- I proxy residenziali sono obbligatori: gli ASN datacenter sono pre-classificati come bot da Akamai
- Usate un browser reale con patch anti-detection e proxy residenziali con sessioni sticky per automazione legittima
- Verificate sempre l'autorizzazione e la conformità legale (CFAA, GDPR) prima di qualsiasi test
Per iniziare con i proxy residenziali di ProxyHat, visitate la pagina dei prezzi o esplorate le locazioni disponibili. Per la documentazione tecnica completa, consultate docs.proxyhat.com.






