Copertina: Camoufox: il browser anti-detect open-source basato su Firefox

Camoufox: il browser anti-detect open-source basato su Firefox

Un fork di Firefox con patch C++ sul fingerprinting, pensato per scraping e agenti AI, che si pilota con la stessa API di Playwright.

04 settembre 20267 min di lettura
Camoufoxanti-detect browserweb scrapingfingerprintingPlaywrightFirefox forkopen sourceagenti AI

Cos'è Camoufox

Camoufox è un browser anti-detect open-source (licenza MPL-2.0) sviluppato dall'autore noto come daijro, lo stesso del progetto BrowserForge. Non è un plugin, né una libreria che «trucca» un browser esistente: è un vero e proprio fork di Firefox, ricompilato dai sorgenti con decine di patch C++ che modificano il modo in cui il motore risponde alle richieste di fingerprinting. Il risultato è un browser minimale, alleggerito dai servizi Mozilla, ottimizzato per l'automazione e pensato esplicitamente per due casi d'uso: il web scraping su siti protetti da sistemi anti-bot e la navigazione autonoma degli agenti AI.

Il progetto è distribuito come pacchetto Python che incapsula il driver Firefox di Playwright: chi sa già usare Playwright non deve imparare una nuova API, basta sostituire l'inizializzazione del browser. Il repository supera le 11.000 stelle su GitHub, è mantenuto attivamente e segue le versioni recenti di Firefox.

Il problema: perché Playwright «normale» viene bloccato

Chi fa raccolta dati sul web — listini, albi professionali, portali territoriali, comparatori, fonti pubbliche — conosce bene il muro: Cloudflare Turnstile, DataDome, Akamai e altri Web Application Firewall riconoscono l'automazione in pochi millisecondi e servono una pagina di challenge invece del contenuto. Il riconoscimento avviene su più livelli:

  • Segnali di protocollo. Il Chrome DevTools Protocol (CDP), usato per pilotare Chromium, non nasconde di essere un protocollo di automazione: espone variabili e tempistiche caratteristiche che i detector intercettano.
  • Proprietà JavaScript. navigator.webdriver, il numero di core CPU dichiarato, la risoluzione dello schermo, i font installati, l'hash del canvas e del contesto WebGL: ognuno di questi valori può tradire un browser headless.
  • Patch rilevabili. Le librerie stealth tradizionali iniettano JavaScript per sovrascrivere quelle proprietà. Ma l'iniezione stessa è osservabile: basta ispezionare i descrittori delle proprietà, la catena dei prototipi o Function.prototype.toString per scoprire che il valore è stato «coperto» da uno script.
  • Comportamento. Movimenti del mouse assenti o perfettamente lineari, tempi di interazione costanti, scroll istantanei: l'analisi comportamentale completa il quadro.

Le soluzioni commerciali esistono — browser cloud gestiti, proxy residenziali, servizi di unblocking — ma costano a consumo e spostano i dati su infrastrutture di terzi, un tema sensibile per chi lavora con dati aziendali in ambito europeo.

Come funziona: lo spoofing dentro il motore

L'idea centrale di Camoufox è spostare la contraffazione del fingerprint dal livello JavaScript al livello C++ del motore. I valori vengono sostituiti direttamente nei getter nativi di Firefox, prima che qualsiasi codice di pagina possa leggerli. Conseguenza pratica: non esiste alcun wrapper JavaScript da ispezionare, quindi le tecniche classiche di rilevazione delle patch non trovano nulla. La sostituzione non è osservabile perché, dal punto di vista della pagina, quello è semplicemente il valore che il browser restituisce.

Sul piano del protocollo di controllo, Camoufox sfrutta un vantaggio strutturale di Firefox: Playwright pilota Firefox tramite Juggler, un modulo separato dal cuore del browser, più facile da modificare rispetto al CDP di Chromium. Camoufox patcha Juggler in modo che il codice di automazione lavori in uno scope isolato, su una «copia» della pagina: la pagina reale non vede il JavaScript interno di Playwright (niente variabili __playwright__ nel main world) e non può accorgersi di essere letta o osservata. Inoltre gli input — click, tastiera — passano attraverso gli handler originali di Firefox, quindi vengono processati esattamente come se arrivassero da un utente umano.

Sopra questo strato, Camoufox aggiunge:

  • Fingerprint realistici e rotanti. Le proprietà non vengono inventate a caso: la libreria Python attinge a BrowserForge, che campiona la distribuzione statistica dei dispositivi reali. Ogni sessione ottiene un'identità coerente — user agent, piattaforma, schermo, font di sistema giusti per quel sistema operativo — che si mescola al traffico normale invece di spiccare.
  • Copertura completa dei vettori. Navigator, dimensioni schermo e viewport, WebGL (parametri, estensioni, precisione degli shader), AudioContext, geolocalizzazione, timezone, locale e Intl, WebRTC a livello di protocollo, voci di sintesi vocale, numero di microfoni e webcam, Battery API, header di rete allineati.
  • Anti font-fingerprinting. I font di sistema Windows, macOS e Linux sono bundled nel browser, e le metriche dei caratteri vengono disturbate con offset casuali sullo spaziamento.
  • Movimento del mouse umano. L'algoritmo di traiettoria (derivato da HumanCursor) è riscritto in C++ e produce percorsi curvilinei con accelerazioni variabili, attivabile con il flag humanize.
  • Allineamento geografico automatico. Con l'opzione geoip, se si usa un proxy, Camoufox ricava dall'IP di uscita coordinate, timezone, locale e lingua di sistema, eliminando le incoerenze — browser «americano» con fuso orario europeo — che i detector segnalano immediatamente.
  • Efficienza. Il fork è debloatato: molti servizi Mozilla sono rimossi, le animazioni CSS disabilitate, il consumo di memoria si attesta intorno ai 200 MB per istanza, una frazione di un Chromium tipico. Gira interamente su CPU, in headless o con display virtuale, su Linux, Windows e macOS.

Perché conta per founder, PMI e agenzie italiane

Per una PMI o un'agenzia che fa lead generation, monitoraggio prezzi, raccolta di dati pubblici o competitive intelligence, il collo di bottiglia raramente è il codice di scraping: è l'accesso. Le alternative sul mercato si dividono in due famiglie costose: i servizi di scraping gestiti (che fatturano per richiesta) e i proxy residenziali (che fatturano per gigabyte). Camoufox introduce una terza via: un binario open-source che gira sulla propria macchina o sul proprio server, senza abbonamenti, senza invio di dati a terze parti e con una curva di adozione quasi nulla per chi già usa Playwright.

Il secondo motivo di interesse è il trend degli agenti AI. Sempre più workflow — ricerca, verifica fonti, compilazione moduli, test end-to-end — prevedono che un modello linguistico guidi un browser reale. Un browser standard espone gli agenti ai blocchi anti-bot; Camoufox è progettato esplicitamente per questo scenario, tanto che il README lo dichiara «built for AI agents». Per le aziende italiane attente alla residenza dei dati, il fatto che tutto giri in locale, senza chiamate a API esterne, semplifica anche la valutazione in chiave GDPR: il traffico resta sotto il proprio controllo, così come i log.

Va detto con chiarezza: lo scraping resta soggetto ai termini d'uso dei siti, al GDPR e alla normativa vigente. Camoufox è uno strumento tecnico, non un lasciapassare legale; gli usi legittimi tipici riguardano dati pubblici, fonti istituzionali, test sulle proprie proprietà e raccolte autorizzate.

Limiti e avvertenze oneste

Il progetto stesso documenta i propri limiti, ed è bene conoscerli. Primo: Camoufox resta Firefox, e alcuni WAF sofisticati testano il comportamento del motore SpiderMonkey, che non può essere mascherato da Chromium — su target «Chrome-only» o con DRM non è lo strumento giusto. Secondo: il progetto ha attraversato una fase di manutenzione rallentata ed è tuttora in sviluppo attivo; la rotazione dei fingerprint richiede aggiornamenti continui per restare coerente, quindi va adottato con la disponibilità a tenere il passo con le release. Terzo: lo spoofing del fingerprint non risolve tutto — CAPTCHA, autenticazione a due fattori e analisi comportamentale avanzata possono richiedere comunque strategie aggiuntive. Infine, la modalità humanize migliora le traiettorie ma non garantisce di superare analisi comportamentali sofisticate.

Come provarlo

L'installazione richiede Python e pochi comandi: si installa il pacchetto con l'extra geoip (pip install -U camoufox[geoip]), si scarica il binario del browser (python -m camoufox fetch) e si usa il context manager Camoufox come sostituto del launcher Playwright, sia in modalità sincrona sia asincrona. Chi vuole verificare l'efficacia del fingerprint può puntare la prima sessione verso servizi pubblici di analisi come CreepJS o BrowserLeaks e confrontare il risultato con un Playwright standard: la differenza è immediatamente visibile.

Dove trovarlo

Il codice sorgente, le release con i binari precompilati per Linux, Windows e macOS e la documentazione sono sul repository GitHub daijro/camoufox, con licenza MPL-2.0: uso libero anche commerciale, con l'obbligo di rendere disponibili le modifiche ai file coperti. La documentazione estesa è su camoufox.com. Per chi lavora in altri linguaggi, la libreria Python può esporre un server remoto compatibile con Playwright, così da pilotare il browser anche da Node.js o altri ambienti.

Hai letto fino a qui

🤔 Hai domande su questo argomento?

Posso aiutarti a capire come applicarlo al tuo business. Scegli come vuoi parlarmi.

— oppure —

💬 Chat: risposta immediata · 📧 Email: risposta personale entro 24h · 🔒 Niente spam

Continua a leggere